summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app-admin/system-config-printer')
-rw-r--r--app-admin/system-config-printer/Manifest2
-rw-r--r--app-admin/system-config-printer/files/system-config-printer-1.5.12-catch-urllib-errors.patch22
-rw-r--r--app-admin/system-config-printer/files/system-config-printer-1.5.12-check-for-null.patch46
-rw-r--r--app-admin/system-config-printer/files/system-config-printer-1.5.12-fix-abrt-in-udev-configure-printer.patch72
-rw-r--r--app-admin/system-config-printer/files/system-config-printer-1.5.12-fix-remember-passwd.patch121
-rw-r--r--app-admin/system-config-printer/files/system-config-printer-1.5.12-py39-1.patch45
-rw-r--r--app-admin/system-config-printer/files/system-config-printer-1.5.12-py39-2.patch147
-rw-r--r--app-admin/system-config-printer/files/system-config-printer-1.5.18-fix-debugprint-exception.patch22
-rw-r--r--app-admin/system-config-printer/metadata.xml29
-rw-r--r--app-admin/system-config-printer/system-config-printer-1.5.12-r1.ebuild83
-rw-r--r--app-admin/system-config-printer/system-config-printer-1.5.12-r2.ebuild84
-rw-r--r--app-admin/system-config-printer/system-config-printer-1.5.18-r2.ebuild94
12 files changed, 133 insertions, 634 deletions
diff --git a/app-admin/system-config-printer/Manifest b/app-admin/system-config-printer/Manifest
index 01c0dc3964bb..12e9f144b7b9 100644
--- a/app-admin/system-config-printer/Manifest
+++ b/app-admin/system-config-printer/Manifest
@@ -1 +1 @@
-DIST system-config-printer-1.5.12.tar.xz 955756 BLAKE2B 766cc7307382a7b0ab65387650f1568fd5108dae2693dfc93684c6593e28837d513e4c823bf4e07c3ba2123eea8aba0649135020318f06f38633b9837683d7f7 SHA512 c8b0702dcdf99c4e8a19274dd4a3f82d9263bd5f51d0c19edf7d71fb13095f57a35e643ddbe161ffb5805e72bf7da0cb6a3de44a554854390ac05d8e56644c32
+DIST system-config-printer-1.5.18.tar.xz 1396808 BLAKE2B 910e853829ee876edc597a3103b5ab857b3b8c1cb87096f25213b1088e35d9f4d320dad61f55b530283a7650b07abe028a53b4e144b33b1b66c733cb2caa8011 SHA512 33dc9c52d92f4234e055fb10a99cadd58424dcdb62554797b44bdd5319f1c3662bd2fa33417ac3a3f5ec51216d64e81e1897f3e671eb49f6be34057d7c38f3f4
diff --git a/app-admin/system-config-printer/files/system-config-printer-1.5.12-catch-urllib-errors.patch b/app-admin/system-config-printer/files/system-config-printer-1.5.12-catch-urllib-errors.patch
deleted file mode 100644
index fbae84426159..000000000000
--- a/app-admin/system-config-printer/files/system-config-printer-1.5.12-catch-urllib-errors.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-From feed693225cc0c26464bfc0adef21da72581e811 Mon Sep 17 00:00:00 2001
-From: Zdenek Dohnal <zdohnal@redhat.com>
-Date: Thu, 28 Nov 2019 15:45:22 +0100
-Subject: [PATCH] Catch errors from urllib too
-
----
- newprinter.py | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/newprinter.py b/newprinter.py
-index 8b9298887..6c71ec578 100644
---- a/newprinter.py
-+++ b/newprinter.py
-@@ -4183,7 +4183,7 @@ def getNPPPD(self):
- tmpf.flush ()
- ppd = cups.PPD(tmpf.name)
-
-- except RuntimeError as e:
-+ except (RuntimeError, urllib.error.HTTPError) as e:
- debugprint ("RuntimeError: " + repr (e))
- if self.rbtnNPFoomatic.get_active():
- # Foomatic database problem of some sort.
diff --git a/app-admin/system-config-printer/files/system-config-printer-1.5.12-check-for-null.patch b/app-admin/system-config-printer/files/system-config-printer-1.5.12-check-for-null.patch
deleted file mode 100644
index b0df809c9398..000000000000
--- a/app-admin/system-config-printer/files/system-config-printer-1.5.12-check-for-null.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From cf9903466c1a2d18a701f3b5e8c7e03483e1244d Mon Sep 17 00:00:00 2001
-From: Zdenek Dohnal <zdohnal@redhat.com>
-Date: Mon, 14 Oct 2019 16:39:28 +0200
-Subject: [PATCH] udev-configure-printer: Add checks for NULL
-
----
- udev/udev-configure-printer.c | 12 +++++++++---
- 1 file changed, 9 insertions(+), 3 deletions(-)
-
-diff --git a/udev/udev-configure-printer.c b/udev/udev-configure-printer.c
-index 83092fc21..d753bbeaf 100644
---- a/udev/udev-configure-printer.c
-+++ b/udev/udev-configure-printer.c
-@@ -1411,7 +1411,7 @@ for_each_matching_queue (struct device_uris *device_uris,
- const char *printer_state_message = NULL;
- int state = 0;
- size_t i, l;
-- char *this_device_uri_n, *device_uri_n;
-+ char *this_device_uri_n = NULL, *device_uri_n = NULL;
- const char *ps1, *ps2, *pi1, *pi2;
-
- while (attr && ippGetGroupTag (attr) != IPP_TAG_PRINTER)
-@@ -1448,6 +1448,8 @@ for_each_matching_queue (struct device_uris *device_uris,
- for (i = 0; i < device_uris->n_uris; i++)
- {
- device_uri_n = normalize_device_uri(device_uris->uri[i]);
-+ if (this_device_uri_n == NULL || device_uri_n == NULL)
-+ goto skip;
- /* As for the same device different URIs can come out when the
- device is accessed via the usblp kernel module or via low-
- level USB (libusb) we cannot simply compare URIs, must
-@@ -1512,8 +1514,12 @@ for_each_matching_queue (struct device_uris *device_uris,
- firstqueue = 0;
-
- skip:
-- free(device_uri_n);
-- free(this_device_uri_n);
-+ if (device_uri_n != NULL)
-+ free(device_uri_n);
-+ device_uri_n = NULL;
-+ if (this_device_uri_n != NULL)
-+ free(this_device_uri_n);
-+ this_device_uri_n = NULL;
- if (!attr)
- break;
- }
diff --git a/app-admin/system-config-printer/files/system-config-printer-1.5.12-fix-abrt-in-udev-configure-printer.patch b/app-admin/system-config-printer/files/system-config-printer-1.5.12-fix-abrt-in-udev-configure-printer.patch
deleted file mode 100644
index 7aed67584f70..000000000000
--- a/app-admin/system-config-printer/files/system-config-printer-1.5.12-fix-abrt-in-udev-configure-printer.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-From b9289dfe105bdb502f183f0afe7a115ecae5f2af Mon Sep 17 00:00:00 2001
-From: Zdenek Dohnal <zdohnal@redhat.com>
-Date: Fri, 1 Nov 2019 15:55:34 +0100
-Subject: [PATCH] Fix abrt in udev-configure-printer
-
-The abrt was due invalid free - several printer models have its normalized uri cropped.
-The original pointer from strdup() was lost so its freeing was invalid.
----
- udev/udev-configure-printer.c | 21 ++++++++++++++-------
- 1 file changed, 14 insertions(+), 7 deletions(-)
-
-diff --git a/udev/udev-configure-printer.c b/udev/udev-configure-printer.c
-index d753bbeaf..a44520f9c 100644
---- a/udev/udev-configure-printer.c
-+++ b/udev/udev-configure-printer.c
-@@ -1285,7 +1285,8 @@ normalize_device_uri(const char *str_orig)
- {
- int i, j;
- int havespace = 0;
-- char *str;
-+ char *str = NULL;
-+ char *cropped_str = NULL;
-
- if (str_orig == NULL)
- return NULL;
-@@ -1333,7 +1334,11 @@ normalize_device_uri(const char *str_orig)
- (strstr(str, "packard ") == str) ||
- (strstr(str, "apollo ") == str) ||
- (strstr(str, "usb ") == str))
-- str = strchr(str, ' ') + 1;
-+ {
-+ cropped_str = strdup(strchr(str, ' ') + 1);
-+ free(str);
-+ str = cropped_str;
-+ }
-
- return str;
- }
-@@ -1448,8 +1453,6 @@ for_each_matching_queue (struct device_uris *device_uris,
- for (i = 0; i < device_uris->n_uris; i++)
- {
- device_uri_n = normalize_device_uri(device_uris->uri[i]);
-- if (this_device_uri_n == NULL || device_uri_n == NULL)
-- goto skip;
- /* As for the same device different URIs can come out when the
- device is accessed via the usblp kernel module or via low-
- level USB (libusb) we cannot simply compare URIs, must
-@@ -1509,17 +1512,21 @@ for_each_matching_queue (struct device_uris *device_uris,
- break;
- }
- }
-+ if (device_uri_n != NULL)
-+ {
-+ free(device_uri_n);
-+ device_uri_n = NULL;
-+ }
- }
-
- firstqueue = 0;
-
- skip:
-- if (device_uri_n != NULL)
-- free(device_uri_n);
-- device_uri_n = NULL;
- if (this_device_uri_n != NULL)
-+ {
- free(this_device_uri_n);
- this_device_uri_n = NULL;
-+ }
- if (!attr)
- break;
- }
diff --git a/app-admin/system-config-printer/files/system-config-printer-1.5.12-fix-remember-passwd.patch b/app-admin/system-config-printer/files/system-config-printer-1.5.12-fix-remember-passwd.patch
deleted file mode 100644
index 980d1e031548..000000000000
--- a/app-admin/system-config-printer/files/system-config-printer-1.5.12-fix-remember-passwd.patch
+++ /dev/null
@@ -1,121 +0,0 @@
-From b74c701feb52a1d2865fe1d33c393f71ae3ac47a Mon Sep 17 00:00:00 2001
-From: Ave Ozkal <ave@ave.zone>
-Date: Thu, 19 Mar 2020 13:30:23 +0300
-Subject: [PATCH 1/3] jobviewer: Use sync methods for secret.service
-
----
- jobviewer.py | 28 +++++++++-------------------
- 1 file changed, 9 insertions(+), 19 deletions(-)
-
-diff --git a/jobviewer.py b/jobviewer.py
-index b95bf6c58..ba8abd06f 100644
---- a/jobviewer.py
-+++ b/jobviewer.py
-@@ -91,36 +91,26 @@
- class ServiceGet:
- service = Secret.Service()
-
-- def on_get_service(self, source, result, unused):
-- service = Secret.Service.get_finish(result)
--
- def __init__(self):
-- Secret.Service.get(0,
-- None,
-- self.on_get_service,
-- None)
-+ self.service = Secret.Service.get(0,
-+ None)
-
- def get_service(self):
-- return ServiceGet.service
-+ return self.service
-
-
- class ItemSearch:
- items = list()
-
-- def on_search_item(self, source, result, unused):
-- items = Secret.Service.search_finish(None, result)
--
- def __init__(self, service, attrs):
-- Secret.Service.search(service,
-- NETWORK_PASSWORD,
-- attrs,
-- Secret.SearchFlags.LOAD_SECRETS,
-- None,
-- self.on_search_item,
-- None)
-+ self.items = Secret.Service.search_sync(service,
-+ NETWORK_PASSWORD,
-+ attrs,
-+ Secret.SearchFlags.LOAD_SECRETS,
-+ None)
-
- def get_items(self):
-- return ItemSearch.items
-+ return self.items
-
-
- class PasswordStore:
-
-From 152b617f511cd44757d2db4d730067aca8cf69a9 Mon Sep 17 00:00:00 2001
-From: Ave Ozkal <ave@ave.zone>
-Date: Thu, 19 Mar 2020 14:39:21 +0300
-Subject: [PATCH 2/3] jobviewer: properly use sync
-
----
- jobviewer.py | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/jobviewer.py b/jobviewer.py
-index ba8abd06f..761673b49 100644
---- a/jobviewer.py
-+++ b/jobviewer.py
-@@ -92,8 +92,8 @@ class ServiceGet:
- service = Secret.Service()
-
- def __init__(self):
-- self.service = Secret.Service.get(0,
-- None)
-+ self.service = Secret.Service.get_sync(0,
-+ None)
-
- def get_service(self):
- return self.service
-
-From 00177768ca1464c694acde4cdbabc1a18420c176 Mon Sep 17 00:00:00 2001
-From: Ave Ozkal <ave@ave.zone>
-Date: Thu, 19 Mar 2020 14:40:55 +0300
-Subject: [PATCH 3/3] jobviewer: Properly fetch username and password
-
----
- jobviewer.py | 14 ++------------
- 1 file changed, 2 insertions(+), 12 deletions(-)
-
-diff --git a/jobviewer.py b/jobviewer.py
-index 761673b49..5376a7e88 100644
---- a/jobviewer.py
-+++ b/jobviewer.py
-@@ -1049,20 +1049,10 @@ def get_authentication (self, job, device_uri, printer_uri,
- if items:
- auth_info = ['' for x in auth_info_required]
- ind = auth_info_required.index ('username')
--
-- for attr in items[0].attributes:
-- # It might be safe to assume here that the
-- # user element is always the second item in a
-- # NETWORK_PASSWORD element but lets make sure.
-- if attr.name == 'user':
-- auth_info[ind] = attr.get_string()
-- break
-- else:
-- debugprint ("Did not find username keyring "
-- "attributes.")
-+ auth_info[ind] = items[0].get_attributes().get("user")
-
- ind = auth_info_required.index ('password')
-- auth_info[ind] = items[0].secret
-+ auth_info[ind] = items[0].get_secret().get().decode()
- break
- else:
- debugprint ("Failed to find secret in keyring.")
diff --git a/app-admin/system-config-printer/files/system-config-printer-1.5.12-py39-1.patch b/app-admin/system-config-printer/files/system-config-printer-1.5.12-py39-1.patch
deleted file mode 100644
index 658a63d65c78..000000000000
--- a/app-admin/system-config-printer/files/system-config-printer-1.5.12-py39-1.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From cf7a74217558b19aff7c21a724878bcc15dc4e38 Mon Sep 17 00:00:00 2001
-From: Zdenek Dohnal <zdohnal@redhat.com>
-Date: Mon, 5 Oct 2020 09:26:40 +0200
-Subject: [PATCH] isAlive() is removed, use is_alive()
-
----
- asyncipp.py | 2 +-
- timedops.py | 4 ++--
- 2 files changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/asyncipp.py b/asyncipp.py
-index 5bc160e0f..61cd72136 100644
---- a/asyncipp.py
-+++ b/asyncipp.py
-@@ -269,7 +269,7 @@ def destroy (self):
- for binding in self.bindings:
- delattr (self, binding)
-
-- if self.thread.isAlive ():
-+ if self.thread.is_alive ():
- debugprint ("Stopping worker thread")
- self.thread.stop ()
- GLib.timeout_add_seconds (1, self._reap_thread)
-diff --git a/timedops.py b/timedops.py
-index 8a8741c82..111d575f6 100644
---- a/timedops.py
-+++ b/timedops.py
-@@ -157,7 +157,7 @@ def run (self):
- self.exception = e
-
- def collect_result (self):
-- if self.isAlive ():
-+ if self.is_alive ():
- # We've been canceled.
- raise OperationCanceled()
-
-@@ -212,7 +212,7 @@ def run (self):
- return self.thread.collect_result ()
-
- def _check_thread (self):
-- if self.thread.isAlive ():
-+ if self.thread.is_alive ():
- # Thread still running.
- return True
-
diff --git a/app-admin/system-config-printer/files/system-config-printer-1.5.12-py39-2.patch b/app-admin/system-config-printer/files/system-config-printer-1.5.12-py39-2.patch
deleted file mode 100644
index eccb3939e0d1..000000000000
--- a/app-admin/system-config-printer/files/system-config-printer-1.5.12-py39-2.patch
+++ /dev/null
@@ -1,147 +0,0 @@
-From 63eccd5603e19cd35d6d44af65443665a3c63f38 Mon Sep 17 00:00:00 2001
-From: Zdenek Dohnal <zdohnal@redhat.com>
-Date: Wed, 22 Jul 2020 13:57:13 +0200
-Subject: [PATCH] python3.9 - xml module removed elem.getchildren() method, use
- list(elem)
-
----
- cupshelpers/openprinting.py | 6 +++---
- cupshelpers/xmldriverprefs.py | 20 ++++++++++----------
- xml/validate.py | 10 +++++-----
- 3 files changed, 18 insertions(+), 18 deletions(-)
-
-diff --git a/cupshelpers/openprinting.py b/cupshelpers/openprinting.py
-index c616d913c..9bb4764c9 100755
---- a/cupshelpers/openprinting.py
-+++ b/cupshelpers/openprinting.py
-@@ -338,7 +338,7 @@ def parse_result (status, data, result):
- packages = {}
- container = driver.find ('packages')
- if container is not None:
-- for arch in container.getchildren ():
-+ for arch in list(container):
- rpms = {}
- for package in arch.findall ('package'):
- rpm = {}
-@@ -351,7 +351,7 @@ def parse_result (status, data, result):
-
- repositories = package.find ('repositories')
- if repositories is not None:
-- for pkgsys in repositories.getchildren ():
-+ for pkgsys in list(repositories):
- rpm.setdefault('repositories', {})[pkgsys.tag] = pkgsys.text
-
- rpms[package.attrib['file']] = rpm
-@@ -363,7 +363,7 @@ def parse_result (status, data, result):
- ppds = []
- container = driver.find ('ppds')
- if container is not None:
-- for each in container.getchildren ():
-+ for each in list(container):
- ppds.append (each.text)
-
- if ppds:
-diff --git a/cupshelpers/xmldriverprefs.py b/cupshelpers/xmldriverprefs.py
-index 4177e1c0f..0d02950f4 100644
---- a/cupshelpers/xmldriverprefs.py
-+++ b/cupshelpers/xmldriverprefs.py
-@@ -27,7 +27,7 @@
-
- def PreferredDrivers (filename):
- preferreddrivers = xml.etree.ElementTree.XML (open (filename).read ())
-- return preferreddrivers.getchildren()
-+ return list(preferreddrivers)
-
- class DeviceIDMatch:
- """
-@@ -227,10 +227,10 @@ def load (self, drivertypes):
- """
-
- types = []
-- for drivertype in drivertypes.getchildren ():
-+ for drivertype in list(drivertypes):
- t = DriverType (drivertype.attrib["name"])
-
-- for child in drivertype.getchildren ():
-+ for child in list(drivertype):
- if child.tag == "ppdname":
- t.add_ppd_name (child.attrib["match"])
- elif child.tag == "attribute":
-@@ -238,7 +238,7 @@ def load (self, drivertypes):
- child.attrib["match"])
- elif child.tag == "deviceid":
- deviceid_match = DeviceIDMatch ()
-- for field in child.getchildren ():
-+ for field in list(child):
- if field.tag == "field":
- deviceid_match.add_field (field.attrib["name"],
- field.attrib["match"])
-@@ -414,29 +414,29 @@ def load (self, preferreddrivers):
- Load the policy from an XML file.
- """
-
-- for printer in preferreddrivers.getchildren ():
-+ for printer in list(preferreddrivers):
- ptype = PrinterType ()
-- for child in printer.getchildren ():
-+ for child in list(printer):
- if child.tag == "make-and-model":
- ptype.add_make_and_model (child.attrib["match"])
- elif child.tag == "deviceid":
- deviceid_match = DeviceIDMatch ()
-- for field in child.getchildren ():
-+ for field in list(child):
- if field.tag == "field":
- deviceid_match.add_field (field.attrib["name"],
- field.attrib["match"])
- ptype.add_deviceid_match (deviceid_match)
-
- elif child.tag == "drivers":
-- for drivertype in child.getchildren ():
-+ for drivertype in list(child):
- ptype.add_drivertype_pattern (drivertype.text)
-
- elif child.tag == "avoid":
-- for drivertype in child.getchildren ():
-+ for drivertype in list(child):
- ptype.add_avoidtype_pattern (drivertype.text)
-
- elif child.tag == "blacklist":
-- for drivertype in child.getchildren ():
-+ for drivertype in list(child):
- ptype.add_blacklisted (drivertype.text)
-
- self.ptypes.append (ptype)
-diff --git a/xml/validate.py b/xml/validate.py
-index 8fc201ecf..ba16766dc 100644
---- a/xml/validate.py
-+++ b/xml/validate.py
-@@ -35,23 +35,23 @@ def validate (self):
- filename = self._filename
- print ("Validating %s" % filename)
- preferreddrivers = xml.etree.ElementTree.XML (open (filename).read ())
-- (drivertypes, preferenceorder) = preferreddrivers.getchildren ()
-+ (drivertypes, preferenceorder) = list(preferreddrivers)
- validates = True
-
- names = set()
-- for drivertype in drivertypes.getchildren ():
-+ for drivertype in list(drivertypes):
- name = drivertype.get ("name")
- names.add (name)
-
-- for printer in preferenceorder.getchildren ():
-+ for printer in list(preferenceorder):
- types = []
- drivers = printer.find ("drivers")
- if drivers is not None:
-- types.extend (drivers.getchildren ())
-+ types.extend (list(drivers))
-
- blacklist = printer.find ("blacklist")
- if blacklist is not None:
-- types.extend (blacklist.getchildren ())
-+ types.extend (list(blacklist))
-
- for drivertype in types:
- pattern = drivertype.text.strip ()
diff --git a/app-admin/system-config-printer/files/system-config-printer-1.5.18-fix-debugprint-exception.patch b/app-admin/system-config-printer/files/system-config-printer-1.5.18-fix-debugprint-exception.patch
new file mode 100644
index 000000000000..829166ad9d8e
--- /dev/null
+++ b/app-admin/system-config-printer/files/system-config-printer-1.5.18-fix-debugprint-exception.patch
@@ -0,0 +1,22 @@
+From 399b3334d6519639cfe7f1c0457e2475b8ee5230 Mon Sep 17 00:00:00 2001
+From: Zdenek Dohnal <zdohnal@redhat.com>
+Date: Thu, 13 Oct 2022 14:03:37 +0200
+Subject: [PATCH] Fix debugprint() in options.py (fixes #291)
+
+---
+ options.py | 2 +-
+ 1 file changed, 1 insertions(+), 1 deletion(-)
+
+diff --git a/options.py b/options.py
+index d756f98dc..d7c236deb 100644
+--- a/options.py
++++ b/options.py
+@@ -423,7 +423,7 @@ def __init__(self, name, value, supported, on_change):
+ debugprint("Unknown value for %s: %s" % (name, value))
+ debugprint("Choices: %s" % (supported))
+ if len(supported) > 0:
+- debugprint("Selecting from choices:", supported[0])
++ debugprint("Selecting from choices: %s" % supported[0])
+ self.selector.set_active(0)
+ self.selector.connect("changed", self.changed)
+
diff --git a/app-admin/system-config-printer/metadata.xml b/app-admin/system-config-printer/metadata.xml
index ef7c43f6f08a..e34a1cb28469 100644
--- a/app-admin/system-config-printer/metadata.xml
+++ b/app-admin/system-config-printer/metadata.xml
@@ -1,16 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
-<maintainer type="person">
- <email>reavertm@gentoo.org</email>
- <name>Maciej Mrozowski</name>
-</maintainer>
-<maintainer type="project">
- <email>gnome@gentoo.org</email>
- <name>Gentoo GNOME Desktop</name>
-</maintainer>
-<maintainer type="project">
- <email>kde@gentoo.org</email>
- <name>Gentoo KDE Project</name>
-</maintainer>
+ <maintainer type="person">
+ <email>reavertm@gentoo.org</email>
+ <name>Maciej Mrozowski</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>gnome@gentoo.org</email>
+ <name>Gentoo GNOME Desktop</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>kde@gentoo.org</email>
+ <name>Gentoo KDE Project</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">OpenPrinting/system-config-printer</remote-id>
+ </upstream>
</pkgmetadata>
diff --git a/app-admin/system-config-printer/system-config-printer-1.5.12-r1.ebuild b/app-admin/system-config-printer/system-config-printer-1.5.12-r1.ebuild
deleted file mode 100644
index 9a157f3b5f00..000000000000
--- a/app-admin/system-config-printer/system-config-printer-1.5.12-r1.ebuild
+++ /dev/null
@@ -1,83 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-PYTHON_COMPAT=( python3_{6,7,8} )
-PYTHON_REQ_USE="xml"
-inherit gnome2 python-single-r1 systemd
-
-DESCRIPTION="Graphical user interface for CUPS administration"
-HOMEPAGE="https://github.com/OpenPrinting/system-config-printer"
-SRC_URI="https://github.com/OpenPrinting/${PN}/releases/download/${PV}/${P}.tar.xz"
-
-LICENSE="GPL-2+"
-KEYWORDS="~alpha amd64 ~arm arm64 ~ia64 ppc ppc64 ~sparc x86"
-SLOT="0"
-IUSE="gnome-keyring policykit"
-REQUIRED_USE="${PYTHON_REQUIRED_USE}"
-
-# Needs cups running, bug 284005
-RESTRICT="test"
-
-# Additional unhandled dependencies
-# gnome-extra/gnome-packagekit[${PYTHON_USEDEP}] with pygobject:2 ?
-# python samba client: smbc
-# selinux: needed for troubleshooting
-COMMON_DEPEND="${PYTHON_DEPS}
- dev-libs/glib:2
- net-print/cups[dbus]
- virtual/libusb:1
- >=virtual/udev-172
- x11-libs/gtk+:3[introspection]
- x11-libs/libnotify[introspection]
- x11-libs/pango[introspection]
-"
-DEPEND="${COMMON_DEPEND}
- app-text/docbook-xml-dtd:4.1.2
- >=app-text/xmlto-0.0.22
- dev-perl/XML-Parser
- dev-util/desktop-file-utils
- dev-util/intltool
- sys-devel/gettext
- virtual/pkgconfig
-"
-RDEPEND="${COMMON_DEPEND}
- $(python_gen_cond_dep '
- dev-python/dbus-python[${PYTHON_MULTI_USEDEP}]
- dev-python/pycairo[${PYTHON_MULTI_USEDEP}]
- dev-python/pycups[${PYTHON_MULTI_USEDEP}]
- dev-python/pygobject:3[${PYTHON_MULTI_USEDEP}]
- dev-python/requests[${PYTHON_MULTI_USEDEP}]
- dev-python/urllib3[${PYTHON_MULTI_USEDEP}]
- ')
- gnome-keyring? ( app-crypt/libsecret[introspection] )
- policykit? ( net-print/cups-pk-helper )
-"
-
-PATCHES=(
- "${FILESDIR}"/${P}-check-for-null.patch
- "${FILESDIR}"/${P}-fix-abrt-in-udev-configure-printer.patch
-)
-
-pkg_setup() {
- python-single-r1_pkg_setup
-}
-
-src_configure() {
- gnome2_src_configure \
- --enable-nls \
- --with-desktop-vendor=Gentoo \
- --with-udev-rules \
- --with-systemdsystemunitdir=$(systemd_get_systemunitdir)
-}
-
-src_compile() {
- gnome2_src_compile
-}
-
-src_install() {
- gnome2_src_install
- python_fix_shebang "${ED}"
- python_optimize
-}
diff --git a/app-admin/system-config-printer/system-config-printer-1.5.12-r2.ebuild b/app-admin/system-config-printer/system-config-printer-1.5.12-r2.ebuild
deleted file mode 100644
index c0544a091b8e..000000000000
--- a/app-admin/system-config-printer/system-config-printer-1.5.12-r2.ebuild
+++ /dev/null
@@ -1,84 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python3_{7,8,9} )
-PYTHON_REQ_USE="xml"
-inherit python-single-r1 systemd xdg
-
-DESCRIPTION="Graphical user interface for CUPS administration"
-HOMEPAGE="https://github.com/OpenPrinting/system-config-printer"
-SRC_URI="https://github.com/OpenPrinting/${PN}/releases/download/${PV}/${P}.tar.xz"
-
-LICENSE="GPL-2+"
-SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~ppc ~ppc64 ~sparc ~x86"
-IUSE="gnome-keyring policykit"
-REQUIRED_USE="${PYTHON_REQUIRED_USE}"
-
-# Needs cups running, bug 284005
-RESTRICT="test"
-
-# Additional unhandled dependencies
-# gnome-extra/gnome-packagekit[${PYTHON_USEDEP}] with pygobject:2 ?
-# python samba client: smbc
-# selinux: needed for troubleshooting
-COMMON_DEPEND="${PYTHON_DEPS}
- dev-libs/glib:2
- net-print/cups[dbus]
- virtual/libusb:1
- >=virtual/udev-172
- x11-libs/gtk+:3[introspection]
- x11-libs/libnotify[introspection]
- x11-libs/pango[introspection]
-"
-DEPEND="${COMMON_DEPEND}
- app-text/docbook-xml-dtd:4.1.2
- >=app-text/xmlto-0.0.22
- dev-perl/XML-Parser
- dev-util/desktop-file-utils
- dev-util/intltool
- sys-devel/gettext
- virtual/pkgconfig
-"
-RDEPEND="${COMMON_DEPEND}
- $(python_gen_cond_dep '
- dev-python/dbus-python[${PYTHON_MULTI_USEDEP}]
- dev-python/pycairo[${PYTHON_MULTI_USEDEP}]
- dev-python/pycups[${PYTHON_MULTI_USEDEP}]
- dev-python/pygobject:3[${PYTHON_MULTI_USEDEP}]
- dev-python/requests[${PYTHON_MULTI_USEDEP}]
- dev-python/urllib3[${PYTHON_MULTI_USEDEP}]
- ')
- gnome-keyring? ( app-crypt/libsecret[introspection] )
- policykit? ( net-print/cups-pk-helper )
-"
-
-PATCHES=(
- "${FILESDIR}"/${P}-check-for-null.patch
- "${FILESDIR}"/${P}-fix-abrt-in-udev-configure-printer.patch
- "${FILESDIR}"/${P}-catch-urllib-errors.patch
- "${FILESDIR}"/${P}-fix-remember-passwd.patch
- "${FILESDIR}"/${P}-py39-{1,2}.patch
-)
-
-pkg_setup() {
- python-single-r1_pkg_setup
-}
-
-src_configure() {
- local myeconfargs=(
- --enable-nls
- --with-desktop-vendor=Gentoo
- --with-udev-rules
- --with-systemdsystemunitdir=$(systemd_get_systemunitdir)
- )
- econf "${myeconfargs[@]}"
-}
-
-src_install() {
- default
- python_fix_shebang "${ED}"
- python_optimize
-}
diff --git a/app-admin/system-config-printer/system-config-printer-1.5.18-r2.ebuild b/app-admin/system-config-printer/system-config-printer-1.5.18-r2.ebuild
new file mode 100644
index 000000000000..eac1dbdb254b
--- /dev/null
+++ b/app-admin/system-config-printer/system-config-printer-1.5.18-r2.ebuild
@@ -0,0 +1,94 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_SINGLE_IMPL=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{10..12} )
+PYTHON_REQ_USE="xml(+)"
+
+inherit distutils-r1 systemd udev xdg
+
+DESCRIPTION="Graphical user interface for CUPS administration"
+HOMEPAGE="https://github.com/OpenPrinting/system-config-printer/"
+SRC_URI="
+ https://github.com/OpenPrinting/${PN}/releases/download/v${PV}/${P}.tar.xz
+"
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="~alpha amd64 ~arm arm64 ~ia64 ~loong ppc ppc64 ~riscv ~sparc x86"
+IUSE="keyring policykit"
+# Needs cups running, bug 284005
+RESTRICT="test"
+
+# Additional unhandled dependencies
+# gnome-extra/gnome-packagekit[${PYTHON_USEDEP}] with pygobject:2 ?
+# python samba client: smbc
+# selinux: needed for troubleshooting
+DEPEND="
+ dev-libs/glib:2
+ net-print/cups[dbus]
+ virtual/libusb:1
+ >=virtual/udev-172
+ x11-libs/gtk+:3[introspection]
+ x11-libs/libnotify[introspection]
+ x11-libs/pango[introspection]
+"
+BDEPEND="
+ app-text/docbook-xml-dtd:4.1.2
+ >=app-text/xmlto-0.0.22
+ dev-perl/XML-Parser
+ dev-util/desktop-file-utils
+ >=sys-devel/gettext-0.20
+ virtual/pkgconfig
+"
+RDEPEND="
+ ${DEPEND}
+ $(python_gen_cond_dep '
+ dev-python/dbus-python[${PYTHON_USEDEP}]
+ dev-python/pycairo[${PYTHON_USEDEP}]
+ dev-python/pycups[${PYTHON_USEDEP}]
+ dev-python/pygobject:3[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/urllib3[${PYTHON_USEDEP}]
+ ')
+ keyring? ( app-crypt/libsecret[introspection] )
+ policykit? ( net-print/cups-pk-helper )
+"
+
+PATCHES=(
+ # git master (1.5.19)
+ "${FILESDIR}/${P}-fix-debugprint-exception.patch"
+)
+
+src_configure() {
+ local myeconfargs=(
+ --with-xmlto
+ --enable-nls
+ --with-desktop-vendor=Gentoo
+ --with-udev-rules
+ --with-systemdsystemunitdir="$(systemd_get_systemunitdir)"
+ )
+ econf "${myeconfargs[@]}"
+}
+
+src_compile() {
+ emake PYTHON=:
+ distutils-r1_src_compile
+}
+
+src_install() {
+ emake DESTDIR="${D}" PYTHON=: install
+ python_fix_shebang "${ED}"
+ distutils-r1_src_install
+}
+
+pkg_postinst() {
+ udev_reload
+}
+
+pkg_postrm() {
+ udev_reload
+}