diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b3e7ff5 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/pycups-2.0.1.tar.gz diff --git a/.python-cups.metadata b/.python-cups.metadata new file mode 100644 index 0000000..f7967e6 --- /dev/null +++ b/.python-cups.metadata @@ -0,0 +1 @@ +b6057da7830fb49c30021902393d94acb045087e SOURCES/pycups-2.0.1.tar.gz diff --git a/SOURCES/0001-examples-cupstree.py-remove-shebang.patch b/SOURCES/0001-examples-cupstree.py-remove-shebang.patch new file mode 100644 index 0000000..9d5f63c --- /dev/null +++ b/SOURCES/0001-examples-cupstree.py-remove-shebang.patch @@ -0,0 +1,22 @@ +From 09145aa3ad0ce6e0558aceccabcafdf6c1b282d8 Mon Sep 17 00:00:00 2001 +From: zdohnal +Date: Fri, 28 Aug 2020 07:48:20 +0200 +Subject: [PATCH] examples/cupstree.py: remove shebang + +It is unneeded within examples. +--- + examples/cupstree.py | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/examples/cupstree.py b/examples/cupstree.py +index e954615..af19b07 100755 +--- a/examples/cupstree.py ++++ b/examples/cupstree.py +@@ -1,4 +1,3 @@ +-#!/usr/bin/python + import cups + + def do_indent (indent): +-- +2.26.2 + diff --git a/SOURCES/0001-postscriptdriver.prov-ignore-driverless-utilities.patch b/SOURCES/0001-postscriptdriver.prov-ignore-driverless-utilities.patch new file mode 100644 index 0000000..a4066d0 --- /dev/null +++ b/SOURCES/0001-postscriptdriver.prov-ignore-driverless-utilities.patch @@ -0,0 +1,28 @@ +From 845c65358e3ba6e5972df1dd37756be97130cc90 Mon Sep 17 00:00:00 2001 +From: zdohnal +Date: Fri, 28 Aug 2020 08:23:24 +0200 +Subject: [PATCH] postscriptdriver.prov: ignore driverless utilities + +Driverless utilities are generic tools for driverless support, which generate 'drivers' based on communication with a device, so it is not usable to try to generate rpm tags for specific models. +Creating generic ```postscriptdriver(driverless)``` doesn't make sense too, because utilities are shipped within core printing packages (CUPS/cups-filters), so just ignore postscriptdriver tag creation for them. +--- + postscriptdriver.prov | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/postscriptdriver.prov b/postscriptdriver.prov +index 7447def..c9e3cee 100755 +--- a/postscriptdriver.prov ++++ b/postscriptdriver.prov +@@ -243,7 +243,8 @@ class TagBuilder: + self.ids = DeviceIDs () + + for path in paths: +- if path.find ("/usr/lib/cups/driver/") != -1: ++ if path.find ("/usr/lib/cups/driver/") != -1 and \ ++ path.find("driverless") == -1: + try: + self.ids += DynamicDriver (path).list () + except TimedOut: +-- +2.26.2 + diff --git a/SOURCES/pycups-invalid-pointer.patch b/SOURCES/pycups-invalid-pointer.patch new file mode 100644 index 0000000..7824a07 --- /dev/null +++ b/SOURCES/pycups-invalid-pointer.patch @@ -0,0 +1,21 @@ +diff --git a/cupsconnection.c b/cupsconnection.c +index 132dd25..d54a7fa 100644 +--- a/cupsconnection.c ++++ b/cupsconnection.c +@@ -3827,7 +3827,7 @@ Connection_printTestPage (Connection *self, PyObject *args, PyObject *kwds) + const char *datadir; + char filename[PATH_MAX]; + char uri[HTTP_MAX_URI]; +- ipp_t *request, *answer; ++ ipp_t *request, *answer = NULL; + ipp_attribute_t *attr; + char *resource; + int jobid = 0; +@@ -3923,6 +3923,7 @@ Connection_printTestPage (Connection *self, PyObject *args, PyObject *kwds) + Connection_end_allow_threads (self); + if (answer && ippGetStatusCode (answer) == IPP_NOT_POSSIBLE) { + ippDelete (answer); ++ answer = NULL; + // Perhaps it's a class, not a printer. + construct_uri (uri, sizeof (uri), + "ipp://localhost/classes/", printer); diff --git a/SPECS/python-cups.spec b/SPECS/python-cups.spec new file mode 100644 index 0000000..9030358 --- /dev/null +++ b/SPECS/python-cups.spec @@ -0,0 +1,305 @@ +%{?filter_setup: +%filter_provides_in %{python3_sitearch}/.*\.so$ +%filter_setup +} + +Summary: Python bindings for CUPS +Name: python-cups +Version: 2.0.1 +Release: 10%{?dist} +# older URL, but still with useful information about pycups +#URL: http://cyberelk.net/tim/software/pycups/ +URL: https://github.com/OpenPrinting/pycups/ +Source: https://github.com/OpenPrinting/pycups/releases/download/v%{version}/pycups-%{version}.tar.gz +License: GPLv2+ + +# all taken from upstream +Patch01: 0001-examples-cupstree.py-remove-shebang.patch +Patch02: 0001-postscriptdriver.prov-ignore-driverless-utilities.patch +Patch03: pycups-invalid-pointer.patch + +# gcc is no longer in buildroot by default +BuildRequires: gcc +# for autosetup +BuildRequires: git-core +# uses make +BuildRequires: make + +BuildRequires: cups-devel +BuildRequires: python3-devel + +%description +This package provides Python bindings for CUPS API, +known as pycups. It was written for use with +system-config-printer, but can be put to other uses as well. + +%package -n python3-cups +Summary: Python3 bindings for CUPS API, known as pycups. +%{?python_provide:%python_provide python3-cups} + +%description -n python3-cups +This package provides Python 3 bindings for CUPS API, +known as pycups. It was written for use with +system-config-printer, but can be put to other uses as well. + +%package doc +Summary: Documentation for python-cups + +%description doc +Documentation for python-cups. + +%prep +%autosetup -S git -n pycups-%{version} + +%build +%py3_build + +%install +make install-rpmhook DESTDIR="%{buildroot}" +%py3_install +export PYTHONPATH=%{buildroot}%{python3_sitearch} +%{__python3} -m pydoc -w cups +%{_bindir}/mkdir html +%{_bindir}/mv cups.html html + +%files -n python3-cups +%doc README NEWS TODO +%license COPYING +%{python3_sitearch}/cups.cpython-3*.so +%{python3_sitearch}/pycups*.egg-info +%{_rpmconfigdir}/fileattrs/psdriver.attr +%{_rpmconfigdir}/postscriptdriver.prov + +%files doc +%doc examples html + +%changelog +* Tue Aug 10 2021 Mohan Boddu - 2.0.1-10 +- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags + Related: rhbz#1991688 + +* Fri Apr 16 2021 Mohan Boddu - 2.0.1-9 +- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937 + +* Wed Jan 27 2021 Fedora Release Engineering - 2.0.1-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Mon Dec 14 2020 Zdenek Dohnal - 2.0.1-7 +- fix invalid delete (upstream ticket #11) + +* Thu Nov 05 2020 Zdenek Dohnal - 2.0.1-6 +- make is no longer in buildroot by default +- use smaller git-core instead of git + +* Fri Aug 28 2020 Zdenek Dohnal - 2.0.1-5 +- 1873385 - ignore driverless utilities during tags creation + +* Wed Jul 29 2020 Zdenek Dohnal - 2.0.1-4 +- use %%python3_sitearch in filter_provides_in, otherwise the package fails to build + +* Wed Jul 29 2020 Fedora Release Engineering - 2.0.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Tue May 26 2020 Miro Hrončok - 2.0.1-2 +- Rebuilt for Python 3.9 + +* Fri Apr 24 2020 Zdenek Dohnal - 2.0.1-1 +- 2.0.1, fixes #1816107 + +* Mon Mar 16 2020 Zdenek Dohnal - 1.9.74-7 +- use __python macro for calling pydoc + +* Thu Jan 30 2020 Fedora Release Engineering - 1.9.74-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Mon Aug 19 2019 Miro Hrončok - 1.9.74-5 +- Rebuilt for Python 3.8 + +* Fri Jul 26 2019 Fedora Release Engineering - 1.9.74-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Sat Feb 02 2019 Fedora Release Engineering - 1.9.74-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Wed Oct 03 2018 Zdenek Dohnal - 1.9.74-2 +- 1578356 - Remove python2 subpackage + +* Wed Sep 26 2018 Zdenek Dohnal - 1.9.74-1 +- 1.9.74 + +* Fri Jul 13 2018 Fedora Release Engineering - 1.9.72-22 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Tue Jun 19 2018 Miro Hrončok - 1.9.72-21 +- Rebuilt for Python 3.7 + +* Fri Apr 20 2018 Zdenek Dohnal - 1.9.72-20 +- adding docs back + +* Thu Apr 12 2018 Zdenek Dohnal - 1.9.72-19 +- fixing statement + +* Thu Apr 12 2018 Zdenek Dohnal - 1.9.72-18 +- make building python2 subpackage optional + +* Wed Apr 11 2018 Zdenek Dohnal - 1.9.72-17 +- remove python2 subpackage + +* Mon Feb 19 2018 Zdenek Dohnal - 1.9.72-16 +- gcc is no longer in buildroot by default + +* Fri Feb 09 2018 Fedora Release Engineering - 1.9.72-15 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Thu Aug 03 2017 Fedora Release Engineering - 1.9.72-14 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Thu Jul 27 2017 Fedora Release Engineering - 1.9.72-13 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Fri Jul 07 2017 Igor Gnatenko - 1.9.72-12 +- Rebuild due to bug in RPM (RHBZ #1468476) + +* Sat Feb 11 2017 Fedora Release Engineering - 1.9.72-11 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Mon Dec 19 2016 Miro Hrončok - 1.9.72-10 +- Rebuild for Python 3.6 + +* Tue Jul 19 2016 Fedora Release Engineering - 1.9.72-9 +- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages + +* Thu Feb 04 2016 Fedora Release Engineering - 1.9.72-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Mon Dec 07 2015 Jiri Popelka - 1.9.72-7 +- Remove shebang from examples/cupstree.py (bug #1288830). + +* Mon Nov 23 2015 Jiri Popelka - 1.9.72-6 +- python2 subpackage + +* Fri Nov 20 2015 Jiri Popelka - 1.9.72-5 +- do not use py3dir +- use python_provide macro + +* Wed Nov 04 2015 Robert Kuska - 1.9.72-4 +- Rebuilt for Python3.5 rebuild + +* Tue Aug 11 2015 Jiri Popelka - 1.9.72-3 +- %%py3_build && %%py3_install + +* Thu Jun 18 2015 Fedora Release Engineering - 1.9.72-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Tue Feb 10 2015 Tim Waugh - 1.9.72-1 +- Latest upstream release. + +* Thu Jan 15 2015 Tim Waugh - 1.9.70-3 +- Only ship the postscriptdriver rpm-provides script in python3-cups + as it is a python3 script. + +* Mon Jan 12 2015 Tim Waugh - 1.9.70-2 +- Fixes for IPP constants (bug #1181043, bug #1181055). + +* Tue Dec 23 2014 Tim Waugh - 1.9.70-1 +- 1.9.70. + +* Sat Dec 13 2014 Tim Waugh - 1.9.69-2 +- Fixed password_callback so it obtains UTF-8 password correctly + (bug #1155469). + +* Thu Dec 4 2014 Tim Waugh - 1.9.69-1 +- 1.9.69. + +* Mon Oct 6 2014 Tim Waugh - 1.9.68-1 +- 1.9.68. + +* Sun Aug 17 2014 Fedora Release Engineering - 1.9.67-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Fri Jun 20 2014 Tim Waugh - 1.9.67-1 +- 1.9.67, fixing a Connection.getFile crash. + +* Sat Jun 07 2014 Fedora Release Engineering - 1.9.66-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Wed May 28 2014 Kalev Lember - 1.9.66-2 +- Rebuilt for https://fedoraproject.org/wiki/Changes/Python_3.4 + +* Wed Nov 27 2013 Jiri Popelka - 1.9.66-1 +- 1.9.66 - Python 3 support. + +* Wed Nov 27 2013 Tim Waugh - 1.9.65-1 +- 1.9.65. + +* Wed Jul 31 2013 Jiri Popelka - 1.9.63-4 +- Fix getting of booleans. + +* Fri Apr 12 2013 Tim Waugh - 1.9.63-3 +- Propagate UTF-8 decoding errors. + +* Thu Apr 11 2013 Tim Waugh - 1.9.63-2 +- Encode generated URIs correctly (bug #950162). + +* Wed Mar 20 2013 Tim Waugh - 1.9.63-1 +- 1.9.63. + +* Thu Feb 14 2013 Fedora Release Engineering - 1.9.62-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Thu Sep 27 2012 Jiri Popelka - 1.9.62-2 +- Remove unused statements. + +* Wed Aug 1 2012 Tim Waugh - 1.9.62-1 +- 1.9.62, including fixes for building against newer versions of CUPS. + +* Sat Jul 21 2012 Fedora Release Engineering - 1.9.61-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Tue Apr 10 2012 Tim Waugh - 1.9.61-2 +- Apply upstream patch to fix crash on loading invalid PPDs (bug #811159). + +* Tue Mar 6 2012 Tim Waugh - 1.9.61-1 +- 1.9.61, fixing ref-counting bugs (bug #800143). + +* Sat Jan 14 2012 Fedora Release Engineering - 1.9.60-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Tue Oct 11 2011 Tim Waugh - 1.9.60-1 +- 1.9.60. Constants from CUPS 1.5.0. + +* Mon Oct 3 2011 Tim Waugh - 1.9.59-1 +- 1.9.59. Fixes auth loops with CUPS 1.5.0 (bug #734247). + +* Thu Jun 9 2011 Tim Waugh - 1.9.57-1 +- 1.9.57. Fixes rpm provides script (bug #712027). + +* Sun Mar 20 2011 Tim Waugh - 1.9.55-1 +- 1.9.55. Support for IPP "resolution" type. + +* Wed Feb 23 2011 Tim Waugh - 1.9.54-1 +- 1.9.54. The rpm hook is now upstream. + +* Wed Feb 23 2011 Tim Waugh - 1.9.53-5 +- Use rpmconfigdir macro throughout. + +* Tue Feb 08 2011 Fedora Release Engineering - 1.9.53-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Tue Jan 25 2011 Tim Waugh - 1.9.53-3 +- Fixed typo in psdriver.attr that prevented PPD files from being + scanned when generating postscriptdriver tags. + +* Thu Jan 20 2011 Tim Waugh - 1.9.53-2 +- Moved postscriptdriver RPM tagging machinery here. Fixed + leading/trailing whitespace in tags as well. + +* Wed Dec 15 2010 Tim Waugh - 1.9.53-1 +- 1.9.53 fixing a thread-local storage issue (bug #662805). + +* Wed Nov 17 2010 Jiri Popelka - 1.9.52-2 +- Fixed rpmlint errors/warnings (#648986) +- doc subpackage + +* Mon Nov 01 2010 Jiri Popelka - 1.9.52-1 +- Initial RPM spec file