diff --git a/.gitignore b/.gitignore index 9c08853..fe9d0c7 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1 @@ -SOURCES/pycups-1.9.72.tar.bz2 -/pycups-1.9.72.tar.bz2 +pycups-2.0.1.tar.gz diff --git a/0001-examples-cupstree.py-remove-shebang.patch b/0001-examples-cupstree.py-remove-shebang.patch new file mode 100644 index 0000000..9d5f63c --- /dev/null +++ b/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/0001-postscriptdriver.prov-ignore-driverless-utilities.patch b/0001-postscriptdriver.prov-ignore-driverless-utilities.patch new file mode 100644 index 0000000..a4066d0 --- /dev/null +++ b/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/EMPTY b/EMPTY deleted file mode 100644 index 0519ecb..0000000 --- a/EMPTY +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/gating.yaml b/gating.yaml deleted file mode 100644 index cf5f35b..0000000 --- a/gating.yaml +++ /dev/null @@ -1,7 +0,0 @@ ---- !Policy -product_versions: - - rhel-8 -decision_context: osci_compose_gate -rules: - - !PassingTestCaseRule {test_case_name: baseos-ci.brew-build.tier1.functional} - - !PassingTestCaseRule {test_case_name: baseos-ci.brew-build.tedude.validation} diff --git a/pycups-invalid-pointer.patch b/pycups-invalid-pointer.patch new file mode 100644 index 0000000..7824a07 --- /dev/null +++ b/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/pycups-pyssizet_clean.patch b/pycups-pyssizet_clean.patch new file mode 100644 index 0000000..f84e982 --- /dev/null +++ b/pycups-pyssizet_clean.patch @@ -0,0 +1,13 @@ +diff --git a/cupsipp.h b/cupsipp.h +index 2a15ce6..b890198 100644 +--- a/cupsipp.h ++++ b/cupsipp.h +@@ -21,6 +21,8 @@ + #ifndef HAVE_CUPSIPP_H + #define HAVE_CUPSIPP_H + ++#define PY_SSIZE_T_CLEAN ++ + #include + #include + diff --git a/python-cups.spec b/python-cups.spec index d269f7a..2d7e997 100644 --- a/python-cups.spec +++ b/python-cups.spec @@ -1,44 +1,42 @@ %{?filter_setup: -%filter_provides_in %{python_sitearch}/.*\.so$ +%filter_provides_in %{python3_sitearch}/.*\.so$ %filter_setup } Summary: Python bindings for CUPS Name: python-cups -Version: 1.9.72 -Release: 21%{?dist} -URL: http://cyberelk.net/tim/software/pycups/ -Source: http://cyberelk.net/tim/data/pycups/pycups-%{version}.tar.bz2 -License: GPLv2+ +Version: 2.0.1 +Release: 23%{?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: GPL-2.0-or-later + +# 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 +Patch04: pycups-pyssizet_clean.patch # gcc is no longer in buildroot by default BuildRequires: gcc +# for autosetup +BuildRequires: git-core +# uses make +BuildRequires: make BuildRequires: cups-devel -%if 0%{?rhel} <= 7 -BuildRequires: python2-devel -%endif BuildRequires: python3-devel +# distutils are removed from python3 project, use the one +# from setuptools +BuildRequires: python3-setuptools %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. -%if 0%{?rhel} <= 7 -%package -n python2-cups -Summary: Python2 bindings for CUPS API, known as pycups. -# defined in /usr/lib/rpm/macros.d/macros.python -# if python_provide() is defined, call python_provide(python2-cups) -# which may eventually add Provides: ... (see the function definition) -%{?python_provide:%python_provide python2-cups} - -%description -n python2-cups -This package provides Python 2 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. -%endif - %package -n python3-cups Summary: Python3 bindings for CUPS API, known as pycups. %{?python_provide:%python_provide python3-cups} @@ -55,37 +53,19 @@ Summary: Documentation for python-cups Documentation for python-cups. %prep -%setup -n pycups-%{version} - -sed -i '/^#!\/usr\/bin\/python/d' examples/cupstree.py -sed -i '1s=^#!/usr/bin/python3=#!%{__python3}=' \ - postscriptdriver.prov +%autosetup -S git -n pycups-%{version} %build -%if 0%{?rhel} <= 7 -%py2_build -%endif %py3_build %install make install-rpmhook DESTDIR="%{buildroot}" -%if 0%{?rhel} <= 7 -%py2_install -%endif %py3_install export PYTHONPATH=%{buildroot}%{python3_sitearch} -%{_bindir}/pydoc3 -w cups +%{__python3} -m pydoc -w cups %{_bindir}/mkdir html %{_bindir}/mv cups.html html -%if 0%{?rhel} <= 7 -%files -n python2-cups -%doc README NEWS TODO -%license COPYING -%{python2_sitearch}/cups.so -%{python2_sitearch}/pycups*.egg-info -%endif - %files -n python3-cups %doc README NEWS TODO %license COPYING @@ -98,8 +78,103 @@ export PYTHONPATH=%{buildroot}%{python3_sitearch} %doc examples html %changelog -* Thu Jun 07 2018 Tomas Orsava - 1.9.72-21 -- Switch hardcoded python3 shebangs into the %%{__python3} macro +* Tue Oct 29 2024 Troy Dawson - 2.0.1-23 +- Bump release for October 2024 mass rebuild: + Resolves: RHEL-64018 + +* Mon Jun 24 2024 Troy Dawson - 2.0.1-22 +- Bump release for June 2024 mass rebuild + +* Fri Jan 26 2024 Fedora Release Engineering - 2.0.1-21 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Mon Jan 22 2024 Fedora Release Engineering - 2.0.1-20 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Thu Nov 16 2023 Zdenek Dohnal - 2.0.1-19 +- SPDX migration + +* Fri Jul 21 2023 Fedora Release Engineering - 2.0.1-18 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Tue Jun 13 2023 Python Maint - 2.0.1-17 +- Rebuilt for Python 3.12 + +* Fri Jan 20 2023 Fedora Release Engineering - 2.0.1-16 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Wed Oct 19 2022 Zdenek Dohnal - 2.0.1-15 +- distutils will be removed in Python3.12, use setuptools instead + +* Fri Jul 22 2022 Fedora Release Engineering - 2.0.1-14 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Mon Jun 13 2022 Python Maint - 2.0.1-13 +- Rebuilt for Python 3.11 + +* Fri Jan 21 2022 Fedora Release Engineering - 2.0.1-12 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Fri Jul 23 2021 Fedora Release Engineering - 2.0.1-11 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Mon Jun 28 2021 Zdenek Dohnal - 2.0.1-10 +- IPPRequest.writeIO() tracebacks because PY_SSIZE_T_CLEAN is not defined + +* Fri Jun 04 2021 Python Maint - 2.0.1-9 +- Rebuilt for Python 3.10 + +* 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 diff --git a/sources b/sources index 38b534c..d519dd9 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (pycups-1.9.72.tar.bz2) = db8b06378bf398073e34c89d62aa64cc8e56e93553346484c2e5dd67d046a3aa2f44020b68a7d479203fb2eeba005f8860ad4cebf72f8d7aa9aa15952a36d816 +SHA512 (pycups-2.0.1.tar.gz) = fdebf1cac8cc4fffb8a76a938aa91965dae4a3dcdb6d8ee26e8e6054809d26dd3fb20b10c2351fb9265c03b16d6bde011815111c452ccb058518372f22d9d617