diff --git a/1.5.11.tar.gz b/1.5.11.tar.gz deleted file mode 100644 index d1706d2c68fb4fc2f8231375b02f7ceab31afb03..0000000000000000000000000000000000000000 Binary files a/1.5.11.tar.gz and /dev/null differ diff --git a/scp-covscan.patch b/scp-covscan.patch new file mode 100644 index 0000000000000000000000000000000000000000..e2bc7776636f5897205e590d5a962e356a7f1440 --- /dev/null +++ b/scp-covscan.patch @@ -0,0 +1,93 @@ +diff --git a/scp-dbus-service.py b/scp-dbus-service.py +index fcccf89..b623014 100644 +--- a/scp-dbus-service.py ++++ b/scp-dbus-service.py +@@ -380,7 +380,7 @@ class ConfigPrintingNewPrinterDialog(dbus.service.Object): + def on_printer_modified(self, obj, name, ppd_has_changed): + debugprint ("%s: printer modified" % self) + g_killtimer.remove_hold () +- self.PrinterModifed (name, ppd_has_changed) ++ self.PrinterModified (name, ppd_has_changed) + self.remove_handles () + self.remove_from_connection () + +diff --git a/udev/udev-configure-printer.c b/udev/udev-configure-printer.c +index 5d7c25e..fd158b0 100644 +--- a/udev/udev-configure-printer.c ++++ b/udev/udev-configure-printer.c +@@ -205,6 +205,12 @@ add_device_uri (struct device_uris *uris, + uris->n_uris = 1; + uris->uri[0] = uri_copy; + } ++ else ++ { ++ syslog (LOG_ERR, "out of memory"); ++ free (uri_copy); ++ return; ++ } + } + else + { +@@ -847,6 +853,7 @@ device_id_from_devpath (struct udev *udev, const char *devpath, + + udev_device_unref (dev); + free (devicefilepath); ++ g_free(device_id); + return usb_device_devpath; + } + +@@ -1274,7 +1281,6 @@ find_matching_device_uris (struct device_id *id, + { + add_usb_uri_mapping (&map, devpath, uris); + write_usb_uri_map (map); +- free_usb_uri_map (map); + } + + return uris->n_uris; +@@ -1527,6 +1533,11 @@ skip: + free(this_device_uri_n); + this_device_uri_n = NULL; + } ++ if (device_uri_n != NULL) ++ { ++ free(device_uri_n); ++ device_uri_n = NULL; ++ } + if (!attr) + break; + } +@@ -1625,6 +1636,7 @@ do_add (const char *cmd, const char *devaddr) + if (udev == NULL) + { + syslog (LOG_ERR, "udev_new failed"); ++ free_usb_uri_map (map); + exit (1); + } + +@@ -1643,7 +1655,7 @@ do_add (const char *cmd, const char *devaddr) + if (!id.mfg || !id.mdl) + { + clear_device_id (&id); +- free (map); ++ free_usb_uri_map (map); + free (usb_device_devpath); + return 1; + } +@@ -1668,7 +1680,7 @@ do_add (const char *cmd, const char *devaddr) + { + syslog (LOG_ERR, "no corresponding CUPS device found"); + clear_device_id (&id); +- free (map); ++ free_usb_uri_map (map); + return 0; + } + +@@ -1722,7 +1734,7 @@ do_add (const char *cmd, const char *devaddr) + + clear_device_id (&id); + free_device_uris (&device_uris); +- free (map); ++ free_usb_uri_map (map); + return 0; + } + diff --git a/system-config-printer-1.5.15.tar.xz b/system-config-printer-1.5.15.tar.xz new file mode 100644 index 0000000000000000000000000000000000000000..8a97373bd9ac393310df65ac53cc53675a2817eb Binary files /dev/null and b/system-config-printer-1.5.15.tar.xz differ diff --git a/system-config-printer.spec b/system-config-printer.spec index f68b23d6df574a6d838a269246b3d8093e6bda08..576cf37363b6acce68a4fddd488dfcead87dbea8 100644 --- a/system-config-printer.spec +++ b/system-config-printer.spec @@ -1,86 +1,261 @@ %global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') +%global _hardened_build 1 +%global username OpenPrinting -Name: system-config-printer -Summary: a graphical tool for CUPS administration -Version: 1.5.11 -Release: 17 -License: GPLv2+ -URL: https://github.com/zdohnal/system-config-printer -Source0: https://github.com/zdohnal/system-config-printer/archive/%{version}.tar.gz -BuildRequires: libusb1-devel gcc gettext-devel systemd xmlto systemd-devel -BuildRequires: intltool cups-devel >= 1.2 desktop-file-utils >= 0.2.92 pkgconfig(glib-2.0) -Requires: desktop-file-utils >= 0.2.92 python3-dbus%{?_isa} gtk3%{?_isa} python3-gobject%{?_isa} -Requires: libnotify%{?_isa} python3-cairo%{?_isa} python3-cups >= 1.9.60 libcanberra-gtk3 -Requires: python3-firewall PackageKit-gtk3-module desktop-notification-daemon dbus-x11 -Requires: python3-pycurl gobject-introspection python3-gobject python3-dbus python3-requests -Requires(post): systemd -Requires(preun): systemd -Requires(postun): systemd -Obsoletes: %{name}-libs = %{version}-%{release} %{name}-applet = %{version}-%{release} -Obsoletes: %{name}-udev = %{version}-%{release} hal-cups-utils < 0.6.20 -Provides: %{name}-libs = %{version}-%{release} %{name}-applet = %{version}-%{release} -Provides: %{name}-udev = %{version}-%{release} hal-cups-utils = 0.6.20 +Summary: A printer administration tool +Name: system-config-printer +Version: 1.5.15 +Release: 1 +License: GPLv2+ +URL: https://github.com/%{username}/%{name} +Source0: %{url}/releases/download/%{version}/%{name}-%{version}.tar.xz + +# all upstream patches, remove with new release +Patch01: scp-covscan.patch + +# gcc is no longer in buildroot by default +# gcc is needed for udev-configure-printer.c +BuildRequires: gcc +# for autosetup +BuildRequires: git-core +# uses make +BuildRequires: make + +BuildRequires: cups-devel >= 1.2 +BuildRequires: desktop-file-utils >= 0.2.92 +BuildRequires: gettext-devel +BuildRequires: intltool +BuildRequires: libusb1-devel +BuildRequires: pkgconfig(glib-2.0) +BuildRequires: xmlto +BuildRequires: systemd +BuildRequires: systemd-devel +BuildRequires: python3-devel + +Requires: python3-gobject%{?_isa} +Requires: gtk3%{?_isa} +Requires: desktop-file-utils >= 0.2.92 +Requires: dbus-x11 +Requires: python3-dbus%{?_isa} +Requires: system-config-printer-libs = %{version}-%{release} +Requires: desktop-notification-daemon +Requires: libnotify%{?_isa} +Requires: python3-cairo%{?_isa} +Requires: python3-firewall +Requires: libcanberra-gtk3 +%{?systemd_requires} %description -%{name} is a graphical tool for CUPS administration. It -uses IPP to configure a CUPS server. +system-config-printer is a graphical user interface that allows +the user to configure a CUPS print server. + +%package libs +Summary: Libraries and shared code for printer administration tool +# PackageKit can bring you a popup window if some package in the repo provides a driver +# for your printer +Recommends: PackageKit +Recommends: PackageKit-glib +Requires: libnotify +Requires: python3-cups >= 1.9.60 +Requires: python3-pycurl +Requires: gobject-introspection +Requires: python3-gobject +Requires: gtk3 +Requires: python3-dbus +Requires: python3-requests +Suggests: python3-smbc +BuildArch: noarch + +%description libs +The common code used by both the graphical and non-graphical parts of +the configuration tool. + +%if 0%{?rhel} <= 8 || 0%{?fedora} +%package applet +Summary: Print job notification applet +Requires: %{name}-libs + +%description applet +Print job notification applet. +%endif + +%package udev +Summary: Rules for udev for automatic configuration of USB printers +Requires: system-config-printer-libs = %{version}-%{release} -%package_help +%description udev +The udev rules and helper programs for automatically configuring USB +printers. %prep -%autosetup -p1 +%autosetup -S git %build -./bootstrap %configure --with-udev-rules %make_build %install -%make_install DESTDIR=%buildroot +%make_install -install -d %buildroot%{_localstatedir}/run/udev-configure-printer +%{__mkdir_p} %buildroot%{_localstatedir}/run/udev-configure-printer touch %buildroot%{_localstatedir}/run/udev-configure-printer/usb-uris -%py_byte_compile %{__python3} %{buildroot}%{python3_sitelib}/cupshelpers -%py_byte_compile %{__python3} %{buildroot}%{_datadir}/%{name} +# Manually invoke the python byte compile macro for each path that +# needs byte compilation +%py_byte_compile %{__python3} %{buildroot}/%{_datadir}/system-config-printer -%find_lang %{name} +%find_lang system-config-printer -%files -f %{name}.lang +%if 0%{?rhel} > 8 +rm -rf %{buildroot}%{_bindir}/%{name}-applet \ + %{buildroot}%{_datadir}/%{name}/__pycache__/applet* \ + %{buildroot}%{_datadir}/%{name}/applet.py* \ + %{buildroot}%{_sysconfdir}/xdg/autostart/print-applet.desktop \ + %{buildroot}%{_mandir}/man1/%{name}-applet.1* \ + %{buildroot}%{_bindir}/%{name} \ + %{buildroot}%{_bindir}/install-printerdriver \ + %{buildroot}%{_datadir}/%{name}/__pycache__/check-device-ids* \ + %{buildroot}%{_datadir}/%{name}/__pycache__/HIG* \ + %{buildroot}%{_datadir}/%{name}/__pycache__/SearchCriterion* \ + %{buildroot}%{_datadir}/%{name}/__pycache__/serversettings* \ + %{buildroot}%{_datadir}/%{name}/__pycache__/system-config-printer* \ + %{buildroot}%{_datadir}/%{name}/__pycache__/ToolbarSearchEntry* \ + %{buildroot}%{_datadir}/%{name}/__pycache__/userdefault* \ + %{buildroot}%{_datadir}/%{name}/__pycache__/install-printerdriver* \ + %{buildroot}%{_datadir}/%{name}/check-device-ids.py* \ + %{buildroot}%{_datadir}/%{name}/HIG.py* \ + %{buildroot}%{_datadir}/%{name}/SearchCriterion.py* \ + %{buildroot}%{_datadir}/%{name}/serversettings.py* \ + %{buildroot}%{_datadir}/%{name}/system-config-printer.py* \ + %{buildroot}%{_datadir}/%{name}/ToolbarSearchEntry.py* \ + %{buildroot}%{_datadir}/%{name}/userdefault.py* \ + %{buildroot}%{_datadir}/%{name}/troubleshoot \ + %{buildroot}%{_datadir}/%{name}/icons \ + %{buildroot}%{_datadir}/%{name}/install-printerdriver.py* \ + %{buildroot}%{_datadir}/%{name}/xml/__pycache__ \ + %{buildroot}%{_datadir}/%{name}/xml/validate.py* \ + %{buildroot}%{_datadir}/%{name}/ui \ + %{buildroot}%{_datadir}/applications/system-config-printer.desktop \ + %{buildroot}%{_datadir}/metainfo/%{name}.appdata.xml \ + %{buildroot}%{_mandir}/man1/%{name}.1* \ +%endif + +%files libs -f system-config-printer.lang +%doc ChangeLog NEWS ABOUT-NLS AUTHORS ChangeLog-OLD %license COPYING -%{_bindir}/%{name} -%{_bindir}/install-printerdriver -%dir %{_datadir}/%{name} -%{_datadir}/%{name}/* -%{_datadir}/applications/%{name}.desktop -%{_datadir}/metainfo/%{name}.appdata.xml -%{_bindir}/%{name}-applet -%{_sysconfdir}/xdg/autostart/print-applet.desktop -%{_prefix}/lib/udev/rules.d/*.rules -%{_prefix}/lib/udev/udev-*-printer -%ghost %dir %{_localstatedir}/run/udev-configure-printer -%ghost %verify(not md5 size mtime) %config(noreplace,missingok) %attr(0644,root,root) %{_localstatedir}/run/udev-configure-printer/usb-uris -%{_unitdir}/configure-printer@.service %config(noreplace) %{_sysconfdir}/dbus-1/system.d/com.redhat.NewPrinterNotification.conf %config(noreplace) %{_sysconfdir}/dbus-1/system.d/com.redhat.PrinterDriversInstaller.conf %{_datadir}/dbus-1/interfaces/*.xml %{_datadir}/dbus-1/services/*.service %{_bindir}/scp-dbus-service +%dir %{_datadir}/%{name} +%{_datadir}/%{name}/__pycache__/* +%exclude %{_datadir}/%{name}/__pycache__/check-device-ids* +%exclude %{_datadir}/%{name}/__pycache__/HIG* +%exclude %{_datadir}/%{name}/__pycache__/SearchCriterion* +%exclude %{_datadir}/%{name}/__pycache__/serversettings* +%exclude %{_datadir}/%{name}/__pycache__/system-config-printer* +%exclude %{_datadir}/%{name}/__pycache__/ToolbarSearchEntry* +%exclude %{_datadir}/%{name}/__pycache__/userdefault* +%exclude %{_datadir}/%{name}/__pycache__/install-printerdriver* +%exclude %{_datadir}/%{name}/__pycache__/applet* +%{_datadir}/%{name}/asyncconn.py* +%{_datadir}/%{name}/asyncipp.py* +%{_datadir}/%{name}/asyncpk1.py* +%{_datadir}/%{name}/authconn.py* +%{_datadir}/%{name}/config.py* +%{_datadir}/%{name}/cupspk.py* +%{_datadir}/%{name}/debug.py* +%{_datadir}/%{name}/dnssdresolve.py* +%{_datadir}/%{name}/errordialogs.py* +%{_datadir}/%{name}/firewallsettings.py* +%{_datadir}/%{name}/gtkinklevel.py* +%{_datadir}/%{name}/gui.py* +%{_datadir}/%{name}/installpackage.py* +%{_datadir}/%{name}/jobviewer.py* +%{_datadir}/%{name}/killtimer.py* +%{_datadir}/%{name}/monitor.py* +%{_datadir}/%{name}/newprinter.py* +%{_datadir}/%{name}/options.py* +%{_datadir}/%{name}/optionwidgets.py* +%{_datadir}/%{name}/OpenPrintingRequest.py* +%{_datadir}/%{name}/PhysicalDevice.py* +%{_datadir}/%{name}/ppdcache.py* +%{_datadir}/%{name}/ppdippstr.py* +%{_datadir}/%{name}/ppdsloader.py* +%{_datadir}/%{name}/printerproperties.py* +%{_datadir}/%{name}/probe_printer.py* +%{_datadir}/%{name}/pysmb.py* +%{_datadir}/%{name}/scp-dbus-service.py* +%{_datadir}/%{name}/smburi.py* +%{_datadir}/%{name}/statereason.py* +%{_datadir}/%{name}/timedops.py* +%dir %{_datadir}/%{name}/__pycache__ +%dir %{_datadir}/%{name}/xml +%{_datadir}/%{name}/xml/*.rng %dir %{_sysconfdir}/cupshelpers %config(noreplace) %{_sysconfdir}/cupshelpers/preferreddrivers.xml %{python3_sitelib}/cupshelpers %{python3_sitelib}/*.egg-info -%files help -%doc po/ChangeLog NEWS ABOUT-NLS AUTHORS ChangeLog-OLD +%if 0%{?rhel} <= 8 || 0%{?fedora} +%files applet +%{_bindir}/%{name}-applet +%{_datadir}/%{name}/__pycache__/applet* +%{_datadir}/%{name}/applet.py* +%{_sysconfdir}/xdg/autostart/print-applet.desktop %{_mandir}/man1/%{name}-applet.1* +%endif + +%files udev +%{_prefix}/lib/udev/rules.d/*.rules +%{_prefix}/lib/udev/udev-*-printer +%ghost %dir %{_localstatedir}/run/udev-configure-printer +%ghost %verify(not md5 size mtime) %config(noreplace,missingok) %attr(0644,root,root) %{_localstatedir}/run/udev-configure-printer/usb-uris +%{_unitdir}/configure-printer@.service + +%if 0%{?rhel} <= 8 || 0%{?fedora} +%files +%doc ChangeLog NEWS ABOUT-NLS AUTHORS ChangeLog-OLD +%license COPYING +%{_bindir}/%{name} +%{_bindir}/install-printerdriver +%{_datadir}/%{name}/__pycache__/check-device-ids* +%{_datadir}/%{name}/__pycache__/HIG* +%{_datadir}/%{name}/__pycache__/SearchCriterion* +%{_datadir}/%{name}/__pycache__/serversettings* +%{_datadir}/%{name}/__pycache__/system-config-printer* +%{_datadir}/%{name}/__pycache__/ToolbarSearchEntry* +%{_datadir}/%{name}/__pycache__/userdefault* +%{_datadir}/%{name}/__pycache__/install-printerdriver* +%{_datadir}/%{name}/check-device-ids.py* +%{_datadir}/%{name}/HIG.py* +%{_datadir}/%{name}/SearchCriterion.py* +%{_datadir}/%{name}/serversettings.py* +%{_datadir}/%{name}/system-config-printer.py* +%{_datadir}/%{name}/ToolbarSearchEntry.py* +%{_datadir}/%{name}/userdefault.py* +%{_datadir}/%{name}/troubleshoot +%{_datadir}/%{name}/icons +%{_datadir}/%{name}/install-printerdriver.py* +%dir %{_datadir}/%{name}/xml/__pycache__ +%{_datadir}/%{name}/xml/__pycache__/* +%{_datadir}/%{name}/xml/validate.py* +%dir %{_datadir}/%{name}/ui +%{_datadir}/%{name}/ui/*.ui +%{_datadir}/applications/system-config-printer.desktop +%{_datadir}/metainfo/%{name}.appdata.xml %{_mandir}/man1/%{name}.1* %post -rm -rf /var/cache/foomatic/foomatic.pickle +%{_bindir}/rm -f /var/cache/foomatic/foomatic.pickle exit 0 +%endif %changelog +* Mon Nov 14 2022 hkgy - 1.5.15-1 +- Upgrade to v1.5.15 + * Thu Jul 21 2022 yaoxin - 1.5.11-17 - Remove unneeded dependdencies python3-devel