2007-01-16 00:08:16 +01:00
|
|
|
#
|
2011-01-14 16:15:55 +01:00
|
|
|
# spec file for package cups
|
2007-01-16 00:08:16 +01:00
|
|
|
#
|
2022-02-01 11:06:35 +01:00
|
|
|
# Copyright (c) 2022 SUSE LLC
|
2007-01-16 00:08:16 +01:00
|
|
|
#
|
2008-08-24 10:51:03 +02:00
|
|
|
# All modifications and additions to the file contributed by third parties
|
|
|
|
# remain the property of their copyright owners, unless otherwise agreed
|
|
|
|
# upon. The license for this file, and modifications and additions to the
|
|
|
|
# file, is the same license as for the pristine package itself (unless the
|
|
|
|
# license for the pristine package is not an Open Source License, in which
|
|
|
|
# case the license is the MIT License). An "Open Source License" is a
|
|
|
|
# license that conforms to the Open Source Definition (Version 1.9)
|
|
|
|
# published by the Open Source Initiative.
|
|
|
|
|
2019-02-21 13:56:32 +01:00
|
|
|
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
2007-01-16 00:08:16 +01:00
|
|
|
#
|
|
|
|
|
2021-04-06 12:09:56 +02:00
|
|
|
|
2022-03-04 13:48:44 +01:00
|
|
|
# By default enable testsuite (i.e. in the 'check' section run 'make test')
|
|
|
|
# cf. https://rpm.org/user_doc/conditional_builds.html
|
|
|
|
# To disable the testsuite you may set 'bcond_with testsuite' instead
|
|
|
|
# until https://github.com/OpenPrinting/cups/issues/155 is actually fixed
|
|
|
|
# but we do not error out when 'make test' fails (see the 'check' section):
|
Accepting request 958348 from home:ajoga:branches:openSUSE:Factory
- Version upgrade to 2.4.1
- Dropped patch upstream_pull_174 because it it is included in this release
- Dropped patch cups-2.1.0-cups-systemd-socket.patch because it it is included in this release (https://github.com/OpenPrinting/cups/commit/e96e96b4bd0d4e6f634bbb66b95d6e475501541c)
- Changed upstream source packages signing key (https://github.com/OpenPrinting/cups/discussions/327#discussioncomment-2060579)
- Re-enabled testsuite
* Also removed make check because since upstream change the two target are identical (https://github.com/OpenPrinting/cups/commit/96ba46ebc818b610b0e40cbc9d62ef1dcd3ec9b6#diff-76ed074a9305c04054cdebb9e9aad2d818052b07091de1f20cad0bbac34ffb52R239)
- Changed cups-2.1.0-cups-systemd-socket.patch to accomodate new coding style
- Changed cups-config-libs.orig to accommodate recent code changes (SSL->TLS)
- Changed cups-2.1.0-default-webcontent-path.patch to accommodate code changes
old: Printing/cups
new: home:ajoga:branches:openSUSE:Factory/cups rev None
Index: cups-2.1.0-default-webcontent-path.patch
===================================================================
--- cups-2.1.0-default-webcontent-path.patch (revision 380)
+++ cups-2.1.0-default-webcontent-path.patch (revision 2)
@@ -1,17 +1,21 @@
---- config-scripts/cups-directories.m4.orig 2014-03-21 17:42:53.000000000 +0100
-+++ config-scripts/cups-directories.m4 2015-09-01 11:08:43.000000000 +0200
-@@ -206,11 +206,11 @@ fi
- AC_SUBST(MENUDIR)
+--- config-scripts/cups-directories.m4
++++ config-scripts/cups-directories.m4.orig
+@@ -166,15 +166,15 @@ AS_IF([test "x$menudir" = x], [
+ AC_SUBST([MENUDIR])
# Documentation files
--AC_ARG_WITH(docdir, [ --with-docdir set path for documentation],docdir="$withval",docdir="")
-+AC_ARG_WITH(docdir, [ --with-docdir set path and DocumentRoot directive for web content, default=datadir/cups/webcontent],docdir="$withval",docdir="")
+-AC_ARG_WITH([docdir], AS_HELP_STRING([--with-docdir], [set path for documentation]), [
++AC_ARG_WITH([docdir], AS_HELP_STRING([--with-docdir], [set path and DocumentRoot directive for web content, default=datadir/cups/webcontent]), [
+ docdir="$withval"
+ ], [
+ docdir=""
+ ])
- if test x$docdir = x; then
-- CUPS_DOCROOT="$datadir/doc/cups"
-- docdir="$datadir/doc/cups"
-+ CUPS_DOCROOT="$datadir/cups/webcontent"
-+ docdir="$datadir/cups/webcontent"
- else
- CUPS_DOCROOT="$docdir"
- fi
+ AS_IF([test x$docdir = x], [
+- CUPS_DOCROOT="$datadir/doc/cups"
+- docdir="$datadir/doc/cups"
++ CUPS_DOCROOT="$datadir/cups/webcontent"
++ docdir="$datadir/cups/webcontent"
+ ], [
+ CUPS_DOCROOT="$docdir"
+ ])
Index: cups-config-libs.patch
===================================================================
--- cups-config-libs.patch (revision 380)
+++ cups-config-libs.patch (revision 2)
@@ -4,7 +4,7 @@
# flags for compiler and linker...
CFLAGS=""
LDFLAGS="@EXPORT_LDFLAGS@"
--LIBS="@LIBGSSAPI@ @DNSSDLIBS@ @EXPORT_SSLLIBS@ @LIBZ@ @LIBS@"
+-LIBS="@LIBGSSAPI@ @DNSSDLIBS@ @EXPORT_TLSLIBS@ @LIBZ@ @LIBS@"
+LIBS=""
# Check for local invocation...
Index: cups.changes
===================================================================
--- cups.changes (revision 380)
+++ cups.changes (revision 2)
@@ -1,4 +1,88 @@
-------------------------------------------------------------------
+Tue Mar 1 18:16:11 UTC 2022 - Aurélien Joga <aurelienjoga@gmail.com>
+
+- Version upgrade to 2.4.1:
+ * The default color mode now is now configurable and defaults to the printer's reported default mode (Issue #277)
+ * Configuration script now checks linking for -Wl,-pie flags (Issue #303)
+ * Fixed memory leaks - in testi18n (Issue #313), in cups_enum_dests() (Issue #317), in _cupsEncodeOption() and http_tls_upgrade() (Issue #322)
+ * Fixed missing bracket in de/index.html (Issue #299)
+ * Fixed typos in configuration scripts (Issues #304, #316)
+ * Removed remaining legacy code for RIP_MAX_CACHE environment variable (Issue #323)
+ * Removed deprecated directives from cupsctl and cups-files.conf (Issue #300)
+ * Removed purge-jobs legacy code from CGI scripts and templates (Issue #325)
+ * Added configure option --with-idle-exit-timeout (Issue #294)
+ * Added --with-systemd-timeoutstartsec configure option (Issue #298)
+ * DigestOptions now are applied for MD5 Digest authentication defined by RFC 2069 as well (Issue #287)
+ * Fixed compilation on Solaris (Issue #293)
+ * Fixed and improved German translations (Issue #296, Issue #297)
+ * Added warning and debug messages when loading printers if the queue is raw or with driver (Issue #286)
+ * Compilation now uses -fstack-protector-strong if available (Issue #285)
+ * Added support for CUPS running in a Snapcraft snap.
+ * Added basic OAuth 2.0 client support (Issue #100)
+ * Added support for AirPrint and Mopria clients (Issue #105)
+ * Added configure support for specifying systemd dependencies in the CUPS service file (Issue #144)
+ * Added several features and improvements to ipptool (Issue #153)
+ * Added a JSON output mode for ipptool.
+ * The ipptool command now correctly reports an error when a test file cannot be found.
+ * CUPS library now uses thread safe getpwnam_r and getpwuid_r functions (Issue #274)
+ * Fixed Kerberos authentication for the web interface (Issue #19)
+ * The ZPL sample driver now supports more "standard" label sizes (Issue #70)
+ * Fixed reporting of printer instances when enumerating and when no options are set for the main instance (Issue #71)
+ * Reverted USB read limit enforcement change from CUPS 2.2.12 (Issue #72)
+ * The IPP backend did not return the correct status code when a job was canceled at the printer/server (Issue #74)
+ * The testlang unit test program now loops over all of the available locales by default (Issue #85)
+ * The cupsfilter command now shows error messages when options are used incorrectly (Issue #88)
+ * The PPD functions now treat boolean values as case-insensitive (Issue #106)
+ * Temporary queue names no longer end with an underscore (Issue #110)
+ * The USB backend now runs as root (Issue #121)
+ * Added pkg-config file for libcups (Issue #122)
+ * Fixed a PPD memory leak caused by emulator definitions (Issue #124)
+ * Fixed a DISPLAY bug in ipptool (Issue #139)
+ * The scheduler now includes the [Job N] prefix for job log messages, even when using syslog logging (Issue #154)
+ * Added support for locales using the GB18030 character set (Issue #159)
+ * httpReconnect2 did not reset the socket file descriptor when the TLS negotiation failed (Apple #5907)
+ * httpUpdate did not reset the socket file descriptor when the TLS negotiation failed (Apple #5915)
+ * The IPP backend now retries Validate-Job requests (Issue #132)
+ * Now show better error messages when a driver interface program fails to provide a PPD file (Issue #148)
+ * Added dark mode support to the CUPS web interface (Issue #152)
+ * Added a workaround for Solaris in httpAddrConnect2 (Issue #156)
+ * Fixed an interaction between --remote-admin and --remote-any for the cupsctl command (Issue #158)
+ * Now use a 60 second timeout for reading USB backchannel data (Issue #160)
+ * The USB backend now tries harder to find a serial number (Issue #170)
+ * Fixed @IF(name) handling in cupsd.conf (Apple #5918)
+ * Fixed documentation and added examples for CUPS' limited CGI support (Apple #5940)
+ * Fixed the lpc command prompt (Apple #5946)
+ * Now always pass "localhost" in the Host: header when talking over a domain socket or the loopback interface (Issue #185)
+ * Fixed a job history update issue in the scheduler (Issue #187)
+ * Fixed job-pages-per-set value for duplex print jobs.
+ * Fixed an edge case in ippReadIO to make sure that only complete attributes and values are retained on an error (Issue #195)
+ * Hardened ippReadIO to prevent invalid IPP messages from being propagated (Issue #195, Issue #196)
+ * The scheduler now supports the "everywhere" model directly (Issue #201)
+ * Fixed some IPP Everywhere option mapping problems (Issue #238)
+ * Fixed support for "job-hold-until" with the Restart-Job operation (Issue #250)
+ * Fixed the default color/grayscale presets for IPP Everywhere PPDs (Issue #262)
+ * Fixed support for the 'offline-report' state for all USB backends (Issue #264)
+ * Documentation fixes (Issue #92, Issue #163, Issue #177, Issue #184)
+ * Localization updates (Issue #123, Issue #129, Issue #134, Issue #146, Issue #164)
+ * USB quirk updates (Issue #192, Issue #270, Apple #5766, Apple #5838, Apple #5843, Apple #5867)
+ * Web interface updates (Issue #142, Issue #218)
+ * The ippeveprinter tool now automatically uses an available port.
+ * Fixed several Windows TLS and hashing issues.
+ * Deprecated cups-config (Issue #97)
+ * Deprecated Kerberos (AuthType Negotiate) authentication (Issue #98)
+ * Removed support for the (long deprecated and unused) FontPath, ListenBackLog, LPDConfigFile, KeepAliveTimeout, RIPCache, and SMBConfigFile directives in cupsd.conf and cups-files.conf.
+ * Stubbed out deprecated httpMD5 functions.
+ * Add test for undefined page ranges during printing.
+- Dropped patch upstream_pull_174 because it it is included in this release
+- Dropped patch cups-2.1.0-cups-systemd-socket.patch because it it is included in this release (https://github.com/OpenPrinting/cups/commit/e96e96b4bd0d4e6f634bbb66b95d6e475501541c)
+- Changed upstream source packages signing key (https://github.com/OpenPrinting/cups/discussions/327#discussioncomment-2060579)
+- Re-enabled testsuite
+ * Also removed make check because since upstream change the two target are identical (https://github.com/OpenPrinting/cups/commit/96ba46ebc818b610b0e40cbc9d62ef1dcd3ec9b6#diff-76ed074a9305c04054cdebb9e9aad2d818052b07091de1f20cad0bbac34ffb52R239)
+- Changed cups-2.1.0-cups-systemd-socket.patch to accomodate new coding style
+- Changed cups-config-libs.orig to accommodate recent code changes (SSL->TLS)
+- Changed cups-2.1.0-default-webcontent-path.patch to accommodate code changes
+
+-------------------------------------------------------------------
Tue Feb 1 09:18:27 UTC 2022 - jsmeix@suse.de
- Enhanced harden_cups.service.patch by adding
Index: cups.keyring
===================================================================
Binary files cups.keyring (revision 380) and cups.keyring (revision 2) differ
Index: cups.spec
===================================================================
--- cups.spec (revision 380)
+++ cups.spec (revision 2)
@@ -18,9 +18,7 @@
# Cf. https://rpm.org/user_doc/conditional_builds.html
# by default enable testsuite (i.e. in the 'check' section run make check and make test)
-#bcond_without testsuite
-# disable testsuite for now until https://github.com/OpenPrinting/cups/issues/155 is fixed
-%bcond_with testsuite
+%bcond_without testsuite
# _tmpfilesdir is not defined in systemd macros up to openSUSE 13.2
%{!?_tmpfilesdir: %global _tmpfilesdir /usr/lib/tmpfiles.d }
@@ -29,34 +27,32 @@
# "zypper vcmp 2.3.b99 2.3.0" shows "2.3.b99 is older than 2.3.0" and
# "zypper vcmp 2.2.99 2.3b6" show "2.2.99 is older than 2.3b6" so that
# version upgrades from 2.2.x via 2.3.b* to 2.3.0 work:
-Version: 2.3.3op2
+Version: 2.4.1
Release: 0
Summary: The Common UNIX Printing System
License: Apache-2.0
Group: Hardware/Printing
URL: https://openprinting.github.io/cups
# To get Source0 go to https://github.com/OpenPrinting/cups/releases or use e.g.
-# wget --no-check-certificate -O cups-2.3.3op2-source.tar.gz https://github.com/OpenPrinting/cups/releases/download/v2.3.3op2/cups-2.3.3op2-source.tar.gz
-Source0: https://github.com/OpenPrinting/cups/releases/download/v2.3.3op2/cups-2.3.3op2-source.tar.gz
+# wget --no-check-certificate -O cups-2.4.1-source.tar.gz https://github.com/OpenPrinting/cups/releases/download/v2.4.1/cups-2.4.1-source.tar.gz
+Source0: https://github.com/OpenPrinting/cups/releases/download/v2.4.1/cups-2.4.1-source.tar.gz
# To get Source1 go to https://github.com/OpenPrinting/cups/releases or use e.g.
-# wget --no-check-certificate -O cups-2.3.3op2-source.tar.gz.sig https://github.com/OpenPrinting/cups/releases/download/v2.3.3op2/cups-2.3.3op2-source.tar.gz.sig
-Source1: https://github.com/OpenPrinting/cups/releases/download/v2.3.3op2/cups-2.3.3op2-source.tar.gz.sig
-# To get Source2 go to https://www.msweet.org/pgp.html
-# PGP Fingerprint: 845464660B686AAB36540B6F999559A027815955
+# wget --no-check-certificate -O cups-2.4.1-source.tar.gz.sig https://github.com/OpenPrinting/cups/releases/download/v2.4.1/cups-2.4.1-source.tar.gz.sig
+Source1: https://github.com/OpenPrinting/cups/releases/download/v2.4.1/cups-2.4.1-source.tar.gz.sig
+# To get Source2 use gpg --keyserver keys.openpgp.org --recv-keys 7082A0A50A2E92640F3880E0E4522DCC9B246FF7
+# See https://github.com/OpenPrinting/cups/discussions/327#discussioncomment-2060579
+# PGP Fingerprint: 7082A0A50A2E92640F3880E0E4522DCC9B246FF7
Source2: cups.keyring
# To manually verify Source0 with Source1 and Source2 do e.g.
# gpg --import cups.keyring
-# gpg --list-keys | grep -1 'Michael R Sweet' | grep -v 'expired'
-# gpg --verify cups-2.3.3op2-source.tar.gz.sig cups-2.3.3op2-source.tar.gz
+# gpg --list-keys | grep -1 'Zdenek Dohnal'
+# gpg --verify cups-2.4.1-source.tar.gz.sig cups-2.4.1-source.tar.gz
Source102: Postscript.ppd.gz
Source105: Postscript-level1.ppd.gz
Source106: Postscript-level2.ppd.gz
Source108: cups-client.conf
Source109: baselibs.conf
# Patch0...Patch9 is for patches from upstream:
-# Patch1 upstream_pull_174.patch is https://github.com/OpenPrinting/cups/pull/174
-# Use 60s timeout for read_thread, revert read limits
-Patch1: upstream_pull_174.patch
# Source10...Source99 is for sources from SUSE which are intended for upstream:
# Patch10...Patch99 is for patches from SUSE which are intended for upstream:
# Patch10 cups-2.1.0-choose-uri-template.patch adds 'smb://...' URIs to templates/choose-uri.tmpl:
@@ -66,8 +62,6 @@
# because the files of the CUPS web content are no documentation, see CUPS STR #3578
# and http://bugzilla.novell.com/show_bug.cgi?id=546023#c6 and subsequent comments:
Patch11: cups-2.1.0-default-webcontent-path.patch
-# Patch12 cups-2.1.0-cups-systemd-socket.patch Use systemd socket activation properly:
-Patch12: cups-2.1.0-cups-systemd-socket.patch
# Patch100...Patch999 is for private patches from SUSE which are not intended for upstream:
# Patch100 cups-pam.diff adds conf/pam.suse regarding support for PAM for SUSE:
Patch100: cups-pam.diff
@@ -83,9 +77,9 @@
Patch103: cups-1.4-do_not_strip_recommended_from_PPDs.patch
# Patch104 cups-config-libs.patch fixes option --libs in cups-config script:
Patch104: cups-config-libs.patch
-# Patch106 Fixes web UI Kerberos authentication (bsc#1175960)
-Patch106: fix-negotiate-authentication-between-CGIs-and-scheduler.patch
Patch107: harden_cups.service.patch
+# Patch108 downgrades the autoconf requirement to the autoconf available in tumbleweed as of writing
+Patch108: downgrade-autoconf-requirement.patch
# Build Requirements:
BuildRequires: dbus-1-devel
BuildRequires: fdupes
@@ -280,9 +274,6 @@
%prep
%setup -q
# Patch0...Patch9 is for patches from upstream:
-# Patch1 upstream_pull_174.patch is https://github.com/OpenPrinting/cups/pull/174
-# Use 60s timeout for read_thread, revert read limits
-%patch1 -p1
# Patch10...Patch99 is for patches from SUSE which are intended for upstream:
# Patch10 cups-2.1.0-choose-uri-template.patch adds 'smb://...' URIs to templates/choose-uri.tmpl:
%patch10 -b choose-uri-template.orig
@@ -291,8 +282,6 @@
# because the files of the CUPS web content are no documentation, see CUPS STR #3578
# and http://bugzilla.novell.com/show_bug.cgi?id=546023#c6 and subsequent comments:
%patch11 -b default-webcontent-path.orig
-# Patch12 cups-2.1.0-cups-systemd-socket.patch Use systemd socket activation properly:
-#patch12 -b cups-systemd-socket.orig
# Patch100...Patch999 is for private patches from SUSE which are not intended for upstream:
# Patch100 cups-pam.diff adds conf/pam.suse regarding support for PAM for SUSE:
%patch100 -b cups-pam.orig
@@ -308,9 +297,8 @@
%patch103 -b do_not_strip_recommended_from_PPDs.orig
# Patch104 cups-config-libs.patch fixes option --libs in cups-config script:
%patch104 -b cups-config-libs.orig
-# Patch106 Fixes web UI Kerberos authentication (bsc#1175960)
-%patch106 -p1
%patch107 -p1
+%patch108 -p1
%build
# Remove ".SILENT" rule for verbose build output
@@ -439,8 +427,6 @@
# There appears to be some kind of race condition when running make check and make test
# cf. https://github.com/OpenPrinting/cups/issues/155
# We print all logs for debugging purposes if either testsuite fails
-echo "DEBUG: running make check"
-bash -c 'make %{?_smp_mflags} check; EXIT=$?; if [ $EXIT -ne 0 ]; then cat test/*_log*-$(whoami); fi; exit $EXIT'
echo "DEBUG: running make test"
bash -c 'make %{?_smp_mflags} test; EXIT=$?; if [ $EXIT -ne 0 ]; then cat test/*_log*-$(whoami); fi; exit $EXIT'
%else
@@ -681,6 +667,7 @@
%files devel
%defattr(-,root,root)
+/usr/lib/pkgconfig/cups.pc
%{_includedir}/cups/
%{_libdir}/libcups.so
%{_libdir}/libcupsimage.so
Index: cups-2.4.1-source.tar.gz
===================================================================
Binary file cups-2.4.1-source.tar.gz (revision 2) added
Index: cups-2.4.1-source.tar.gz.sig
===================================================================
Binary file cups-2.4.1-source.tar.gz.sig (revision 2) added
Index: downgrade-autoconf-requirement.patch
===================================================================
--- downgrade-autoconf-requirement.patch (added)
+++ downgrade-autoconf-requirement.patch (revision 2)
@@ -0,0 +1,15 @@
+diff --git a/configure.ac b/configure.ac
+index a8c6c1040..6ace74a8d 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -9,8 +9,8 @@ dnl Licensed under Apache License v2.0. See the file "LICENSE" for more
+ dnl information.
+ dnl
+
+-dnl We need at least autoconf 2.71...
+-AC_PREREQ([2.71])
++dnl We need at least autoconf 2.69...
++AC_PREREQ([2.69])
+
+ dnl Package name and version...
+ AC_INIT([CUPS],[2.4.1],[https://github.com/openprinting/cups/issues],[cups],[https://openprinting.github.io/cups])
Index: cups-2.1.0-cups-systemd-socket.patch
===================================================================
--- cups-2.1.0-cups-systemd-socket.patch (revision 380)
+++ cups-2.1.0-cups-systemd-socket.patch (deleted)
@@ -1,43 +0,0 @@
---- scheduler/main.c.orig 2015-06-08 20:32:35.000000000 +0200
-+++ scheduler/main.c 2015-09-01 11:19:36.000000000 +0200
-@@ -656,7 +656,15 @@ main(int argc, /* I - Number of comm
-
- #if defined(HAVE_LAUNCHD) || defined(HAVE_SYSTEMD)
- if (OnDemand)
-+ {
- cupsdAddEvent(CUPSD_EVENT_SERVER_STARTED, NULL, NULL, "Scheduler started on demand.");
-+# ifdef HAVE_SYSTEMD
-+ sd_notifyf(0, "READY=1\n"
-+ "STATUS=Scheduler is running...\n"
-+ "MAINPID=%lu",
-+ (unsigned long) getpid());
-+# endif /* HAVE_SYSTEMD */
-+ }
- else
- #endif /* HAVE_LAUNCHD || HAVE_SYSTEMD */
- if (fg)
---- scheduler/org.cups.cupsd.path.in.orig 2014-03-21 15:50:24.000000000 +0100
-+++ scheduler/org.cups.cupsd.path.in 2015-09-01 11:20:37.000000000 +0200
-@@ -3,6 +3,7 @@ Description=CUPS Scheduler
-
- [Path]
- PathExists=@CUPS_CACHEDIR@/org.cups.cupsd
-+PathExistsGlob=@CUPS_REQUESTS@/d*
-
- [Install]
- WantedBy=multi-user.target
---- scheduler/org.cups.cupsd.service.in.orig 2014-10-21 13:54:05.000000000 +0200
-+++ scheduler/org.cups.cupsd.service.in 2015-09-01 11:22:09.000000000 +0200
-@@ -1,10 +1,11 @@
- [Unit]
- Description=CUPS Scheduler
- Documentation=man:cupsd(8)
-+After=network.target
-
- [Service]
- ExecStart=@sbindir@/cupsd -l
--Type=simple
-+Type=notify
-
- [Install]
- Also=org.cups.cupsd.socket org.cups.cupsd.path
Index: cups-2.3.3op2-source.tar.gz
===================================================================
Binary file cups-2.3.3op2-source.tar.gz (revision 380) deleted
Index: cups-2.3.3op2-source.tar.gz.sig
===================================================================
Binary file cups-2.3.3op2-source.tar.gz.sig (revision 380) deleted
Index: fix-negotiate-authentication-between-CGIs-and-scheduler.patch
===================================================================
--- fix-negotiate-authentication-between-CGIs-and-scheduler.patch (revision 380)
+++ fix-negotiate-authentication-between-CGIs-and-scheduler.patch (deleted)
@@ -1,223 +0,0 @@
-From d4521ed0df7e625ccf2bc079bab6f48c46ef9bf9 Mon Sep 17 00:00:00 2001
-From: Samuel Cabrero <scabrero@suse.de>
-Date: Mon, 26 Oct 2020 17:35:22 +0100
-Subject: [PATCH 1/4] Avoid infinite loop in admin.cgi when negotiate is used
-
-SetAuthorizationString with NULL argument sets an empty string.
-
-Related: #5596
-
-Signed-off-by: Samuel Cabrero <scabrero@suse.de>
----
- cups/auth.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/cups/auth.c b/cups/auth.c
-index db45bbba6..f2409350a 100644
---- a/cups/auth.c
-+++ b/cups/auth.c
-@@ -295,7 +295,7 @@ cupsDoAuthentication(
- }
- }
-
-- if (http->authstring)
-+ if (http->authstring && http->authstring[0])
- {
- DEBUG_printf(("1cupsDoAuthentication: authstring=\"%s\".", http->authstring));
-
---
-2.30.2
-
-
-From 61ad7780bc7d0593e3225d088ac6dff31badf801 Mon Sep 17 00:00:00 2001
-From: Samuel Cabrero <scabrero@suse.de>
-Date: Tue, 27 Oct 2020 16:11:41 +0100
-Subject: [PATCH 2/4] Add cups_is_local_connection() to check if connection is
- to localhost
-
-Related: #5596
-
-Signed-off-by: Samuel Cabrero <scabrero@suse.de>
----
- cups/auth.c | 11 ++++++++++-
- 1 file changed, 10 insertions(+), 1 deletion(-)
-
-diff --git a/cups/auth.c b/cups/auth.c
-index f2409350a..d2956438d 100644
---- a/cups/auth.c
-+++ b/cups/auth.c
-@@ -90,6 +90,7 @@ static void cups_gss_printf(OM_uint32 major_status, OM_uint32 minor_status,
- # define cups_gss_printf(major, minor, message)
- # endif /* DEBUG */
- #endif /* HAVE_GSSAPI */
-+static int cups_is_local_connection(http_t *http);
- static int cups_local_auth(http_t *http);
-
-
-@@ -916,6 +917,14 @@ cups_gss_printf(OM_uint32 major_status,/* I - Major status code */
- # endif /* DEBUG */
- #endif /* HAVE_GSSAPI */
-
-+static int /* O - 0 if not a local connection */
-+ /* 1 if local connection */
-+cups_is_local_connection(http_t *http) /* I - HTTP connection to server */
-+{
-+ if (!httpAddrLocalhost(http->hostaddr) && _cups_strcasecmp(http->hostname, "localhost") != 0)
-+ return 0;
-+ return 1;
-+}
-
- /*
- * 'cups_local_auth()' - Get the local authorization certificate if
-@@ -958,7 +967,7 @@ cups_local_auth(http_t *http) /* I - HTTP connection to server */
- * See if we are accessing localhost...
- */
-
-- if (!httpAddrLocalhost(http->hostaddr) && _cups_strcasecmp(http->hostname, "localhost") != 0)
-+ if (!cups_is_local_connection(http))
- {
- DEBUG_puts("8cups_local_auth: Not a local connection!");
- return (1);
---
-2.30.2
-
-
-From f629d079750a86b1b605c285f99c0dea3933ca50 Mon Sep 17 00:00:00 2001
-From: Samuel Cabrero <scabrero@suse.de>
-Date: Tue, 27 Oct 2020 16:23:30 +0100
-Subject: [PATCH 3/4] Try local kerberos ccache credentials only for remote
- servers
-
-If connecting to localhost then proceed to ask the client for the
-authorization using cupsGetPassword2. The get password callback will
-return 401 to the client with WWW-Authenticate: Negotiate.
-
-Fixes: #5596
-
-Signed-off-by: Samuel Cabrero <scabrero@suse.de>
----
- cups/auth.c | 10 ++++++----
- 1 file changed, 6 insertions(+), 4 deletions(-)
-
-diff --git a/cups/auth.c b/cups/auth.c
-index d2956438d..9661657fc 100644
---- a/cups/auth.c
-+++ b/cups/auth.c
-@@ -175,10 +175,10 @@ cupsDoAuthentication(
- DEBUG_printf(("2cupsDoAuthentication: Trying scheme \"%s\"...", scheme));
-
- #ifdef HAVE_GSSAPI
-- if (!_cups_strcasecmp(scheme, "Negotiate"))
-+ if (!_cups_strcasecmp(scheme, "Negotiate") && !cups_is_local_connection(http))
- {
- /*
-- * Kerberos authentication...
-+ * Kerberos authentication to remote server...
- */
-
- int gss_status; /* Auth status */
-@@ -202,7 +202,9 @@ cupsDoAuthentication(
- }
- else
- #endif /* HAVE_GSSAPI */
-- if (_cups_strcasecmp(scheme, "Basic") && _cups_strcasecmp(scheme, "Digest"))
-+ if (_cups_strcasecmp(scheme, "Basic") &&
-+ _cups_strcasecmp(scheme, "Digest") &&
-+ _cups_strcasecmp(scheme, "Negotiate"))
- {
- /*
- * Other schemes not yet supported...
-@@ -216,7 +218,7 @@ cupsDoAuthentication(
- * See if we should retry the current username:password...
- */
-
-- if ((http->digest_tries > 1 || !http->userpass[0]) && (!_cups_strcasecmp(scheme, "Basic") || (!_cups_strcasecmp(scheme, "Digest"))))
-+ if (http->digest_tries > 1 || !http->userpass[0])
- {
- /*
- * Nope - get a new password from the user...
---
-2.30.2
-
-
-From 0563a28b18b21d5574a5e0e38b74246146074bbf Mon Sep 17 00:00:00 2001
-From: Samuel Cabrero <scabrero@suse.de>
-Date: Tue, 27 Oct 2020 16:18:03 +0100
-Subject: [PATCH 4/4] Allow Local authentication for Negotiate
-
-PeerCred is also possible if address family is AF_LOCAL. This will allow
-the CGI programs to generate the authorization from the local
-certificates based on PID also when Negotiate is used for local
-connections:
-
-Client CGI
-Browser <- Remote conn -> admin.cgi <--- Localhost conn ---> Scheduler
- | | |
- + --- HTTP/POST /admin/ --> | |
- | + --- CUPS-Get-Devices ------------> |
- | | |
- | | <-- 401 Unauthorized --------------+
- | | WWW-Authenticate: |
- | | Negotiate, (PeerCred,) Local |
- | | |
- | <-- 401 Unauthorized -----+ |
- | WWW-Authenticate: | |
- | Negotiate | |
- | | |
- | --- HTTP/POST /admin/ --> | |
- | Authorization: + --- IPP CUPS-GetDevices ---------> |
- | Negotiate | Authorization: Local <cert> |
- | | |
-
-Fixes: #5596
-
-Signed-off-by: Samuel Cabrero <scabrero@suse.de>
----
- cups/auth.c | 5 -----
- scheduler/client.c | 9 ++-------
- 2 files changed, 2 insertions(+), 12 deletions(-)
-
-diff --git a/cups/auth.c b/cups/auth.c
-index 9661657fc..b6fec6b98 100644
---- a/cups/auth.c
-+++ b/cups/auth.c
-@@ -1043,11 +1043,6 @@ cups_local_auth(http_t *http) /* I - HTTP connection to server */
- }
- # endif /* HAVE_AUTHORIZATION_H */
-
--# ifdef HAVE_GSSAPI
-- if (cups_auth_find(www_auth, "Negotiate"))
-- return (1);
--# endif /* HAVE_GSSAPI */
--
- # if defined(SO_PEERCRED) && defined(AF_LOCAL)
- /*
- * See if we can authenticate using the peer credentials provided over a
-diff --git a/scheduler/client.c b/scheduler/client.c
-index c2ee8f12a..56797d58d 100644
---- a/scheduler/client.c
-+++ b/scheduler/client.c
-@@ -2109,18 +2109,13 @@ cupsdSendHeader(
- }
- else if (auth_type == CUPSD_AUTH_NEGOTIATE)
- {
--#if defined(SO_PEERCRED) && defined(AF_LOCAL)
-- if (httpAddrFamily(httpGetAddress(con->http)) == AF_LOCAL)
-- strlcpy(auth_str, "PeerCred", sizeof(auth_str));
-- else
--#endif /* SO_PEERCRED && AF_LOCAL */
- strlcpy(auth_str, "Negotiate", sizeof(auth_str));
- }
-
-- if (con->best && auth_type != CUPSD_AUTH_NEGOTIATE && !con->is_browser && !_cups_strcasecmp(httpGetHostname(con->http, NULL, 0), "localhost"))
-+ if (con->best && !con->is_browser && !_cups_strcasecmp(httpGetHostname(con->http, NULL, 0), "localhost"))
- {
- /*
-- * Add a "trc" (try root certification) parameter for local non-Kerberos
-+ * Add a "trc" (try root certification) parameter for local
- * requests when the request requires system group membership - then the
- * client knows the root certificate can/should be used.
- *
---
-2.30.2
-
Index: upstream_pull_174.patch
===================================================================
--- upstream_pull_174.patch (revision 380)
+++ upstream_pull_174.patch (deleted)
@@ -1,53 +0,0 @@
-From c37d71b1a31d26a4790166e2508822b18934a5c0 Mon Sep 17 00:00:00 2001
-From: Zdenek Dohnal <zdohnal@redhat.com>
-Date: Tue, 13 Apr 2021 15:44:14 +0200
-Subject: [PATCH 1/2] backend/usb-libusb.c: Use 60s timeout for reading at
- backchannel
-
-Some older models malfunction if timeout is too short.
----
- CHANGES.md | 1 +
- backend/usb-libusb.c | 2 +-
- 2 files changed, 2 insertions(+), 1 deletion(-)
-
---- a/backend/usb-libusb.c
-+++ b/backend/usb-libusb.c
-@@ -1704,7 +1704,7 @@ static void *read_thread(void *reference)
- readstatus = libusb_bulk_transfer(g.printer->handle,
- g.printer->read_endp,
- readbuffer, rbytes,
-- &rbytes, 250);
-+ &rbytes, 60000);
- if (readstatus == LIBUSB_SUCCESS && rbytes > 0)
- {
- fprintf(stderr, "DEBUG: Read %d bytes of back-channel data...\n", (int)rbytes);
-
-From 4cb6f6806cdbe040d478b266a1d351b19341dd79 Mon Sep 17 00:00:00 2001
-From: Zdenek Dohnal <zdohnal@redhat.com>
-Date: Tue, 13 Apr 2021 15:47:37 +0200
-Subject: [PATCH 2/2] backend/usb-libusb.c: Revert enforcing read limits
-
-This commit reverts the change introduced by 2.2.12 [1] - its
-implementation caused a regression with Lexmark filters.
-
-[1]
-https://github.com/apple/cups/commit/35e927f83529cd9b4bc37bcd418c50e307fced35
----
- CHANGES.md | 1 +
- backend/usb-libusb.c | 3 ++-
- 2 files changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/backend/usb-libusb.c b/backend/usb-libusb.c
-index fbb0d9d89..89b5182f7 100644
---- a/backend/usb-libusb.c
-+++ b/backend/usb-libusb.c
-@@ -1721,7 +1721,8 @@ static void *read_thread(void *reference)
- * Make sure this loop executes no more than once every 250 miliseconds...
- */
-
-- if ((g.wait_eof || !g.read_thread_stop))
-+ if ((readstatus != LIBUSB_SUCCESS || rbytes == 0) &&
-+ (g.wait_eof || !g.read_thread_stop))
- usleep(250000);
- }
- while (g.wait_eof || !g.read_thread_stop);
OBS-URL: https://build.opensuse.org/request/show/958348
OBS-URL: https://build.opensuse.org/package/show/Printing/cups?expand=0&rev=381
2022-03-03 13:19:05 +01:00
|
|
|
%bcond_without testsuite
|
2014-04-11 10:08:52 +02:00
|
|
|
|
2015-02-16 16:27:41 +01:00
|
|
|
# _tmpfilesdir is not defined in systemd macros up to openSUSE 13.2
|
2020-06-08 15:11:58 +02:00
|
|
|
%{!?_tmpfilesdir: %global _tmpfilesdir /usr/lib/tmpfiles.d }
|
2007-01-16 00:08:16 +01:00
|
|
|
Name: cups
|
2018-12-10 15:55:11 +01:00
|
|
|
# CUPS beta version numbers like "2.3b6" can be used as is because
|
2017-12-20 12:43:22 +01:00
|
|
|
# "zypper vcmp 2.3.b99 2.3.0" shows "2.3.b99 is older than 2.3.0" and
|
2018-12-10 15:55:11 +01:00
|
|
|
# "zypper vcmp 2.2.99 2.3b6" show "2.2.99 is older than 2.3b6" so that
|
2017-12-20 12:43:22 +01:00
|
|
|
# version upgrades from 2.2.x via 2.3.b* to 2.3.0 work:
|
2022-05-30 10:55:44 +02:00
|
|
|
Version: 2.4.2
|
2015-02-16 16:27:41 +01:00
|
|
|
Release: 0
|
|
|
|
Summary: The Common UNIX Printing System
|
2017-12-20 17:43:16 +01:00
|
|
|
License: Apache-2.0
|
2015-02-16 16:27:41 +01:00
|
|
|
Group: Hardware/Printing
|
2021-04-20 11:14:33 +02:00
|
|
|
URL: https://openprinting.github.io/cups
|
2021-03-31 11:01:50 +02:00
|
|
|
# To get Source0 go to https://github.com/OpenPrinting/cups/releases or use e.g.
|
2022-05-30 10:55:44 +02:00
|
|
|
# wget --no-check-certificate -O cups-2.4.2-source.tar.gz https://github.com/OpenPrinting/cups/releases/download/v2.4.2/cups-2.4.2-source.tar.gz
|
|
|
|
Source0: https://github.com/OpenPrinting/cups/releases/download/v2.4.2/cups-2.4.2-source.tar.gz
|
2021-03-31 11:01:50 +02:00
|
|
|
# To get Source1 go to https://github.com/OpenPrinting/cups/releases or use e.g.
|
2022-05-30 10:55:44 +02:00
|
|
|
# wget --no-check-certificate -O cups-2.4.2-source.tar.gz.sig https://github.com/OpenPrinting/cups/releases/download/v2.4.2/cups-2.4.2-source.tar.gz.sig
|
|
|
|
Source1: https://github.com/OpenPrinting/cups/releases/download/v2.4.2/cups-2.4.2-source.tar.gz.sig
|
2022-03-04 09:58:18 +01:00
|
|
|
# To make Source2 use e.g.
|
|
|
|
# gpg --keyserver keys.openpgp.org --recv-keys 7082A0A50A2E92640F3880E0E4522DCC9B246FF7
|
|
|
|
# gpg --export --armor 7082A0A50A2E92640F3880E0E4522DCC9B246FF7 >cups.keyring
|
Accepting request 958348 from home:ajoga:branches:openSUSE:Factory
- Version upgrade to 2.4.1
- Dropped patch upstream_pull_174 because it it is included in this release
- Dropped patch cups-2.1.0-cups-systemd-socket.patch because it it is included in this release (https://github.com/OpenPrinting/cups/commit/e96e96b4bd0d4e6f634bbb66b95d6e475501541c)
- Changed upstream source packages signing key (https://github.com/OpenPrinting/cups/discussions/327#discussioncomment-2060579)
- Re-enabled testsuite
* Also removed make check because since upstream change the two target are identical (https://github.com/OpenPrinting/cups/commit/96ba46ebc818b610b0e40cbc9d62ef1dcd3ec9b6#diff-76ed074a9305c04054cdebb9e9aad2d818052b07091de1f20cad0bbac34ffb52R239)
- Changed cups-2.1.0-cups-systemd-socket.patch to accomodate new coding style
- Changed cups-config-libs.orig to accommodate recent code changes (SSL->TLS)
- Changed cups-2.1.0-default-webcontent-path.patch to accommodate code changes
old: Printing/cups
new: home:ajoga:branches:openSUSE:Factory/cups rev None
Index: cups-2.1.0-default-webcontent-path.patch
===================================================================
--- cups-2.1.0-default-webcontent-path.patch (revision 380)
+++ cups-2.1.0-default-webcontent-path.patch (revision 2)
@@ -1,17 +1,21 @@
---- config-scripts/cups-directories.m4.orig 2014-03-21 17:42:53.000000000 +0100
-+++ config-scripts/cups-directories.m4 2015-09-01 11:08:43.000000000 +0200
-@@ -206,11 +206,11 @@ fi
- AC_SUBST(MENUDIR)
+--- config-scripts/cups-directories.m4
++++ config-scripts/cups-directories.m4.orig
+@@ -166,15 +166,15 @@ AS_IF([test "x$menudir" = x], [
+ AC_SUBST([MENUDIR])
# Documentation files
--AC_ARG_WITH(docdir, [ --with-docdir set path for documentation],docdir="$withval",docdir="")
-+AC_ARG_WITH(docdir, [ --with-docdir set path and DocumentRoot directive for web content, default=datadir/cups/webcontent],docdir="$withval",docdir="")
+-AC_ARG_WITH([docdir], AS_HELP_STRING([--with-docdir], [set path for documentation]), [
++AC_ARG_WITH([docdir], AS_HELP_STRING([--with-docdir], [set path and DocumentRoot directive for web content, default=datadir/cups/webcontent]), [
+ docdir="$withval"
+ ], [
+ docdir=""
+ ])
- if test x$docdir = x; then
-- CUPS_DOCROOT="$datadir/doc/cups"
-- docdir="$datadir/doc/cups"
-+ CUPS_DOCROOT="$datadir/cups/webcontent"
-+ docdir="$datadir/cups/webcontent"
- else
- CUPS_DOCROOT="$docdir"
- fi
+ AS_IF([test x$docdir = x], [
+- CUPS_DOCROOT="$datadir/doc/cups"
+- docdir="$datadir/doc/cups"
++ CUPS_DOCROOT="$datadir/cups/webcontent"
++ docdir="$datadir/cups/webcontent"
+ ], [
+ CUPS_DOCROOT="$docdir"
+ ])
Index: cups-config-libs.patch
===================================================================
--- cups-config-libs.patch (revision 380)
+++ cups-config-libs.patch (revision 2)
@@ -4,7 +4,7 @@
# flags for compiler and linker...
CFLAGS=""
LDFLAGS="@EXPORT_LDFLAGS@"
--LIBS="@LIBGSSAPI@ @DNSSDLIBS@ @EXPORT_SSLLIBS@ @LIBZ@ @LIBS@"
+-LIBS="@LIBGSSAPI@ @DNSSDLIBS@ @EXPORT_TLSLIBS@ @LIBZ@ @LIBS@"
+LIBS=""
# Check for local invocation...
Index: cups.changes
===================================================================
--- cups.changes (revision 380)
+++ cups.changes (revision 2)
@@ -1,4 +1,88 @@
-------------------------------------------------------------------
+Tue Mar 1 18:16:11 UTC 2022 - Aurélien Joga <aurelienjoga@gmail.com>
+
+- Version upgrade to 2.4.1:
+ * The default color mode now is now configurable and defaults to the printer's reported default mode (Issue #277)
+ * Configuration script now checks linking for -Wl,-pie flags (Issue #303)
+ * Fixed memory leaks - in testi18n (Issue #313), in cups_enum_dests() (Issue #317), in _cupsEncodeOption() and http_tls_upgrade() (Issue #322)
+ * Fixed missing bracket in de/index.html (Issue #299)
+ * Fixed typos in configuration scripts (Issues #304, #316)
+ * Removed remaining legacy code for RIP_MAX_CACHE environment variable (Issue #323)
+ * Removed deprecated directives from cupsctl and cups-files.conf (Issue #300)
+ * Removed purge-jobs legacy code from CGI scripts and templates (Issue #325)
+ * Added configure option --with-idle-exit-timeout (Issue #294)
+ * Added --with-systemd-timeoutstartsec configure option (Issue #298)
+ * DigestOptions now are applied for MD5 Digest authentication defined by RFC 2069 as well (Issue #287)
+ * Fixed compilation on Solaris (Issue #293)
+ * Fixed and improved German translations (Issue #296, Issue #297)
+ * Added warning and debug messages when loading printers if the queue is raw or with driver (Issue #286)
+ * Compilation now uses -fstack-protector-strong if available (Issue #285)
+ * Added support for CUPS running in a Snapcraft snap.
+ * Added basic OAuth 2.0 client support (Issue #100)
+ * Added support for AirPrint and Mopria clients (Issue #105)
+ * Added configure support for specifying systemd dependencies in the CUPS service file (Issue #144)
+ * Added several features and improvements to ipptool (Issue #153)
+ * Added a JSON output mode for ipptool.
+ * The ipptool command now correctly reports an error when a test file cannot be found.
+ * CUPS library now uses thread safe getpwnam_r and getpwuid_r functions (Issue #274)
+ * Fixed Kerberos authentication for the web interface (Issue #19)
+ * The ZPL sample driver now supports more "standard" label sizes (Issue #70)
+ * Fixed reporting of printer instances when enumerating and when no options are set for the main instance (Issue #71)
+ * Reverted USB read limit enforcement change from CUPS 2.2.12 (Issue #72)
+ * The IPP backend did not return the correct status code when a job was canceled at the printer/server (Issue #74)
+ * The testlang unit test program now loops over all of the available locales by default (Issue #85)
+ * The cupsfilter command now shows error messages when options are used incorrectly (Issue #88)
+ * The PPD functions now treat boolean values as case-insensitive (Issue #106)
+ * Temporary queue names no longer end with an underscore (Issue #110)
+ * The USB backend now runs as root (Issue #121)
+ * Added pkg-config file for libcups (Issue #122)
+ * Fixed a PPD memory leak caused by emulator definitions (Issue #124)
+ * Fixed a DISPLAY bug in ipptool (Issue #139)
+ * The scheduler now includes the [Job N] prefix for job log messages, even when using syslog logging (Issue #154)
+ * Added support for locales using the GB18030 character set (Issue #159)
+ * httpReconnect2 did not reset the socket file descriptor when the TLS negotiation failed (Apple #5907)
+ * httpUpdate did not reset the socket file descriptor when the TLS negotiation failed (Apple #5915)
+ * The IPP backend now retries Validate-Job requests (Issue #132)
+ * Now show better error messages when a driver interface program fails to provide a PPD file (Issue #148)
+ * Added dark mode support to the CUPS web interface (Issue #152)
+ * Added a workaround for Solaris in httpAddrConnect2 (Issue #156)
+ * Fixed an interaction between --remote-admin and --remote-any for the cupsctl command (Issue #158)
+ * Now use a 60 second timeout for reading USB backchannel data (Issue #160)
+ * The USB backend now tries harder to find a serial number (Issue #170)
+ * Fixed @IF(name) handling in cupsd.conf (Apple #5918)
+ * Fixed documentation and added examples for CUPS' limited CGI support (Apple #5940)
+ * Fixed the lpc command prompt (Apple #5946)
+ * Now always pass "localhost" in the Host: header when talking over a domain socket or the loopback interface (Issue #185)
+ * Fixed a job history update issue in the scheduler (Issue #187)
+ * Fixed job-pages-per-set value for duplex print jobs.
+ * Fixed an edge case in ippReadIO to make sure that only complete attributes and values are retained on an error (Issue #195)
+ * Hardened ippReadIO to prevent invalid IPP messages from being propagated (Issue #195, Issue #196)
+ * The scheduler now supports the "everywhere" model directly (Issue #201)
+ * Fixed some IPP Everywhere option mapping problems (Issue #238)
+ * Fixed support for "job-hold-until" with the Restart-Job operation (Issue #250)
+ * Fixed the default color/grayscale presets for IPP Everywhere PPDs (Issue #262)
+ * Fixed support for the 'offline-report' state for all USB backends (Issue #264)
+ * Documentation fixes (Issue #92, Issue #163, Issue #177, Issue #184)
+ * Localization updates (Issue #123, Issue #129, Issue #134, Issue #146, Issue #164)
+ * USB quirk updates (Issue #192, Issue #270, Apple #5766, Apple #5838, Apple #5843, Apple #5867)
+ * Web interface updates (Issue #142, Issue #218)
+ * The ippeveprinter tool now automatically uses an available port.
+ * Fixed several Windows TLS and hashing issues.
+ * Deprecated cups-config (Issue #97)
+ * Deprecated Kerberos (AuthType Negotiate) authentication (Issue #98)
+ * Removed support for the (long deprecated and unused) FontPath, ListenBackLog, LPDConfigFile, KeepAliveTimeout, RIPCache, and SMBConfigFile directives in cupsd.conf and cups-files.conf.
+ * Stubbed out deprecated httpMD5 functions.
+ * Add test for undefined page ranges during printing.
+- Dropped patch upstream_pull_174 because it it is included in this release
+- Dropped patch cups-2.1.0-cups-systemd-socket.patch because it it is included in this release (https://github.com/OpenPrinting/cups/commit/e96e96b4bd0d4e6f634bbb66b95d6e475501541c)
+- Changed upstream source packages signing key (https://github.com/OpenPrinting/cups/discussions/327#discussioncomment-2060579)
+- Re-enabled testsuite
+ * Also removed make check because since upstream change the two target are identical (https://github.com/OpenPrinting/cups/commit/96ba46ebc818b610b0e40cbc9d62ef1dcd3ec9b6#diff-76ed074a9305c04054cdebb9e9aad2d818052b07091de1f20cad0bbac34ffb52R239)
+- Changed cups-2.1.0-cups-systemd-socket.patch to accomodate new coding style
+- Changed cups-config-libs.orig to accommodate recent code changes (SSL->TLS)
+- Changed cups-2.1.0-default-webcontent-path.patch to accommodate code changes
+
+-------------------------------------------------------------------
Tue Feb 1 09:18:27 UTC 2022 - jsmeix@suse.de
- Enhanced harden_cups.service.patch by adding
Index: cups.keyring
===================================================================
Binary files cups.keyring (revision 380) and cups.keyring (revision 2) differ
Index: cups.spec
===================================================================
--- cups.spec (revision 380)
+++ cups.spec (revision 2)
@@ -18,9 +18,7 @@
# Cf. https://rpm.org/user_doc/conditional_builds.html
# by default enable testsuite (i.e. in the 'check' section run make check and make test)
-#bcond_without testsuite
-# disable testsuite for now until https://github.com/OpenPrinting/cups/issues/155 is fixed
-%bcond_with testsuite
+%bcond_without testsuite
# _tmpfilesdir is not defined in systemd macros up to openSUSE 13.2
%{!?_tmpfilesdir: %global _tmpfilesdir /usr/lib/tmpfiles.d }
@@ -29,34 +27,32 @@
# "zypper vcmp 2.3.b99 2.3.0" shows "2.3.b99 is older than 2.3.0" and
# "zypper vcmp 2.2.99 2.3b6" show "2.2.99 is older than 2.3b6" so that
# version upgrades from 2.2.x via 2.3.b* to 2.3.0 work:
-Version: 2.3.3op2
+Version: 2.4.1
Release: 0
Summary: The Common UNIX Printing System
License: Apache-2.0
Group: Hardware/Printing
URL: https://openprinting.github.io/cups
# To get Source0 go to https://github.com/OpenPrinting/cups/releases or use e.g.
-# wget --no-check-certificate -O cups-2.3.3op2-source.tar.gz https://github.com/OpenPrinting/cups/releases/download/v2.3.3op2/cups-2.3.3op2-source.tar.gz
-Source0: https://github.com/OpenPrinting/cups/releases/download/v2.3.3op2/cups-2.3.3op2-source.tar.gz
+# wget --no-check-certificate -O cups-2.4.1-source.tar.gz https://github.com/OpenPrinting/cups/releases/download/v2.4.1/cups-2.4.1-source.tar.gz
+Source0: https://github.com/OpenPrinting/cups/releases/download/v2.4.1/cups-2.4.1-source.tar.gz
# To get Source1 go to https://github.com/OpenPrinting/cups/releases or use e.g.
-# wget --no-check-certificate -O cups-2.3.3op2-source.tar.gz.sig https://github.com/OpenPrinting/cups/releases/download/v2.3.3op2/cups-2.3.3op2-source.tar.gz.sig
-Source1: https://github.com/OpenPrinting/cups/releases/download/v2.3.3op2/cups-2.3.3op2-source.tar.gz.sig
-# To get Source2 go to https://www.msweet.org/pgp.html
-# PGP Fingerprint: 845464660B686AAB36540B6F999559A027815955
+# wget --no-check-certificate -O cups-2.4.1-source.tar.gz.sig https://github.com/OpenPrinting/cups/releases/download/v2.4.1/cups-2.4.1-source.tar.gz.sig
+Source1: https://github.com/OpenPrinting/cups/releases/download/v2.4.1/cups-2.4.1-source.tar.gz.sig
+# To get Source2 use gpg --keyserver keys.openpgp.org --recv-keys 7082A0A50A2E92640F3880E0E4522DCC9B246FF7
+# See https://github.com/OpenPrinting/cups/discussions/327#discussioncomment-2060579
+# PGP Fingerprint: 7082A0A50A2E92640F3880E0E4522DCC9B246FF7
Source2: cups.keyring
# To manually verify Source0 with Source1 and Source2 do e.g.
# gpg --import cups.keyring
-# gpg --list-keys | grep -1 'Michael R Sweet' | grep -v 'expired'
-# gpg --verify cups-2.3.3op2-source.tar.gz.sig cups-2.3.3op2-source.tar.gz
+# gpg --list-keys | grep -1 'Zdenek Dohnal'
+# gpg --verify cups-2.4.1-source.tar.gz.sig cups-2.4.1-source.tar.gz
Source102: Postscript.ppd.gz
Source105: Postscript-level1.ppd.gz
Source106: Postscript-level2.ppd.gz
Source108: cups-client.conf
Source109: baselibs.conf
# Patch0...Patch9 is for patches from upstream:
-# Patch1 upstream_pull_174.patch is https://github.com/OpenPrinting/cups/pull/174
-# Use 60s timeout for read_thread, revert read limits
-Patch1: upstream_pull_174.patch
# Source10...Source99 is for sources from SUSE which are intended for upstream:
# Patch10...Patch99 is for patches from SUSE which are intended for upstream:
# Patch10 cups-2.1.0-choose-uri-template.patch adds 'smb://...' URIs to templates/choose-uri.tmpl:
@@ -66,8 +62,6 @@
# because the files of the CUPS web content are no documentation, see CUPS STR #3578
# and http://bugzilla.novell.com/show_bug.cgi?id=546023#c6 and subsequent comments:
Patch11: cups-2.1.0-default-webcontent-path.patch
-# Patch12 cups-2.1.0-cups-systemd-socket.patch Use systemd socket activation properly:
-Patch12: cups-2.1.0-cups-systemd-socket.patch
# Patch100...Patch999 is for private patches from SUSE which are not intended for upstream:
# Patch100 cups-pam.diff adds conf/pam.suse regarding support for PAM for SUSE:
Patch100: cups-pam.diff
@@ -83,9 +77,9 @@
Patch103: cups-1.4-do_not_strip_recommended_from_PPDs.patch
# Patch104 cups-config-libs.patch fixes option --libs in cups-config script:
Patch104: cups-config-libs.patch
-# Patch106 Fixes web UI Kerberos authentication (bsc#1175960)
-Patch106: fix-negotiate-authentication-between-CGIs-and-scheduler.patch
Patch107: harden_cups.service.patch
+# Patch108 downgrades the autoconf requirement to the autoconf available in tumbleweed as of writing
+Patch108: downgrade-autoconf-requirement.patch
# Build Requirements:
BuildRequires: dbus-1-devel
BuildRequires: fdupes
@@ -280,9 +274,6 @@
%prep
%setup -q
# Patch0...Patch9 is for patches from upstream:
-# Patch1 upstream_pull_174.patch is https://github.com/OpenPrinting/cups/pull/174
-# Use 60s timeout for read_thread, revert read limits
-%patch1 -p1
# Patch10...Patch99 is for patches from SUSE which are intended for upstream:
# Patch10 cups-2.1.0-choose-uri-template.patch adds 'smb://...' URIs to templates/choose-uri.tmpl:
%patch10 -b choose-uri-template.orig
@@ -291,8 +282,6 @@
# because the files of the CUPS web content are no documentation, see CUPS STR #3578
# and http://bugzilla.novell.com/show_bug.cgi?id=546023#c6 and subsequent comments:
%patch11 -b default-webcontent-path.orig
-# Patch12 cups-2.1.0-cups-systemd-socket.patch Use systemd socket activation properly:
-#patch12 -b cups-systemd-socket.orig
# Patch100...Patch999 is for private patches from SUSE which are not intended for upstream:
# Patch100 cups-pam.diff adds conf/pam.suse regarding support for PAM for SUSE:
%patch100 -b cups-pam.orig
@@ -308,9 +297,8 @@
%patch103 -b do_not_strip_recommended_from_PPDs.orig
# Patch104 cups-config-libs.patch fixes option --libs in cups-config script:
%patch104 -b cups-config-libs.orig
-# Patch106 Fixes web UI Kerberos authentication (bsc#1175960)
-%patch106 -p1
%patch107 -p1
+%patch108 -p1
%build
# Remove ".SILENT" rule for verbose build output
@@ -439,8 +427,6 @@
# There appears to be some kind of race condition when running make check and make test
# cf. https://github.com/OpenPrinting/cups/issues/155
# We print all logs for debugging purposes if either testsuite fails
-echo "DEBUG: running make check"
-bash -c 'make %{?_smp_mflags} check; EXIT=$?; if [ $EXIT -ne 0 ]; then cat test/*_log*-$(whoami); fi; exit $EXIT'
echo "DEBUG: running make test"
bash -c 'make %{?_smp_mflags} test; EXIT=$?; if [ $EXIT -ne 0 ]; then cat test/*_log*-$(whoami); fi; exit $EXIT'
%else
@@ -681,6 +667,7 @@
%files devel
%defattr(-,root,root)
+/usr/lib/pkgconfig/cups.pc
%{_includedir}/cups/
%{_libdir}/libcups.so
%{_libdir}/libcupsimage.so
Index: cups-2.4.1-source.tar.gz
===================================================================
Binary file cups-2.4.1-source.tar.gz (revision 2) added
Index: cups-2.4.1-source.tar.gz.sig
===================================================================
Binary file cups-2.4.1-source.tar.gz.sig (revision 2) added
Index: downgrade-autoconf-requirement.patch
===================================================================
--- downgrade-autoconf-requirement.patch (added)
+++ downgrade-autoconf-requirement.patch (revision 2)
@@ -0,0 +1,15 @@
+diff --git a/configure.ac b/configure.ac
+index a8c6c1040..6ace74a8d 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -9,8 +9,8 @@ dnl Licensed under Apache License v2.0. See the file "LICENSE" for more
+ dnl information.
+ dnl
+
+-dnl We need at least autoconf 2.71...
+-AC_PREREQ([2.71])
++dnl We need at least autoconf 2.69...
++AC_PREREQ([2.69])
+
+ dnl Package name and version...
+ AC_INIT([CUPS],[2.4.1],[https://github.com/openprinting/cups/issues],[cups],[https://openprinting.github.io/cups])
Index: cups-2.1.0-cups-systemd-socket.patch
===================================================================
--- cups-2.1.0-cups-systemd-socket.patch (revision 380)
+++ cups-2.1.0-cups-systemd-socket.patch (deleted)
@@ -1,43 +0,0 @@
---- scheduler/main.c.orig 2015-06-08 20:32:35.000000000 +0200
-+++ scheduler/main.c 2015-09-01 11:19:36.000000000 +0200
-@@ -656,7 +656,15 @@ main(int argc, /* I - Number of comm
-
- #if defined(HAVE_LAUNCHD) || defined(HAVE_SYSTEMD)
- if (OnDemand)
-+ {
- cupsdAddEvent(CUPSD_EVENT_SERVER_STARTED, NULL, NULL, "Scheduler started on demand.");
-+# ifdef HAVE_SYSTEMD
-+ sd_notifyf(0, "READY=1\n"
-+ "STATUS=Scheduler is running...\n"
-+ "MAINPID=%lu",
-+ (unsigned long) getpid());
-+# endif /* HAVE_SYSTEMD */
-+ }
- else
- #endif /* HAVE_LAUNCHD || HAVE_SYSTEMD */
- if (fg)
---- scheduler/org.cups.cupsd.path.in.orig 2014-03-21 15:50:24.000000000 +0100
-+++ scheduler/org.cups.cupsd.path.in 2015-09-01 11:20:37.000000000 +0200
-@@ -3,6 +3,7 @@ Description=CUPS Scheduler
-
- [Path]
- PathExists=@CUPS_CACHEDIR@/org.cups.cupsd
-+PathExistsGlob=@CUPS_REQUESTS@/d*
-
- [Install]
- WantedBy=multi-user.target
---- scheduler/org.cups.cupsd.service.in.orig 2014-10-21 13:54:05.000000000 +0200
-+++ scheduler/org.cups.cupsd.service.in 2015-09-01 11:22:09.000000000 +0200
-@@ -1,10 +1,11 @@
- [Unit]
- Description=CUPS Scheduler
- Documentation=man:cupsd(8)
-+After=network.target
-
- [Service]
- ExecStart=@sbindir@/cupsd -l
--Type=simple
-+Type=notify
-
- [Install]
- Also=org.cups.cupsd.socket org.cups.cupsd.path
Index: cups-2.3.3op2-source.tar.gz
===================================================================
Binary file cups-2.3.3op2-source.tar.gz (revision 380) deleted
Index: cups-2.3.3op2-source.tar.gz.sig
===================================================================
Binary file cups-2.3.3op2-source.tar.gz.sig (revision 380) deleted
Index: fix-negotiate-authentication-between-CGIs-and-scheduler.patch
===================================================================
--- fix-negotiate-authentication-between-CGIs-and-scheduler.patch (revision 380)
+++ fix-negotiate-authentication-between-CGIs-and-scheduler.patch (deleted)
@@ -1,223 +0,0 @@
-From d4521ed0df7e625ccf2bc079bab6f48c46ef9bf9 Mon Sep 17 00:00:00 2001
-From: Samuel Cabrero <scabrero@suse.de>
-Date: Mon, 26 Oct 2020 17:35:22 +0100
-Subject: [PATCH 1/4] Avoid infinite loop in admin.cgi when negotiate is used
-
-SetAuthorizationString with NULL argument sets an empty string.
-
-Related: #5596
-
-Signed-off-by: Samuel Cabrero <scabrero@suse.de>
----
- cups/auth.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/cups/auth.c b/cups/auth.c
-index db45bbba6..f2409350a 100644
---- a/cups/auth.c
-+++ b/cups/auth.c
-@@ -295,7 +295,7 @@ cupsDoAuthentication(
- }
- }
-
-- if (http->authstring)
-+ if (http->authstring && http->authstring[0])
- {
- DEBUG_printf(("1cupsDoAuthentication: authstring=\"%s\".", http->authstring));
-
---
-2.30.2
-
-
-From 61ad7780bc7d0593e3225d088ac6dff31badf801 Mon Sep 17 00:00:00 2001
-From: Samuel Cabrero <scabrero@suse.de>
-Date: Tue, 27 Oct 2020 16:11:41 +0100
-Subject: [PATCH 2/4] Add cups_is_local_connection() to check if connection is
- to localhost
-
-Related: #5596
-
-Signed-off-by: Samuel Cabrero <scabrero@suse.de>
----
- cups/auth.c | 11 ++++++++++-
- 1 file changed, 10 insertions(+), 1 deletion(-)
-
-diff --git a/cups/auth.c b/cups/auth.c
-index f2409350a..d2956438d 100644
---- a/cups/auth.c
-+++ b/cups/auth.c
-@@ -90,6 +90,7 @@ static void cups_gss_printf(OM_uint32 major_status, OM_uint32 minor_status,
- # define cups_gss_printf(major, minor, message)
- # endif /* DEBUG */
- #endif /* HAVE_GSSAPI */
-+static int cups_is_local_connection(http_t *http);
- static int cups_local_auth(http_t *http);
-
-
-@@ -916,6 +917,14 @@ cups_gss_printf(OM_uint32 major_status,/* I - Major status code */
- # endif /* DEBUG */
- #endif /* HAVE_GSSAPI */
-
-+static int /* O - 0 if not a local connection */
-+ /* 1 if local connection */
-+cups_is_local_connection(http_t *http) /* I - HTTP connection to server */
-+{
-+ if (!httpAddrLocalhost(http->hostaddr) && _cups_strcasecmp(http->hostname, "localhost") != 0)
-+ return 0;
-+ return 1;
-+}
-
- /*
- * 'cups_local_auth()' - Get the local authorization certificate if
-@@ -958,7 +967,7 @@ cups_local_auth(http_t *http) /* I - HTTP connection to server */
- * See if we are accessing localhost...
- */
-
-- if (!httpAddrLocalhost(http->hostaddr) && _cups_strcasecmp(http->hostname, "localhost") != 0)
-+ if (!cups_is_local_connection(http))
- {
- DEBUG_puts("8cups_local_auth: Not a local connection!");
- return (1);
---
-2.30.2
-
-
-From f629d079750a86b1b605c285f99c0dea3933ca50 Mon Sep 17 00:00:00 2001
-From: Samuel Cabrero <scabrero@suse.de>
-Date: Tue, 27 Oct 2020 16:23:30 +0100
-Subject: [PATCH 3/4] Try local kerberos ccache credentials only for remote
- servers
-
-If connecting to localhost then proceed to ask the client for the
-authorization using cupsGetPassword2. The get password callback will
-return 401 to the client with WWW-Authenticate: Negotiate.
-
-Fixes: #5596
-
-Signed-off-by: Samuel Cabrero <scabrero@suse.de>
----
- cups/auth.c | 10 ++++++----
- 1 file changed, 6 insertions(+), 4 deletions(-)
-
-diff --git a/cups/auth.c b/cups/auth.c
-index d2956438d..9661657fc 100644
---- a/cups/auth.c
-+++ b/cups/auth.c
-@@ -175,10 +175,10 @@ cupsDoAuthentication(
- DEBUG_printf(("2cupsDoAuthentication: Trying scheme \"%s\"...", scheme));
-
- #ifdef HAVE_GSSAPI
-- if (!_cups_strcasecmp(scheme, "Negotiate"))
-+ if (!_cups_strcasecmp(scheme, "Negotiate") && !cups_is_local_connection(http))
- {
- /*
-- * Kerberos authentication...
-+ * Kerberos authentication to remote server...
- */
-
- int gss_status; /* Auth status */
-@@ -202,7 +202,9 @@ cupsDoAuthentication(
- }
- else
- #endif /* HAVE_GSSAPI */
-- if (_cups_strcasecmp(scheme, "Basic") && _cups_strcasecmp(scheme, "Digest"))
-+ if (_cups_strcasecmp(scheme, "Basic") &&
-+ _cups_strcasecmp(scheme, "Digest") &&
-+ _cups_strcasecmp(scheme, "Negotiate"))
- {
- /*
- * Other schemes not yet supported...
-@@ -216,7 +218,7 @@ cupsDoAuthentication(
- * See if we should retry the current username:password...
- */
-
-- if ((http->digest_tries > 1 || !http->userpass[0]) && (!_cups_strcasecmp(scheme, "Basic") || (!_cups_strcasecmp(scheme, "Digest"))))
-+ if (http->digest_tries > 1 || !http->userpass[0])
- {
- /*
- * Nope - get a new password from the user...
---
-2.30.2
-
-
-From 0563a28b18b21d5574a5e0e38b74246146074bbf Mon Sep 17 00:00:00 2001
-From: Samuel Cabrero <scabrero@suse.de>
-Date: Tue, 27 Oct 2020 16:18:03 +0100
-Subject: [PATCH 4/4] Allow Local authentication for Negotiate
-
-PeerCred is also possible if address family is AF_LOCAL. This will allow
-the CGI programs to generate the authorization from the local
-certificates based on PID also when Negotiate is used for local
-connections:
-
-Client CGI
-Browser <- Remote conn -> admin.cgi <--- Localhost conn ---> Scheduler
- | | |
- + --- HTTP/POST /admin/ --> | |
- | + --- CUPS-Get-Devices ------------> |
- | | |
- | | <-- 401 Unauthorized --------------+
- | | WWW-Authenticate: |
- | | Negotiate, (PeerCred,) Local |
- | | |
- | <-- 401 Unauthorized -----+ |
- | WWW-Authenticate: | |
- | Negotiate | |
- | | |
- | --- HTTP/POST /admin/ --> | |
- | Authorization: + --- IPP CUPS-GetDevices ---------> |
- | Negotiate | Authorization: Local <cert> |
- | | |
-
-Fixes: #5596
-
-Signed-off-by: Samuel Cabrero <scabrero@suse.de>
----
- cups/auth.c | 5 -----
- scheduler/client.c | 9 ++-------
- 2 files changed, 2 insertions(+), 12 deletions(-)
-
-diff --git a/cups/auth.c b/cups/auth.c
-index 9661657fc..b6fec6b98 100644
---- a/cups/auth.c
-+++ b/cups/auth.c
-@@ -1043,11 +1043,6 @@ cups_local_auth(http_t *http) /* I - HTTP connection to server */
- }
- # endif /* HAVE_AUTHORIZATION_H */
-
--# ifdef HAVE_GSSAPI
-- if (cups_auth_find(www_auth, "Negotiate"))
-- return (1);
--# endif /* HAVE_GSSAPI */
--
- # if defined(SO_PEERCRED) && defined(AF_LOCAL)
- /*
- * See if we can authenticate using the peer credentials provided over a
-diff --git a/scheduler/client.c b/scheduler/client.c
-index c2ee8f12a..56797d58d 100644
---- a/scheduler/client.c
-+++ b/scheduler/client.c
-@@ -2109,18 +2109,13 @@ cupsdSendHeader(
- }
- else if (auth_type == CUPSD_AUTH_NEGOTIATE)
- {
--#if defined(SO_PEERCRED) && defined(AF_LOCAL)
-- if (httpAddrFamily(httpGetAddress(con->http)) == AF_LOCAL)
-- strlcpy(auth_str, "PeerCred", sizeof(auth_str));
-- else
--#endif /* SO_PEERCRED && AF_LOCAL */
- strlcpy(auth_str, "Negotiate", sizeof(auth_str));
- }
-
-- if (con->best && auth_type != CUPSD_AUTH_NEGOTIATE && !con->is_browser && !_cups_strcasecmp(httpGetHostname(con->http, NULL, 0), "localhost"))
-+ if (con->best && !con->is_browser && !_cups_strcasecmp(httpGetHostname(con->http, NULL, 0), "localhost"))
- {
- /*
-- * Add a "trc" (try root certification) parameter for local non-Kerberos
-+ * Add a "trc" (try root certification) parameter for local
- * requests when the request requires system group membership - then the
- * client knows the root certificate can/should be used.
- *
---
-2.30.2
-
Index: upstream_pull_174.patch
===================================================================
--- upstream_pull_174.patch (revision 380)
+++ upstream_pull_174.patch (deleted)
@@ -1,53 +0,0 @@
-From c37d71b1a31d26a4790166e2508822b18934a5c0 Mon Sep 17 00:00:00 2001
-From: Zdenek Dohnal <zdohnal@redhat.com>
-Date: Tue, 13 Apr 2021 15:44:14 +0200
-Subject: [PATCH 1/2] backend/usb-libusb.c: Use 60s timeout for reading at
- backchannel
-
-Some older models malfunction if timeout is too short.
----
- CHANGES.md | 1 +
- backend/usb-libusb.c | 2 +-
- 2 files changed, 2 insertions(+), 1 deletion(-)
-
---- a/backend/usb-libusb.c
-+++ b/backend/usb-libusb.c
-@@ -1704,7 +1704,7 @@ static void *read_thread(void *reference)
- readstatus = libusb_bulk_transfer(g.printer->handle,
- g.printer->read_endp,
- readbuffer, rbytes,
-- &rbytes, 250);
-+ &rbytes, 60000);
- if (readstatus == LIBUSB_SUCCESS && rbytes > 0)
- {
- fprintf(stderr, "DEBUG: Read %d bytes of back-channel data...\n", (int)rbytes);
-
-From 4cb6f6806cdbe040d478b266a1d351b19341dd79 Mon Sep 17 00:00:00 2001
-From: Zdenek Dohnal <zdohnal@redhat.com>
-Date: Tue, 13 Apr 2021 15:47:37 +0200
-Subject: [PATCH 2/2] backend/usb-libusb.c: Revert enforcing read limits
-
-This commit reverts the change introduced by 2.2.12 [1] - its
-implementation caused a regression with Lexmark filters.
-
-[1]
-https://github.com/apple/cups/commit/35e927f83529cd9b4bc37bcd418c50e307fced35
----
- CHANGES.md | 1 +
- backend/usb-libusb.c | 3 ++-
- 2 files changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/backend/usb-libusb.c b/backend/usb-libusb.c
-index fbb0d9d89..89b5182f7 100644
---- a/backend/usb-libusb.c
-+++ b/backend/usb-libusb.c
-@@ -1721,7 +1721,8 @@ static void *read_thread(void *reference)
- * Make sure this loop executes no more than once every 250 miliseconds...
- */
-
-- if ((g.wait_eof || !g.read_thread_stop))
-+ if ((readstatus != LIBUSB_SUCCESS || rbytes == 0) &&
-+ (g.wait_eof || !g.read_thread_stop))
- usleep(250000);
- }
- while (g.wait_eof || !g.read_thread_stop);
OBS-URL: https://build.opensuse.org/request/show/958348
OBS-URL: https://build.opensuse.org/package/show/Printing/cups?expand=0&rev=381
2022-03-03 13:19:05 +01:00
|
|
|
# See https://github.com/OpenPrinting/cups/discussions/327#discussioncomment-2060579
|
|
|
|
# PGP Fingerprint: 7082A0A50A2E92640F3880E0E4522DCC9B246FF7
|
2015-08-21 09:09:25 +02:00
|
|
|
Source2: cups.keyring
|
2018-01-18 11:51:51 +01:00
|
|
|
# To manually verify Source0 with Source1 and Source2 do e.g.
|
|
|
|
# gpg --import cups.keyring
|
Accepting request 958348 from home:ajoga:branches:openSUSE:Factory
- Version upgrade to 2.4.1
- Dropped patch upstream_pull_174 because it it is included in this release
- Dropped patch cups-2.1.0-cups-systemd-socket.patch because it it is included in this release (https://github.com/OpenPrinting/cups/commit/e96e96b4bd0d4e6f634bbb66b95d6e475501541c)
- Changed upstream source packages signing key (https://github.com/OpenPrinting/cups/discussions/327#discussioncomment-2060579)
- Re-enabled testsuite
* Also removed make check because since upstream change the two target are identical (https://github.com/OpenPrinting/cups/commit/96ba46ebc818b610b0e40cbc9d62ef1dcd3ec9b6#diff-76ed074a9305c04054cdebb9e9aad2d818052b07091de1f20cad0bbac34ffb52R239)
- Changed cups-2.1.0-cups-systemd-socket.patch to accomodate new coding style
- Changed cups-config-libs.orig to accommodate recent code changes (SSL->TLS)
- Changed cups-2.1.0-default-webcontent-path.patch to accommodate code changes
old: Printing/cups
new: home:ajoga:branches:openSUSE:Factory/cups rev None
Index: cups-2.1.0-default-webcontent-path.patch
===================================================================
--- cups-2.1.0-default-webcontent-path.patch (revision 380)
+++ cups-2.1.0-default-webcontent-path.patch (revision 2)
@@ -1,17 +1,21 @@
---- config-scripts/cups-directories.m4.orig 2014-03-21 17:42:53.000000000 +0100
-+++ config-scripts/cups-directories.m4 2015-09-01 11:08:43.000000000 +0200
-@@ -206,11 +206,11 @@ fi
- AC_SUBST(MENUDIR)
+--- config-scripts/cups-directories.m4
++++ config-scripts/cups-directories.m4.orig
+@@ -166,15 +166,15 @@ AS_IF([test "x$menudir" = x], [
+ AC_SUBST([MENUDIR])
# Documentation files
--AC_ARG_WITH(docdir, [ --with-docdir set path for documentation],docdir="$withval",docdir="")
-+AC_ARG_WITH(docdir, [ --with-docdir set path and DocumentRoot directive for web content, default=datadir/cups/webcontent],docdir="$withval",docdir="")
+-AC_ARG_WITH([docdir], AS_HELP_STRING([--with-docdir], [set path for documentation]), [
++AC_ARG_WITH([docdir], AS_HELP_STRING([--with-docdir], [set path and DocumentRoot directive for web content, default=datadir/cups/webcontent]), [
+ docdir="$withval"
+ ], [
+ docdir=""
+ ])
- if test x$docdir = x; then
-- CUPS_DOCROOT="$datadir/doc/cups"
-- docdir="$datadir/doc/cups"
-+ CUPS_DOCROOT="$datadir/cups/webcontent"
-+ docdir="$datadir/cups/webcontent"
- else
- CUPS_DOCROOT="$docdir"
- fi
+ AS_IF([test x$docdir = x], [
+- CUPS_DOCROOT="$datadir/doc/cups"
+- docdir="$datadir/doc/cups"
++ CUPS_DOCROOT="$datadir/cups/webcontent"
++ docdir="$datadir/cups/webcontent"
+ ], [
+ CUPS_DOCROOT="$docdir"
+ ])
Index: cups-config-libs.patch
===================================================================
--- cups-config-libs.patch (revision 380)
+++ cups-config-libs.patch (revision 2)
@@ -4,7 +4,7 @@
# flags for compiler and linker...
CFLAGS=""
LDFLAGS="@EXPORT_LDFLAGS@"
--LIBS="@LIBGSSAPI@ @DNSSDLIBS@ @EXPORT_SSLLIBS@ @LIBZ@ @LIBS@"
+-LIBS="@LIBGSSAPI@ @DNSSDLIBS@ @EXPORT_TLSLIBS@ @LIBZ@ @LIBS@"
+LIBS=""
# Check for local invocation...
Index: cups.changes
===================================================================
--- cups.changes (revision 380)
+++ cups.changes (revision 2)
@@ -1,4 +1,88 @@
-------------------------------------------------------------------
+Tue Mar 1 18:16:11 UTC 2022 - Aurélien Joga <aurelienjoga@gmail.com>
+
+- Version upgrade to 2.4.1:
+ * The default color mode now is now configurable and defaults to the printer's reported default mode (Issue #277)
+ * Configuration script now checks linking for -Wl,-pie flags (Issue #303)
+ * Fixed memory leaks - in testi18n (Issue #313), in cups_enum_dests() (Issue #317), in _cupsEncodeOption() and http_tls_upgrade() (Issue #322)
+ * Fixed missing bracket in de/index.html (Issue #299)
+ * Fixed typos in configuration scripts (Issues #304, #316)
+ * Removed remaining legacy code for RIP_MAX_CACHE environment variable (Issue #323)
+ * Removed deprecated directives from cupsctl and cups-files.conf (Issue #300)
+ * Removed purge-jobs legacy code from CGI scripts and templates (Issue #325)
+ * Added configure option --with-idle-exit-timeout (Issue #294)
+ * Added --with-systemd-timeoutstartsec configure option (Issue #298)
+ * DigestOptions now are applied for MD5 Digest authentication defined by RFC 2069 as well (Issue #287)
+ * Fixed compilation on Solaris (Issue #293)
+ * Fixed and improved German translations (Issue #296, Issue #297)
+ * Added warning and debug messages when loading printers if the queue is raw or with driver (Issue #286)
+ * Compilation now uses -fstack-protector-strong if available (Issue #285)
+ * Added support for CUPS running in a Snapcraft snap.
+ * Added basic OAuth 2.0 client support (Issue #100)
+ * Added support for AirPrint and Mopria clients (Issue #105)
+ * Added configure support for specifying systemd dependencies in the CUPS service file (Issue #144)
+ * Added several features and improvements to ipptool (Issue #153)
+ * Added a JSON output mode for ipptool.
+ * The ipptool command now correctly reports an error when a test file cannot be found.
+ * CUPS library now uses thread safe getpwnam_r and getpwuid_r functions (Issue #274)
+ * Fixed Kerberos authentication for the web interface (Issue #19)
+ * The ZPL sample driver now supports more "standard" label sizes (Issue #70)
+ * Fixed reporting of printer instances when enumerating and when no options are set for the main instance (Issue #71)
+ * Reverted USB read limit enforcement change from CUPS 2.2.12 (Issue #72)
+ * The IPP backend did not return the correct status code when a job was canceled at the printer/server (Issue #74)
+ * The testlang unit test program now loops over all of the available locales by default (Issue #85)
+ * The cupsfilter command now shows error messages when options are used incorrectly (Issue #88)
+ * The PPD functions now treat boolean values as case-insensitive (Issue #106)
+ * Temporary queue names no longer end with an underscore (Issue #110)
+ * The USB backend now runs as root (Issue #121)
+ * Added pkg-config file for libcups (Issue #122)
+ * Fixed a PPD memory leak caused by emulator definitions (Issue #124)
+ * Fixed a DISPLAY bug in ipptool (Issue #139)
+ * The scheduler now includes the [Job N] prefix for job log messages, even when using syslog logging (Issue #154)
+ * Added support for locales using the GB18030 character set (Issue #159)
+ * httpReconnect2 did not reset the socket file descriptor when the TLS negotiation failed (Apple #5907)
+ * httpUpdate did not reset the socket file descriptor when the TLS negotiation failed (Apple #5915)
+ * The IPP backend now retries Validate-Job requests (Issue #132)
+ * Now show better error messages when a driver interface program fails to provide a PPD file (Issue #148)
+ * Added dark mode support to the CUPS web interface (Issue #152)
+ * Added a workaround for Solaris in httpAddrConnect2 (Issue #156)
+ * Fixed an interaction between --remote-admin and --remote-any for the cupsctl command (Issue #158)
+ * Now use a 60 second timeout for reading USB backchannel data (Issue #160)
+ * The USB backend now tries harder to find a serial number (Issue #170)
+ * Fixed @IF(name) handling in cupsd.conf (Apple #5918)
+ * Fixed documentation and added examples for CUPS' limited CGI support (Apple #5940)
+ * Fixed the lpc command prompt (Apple #5946)
+ * Now always pass "localhost" in the Host: header when talking over a domain socket or the loopback interface (Issue #185)
+ * Fixed a job history update issue in the scheduler (Issue #187)
+ * Fixed job-pages-per-set value for duplex print jobs.
+ * Fixed an edge case in ippReadIO to make sure that only complete attributes and values are retained on an error (Issue #195)
+ * Hardened ippReadIO to prevent invalid IPP messages from being propagated (Issue #195, Issue #196)
+ * The scheduler now supports the "everywhere" model directly (Issue #201)
+ * Fixed some IPP Everywhere option mapping problems (Issue #238)
+ * Fixed support for "job-hold-until" with the Restart-Job operation (Issue #250)
+ * Fixed the default color/grayscale presets for IPP Everywhere PPDs (Issue #262)
+ * Fixed support for the 'offline-report' state for all USB backends (Issue #264)
+ * Documentation fixes (Issue #92, Issue #163, Issue #177, Issue #184)
+ * Localization updates (Issue #123, Issue #129, Issue #134, Issue #146, Issue #164)
+ * USB quirk updates (Issue #192, Issue #270, Apple #5766, Apple #5838, Apple #5843, Apple #5867)
+ * Web interface updates (Issue #142, Issue #218)
+ * The ippeveprinter tool now automatically uses an available port.
+ * Fixed several Windows TLS and hashing issues.
+ * Deprecated cups-config (Issue #97)
+ * Deprecated Kerberos (AuthType Negotiate) authentication (Issue #98)
+ * Removed support for the (long deprecated and unused) FontPath, ListenBackLog, LPDConfigFile, KeepAliveTimeout, RIPCache, and SMBConfigFile directives in cupsd.conf and cups-files.conf.
+ * Stubbed out deprecated httpMD5 functions.
+ * Add test for undefined page ranges during printing.
+- Dropped patch upstream_pull_174 because it it is included in this release
+- Dropped patch cups-2.1.0-cups-systemd-socket.patch because it it is included in this release (https://github.com/OpenPrinting/cups/commit/e96e96b4bd0d4e6f634bbb66b95d6e475501541c)
+- Changed upstream source packages signing key (https://github.com/OpenPrinting/cups/discussions/327#discussioncomment-2060579)
+- Re-enabled testsuite
+ * Also removed make check because since upstream change the two target are identical (https://github.com/OpenPrinting/cups/commit/96ba46ebc818b610b0e40cbc9d62ef1dcd3ec9b6#diff-76ed074a9305c04054cdebb9e9aad2d818052b07091de1f20cad0bbac34ffb52R239)
+- Changed cups-2.1.0-cups-systemd-socket.patch to accomodate new coding style
+- Changed cups-config-libs.orig to accommodate recent code changes (SSL->TLS)
+- Changed cups-2.1.0-default-webcontent-path.patch to accommodate code changes
+
+-------------------------------------------------------------------
Tue Feb 1 09:18:27 UTC 2022 - jsmeix@suse.de
- Enhanced harden_cups.service.patch by adding
Index: cups.keyring
===================================================================
Binary files cups.keyring (revision 380) and cups.keyring (revision 2) differ
Index: cups.spec
===================================================================
--- cups.spec (revision 380)
+++ cups.spec (revision 2)
@@ -18,9 +18,7 @@
# Cf. https://rpm.org/user_doc/conditional_builds.html
# by default enable testsuite (i.e. in the 'check' section run make check and make test)
-#bcond_without testsuite
-# disable testsuite for now until https://github.com/OpenPrinting/cups/issues/155 is fixed
-%bcond_with testsuite
+%bcond_without testsuite
# _tmpfilesdir is not defined in systemd macros up to openSUSE 13.2
%{!?_tmpfilesdir: %global _tmpfilesdir /usr/lib/tmpfiles.d }
@@ -29,34 +27,32 @@
# "zypper vcmp 2.3.b99 2.3.0" shows "2.3.b99 is older than 2.3.0" and
# "zypper vcmp 2.2.99 2.3b6" show "2.2.99 is older than 2.3b6" so that
# version upgrades from 2.2.x via 2.3.b* to 2.3.0 work:
-Version: 2.3.3op2
+Version: 2.4.1
Release: 0
Summary: The Common UNIX Printing System
License: Apache-2.0
Group: Hardware/Printing
URL: https://openprinting.github.io/cups
# To get Source0 go to https://github.com/OpenPrinting/cups/releases or use e.g.
-# wget --no-check-certificate -O cups-2.3.3op2-source.tar.gz https://github.com/OpenPrinting/cups/releases/download/v2.3.3op2/cups-2.3.3op2-source.tar.gz
-Source0: https://github.com/OpenPrinting/cups/releases/download/v2.3.3op2/cups-2.3.3op2-source.tar.gz
+# wget --no-check-certificate -O cups-2.4.1-source.tar.gz https://github.com/OpenPrinting/cups/releases/download/v2.4.1/cups-2.4.1-source.tar.gz
+Source0: https://github.com/OpenPrinting/cups/releases/download/v2.4.1/cups-2.4.1-source.tar.gz
# To get Source1 go to https://github.com/OpenPrinting/cups/releases or use e.g.
-# wget --no-check-certificate -O cups-2.3.3op2-source.tar.gz.sig https://github.com/OpenPrinting/cups/releases/download/v2.3.3op2/cups-2.3.3op2-source.tar.gz.sig
-Source1: https://github.com/OpenPrinting/cups/releases/download/v2.3.3op2/cups-2.3.3op2-source.tar.gz.sig
-# To get Source2 go to https://www.msweet.org/pgp.html
-# PGP Fingerprint: 845464660B686AAB36540B6F999559A027815955
+# wget --no-check-certificate -O cups-2.4.1-source.tar.gz.sig https://github.com/OpenPrinting/cups/releases/download/v2.4.1/cups-2.4.1-source.tar.gz.sig
+Source1: https://github.com/OpenPrinting/cups/releases/download/v2.4.1/cups-2.4.1-source.tar.gz.sig
+# To get Source2 use gpg --keyserver keys.openpgp.org --recv-keys 7082A0A50A2E92640F3880E0E4522DCC9B246FF7
+# See https://github.com/OpenPrinting/cups/discussions/327#discussioncomment-2060579
+# PGP Fingerprint: 7082A0A50A2E92640F3880E0E4522DCC9B246FF7
Source2: cups.keyring
# To manually verify Source0 with Source1 and Source2 do e.g.
# gpg --import cups.keyring
-# gpg --list-keys | grep -1 'Michael R Sweet' | grep -v 'expired'
-# gpg --verify cups-2.3.3op2-source.tar.gz.sig cups-2.3.3op2-source.tar.gz
+# gpg --list-keys | grep -1 'Zdenek Dohnal'
+# gpg --verify cups-2.4.1-source.tar.gz.sig cups-2.4.1-source.tar.gz
Source102: Postscript.ppd.gz
Source105: Postscript-level1.ppd.gz
Source106: Postscript-level2.ppd.gz
Source108: cups-client.conf
Source109: baselibs.conf
# Patch0...Patch9 is for patches from upstream:
-# Patch1 upstream_pull_174.patch is https://github.com/OpenPrinting/cups/pull/174
-# Use 60s timeout for read_thread, revert read limits
-Patch1: upstream_pull_174.patch
# Source10...Source99 is for sources from SUSE which are intended for upstream:
# Patch10...Patch99 is for patches from SUSE which are intended for upstream:
# Patch10 cups-2.1.0-choose-uri-template.patch adds 'smb://...' URIs to templates/choose-uri.tmpl:
@@ -66,8 +62,6 @@
# because the files of the CUPS web content are no documentation, see CUPS STR #3578
# and http://bugzilla.novell.com/show_bug.cgi?id=546023#c6 and subsequent comments:
Patch11: cups-2.1.0-default-webcontent-path.patch
-# Patch12 cups-2.1.0-cups-systemd-socket.patch Use systemd socket activation properly:
-Patch12: cups-2.1.0-cups-systemd-socket.patch
# Patch100...Patch999 is for private patches from SUSE which are not intended for upstream:
# Patch100 cups-pam.diff adds conf/pam.suse regarding support for PAM for SUSE:
Patch100: cups-pam.diff
@@ -83,9 +77,9 @@
Patch103: cups-1.4-do_not_strip_recommended_from_PPDs.patch
# Patch104 cups-config-libs.patch fixes option --libs in cups-config script:
Patch104: cups-config-libs.patch
-# Patch106 Fixes web UI Kerberos authentication (bsc#1175960)
-Patch106: fix-negotiate-authentication-between-CGIs-and-scheduler.patch
Patch107: harden_cups.service.patch
+# Patch108 downgrades the autoconf requirement to the autoconf available in tumbleweed as of writing
+Patch108: downgrade-autoconf-requirement.patch
# Build Requirements:
BuildRequires: dbus-1-devel
BuildRequires: fdupes
@@ -280,9 +274,6 @@
%prep
%setup -q
# Patch0...Patch9 is for patches from upstream:
-# Patch1 upstream_pull_174.patch is https://github.com/OpenPrinting/cups/pull/174
-# Use 60s timeout for read_thread, revert read limits
-%patch1 -p1
# Patch10...Patch99 is for patches from SUSE which are intended for upstream:
# Patch10 cups-2.1.0-choose-uri-template.patch adds 'smb://...' URIs to templates/choose-uri.tmpl:
%patch10 -b choose-uri-template.orig
@@ -291,8 +282,6 @@
# because the files of the CUPS web content are no documentation, see CUPS STR #3578
# and http://bugzilla.novell.com/show_bug.cgi?id=546023#c6 and subsequent comments:
%patch11 -b default-webcontent-path.orig
-# Patch12 cups-2.1.0-cups-systemd-socket.patch Use systemd socket activation properly:
-#patch12 -b cups-systemd-socket.orig
# Patch100...Patch999 is for private patches from SUSE which are not intended for upstream:
# Patch100 cups-pam.diff adds conf/pam.suse regarding support for PAM for SUSE:
%patch100 -b cups-pam.orig
@@ -308,9 +297,8 @@
%patch103 -b do_not_strip_recommended_from_PPDs.orig
# Patch104 cups-config-libs.patch fixes option --libs in cups-config script:
%patch104 -b cups-config-libs.orig
-# Patch106 Fixes web UI Kerberos authentication (bsc#1175960)
-%patch106 -p1
%patch107 -p1
+%patch108 -p1
%build
# Remove ".SILENT" rule for verbose build output
@@ -439,8 +427,6 @@
# There appears to be some kind of race condition when running make check and make test
# cf. https://github.com/OpenPrinting/cups/issues/155
# We print all logs for debugging purposes if either testsuite fails
-echo "DEBUG: running make check"
-bash -c 'make %{?_smp_mflags} check; EXIT=$?; if [ $EXIT -ne 0 ]; then cat test/*_log*-$(whoami); fi; exit $EXIT'
echo "DEBUG: running make test"
bash -c 'make %{?_smp_mflags} test; EXIT=$?; if [ $EXIT -ne 0 ]; then cat test/*_log*-$(whoami); fi; exit $EXIT'
%else
@@ -681,6 +667,7 @@
%files devel
%defattr(-,root,root)
+/usr/lib/pkgconfig/cups.pc
%{_includedir}/cups/
%{_libdir}/libcups.so
%{_libdir}/libcupsimage.so
Index: cups-2.4.1-source.tar.gz
===================================================================
Binary file cups-2.4.1-source.tar.gz (revision 2) added
Index: cups-2.4.1-source.tar.gz.sig
===================================================================
Binary file cups-2.4.1-source.tar.gz.sig (revision 2) added
Index: downgrade-autoconf-requirement.patch
===================================================================
--- downgrade-autoconf-requirement.patch (added)
+++ downgrade-autoconf-requirement.patch (revision 2)
@@ -0,0 +1,15 @@
+diff --git a/configure.ac b/configure.ac
+index a8c6c1040..6ace74a8d 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -9,8 +9,8 @@ dnl Licensed under Apache License v2.0. See the file "LICENSE" for more
+ dnl information.
+ dnl
+
+-dnl We need at least autoconf 2.71...
+-AC_PREREQ([2.71])
++dnl We need at least autoconf 2.69...
++AC_PREREQ([2.69])
+
+ dnl Package name and version...
+ AC_INIT([CUPS],[2.4.1],[https://github.com/openprinting/cups/issues],[cups],[https://openprinting.github.io/cups])
Index: cups-2.1.0-cups-systemd-socket.patch
===================================================================
--- cups-2.1.0-cups-systemd-socket.patch (revision 380)
+++ cups-2.1.0-cups-systemd-socket.patch (deleted)
@@ -1,43 +0,0 @@
---- scheduler/main.c.orig 2015-06-08 20:32:35.000000000 +0200
-+++ scheduler/main.c 2015-09-01 11:19:36.000000000 +0200
-@@ -656,7 +656,15 @@ main(int argc, /* I - Number of comm
-
- #if defined(HAVE_LAUNCHD) || defined(HAVE_SYSTEMD)
- if (OnDemand)
-+ {
- cupsdAddEvent(CUPSD_EVENT_SERVER_STARTED, NULL, NULL, "Scheduler started on demand.");
-+# ifdef HAVE_SYSTEMD
-+ sd_notifyf(0, "READY=1\n"
-+ "STATUS=Scheduler is running...\n"
-+ "MAINPID=%lu",
-+ (unsigned long) getpid());
-+# endif /* HAVE_SYSTEMD */
-+ }
- else
- #endif /* HAVE_LAUNCHD || HAVE_SYSTEMD */
- if (fg)
---- scheduler/org.cups.cupsd.path.in.orig 2014-03-21 15:50:24.000000000 +0100
-+++ scheduler/org.cups.cupsd.path.in 2015-09-01 11:20:37.000000000 +0200
-@@ -3,6 +3,7 @@ Description=CUPS Scheduler
-
- [Path]
- PathExists=@CUPS_CACHEDIR@/org.cups.cupsd
-+PathExistsGlob=@CUPS_REQUESTS@/d*
-
- [Install]
- WantedBy=multi-user.target
---- scheduler/org.cups.cupsd.service.in.orig 2014-10-21 13:54:05.000000000 +0200
-+++ scheduler/org.cups.cupsd.service.in 2015-09-01 11:22:09.000000000 +0200
-@@ -1,10 +1,11 @@
- [Unit]
- Description=CUPS Scheduler
- Documentation=man:cupsd(8)
-+After=network.target
-
- [Service]
- ExecStart=@sbindir@/cupsd -l
--Type=simple
-+Type=notify
-
- [Install]
- Also=org.cups.cupsd.socket org.cups.cupsd.path
Index: cups-2.3.3op2-source.tar.gz
===================================================================
Binary file cups-2.3.3op2-source.tar.gz (revision 380) deleted
Index: cups-2.3.3op2-source.tar.gz.sig
===================================================================
Binary file cups-2.3.3op2-source.tar.gz.sig (revision 380) deleted
Index: fix-negotiate-authentication-between-CGIs-and-scheduler.patch
===================================================================
--- fix-negotiate-authentication-between-CGIs-and-scheduler.patch (revision 380)
+++ fix-negotiate-authentication-between-CGIs-and-scheduler.patch (deleted)
@@ -1,223 +0,0 @@
-From d4521ed0df7e625ccf2bc079bab6f48c46ef9bf9 Mon Sep 17 00:00:00 2001
-From: Samuel Cabrero <scabrero@suse.de>
-Date: Mon, 26 Oct 2020 17:35:22 +0100
-Subject: [PATCH 1/4] Avoid infinite loop in admin.cgi when negotiate is used
-
-SetAuthorizationString with NULL argument sets an empty string.
-
-Related: #5596
-
-Signed-off-by: Samuel Cabrero <scabrero@suse.de>
----
- cups/auth.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/cups/auth.c b/cups/auth.c
-index db45bbba6..f2409350a 100644
---- a/cups/auth.c
-+++ b/cups/auth.c
-@@ -295,7 +295,7 @@ cupsDoAuthentication(
- }
- }
-
-- if (http->authstring)
-+ if (http->authstring && http->authstring[0])
- {
- DEBUG_printf(("1cupsDoAuthentication: authstring=\"%s\".", http->authstring));
-
---
-2.30.2
-
-
-From 61ad7780bc7d0593e3225d088ac6dff31badf801 Mon Sep 17 00:00:00 2001
-From: Samuel Cabrero <scabrero@suse.de>
-Date: Tue, 27 Oct 2020 16:11:41 +0100
-Subject: [PATCH 2/4] Add cups_is_local_connection() to check if connection is
- to localhost
-
-Related: #5596
-
-Signed-off-by: Samuel Cabrero <scabrero@suse.de>
----
- cups/auth.c | 11 ++++++++++-
- 1 file changed, 10 insertions(+), 1 deletion(-)
-
-diff --git a/cups/auth.c b/cups/auth.c
-index f2409350a..d2956438d 100644
---- a/cups/auth.c
-+++ b/cups/auth.c
-@@ -90,6 +90,7 @@ static void cups_gss_printf(OM_uint32 major_status, OM_uint32 minor_status,
- # define cups_gss_printf(major, minor, message)
- # endif /* DEBUG */
- #endif /* HAVE_GSSAPI */
-+static int cups_is_local_connection(http_t *http);
- static int cups_local_auth(http_t *http);
-
-
-@@ -916,6 +917,14 @@ cups_gss_printf(OM_uint32 major_status,/* I - Major status code */
- # endif /* DEBUG */
- #endif /* HAVE_GSSAPI */
-
-+static int /* O - 0 if not a local connection */
-+ /* 1 if local connection */
-+cups_is_local_connection(http_t *http) /* I - HTTP connection to server */
-+{
-+ if (!httpAddrLocalhost(http->hostaddr) && _cups_strcasecmp(http->hostname, "localhost") != 0)
-+ return 0;
-+ return 1;
-+}
-
- /*
- * 'cups_local_auth()' - Get the local authorization certificate if
-@@ -958,7 +967,7 @@ cups_local_auth(http_t *http) /* I - HTTP connection to server */
- * See if we are accessing localhost...
- */
-
-- if (!httpAddrLocalhost(http->hostaddr) && _cups_strcasecmp(http->hostname, "localhost") != 0)
-+ if (!cups_is_local_connection(http))
- {
- DEBUG_puts("8cups_local_auth: Not a local connection!");
- return (1);
---
-2.30.2
-
-
-From f629d079750a86b1b605c285f99c0dea3933ca50 Mon Sep 17 00:00:00 2001
-From: Samuel Cabrero <scabrero@suse.de>
-Date: Tue, 27 Oct 2020 16:23:30 +0100
-Subject: [PATCH 3/4] Try local kerberos ccache credentials only for remote
- servers
-
-If connecting to localhost then proceed to ask the client for the
-authorization using cupsGetPassword2. The get password callback will
-return 401 to the client with WWW-Authenticate: Negotiate.
-
-Fixes: #5596
-
-Signed-off-by: Samuel Cabrero <scabrero@suse.de>
----
- cups/auth.c | 10 ++++++----
- 1 file changed, 6 insertions(+), 4 deletions(-)
-
-diff --git a/cups/auth.c b/cups/auth.c
-index d2956438d..9661657fc 100644
---- a/cups/auth.c
-+++ b/cups/auth.c
-@@ -175,10 +175,10 @@ cupsDoAuthentication(
- DEBUG_printf(("2cupsDoAuthentication: Trying scheme \"%s\"...", scheme));
-
- #ifdef HAVE_GSSAPI
-- if (!_cups_strcasecmp(scheme, "Negotiate"))
-+ if (!_cups_strcasecmp(scheme, "Negotiate") && !cups_is_local_connection(http))
- {
- /*
-- * Kerberos authentication...
-+ * Kerberos authentication to remote server...
- */
-
- int gss_status; /* Auth status */
-@@ -202,7 +202,9 @@ cupsDoAuthentication(
- }
- else
- #endif /* HAVE_GSSAPI */
-- if (_cups_strcasecmp(scheme, "Basic") && _cups_strcasecmp(scheme, "Digest"))
-+ if (_cups_strcasecmp(scheme, "Basic") &&
-+ _cups_strcasecmp(scheme, "Digest") &&
-+ _cups_strcasecmp(scheme, "Negotiate"))
- {
- /*
- * Other schemes not yet supported...
-@@ -216,7 +218,7 @@ cupsDoAuthentication(
- * See if we should retry the current username:password...
- */
-
-- if ((http->digest_tries > 1 || !http->userpass[0]) && (!_cups_strcasecmp(scheme, "Basic") || (!_cups_strcasecmp(scheme, "Digest"))))
-+ if (http->digest_tries > 1 || !http->userpass[0])
- {
- /*
- * Nope - get a new password from the user...
---
-2.30.2
-
-
-From 0563a28b18b21d5574a5e0e38b74246146074bbf Mon Sep 17 00:00:00 2001
-From: Samuel Cabrero <scabrero@suse.de>
-Date: Tue, 27 Oct 2020 16:18:03 +0100
-Subject: [PATCH 4/4] Allow Local authentication for Negotiate
-
-PeerCred is also possible if address family is AF_LOCAL. This will allow
-the CGI programs to generate the authorization from the local
-certificates based on PID also when Negotiate is used for local
-connections:
-
-Client CGI
-Browser <- Remote conn -> admin.cgi <--- Localhost conn ---> Scheduler
- | | |
- + --- HTTP/POST /admin/ --> | |
- | + --- CUPS-Get-Devices ------------> |
- | | |
- | | <-- 401 Unauthorized --------------+
- | | WWW-Authenticate: |
- | | Negotiate, (PeerCred,) Local |
- | | |
- | <-- 401 Unauthorized -----+ |
- | WWW-Authenticate: | |
- | Negotiate | |
- | | |
- | --- HTTP/POST /admin/ --> | |
- | Authorization: + --- IPP CUPS-GetDevices ---------> |
- | Negotiate | Authorization: Local <cert> |
- | | |
-
-Fixes: #5596
-
-Signed-off-by: Samuel Cabrero <scabrero@suse.de>
----
- cups/auth.c | 5 -----
- scheduler/client.c | 9 ++-------
- 2 files changed, 2 insertions(+), 12 deletions(-)
-
-diff --git a/cups/auth.c b/cups/auth.c
-index 9661657fc..b6fec6b98 100644
---- a/cups/auth.c
-+++ b/cups/auth.c
-@@ -1043,11 +1043,6 @@ cups_local_auth(http_t *http) /* I - HTTP connection to server */
- }
- # endif /* HAVE_AUTHORIZATION_H */
-
--# ifdef HAVE_GSSAPI
-- if (cups_auth_find(www_auth, "Negotiate"))
-- return (1);
--# endif /* HAVE_GSSAPI */
--
- # if defined(SO_PEERCRED) && defined(AF_LOCAL)
- /*
- * See if we can authenticate using the peer credentials provided over a
-diff --git a/scheduler/client.c b/scheduler/client.c
-index c2ee8f12a..56797d58d 100644
---- a/scheduler/client.c
-+++ b/scheduler/client.c
-@@ -2109,18 +2109,13 @@ cupsdSendHeader(
- }
- else if (auth_type == CUPSD_AUTH_NEGOTIATE)
- {
--#if defined(SO_PEERCRED) && defined(AF_LOCAL)
-- if (httpAddrFamily(httpGetAddress(con->http)) == AF_LOCAL)
-- strlcpy(auth_str, "PeerCred", sizeof(auth_str));
-- else
--#endif /* SO_PEERCRED && AF_LOCAL */
- strlcpy(auth_str, "Negotiate", sizeof(auth_str));
- }
-
-- if (con->best && auth_type != CUPSD_AUTH_NEGOTIATE && !con->is_browser && !_cups_strcasecmp(httpGetHostname(con->http, NULL, 0), "localhost"))
-+ if (con->best && !con->is_browser && !_cups_strcasecmp(httpGetHostname(con->http, NULL, 0), "localhost"))
- {
- /*
-- * Add a "trc" (try root certification) parameter for local non-Kerberos
-+ * Add a "trc" (try root certification) parameter for local
- * requests when the request requires system group membership - then the
- * client knows the root certificate can/should be used.
- *
---
-2.30.2
-
Index: upstream_pull_174.patch
===================================================================
--- upstream_pull_174.patch (revision 380)
+++ upstream_pull_174.patch (deleted)
@@ -1,53 +0,0 @@
-From c37d71b1a31d26a4790166e2508822b18934a5c0 Mon Sep 17 00:00:00 2001
-From: Zdenek Dohnal <zdohnal@redhat.com>
-Date: Tue, 13 Apr 2021 15:44:14 +0200
-Subject: [PATCH 1/2] backend/usb-libusb.c: Use 60s timeout for reading at
- backchannel
-
-Some older models malfunction if timeout is too short.
----
- CHANGES.md | 1 +
- backend/usb-libusb.c | 2 +-
- 2 files changed, 2 insertions(+), 1 deletion(-)
-
---- a/backend/usb-libusb.c
-+++ b/backend/usb-libusb.c
-@@ -1704,7 +1704,7 @@ static void *read_thread(void *reference)
- readstatus = libusb_bulk_transfer(g.printer->handle,
- g.printer->read_endp,
- readbuffer, rbytes,
-- &rbytes, 250);
-+ &rbytes, 60000);
- if (readstatus == LIBUSB_SUCCESS && rbytes > 0)
- {
- fprintf(stderr, "DEBUG: Read %d bytes of back-channel data...\n", (int)rbytes);
-
-From 4cb6f6806cdbe040d478b266a1d351b19341dd79 Mon Sep 17 00:00:00 2001
-From: Zdenek Dohnal <zdohnal@redhat.com>
-Date: Tue, 13 Apr 2021 15:47:37 +0200
-Subject: [PATCH 2/2] backend/usb-libusb.c: Revert enforcing read limits
-
-This commit reverts the change introduced by 2.2.12 [1] - its
-implementation caused a regression with Lexmark filters.
-
-[1]
-https://github.com/apple/cups/commit/35e927f83529cd9b4bc37bcd418c50e307fced35
----
- CHANGES.md | 1 +
- backend/usb-libusb.c | 3 ++-
- 2 files changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/backend/usb-libusb.c b/backend/usb-libusb.c
-index fbb0d9d89..89b5182f7 100644
---- a/backend/usb-libusb.c
-+++ b/backend/usb-libusb.c
-@@ -1721,7 +1721,8 @@ static void *read_thread(void *reference)
- * Make sure this loop executes no more than once every 250 miliseconds...
- */
-
-- if ((g.wait_eof || !g.read_thread_stop))
-+ if ((readstatus != LIBUSB_SUCCESS || rbytes == 0) &&
-+ (g.wait_eof || !g.read_thread_stop))
- usleep(250000);
- }
- while (g.wait_eof || !g.read_thread_stop);
OBS-URL: https://build.opensuse.org/request/show/958348
OBS-URL: https://build.opensuse.org/package/show/Printing/cups?expand=0&rev=381
2022-03-03 13:19:05 +01:00
|
|
|
# gpg --list-keys | grep -1 'Zdenek Dohnal'
|
2022-05-30 10:55:44 +02:00
|
|
|
# gpg --verify cups-2.4.2-source.tar.gz.sig cups-2.4.2-source.tar.gz
|
2015-02-16 16:27:41 +01:00
|
|
|
Source102: Postscript.ppd.gz
|
|
|
|
Source105: Postscript-level1.ppd.gz
|
|
|
|
Source106: Postscript-level2.ppd.gz
|
|
|
|
Source108: cups-client.conf
|
|
|
|
Source109: baselibs.conf
|
|
|
|
# Patch0...Patch9 is for patches from upstream:
|
|
|
|
# Source10...Source99 is for sources from SUSE which are intended for upstream:
|
|
|
|
# Patch10...Patch99 is for patches from SUSE which are intended for upstream:
|
2015-09-01 14:47:12 +02:00
|
|
|
# Patch10 cups-2.1.0-choose-uri-template.patch adds 'smb://...' URIs to templates/choose-uri.tmpl:
|
|
|
|
Patch10: cups-2.1.0-choose-uri-template.patch
|
|
|
|
# Patch11 cups-2.1.0-default-webcontent-path.patch changes the default path whereto the
|
2015-02-16 16:27:41 +01:00
|
|
|
# web content is installed from /usr/share/doc/cups to /usr/share/cups/webcontent
|
|
|
|
# because the files of the CUPS web content are no documentation, see CUPS STR #3578
|
2022-03-04 09:58:18 +01:00
|
|
|
# and https://bugzilla.suse.com/show_bug.cgi?id=546023#c6 and subsequent comments:
|
2015-09-01 14:47:12 +02:00
|
|
|
Patch11: cups-2.1.0-default-webcontent-path.patch
|
2015-02-16 16:27:41 +01:00
|
|
|
# Patch100...Patch999 is for private patches from SUSE which are not intended for upstream:
|
|
|
|
# Patch100 cups-pam.diff adds conf/pam.suse regarding support for PAM for SUSE:
|
|
|
|
Patch100: cups-pam.diff
|
2015-07-01 15:50:32 +02:00
|
|
|
# Patch101 cups-2.0.3-additional_policies.patch adds the 'allowallforanybody' policy to cupsd.conf
|
2022-03-04 09:58:18 +01:00
|
|
|
# see SUSE FATE 303515 and https://bugzilla.suse.com/show_bug.cgi?id=936309
|
2015-07-01 15:50:32 +02:00
|
|
|
Patch101: cups-2.0.3-additional_policies.patch
|
2015-02-16 16:27:41 +01:00
|
|
|
# Patch103 cups-1.4-do_not_strip_recommended_from_PPDs.patch
|
|
|
|
# reverts the change which was added by Michael Sweet in Jan 2007
|
|
|
|
# which strips the word "recommended" from NickName in PPDs because
|
|
|
|
# at least yast2-printer in SUSE needs it, compare the
|
|
|
|
# 'Why not "recommend" PPDs in the NickName?' and the subsequent
|
|
|
|
# 'RFC: New Driver Rating/Information Attributes' mail thread on cups@easysw.com:
|
|
|
|
Patch103: cups-1.4-do_not_strip_recommended_from_PPDs.patch
|
|
|
|
# Patch104 cups-config-libs.patch fixes option --libs in cups-config script:
|
|
|
|
Patch104: cups-config-libs.patch
|
2022-03-04 09:58:18 +01:00
|
|
|
# Patch107 harden_cups.service.patch adds hardening to systemd service cups.service
|
|
|
|
# see https://bugzilla.suse.com/show_bug.cgi?id=1181400
|
|
|
|
# and https://en.opensuse.org/openSUSE:Security_Features#Systemd_hardening_effort
|
|
|
|
# where the default hardening settings are enhanced by adding
|
|
|
|
# ReadWritePaths=/etc/cups because cupsd needs write access in /etc/cups
|
|
|
|
# see https://bugzilla.suse.com/show_bug.cgi?id=1195288
|
2022-02-01 11:06:35 +01:00
|
|
|
Patch107: harden_cups.service.patch
|
2022-03-04 09:58:18 +01:00
|
|
|
# Patch108 downgrade-autoconf-requirement.patch
|
|
|
|
# downgrades the autoconf requirement to the autoconf available in Tumbleweed as of this writing:
|
Accepting request 958348 from home:ajoga:branches:openSUSE:Factory
- Version upgrade to 2.4.1
- Dropped patch upstream_pull_174 because it it is included in this release
- Dropped patch cups-2.1.0-cups-systemd-socket.patch because it it is included in this release (https://github.com/OpenPrinting/cups/commit/e96e96b4bd0d4e6f634bbb66b95d6e475501541c)
- Changed upstream source packages signing key (https://github.com/OpenPrinting/cups/discussions/327#discussioncomment-2060579)
- Re-enabled testsuite
* Also removed make check because since upstream change the two target are identical (https://github.com/OpenPrinting/cups/commit/96ba46ebc818b610b0e40cbc9d62ef1dcd3ec9b6#diff-76ed074a9305c04054cdebb9e9aad2d818052b07091de1f20cad0bbac34ffb52R239)
- Changed cups-2.1.0-cups-systemd-socket.patch to accomodate new coding style
- Changed cups-config-libs.orig to accommodate recent code changes (SSL->TLS)
- Changed cups-2.1.0-default-webcontent-path.patch to accommodate code changes
old: Printing/cups
new: home:ajoga:branches:openSUSE:Factory/cups rev None
Index: cups-2.1.0-default-webcontent-path.patch
===================================================================
--- cups-2.1.0-default-webcontent-path.patch (revision 380)
+++ cups-2.1.0-default-webcontent-path.patch (revision 2)
@@ -1,17 +1,21 @@
---- config-scripts/cups-directories.m4.orig 2014-03-21 17:42:53.000000000 +0100
-+++ config-scripts/cups-directories.m4 2015-09-01 11:08:43.000000000 +0200
-@@ -206,11 +206,11 @@ fi
- AC_SUBST(MENUDIR)
+--- config-scripts/cups-directories.m4
++++ config-scripts/cups-directories.m4.orig
+@@ -166,15 +166,15 @@ AS_IF([test "x$menudir" = x], [
+ AC_SUBST([MENUDIR])
# Documentation files
--AC_ARG_WITH(docdir, [ --with-docdir set path for documentation],docdir="$withval",docdir="")
-+AC_ARG_WITH(docdir, [ --with-docdir set path and DocumentRoot directive for web content, default=datadir/cups/webcontent],docdir="$withval",docdir="")
+-AC_ARG_WITH([docdir], AS_HELP_STRING([--with-docdir], [set path for documentation]), [
++AC_ARG_WITH([docdir], AS_HELP_STRING([--with-docdir], [set path and DocumentRoot directive for web content, default=datadir/cups/webcontent]), [
+ docdir="$withval"
+ ], [
+ docdir=""
+ ])
- if test x$docdir = x; then
-- CUPS_DOCROOT="$datadir/doc/cups"
-- docdir="$datadir/doc/cups"
-+ CUPS_DOCROOT="$datadir/cups/webcontent"
-+ docdir="$datadir/cups/webcontent"
- else
- CUPS_DOCROOT="$docdir"
- fi
+ AS_IF([test x$docdir = x], [
+- CUPS_DOCROOT="$datadir/doc/cups"
+- docdir="$datadir/doc/cups"
++ CUPS_DOCROOT="$datadir/cups/webcontent"
++ docdir="$datadir/cups/webcontent"
+ ], [
+ CUPS_DOCROOT="$docdir"
+ ])
Index: cups-config-libs.patch
===================================================================
--- cups-config-libs.patch (revision 380)
+++ cups-config-libs.patch (revision 2)
@@ -4,7 +4,7 @@
# flags for compiler and linker...
CFLAGS=""
LDFLAGS="@EXPORT_LDFLAGS@"
--LIBS="@LIBGSSAPI@ @DNSSDLIBS@ @EXPORT_SSLLIBS@ @LIBZ@ @LIBS@"
+-LIBS="@LIBGSSAPI@ @DNSSDLIBS@ @EXPORT_TLSLIBS@ @LIBZ@ @LIBS@"
+LIBS=""
# Check for local invocation...
Index: cups.changes
===================================================================
--- cups.changes (revision 380)
+++ cups.changes (revision 2)
@@ -1,4 +1,88 @@
-------------------------------------------------------------------
+Tue Mar 1 18:16:11 UTC 2022 - Aurélien Joga <aurelienjoga@gmail.com>
+
+- Version upgrade to 2.4.1:
+ * The default color mode now is now configurable and defaults to the printer's reported default mode (Issue #277)
+ * Configuration script now checks linking for -Wl,-pie flags (Issue #303)
+ * Fixed memory leaks - in testi18n (Issue #313), in cups_enum_dests() (Issue #317), in _cupsEncodeOption() and http_tls_upgrade() (Issue #322)
+ * Fixed missing bracket in de/index.html (Issue #299)
+ * Fixed typos in configuration scripts (Issues #304, #316)
+ * Removed remaining legacy code for RIP_MAX_CACHE environment variable (Issue #323)
+ * Removed deprecated directives from cupsctl and cups-files.conf (Issue #300)
+ * Removed purge-jobs legacy code from CGI scripts and templates (Issue #325)
+ * Added configure option --with-idle-exit-timeout (Issue #294)
+ * Added --with-systemd-timeoutstartsec configure option (Issue #298)
+ * DigestOptions now are applied for MD5 Digest authentication defined by RFC 2069 as well (Issue #287)
+ * Fixed compilation on Solaris (Issue #293)
+ * Fixed and improved German translations (Issue #296, Issue #297)
+ * Added warning and debug messages when loading printers if the queue is raw or with driver (Issue #286)
+ * Compilation now uses -fstack-protector-strong if available (Issue #285)
+ * Added support for CUPS running in a Snapcraft snap.
+ * Added basic OAuth 2.0 client support (Issue #100)
+ * Added support for AirPrint and Mopria clients (Issue #105)
+ * Added configure support for specifying systemd dependencies in the CUPS service file (Issue #144)
+ * Added several features and improvements to ipptool (Issue #153)
+ * Added a JSON output mode for ipptool.
+ * The ipptool command now correctly reports an error when a test file cannot be found.
+ * CUPS library now uses thread safe getpwnam_r and getpwuid_r functions (Issue #274)
+ * Fixed Kerberos authentication for the web interface (Issue #19)
+ * The ZPL sample driver now supports more "standard" label sizes (Issue #70)
+ * Fixed reporting of printer instances when enumerating and when no options are set for the main instance (Issue #71)
+ * Reverted USB read limit enforcement change from CUPS 2.2.12 (Issue #72)
+ * The IPP backend did not return the correct status code when a job was canceled at the printer/server (Issue #74)
+ * The testlang unit test program now loops over all of the available locales by default (Issue #85)
+ * The cupsfilter command now shows error messages when options are used incorrectly (Issue #88)
+ * The PPD functions now treat boolean values as case-insensitive (Issue #106)
+ * Temporary queue names no longer end with an underscore (Issue #110)
+ * The USB backend now runs as root (Issue #121)
+ * Added pkg-config file for libcups (Issue #122)
+ * Fixed a PPD memory leak caused by emulator definitions (Issue #124)
+ * Fixed a DISPLAY bug in ipptool (Issue #139)
+ * The scheduler now includes the [Job N] prefix for job log messages, even when using syslog logging (Issue #154)
+ * Added support for locales using the GB18030 character set (Issue #159)
+ * httpReconnect2 did not reset the socket file descriptor when the TLS negotiation failed (Apple #5907)
+ * httpUpdate did not reset the socket file descriptor when the TLS negotiation failed (Apple #5915)
+ * The IPP backend now retries Validate-Job requests (Issue #132)
+ * Now show better error messages when a driver interface program fails to provide a PPD file (Issue #148)
+ * Added dark mode support to the CUPS web interface (Issue #152)
+ * Added a workaround for Solaris in httpAddrConnect2 (Issue #156)
+ * Fixed an interaction between --remote-admin and --remote-any for the cupsctl command (Issue #158)
+ * Now use a 60 second timeout for reading USB backchannel data (Issue #160)
+ * The USB backend now tries harder to find a serial number (Issue #170)
+ * Fixed @IF(name) handling in cupsd.conf (Apple #5918)
+ * Fixed documentation and added examples for CUPS' limited CGI support (Apple #5940)
+ * Fixed the lpc command prompt (Apple #5946)
+ * Now always pass "localhost" in the Host: header when talking over a domain socket or the loopback interface (Issue #185)
+ * Fixed a job history update issue in the scheduler (Issue #187)
+ * Fixed job-pages-per-set value for duplex print jobs.
+ * Fixed an edge case in ippReadIO to make sure that only complete attributes and values are retained on an error (Issue #195)
+ * Hardened ippReadIO to prevent invalid IPP messages from being propagated (Issue #195, Issue #196)
+ * The scheduler now supports the "everywhere" model directly (Issue #201)
+ * Fixed some IPP Everywhere option mapping problems (Issue #238)
+ * Fixed support for "job-hold-until" with the Restart-Job operation (Issue #250)
+ * Fixed the default color/grayscale presets for IPP Everywhere PPDs (Issue #262)
+ * Fixed support for the 'offline-report' state for all USB backends (Issue #264)
+ * Documentation fixes (Issue #92, Issue #163, Issue #177, Issue #184)
+ * Localization updates (Issue #123, Issue #129, Issue #134, Issue #146, Issue #164)
+ * USB quirk updates (Issue #192, Issue #270, Apple #5766, Apple #5838, Apple #5843, Apple #5867)
+ * Web interface updates (Issue #142, Issue #218)
+ * The ippeveprinter tool now automatically uses an available port.
+ * Fixed several Windows TLS and hashing issues.
+ * Deprecated cups-config (Issue #97)
+ * Deprecated Kerberos (AuthType Negotiate) authentication (Issue #98)
+ * Removed support for the (long deprecated and unused) FontPath, ListenBackLog, LPDConfigFile, KeepAliveTimeout, RIPCache, and SMBConfigFile directives in cupsd.conf and cups-files.conf.
+ * Stubbed out deprecated httpMD5 functions.
+ * Add test for undefined page ranges during printing.
+- Dropped patch upstream_pull_174 because it it is included in this release
+- Dropped patch cups-2.1.0-cups-systemd-socket.patch because it it is included in this release (https://github.com/OpenPrinting/cups/commit/e96e96b4bd0d4e6f634bbb66b95d6e475501541c)
+- Changed upstream source packages signing key (https://github.com/OpenPrinting/cups/discussions/327#discussioncomment-2060579)
+- Re-enabled testsuite
+ * Also removed make check because since upstream change the two target are identical (https://github.com/OpenPrinting/cups/commit/96ba46ebc818b610b0e40cbc9d62ef1dcd3ec9b6#diff-76ed074a9305c04054cdebb9e9aad2d818052b07091de1f20cad0bbac34ffb52R239)
+- Changed cups-2.1.0-cups-systemd-socket.patch to accomodate new coding style
+- Changed cups-config-libs.orig to accommodate recent code changes (SSL->TLS)
+- Changed cups-2.1.0-default-webcontent-path.patch to accommodate code changes
+
+-------------------------------------------------------------------
Tue Feb 1 09:18:27 UTC 2022 - jsmeix@suse.de
- Enhanced harden_cups.service.patch by adding
Index: cups.keyring
===================================================================
Binary files cups.keyring (revision 380) and cups.keyring (revision 2) differ
Index: cups.spec
===================================================================
--- cups.spec (revision 380)
+++ cups.spec (revision 2)
@@ -18,9 +18,7 @@
# Cf. https://rpm.org/user_doc/conditional_builds.html
# by default enable testsuite (i.e. in the 'check' section run make check and make test)
-#bcond_without testsuite
-# disable testsuite for now until https://github.com/OpenPrinting/cups/issues/155 is fixed
-%bcond_with testsuite
+%bcond_without testsuite
# _tmpfilesdir is not defined in systemd macros up to openSUSE 13.2
%{!?_tmpfilesdir: %global _tmpfilesdir /usr/lib/tmpfiles.d }
@@ -29,34 +27,32 @@
# "zypper vcmp 2.3.b99 2.3.0" shows "2.3.b99 is older than 2.3.0" and
# "zypper vcmp 2.2.99 2.3b6" show "2.2.99 is older than 2.3b6" so that
# version upgrades from 2.2.x via 2.3.b* to 2.3.0 work:
-Version: 2.3.3op2
+Version: 2.4.1
Release: 0
Summary: The Common UNIX Printing System
License: Apache-2.0
Group: Hardware/Printing
URL: https://openprinting.github.io/cups
# To get Source0 go to https://github.com/OpenPrinting/cups/releases or use e.g.
-# wget --no-check-certificate -O cups-2.3.3op2-source.tar.gz https://github.com/OpenPrinting/cups/releases/download/v2.3.3op2/cups-2.3.3op2-source.tar.gz
-Source0: https://github.com/OpenPrinting/cups/releases/download/v2.3.3op2/cups-2.3.3op2-source.tar.gz
+# wget --no-check-certificate -O cups-2.4.1-source.tar.gz https://github.com/OpenPrinting/cups/releases/download/v2.4.1/cups-2.4.1-source.tar.gz
+Source0: https://github.com/OpenPrinting/cups/releases/download/v2.4.1/cups-2.4.1-source.tar.gz
# To get Source1 go to https://github.com/OpenPrinting/cups/releases or use e.g.
-# wget --no-check-certificate -O cups-2.3.3op2-source.tar.gz.sig https://github.com/OpenPrinting/cups/releases/download/v2.3.3op2/cups-2.3.3op2-source.tar.gz.sig
-Source1: https://github.com/OpenPrinting/cups/releases/download/v2.3.3op2/cups-2.3.3op2-source.tar.gz.sig
-# To get Source2 go to https://www.msweet.org/pgp.html
-# PGP Fingerprint: 845464660B686AAB36540B6F999559A027815955
+# wget --no-check-certificate -O cups-2.4.1-source.tar.gz.sig https://github.com/OpenPrinting/cups/releases/download/v2.4.1/cups-2.4.1-source.tar.gz.sig
+Source1: https://github.com/OpenPrinting/cups/releases/download/v2.4.1/cups-2.4.1-source.tar.gz.sig
+# To get Source2 use gpg --keyserver keys.openpgp.org --recv-keys 7082A0A50A2E92640F3880E0E4522DCC9B246FF7
+# See https://github.com/OpenPrinting/cups/discussions/327#discussioncomment-2060579
+# PGP Fingerprint: 7082A0A50A2E92640F3880E0E4522DCC9B246FF7
Source2: cups.keyring
# To manually verify Source0 with Source1 and Source2 do e.g.
# gpg --import cups.keyring
-# gpg --list-keys | grep -1 'Michael R Sweet' | grep -v 'expired'
-# gpg --verify cups-2.3.3op2-source.tar.gz.sig cups-2.3.3op2-source.tar.gz
+# gpg --list-keys | grep -1 'Zdenek Dohnal'
+# gpg --verify cups-2.4.1-source.tar.gz.sig cups-2.4.1-source.tar.gz
Source102: Postscript.ppd.gz
Source105: Postscript-level1.ppd.gz
Source106: Postscript-level2.ppd.gz
Source108: cups-client.conf
Source109: baselibs.conf
# Patch0...Patch9 is for patches from upstream:
-# Patch1 upstream_pull_174.patch is https://github.com/OpenPrinting/cups/pull/174
-# Use 60s timeout for read_thread, revert read limits
-Patch1: upstream_pull_174.patch
# Source10...Source99 is for sources from SUSE which are intended for upstream:
# Patch10...Patch99 is for patches from SUSE which are intended for upstream:
# Patch10 cups-2.1.0-choose-uri-template.patch adds 'smb://...' URIs to templates/choose-uri.tmpl:
@@ -66,8 +62,6 @@
# because the files of the CUPS web content are no documentation, see CUPS STR #3578
# and http://bugzilla.novell.com/show_bug.cgi?id=546023#c6 and subsequent comments:
Patch11: cups-2.1.0-default-webcontent-path.patch
-# Patch12 cups-2.1.0-cups-systemd-socket.patch Use systemd socket activation properly:
-Patch12: cups-2.1.0-cups-systemd-socket.patch
# Patch100...Patch999 is for private patches from SUSE which are not intended for upstream:
# Patch100 cups-pam.diff adds conf/pam.suse regarding support for PAM for SUSE:
Patch100: cups-pam.diff
@@ -83,9 +77,9 @@
Patch103: cups-1.4-do_not_strip_recommended_from_PPDs.patch
# Patch104 cups-config-libs.patch fixes option --libs in cups-config script:
Patch104: cups-config-libs.patch
-# Patch106 Fixes web UI Kerberos authentication (bsc#1175960)
-Patch106: fix-negotiate-authentication-between-CGIs-and-scheduler.patch
Patch107: harden_cups.service.patch
+# Patch108 downgrades the autoconf requirement to the autoconf available in tumbleweed as of writing
+Patch108: downgrade-autoconf-requirement.patch
# Build Requirements:
BuildRequires: dbus-1-devel
BuildRequires: fdupes
@@ -280,9 +274,6 @@
%prep
%setup -q
# Patch0...Patch9 is for patches from upstream:
-# Patch1 upstream_pull_174.patch is https://github.com/OpenPrinting/cups/pull/174
-# Use 60s timeout for read_thread, revert read limits
-%patch1 -p1
# Patch10...Patch99 is for patches from SUSE which are intended for upstream:
# Patch10 cups-2.1.0-choose-uri-template.patch adds 'smb://...' URIs to templates/choose-uri.tmpl:
%patch10 -b choose-uri-template.orig
@@ -291,8 +282,6 @@
# because the files of the CUPS web content are no documentation, see CUPS STR #3578
# and http://bugzilla.novell.com/show_bug.cgi?id=546023#c6 and subsequent comments:
%patch11 -b default-webcontent-path.orig
-# Patch12 cups-2.1.0-cups-systemd-socket.patch Use systemd socket activation properly:
-#patch12 -b cups-systemd-socket.orig
# Patch100...Patch999 is for private patches from SUSE which are not intended for upstream:
# Patch100 cups-pam.diff adds conf/pam.suse regarding support for PAM for SUSE:
%patch100 -b cups-pam.orig
@@ -308,9 +297,8 @@
%patch103 -b do_not_strip_recommended_from_PPDs.orig
# Patch104 cups-config-libs.patch fixes option --libs in cups-config script:
%patch104 -b cups-config-libs.orig
-# Patch106 Fixes web UI Kerberos authentication (bsc#1175960)
-%patch106 -p1
%patch107 -p1
+%patch108 -p1
%build
# Remove ".SILENT" rule for verbose build output
@@ -439,8 +427,6 @@
# There appears to be some kind of race condition when running make check and make test
# cf. https://github.com/OpenPrinting/cups/issues/155
# We print all logs for debugging purposes if either testsuite fails
-echo "DEBUG: running make check"
-bash -c 'make %{?_smp_mflags} check; EXIT=$?; if [ $EXIT -ne 0 ]; then cat test/*_log*-$(whoami); fi; exit $EXIT'
echo "DEBUG: running make test"
bash -c 'make %{?_smp_mflags} test; EXIT=$?; if [ $EXIT -ne 0 ]; then cat test/*_log*-$(whoami); fi; exit $EXIT'
%else
@@ -681,6 +667,7 @@
%files devel
%defattr(-,root,root)
+/usr/lib/pkgconfig/cups.pc
%{_includedir}/cups/
%{_libdir}/libcups.so
%{_libdir}/libcupsimage.so
Index: cups-2.4.1-source.tar.gz
===================================================================
Binary file cups-2.4.1-source.tar.gz (revision 2) added
Index: cups-2.4.1-source.tar.gz.sig
===================================================================
Binary file cups-2.4.1-source.tar.gz.sig (revision 2) added
Index: downgrade-autoconf-requirement.patch
===================================================================
--- downgrade-autoconf-requirement.patch (added)
+++ downgrade-autoconf-requirement.patch (revision 2)
@@ -0,0 +1,15 @@
+diff --git a/configure.ac b/configure.ac
+index a8c6c1040..6ace74a8d 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -9,8 +9,8 @@ dnl Licensed under Apache License v2.0. See the file "LICENSE" for more
+ dnl information.
+ dnl
+
+-dnl We need at least autoconf 2.71...
+-AC_PREREQ([2.71])
++dnl We need at least autoconf 2.69...
++AC_PREREQ([2.69])
+
+ dnl Package name and version...
+ AC_INIT([CUPS],[2.4.1],[https://github.com/openprinting/cups/issues],[cups],[https://openprinting.github.io/cups])
Index: cups-2.1.0-cups-systemd-socket.patch
===================================================================
--- cups-2.1.0-cups-systemd-socket.patch (revision 380)
+++ cups-2.1.0-cups-systemd-socket.patch (deleted)
@@ -1,43 +0,0 @@
---- scheduler/main.c.orig 2015-06-08 20:32:35.000000000 +0200
-+++ scheduler/main.c 2015-09-01 11:19:36.000000000 +0200
-@@ -656,7 +656,15 @@ main(int argc, /* I - Number of comm
-
- #if defined(HAVE_LAUNCHD) || defined(HAVE_SYSTEMD)
- if (OnDemand)
-+ {
- cupsdAddEvent(CUPSD_EVENT_SERVER_STARTED, NULL, NULL, "Scheduler started on demand.");
-+# ifdef HAVE_SYSTEMD
-+ sd_notifyf(0, "READY=1\n"
-+ "STATUS=Scheduler is running...\n"
-+ "MAINPID=%lu",
-+ (unsigned long) getpid());
-+# endif /* HAVE_SYSTEMD */
-+ }
- else
- #endif /* HAVE_LAUNCHD || HAVE_SYSTEMD */
- if (fg)
---- scheduler/org.cups.cupsd.path.in.orig 2014-03-21 15:50:24.000000000 +0100
-+++ scheduler/org.cups.cupsd.path.in 2015-09-01 11:20:37.000000000 +0200
-@@ -3,6 +3,7 @@ Description=CUPS Scheduler
-
- [Path]
- PathExists=@CUPS_CACHEDIR@/org.cups.cupsd
-+PathExistsGlob=@CUPS_REQUESTS@/d*
-
- [Install]
- WantedBy=multi-user.target
---- scheduler/org.cups.cupsd.service.in.orig 2014-10-21 13:54:05.000000000 +0200
-+++ scheduler/org.cups.cupsd.service.in 2015-09-01 11:22:09.000000000 +0200
-@@ -1,10 +1,11 @@
- [Unit]
- Description=CUPS Scheduler
- Documentation=man:cupsd(8)
-+After=network.target
-
- [Service]
- ExecStart=@sbindir@/cupsd -l
--Type=simple
-+Type=notify
-
- [Install]
- Also=org.cups.cupsd.socket org.cups.cupsd.path
Index: cups-2.3.3op2-source.tar.gz
===================================================================
Binary file cups-2.3.3op2-source.tar.gz (revision 380) deleted
Index: cups-2.3.3op2-source.tar.gz.sig
===================================================================
Binary file cups-2.3.3op2-source.tar.gz.sig (revision 380) deleted
Index: fix-negotiate-authentication-between-CGIs-and-scheduler.patch
===================================================================
--- fix-negotiate-authentication-between-CGIs-and-scheduler.patch (revision 380)
+++ fix-negotiate-authentication-between-CGIs-and-scheduler.patch (deleted)
@@ -1,223 +0,0 @@
-From d4521ed0df7e625ccf2bc079bab6f48c46ef9bf9 Mon Sep 17 00:00:00 2001
-From: Samuel Cabrero <scabrero@suse.de>
-Date: Mon, 26 Oct 2020 17:35:22 +0100
-Subject: [PATCH 1/4] Avoid infinite loop in admin.cgi when negotiate is used
-
-SetAuthorizationString with NULL argument sets an empty string.
-
-Related: #5596
-
-Signed-off-by: Samuel Cabrero <scabrero@suse.de>
----
- cups/auth.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/cups/auth.c b/cups/auth.c
-index db45bbba6..f2409350a 100644
---- a/cups/auth.c
-+++ b/cups/auth.c
-@@ -295,7 +295,7 @@ cupsDoAuthentication(
- }
- }
-
-- if (http->authstring)
-+ if (http->authstring && http->authstring[0])
- {
- DEBUG_printf(("1cupsDoAuthentication: authstring=\"%s\".", http->authstring));
-
---
-2.30.2
-
-
-From 61ad7780bc7d0593e3225d088ac6dff31badf801 Mon Sep 17 00:00:00 2001
-From: Samuel Cabrero <scabrero@suse.de>
-Date: Tue, 27 Oct 2020 16:11:41 +0100
-Subject: [PATCH 2/4] Add cups_is_local_connection() to check if connection is
- to localhost
-
-Related: #5596
-
-Signed-off-by: Samuel Cabrero <scabrero@suse.de>
----
- cups/auth.c | 11 ++++++++++-
- 1 file changed, 10 insertions(+), 1 deletion(-)
-
-diff --git a/cups/auth.c b/cups/auth.c
-index f2409350a..d2956438d 100644
---- a/cups/auth.c
-+++ b/cups/auth.c
-@@ -90,6 +90,7 @@ static void cups_gss_printf(OM_uint32 major_status, OM_uint32 minor_status,
- # define cups_gss_printf(major, minor, message)
- # endif /* DEBUG */
- #endif /* HAVE_GSSAPI */
-+static int cups_is_local_connection(http_t *http);
- static int cups_local_auth(http_t *http);
-
-
-@@ -916,6 +917,14 @@ cups_gss_printf(OM_uint32 major_status,/* I - Major status code */
- # endif /* DEBUG */
- #endif /* HAVE_GSSAPI */
-
-+static int /* O - 0 if not a local connection */
-+ /* 1 if local connection */
-+cups_is_local_connection(http_t *http) /* I - HTTP connection to server */
-+{
-+ if (!httpAddrLocalhost(http->hostaddr) && _cups_strcasecmp(http->hostname, "localhost") != 0)
-+ return 0;
-+ return 1;
-+}
-
- /*
- * 'cups_local_auth()' - Get the local authorization certificate if
-@@ -958,7 +967,7 @@ cups_local_auth(http_t *http) /* I - HTTP connection to server */
- * See if we are accessing localhost...
- */
-
-- if (!httpAddrLocalhost(http->hostaddr) && _cups_strcasecmp(http->hostname, "localhost") != 0)
-+ if (!cups_is_local_connection(http))
- {
- DEBUG_puts("8cups_local_auth: Not a local connection!");
- return (1);
---
-2.30.2
-
-
-From f629d079750a86b1b605c285f99c0dea3933ca50 Mon Sep 17 00:00:00 2001
-From: Samuel Cabrero <scabrero@suse.de>
-Date: Tue, 27 Oct 2020 16:23:30 +0100
-Subject: [PATCH 3/4] Try local kerberos ccache credentials only for remote
- servers
-
-If connecting to localhost then proceed to ask the client for the
-authorization using cupsGetPassword2. The get password callback will
-return 401 to the client with WWW-Authenticate: Negotiate.
-
-Fixes: #5596
-
-Signed-off-by: Samuel Cabrero <scabrero@suse.de>
----
- cups/auth.c | 10 ++++++----
- 1 file changed, 6 insertions(+), 4 deletions(-)
-
-diff --git a/cups/auth.c b/cups/auth.c
-index d2956438d..9661657fc 100644
---- a/cups/auth.c
-+++ b/cups/auth.c
-@@ -175,10 +175,10 @@ cupsDoAuthentication(
- DEBUG_printf(("2cupsDoAuthentication: Trying scheme \"%s\"...", scheme));
-
- #ifdef HAVE_GSSAPI
-- if (!_cups_strcasecmp(scheme, "Negotiate"))
-+ if (!_cups_strcasecmp(scheme, "Negotiate") && !cups_is_local_connection(http))
- {
- /*
-- * Kerberos authentication...
-+ * Kerberos authentication to remote server...
- */
-
- int gss_status; /* Auth status */
-@@ -202,7 +202,9 @@ cupsDoAuthentication(
- }
- else
- #endif /* HAVE_GSSAPI */
-- if (_cups_strcasecmp(scheme, "Basic") && _cups_strcasecmp(scheme, "Digest"))
-+ if (_cups_strcasecmp(scheme, "Basic") &&
-+ _cups_strcasecmp(scheme, "Digest") &&
-+ _cups_strcasecmp(scheme, "Negotiate"))
- {
- /*
- * Other schemes not yet supported...
-@@ -216,7 +218,7 @@ cupsDoAuthentication(
- * See if we should retry the current username:password...
- */
-
-- if ((http->digest_tries > 1 || !http->userpass[0]) && (!_cups_strcasecmp(scheme, "Basic") || (!_cups_strcasecmp(scheme, "Digest"))))
-+ if (http->digest_tries > 1 || !http->userpass[0])
- {
- /*
- * Nope - get a new password from the user...
---
-2.30.2
-
-
-From 0563a28b18b21d5574a5e0e38b74246146074bbf Mon Sep 17 00:00:00 2001
-From: Samuel Cabrero <scabrero@suse.de>
-Date: Tue, 27 Oct 2020 16:18:03 +0100
-Subject: [PATCH 4/4] Allow Local authentication for Negotiate
-
-PeerCred is also possible if address family is AF_LOCAL. This will allow
-the CGI programs to generate the authorization from the local
-certificates based on PID also when Negotiate is used for local
-connections:
-
-Client CGI
-Browser <- Remote conn -> admin.cgi <--- Localhost conn ---> Scheduler
- | | |
- + --- HTTP/POST /admin/ --> | |
- | + --- CUPS-Get-Devices ------------> |
- | | |
- | | <-- 401 Unauthorized --------------+
- | | WWW-Authenticate: |
- | | Negotiate, (PeerCred,) Local |
- | | |
- | <-- 401 Unauthorized -----+ |
- | WWW-Authenticate: | |
- | Negotiate | |
- | | |
- | --- HTTP/POST /admin/ --> | |
- | Authorization: + --- IPP CUPS-GetDevices ---------> |
- | Negotiate | Authorization: Local <cert> |
- | | |
-
-Fixes: #5596
-
-Signed-off-by: Samuel Cabrero <scabrero@suse.de>
----
- cups/auth.c | 5 -----
- scheduler/client.c | 9 ++-------
- 2 files changed, 2 insertions(+), 12 deletions(-)
-
-diff --git a/cups/auth.c b/cups/auth.c
-index 9661657fc..b6fec6b98 100644
---- a/cups/auth.c
-+++ b/cups/auth.c
-@@ -1043,11 +1043,6 @@ cups_local_auth(http_t *http) /* I - HTTP connection to server */
- }
- # endif /* HAVE_AUTHORIZATION_H */
-
--# ifdef HAVE_GSSAPI
-- if (cups_auth_find(www_auth, "Negotiate"))
-- return (1);
--# endif /* HAVE_GSSAPI */
--
- # if defined(SO_PEERCRED) && defined(AF_LOCAL)
- /*
- * See if we can authenticate using the peer credentials provided over a
-diff --git a/scheduler/client.c b/scheduler/client.c
-index c2ee8f12a..56797d58d 100644
---- a/scheduler/client.c
-+++ b/scheduler/client.c
-@@ -2109,18 +2109,13 @@ cupsdSendHeader(
- }
- else if (auth_type == CUPSD_AUTH_NEGOTIATE)
- {
--#if defined(SO_PEERCRED) && defined(AF_LOCAL)
-- if (httpAddrFamily(httpGetAddress(con->http)) == AF_LOCAL)
-- strlcpy(auth_str, "PeerCred", sizeof(auth_str));
-- else
--#endif /* SO_PEERCRED && AF_LOCAL */
- strlcpy(auth_str, "Negotiate", sizeof(auth_str));
- }
-
-- if (con->best && auth_type != CUPSD_AUTH_NEGOTIATE && !con->is_browser && !_cups_strcasecmp(httpGetHostname(con->http, NULL, 0), "localhost"))
-+ if (con->best && !con->is_browser && !_cups_strcasecmp(httpGetHostname(con->http, NULL, 0), "localhost"))
- {
- /*
-- * Add a "trc" (try root certification) parameter for local non-Kerberos
-+ * Add a "trc" (try root certification) parameter for local
- * requests when the request requires system group membership - then the
- * client knows the root certificate can/should be used.
- *
---
-2.30.2
-
Index: upstream_pull_174.patch
===================================================================
--- upstream_pull_174.patch (revision 380)
+++ upstream_pull_174.patch (deleted)
@@ -1,53 +0,0 @@
-From c37d71b1a31d26a4790166e2508822b18934a5c0 Mon Sep 17 00:00:00 2001
-From: Zdenek Dohnal <zdohnal@redhat.com>
-Date: Tue, 13 Apr 2021 15:44:14 +0200
-Subject: [PATCH 1/2] backend/usb-libusb.c: Use 60s timeout for reading at
- backchannel
-
-Some older models malfunction if timeout is too short.
----
- CHANGES.md | 1 +
- backend/usb-libusb.c | 2 +-
- 2 files changed, 2 insertions(+), 1 deletion(-)
-
---- a/backend/usb-libusb.c
-+++ b/backend/usb-libusb.c
-@@ -1704,7 +1704,7 @@ static void *read_thread(void *reference)
- readstatus = libusb_bulk_transfer(g.printer->handle,
- g.printer->read_endp,
- readbuffer, rbytes,
-- &rbytes, 250);
-+ &rbytes, 60000);
- if (readstatus == LIBUSB_SUCCESS && rbytes > 0)
- {
- fprintf(stderr, "DEBUG: Read %d bytes of back-channel data...\n", (int)rbytes);
-
-From 4cb6f6806cdbe040d478b266a1d351b19341dd79 Mon Sep 17 00:00:00 2001
-From: Zdenek Dohnal <zdohnal@redhat.com>
-Date: Tue, 13 Apr 2021 15:47:37 +0200
-Subject: [PATCH 2/2] backend/usb-libusb.c: Revert enforcing read limits
-
-This commit reverts the change introduced by 2.2.12 [1] - its
-implementation caused a regression with Lexmark filters.
-
-[1]
-https://github.com/apple/cups/commit/35e927f83529cd9b4bc37bcd418c50e307fced35
----
- CHANGES.md | 1 +
- backend/usb-libusb.c | 3 ++-
- 2 files changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/backend/usb-libusb.c b/backend/usb-libusb.c
-index fbb0d9d89..89b5182f7 100644
---- a/backend/usb-libusb.c
-+++ b/backend/usb-libusb.c
-@@ -1721,7 +1721,8 @@ static void *read_thread(void *reference)
- * Make sure this loop executes no more than once every 250 miliseconds...
- */
-
-- if ((g.wait_eof || !g.read_thread_stop))
-+ if ((readstatus != LIBUSB_SUCCESS || rbytes == 0) &&
-+ (g.wait_eof || !g.read_thread_stop))
- usleep(250000);
- }
- while (g.wait_eof || !g.read_thread_stop);
OBS-URL: https://build.opensuse.org/request/show/958348
OBS-URL: https://build.opensuse.org/package/show/Printing/cups?expand=0&rev=381
2022-03-03 13:19:05 +01:00
|
|
|
Patch108: downgrade-autoconf-requirement.patch
|
2018-12-10 15:55:11 +01:00
|
|
|
# Build Requirements:
|
2012-01-10 11:02:58 +01:00
|
|
|
BuildRequires: dbus-1-devel
|
2012-02-07 16:37:15 +01:00
|
|
|
BuildRequires: fdupes
|
2012-01-10 11:02:58 +01:00
|
|
|
BuildRequires: gcc-c++
|
2015-02-16 16:27:41 +01:00
|
|
|
BuildRequires: gnutls-devel
|
|
|
|
BuildRequires: libavahi-devel
|
|
|
|
BuildRequires: libgcrypt-devel
|
2012-02-07 16:37:15 +01:00
|
|
|
BuildRequires: libjpeg-devel
|
2012-01-10 11:02:58 +01:00
|
|
|
BuildRequires: libpng-devel
|
|
|
|
BuildRequires: libtiff-devel
|
2012-12-20 14:55:02 +01:00
|
|
|
BuildRequires: libtool
|
2015-02-16 16:27:41 +01:00
|
|
|
BuildRequires: libusb-1_0-devel
|
2012-01-10 11:02:58 +01:00
|
|
|
BuildRequires: pam-devel
|
|
|
|
BuildRequires: pkgconfig
|
2012-12-20 14:55:02 +01:00
|
|
|
BuildRequires: zlib-devel
|
2017-05-23 10:06:08 +02:00
|
|
|
%if 0%{?suse_version} >= 1315
|
|
|
|
BuildRequires: pkgconfig(krb5)
|
|
|
|
%else
|
|
|
|
BuildRequires: krb5-devel
|
|
|
|
%endif
|
2016-12-13 15:20:06 +01:00
|
|
|
%if 0%{?suse_version} > 1310
|
|
|
|
BuildRequires: pkgconfig(libsystemd)
|
|
|
|
%else
|
2014-05-22 12:18:17 +02:00
|
|
|
BuildRequires: pkgconfig(libsystemd-daemon)
|
2016-12-13 15:20:06 +01:00
|
|
|
%endif
|
2014-02-19 16:37:56 +01:00
|
|
|
BuildRequires: pkgconfig(systemd)
|
2017-12-20 12:43:22 +01:00
|
|
|
# Require the exact matching version-release of the cups-client sub-package
|
|
|
|
# (that requires all native CUPS libraries i.e. the libcups* sub-packages)
|
|
|
|
# and the cups-config sub-package.
|
|
|
|
# The exact matching version-release of each sub-package is available
|
2010-03-18 23:08:54 +01:00
|
|
|
# on the same package repository where the cups package is because
|
|
|
|
# all are built simulaneously from the same cups source package
|
|
|
|
# and all required packages are provided on the same repository:
|
2015-02-16 16:27:41 +01:00
|
|
|
Requires: cups-client = %{version}-%{release}
|
2017-10-17 11:55:46 +02:00
|
|
|
Requires: cups-config = %{version}-%{release}
|
2015-02-16 16:27:41 +01:00
|
|
|
Requires(pre): %{_sbindir}/groupadd
|
|
|
|
Requires(pre): coreutils
|
2018-01-18 11:51:51 +01:00
|
|
|
# Cf. https://en.opensuse.org/openSUSE:Systemd_packaging_guidelines
|
|
|
|
# versus https://lists.opensuse.org/opensuse-factory/2015-03/msg00218.html
|
|
|
|
%{?systemd_requires}
|
|
|
|
# Since CUPS 1.6 all non-Mac filters are dropped from CUPS
|
|
|
|
# and provided in the separated cups-filters software from OpenPrinting.org:
|
2015-02-16 16:27:41 +01:00
|
|
|
Recommends: cups-filters
|
|
|
|
# Our Source105 PSLEVEL1.PPD.bz2 and Source106 PSLEVEL2.PPD.bz2 need foomatic-rip
|
|
|
|
# but this does not justify a RPM Requires so that a weak Recommends is sufficient:
|
|
|
|
Recommends: foomatic-filters
|
2011-02-10 13:18:31 +01:00
|
|
|
# The Ghostscript device "cups" is needed by several CUPS filters
|
2012-04-12 11:02:43 +02:00
|
|
|
# (in particular the "rasterto..." filters) which might justify a RPM Requires.
|
|
|
|
# But a RPM requirement for ghostscript would cause a build dependency cycle because
|
2017-10-17 11:55:46 +02:00
|
|
|
# cups Requires ghostscript which BuildRequires cups-devel which Requires libcups2
|
|
|
|
# and libcups2 is a sub-package of cups so that there is an implicit build dependency
|
2012-04-12 11:02:43 +02:00
|
|
|
# cycle between the main-packages cups and ghostscript.
|
2017-10-17 11:55:46 +02:00
|
|
|
# Furthermore, Ghostscript is not needed on a system where those CUPS filters are not used
|
2012-12-20 14:55:02 +01:00
|
|
|
# (e.g. on client systems in the network where the filtering hapens on a CUPS server
|
2017-10-17 11:55:46 +02:00
|
|
|
# or on a CUPS server with only "raw" queues), so that a weak Recommends fits better:
|
2012-04-12 11:02:43 +02:00
|
|
|
Recommends: ghostscript
|
2017-12-20 12:43:22 +01:00
|
|
|
# Install into this non-root directory (required when it is built as non-root user):
|
2015-02-16 16:27:41 +01:00
|
|
|
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
|
|
|
# Conflicts with other print spoolers which provide same binaries like
|
|
|
|
# /usr/bin/lp and so on or which may listen on the same port (e.g. cups-lpd
|
|
|
|
# versus traditional lpd on port 515):
|
2012-04-10 16:31:33 +02:00
|
|
|
Conflicts: lprng
|
|
|
|
Conflicts: lprold
|
|
|
|
Conflicts: plp
|
2007-01-16 00:08:16 +01:00
|
|
|
|
|
|
|
%description
|
2017-10-17 11:55:46 +02:00
|
|
|
CUPS is a modular printing system which allows a computer to act as a
|
|
|
|
print server. A computer running CUPS is a host that can accept print
|
|
|
|
jobs from client computers, process them, and send them to the
|
|
|
|
appropriate printer.
|
|
|
|
|
|
|
|
CUPS consists of a print spooler and scheduler, a filter system that
|
|
|
|
converts the print data to a format that the printer will understand,
|
|
|
|
and a backend system that sends this data to the print device. CUPS
|
|
|
|
uses the Internet Printing Protocol (IPP) as the basis for managing
|
|
|
|
print jobs and queues. It also provides the traditional command line
|
|
|
|
interfaces for the System V and Berkeley print systems, and provides
|
|
|
|
support for the Berkeley print system's Line Printer Daemon protocol
|
|
|
|
and limited support for the server message block (SMB) protocol.
|
|
|
|
|
|
|
|
CUPS comes with a built-in web-based interface.
|
|
|
|
|
|
|
|
%package -n libcups2
|
|
|
|
Summary: HTTP/IPP communication and printer queue and job library
|
|
|
|
Group: System/Libraries
|
|
|
|
Requires: cups-config
|
|
|
|
Obsoletes: cups-libs < %{version}-%{release}
|
|
|
|
Provides: cups-libs = %{version}-%{release}
|
|
|
|
|
|
|
|
%description -n libcups2
|
|
|
|
The CUPS library contains all of the core HTTP and IPP communications
|
|
|
|
code as well as convenience functions for queuing print jobs, getting
|
|
|
|
printer information, accessing resources via HTTP and IPP, and
|
|
|
|
manipulating PPD files. The scheduler and all commands, filters, and
|
|
|
|
backends use this library.
|
|
|
|
|
|
|
|
%package -n libcupsimage2
|
|
|
|
Summary: CUPS library for working with large images
|
|
|
|
Group: System/Libraries
|
2011-10-06 11:36:19 +02:00
|
|
|
|
2017-10-17 11:55:46 +02:00
|
|
|
%description -n libcupsimage2
|
|
|
|
The CUPS imaging library provides functions for managing large
|
|
|
|
images, doing colorspace conversion and color management, scaling
|
|
|
|
images for printing, and managing raster page streams. It is used by
|
|
|
|
the CUPS image file filters, the PostScript RIP, and all raster
|
|
|
|
printers drivers.
|
2007-01-16 00:08:16 +01:00
|
|
|
|
2017-10-17 11:55:46 +02:00
|
|
|
%package config
|
|
|
|
Summary: CUPS library configuration files
|
2007-01-16 00:08:16 +01:00
|
|
|
Group: Hardware/Printing
|
2017-03-31 13:31:24 +02:00
|
|
|
%if 0%{?suse_version} >= 1330
|
2021-03-19 13:58:06 +01:00
|
|
|
Requires(pre): user(lp)
|
|
|
|
Requires(pre): group(lp)
|
2017-03-31 13:31:24 +02:00
|
|
|
%endif
|
2007-01-16 00:08:16 +01:00
|
|
|
|
2017-10-17 11:55:46 +02:00
|
|
|
%description config
|
|
|
|
CUPS is a modular printing system which allows a computer to act as a
|
|
|
|
print server.
|
2011-10-06 11:36:19 +02:00
|
|
|
|
2017-10-17 11:55:46 +02:00
|
|
|
This subpackage contains some basic configuration files for its
|
|
|
|
operation.
|
2007-01-16 00:08:16 +01:00
|
|
|
|
|
|
|
%package client
|
|
|
|
Summary: CUPS Client Programs
|
2017-10-17 11:55:46 +02:00
|
|
|
# Require the exact matching version-release of the libcups* sub-packages because
|
2010-03-18 23:08:54 +01:00
|
|
|
# non-matching CUPS libraries may let CUPS software crash (e.g. segfault)
|
2017-12-20 12:43:22 +01:00
|
|
|
# because all CUPS software is provided as one single CUPS source tarball
|
|
|
|
# and there are CUPS-internal dependencies via CUPS private API calls
|
2010-03-18 23:08:54 +01:00
|
|
|
# (which do not happen for third-party software which uses only the CUPS public API).
|
2017-12-20 12:43:22 +01:00
|
|
|
# The exact matching version-release of each libcups* sub-package is available
|
2010-03-18 23:08:54 +01:00
|
|
|
# on the same package repository where the cups package is because
|
2017-10-17 11:55:46 +02:00
|
|
|
# all are built simultaneously from the same cups source package
|
2010-03-18 23:08:54 +01:00
|
|
|
# and all required packages are provided on the same repository:
|
2019-02-21 13:56:32 +01:00
|
|
|
Group: Hardware/Printing
|
2017-10-17 11:55:46 +02:00
|
|
|
Requires: libcups2 = %{version}-%{release}
|
2017-12-20 12:43:22 +01:00
|
|
|
Requires: libcupsimage2 = %{version}-%{release}
|
2015-02-16 16:27:41 +01:00
|
|
|
# Conflicts with other print spoolers which provide same binaries like /usr/bin/lp and so on:
|
|
|
|
Conflicts: lprng
|
|
|
|
Conflicts: lprold
|
|
|
|
Conflicts: plp
|
2007-01-16 00:08:16 +01:00
|
|
|
|
|
|
|
%description client
|
2017-10-17 11:55:46 +02:00
|
|
|
CUPS is a modular printing system which allows a computer to act as a
|
|
|
|
print server. A computer running CUPS is a host that can accept print
|
|
|
|
jobs from client computers, process them, and send them to the
|
|
|
|
appropriate printer.
|
2011-10-06 11:36:19 +02:00
|
|
|
|
2017-10-17 11:55:46 +02:00
|
|
|
This package contains the traditional command line interfaces for the
|
|
|
|
System V and Berkeley print systems.
|
2007-01-16 00:08:16 +01:00
|
|
|
|
|
|
|
%package devel
|
|
|
|
Summary: Development Environment for CUPS
|
2017-12-20 12:43:22 +01:00
|
|
|
# Do not require the exact matching version-release
|
|
|
|
# of the native CUPS libraries (i.e. the libcups* sub-packages)
|
|
|
|
# but only CUPS libraries with matching version because
|
2010-03-18 23:08:54 +01:00
|
|
|
# for building third-party software which uses only the CUPS public API
|
|
|
|
# there are no CUPS-internal dependencies via CUPS private API calls
|
2017-12-20 12:43:22 +01:00
|
|
|
# (the latter would require the exact matching CUPS libraries version-release):
|
2019-02-21 13:56:32 +01:00
|
|
|
Group: Development/Libraries/C and C++
|
2012-01-10 11:02:58 +01:00
|
|
|
Requires: glibc-devel
|
2017-10-17 11:55:46 +02:00
|
|
|
Requires: libcups2 = %{version}
|
|
|
|
Requires: libcupsimage2 = %{version}
|
2020-06-25 17:01:23 +02:00
|
|
|
# make sure printer drivers benefit from automatic provides
|
|
|
|
%if 0%{?suse_version} >= 1500
|
|
|
|
Requires: cups-rpm-helper
|
|
|
|
%endif
|
2007-01-16 00:08:16 +01:00
|
|
|
|
|
|
|
%description devel
|
2017-10-17 11:55:46 +02:00
|
|
|
CUPS is a modular printing system which allows a computer to act as a
|
|
|
|
print server.
|
2011-10-06 11:36:19 +02:00
|
|
|
|
2017-10-17 11:55:46 +02:00
|
|
|
This subpackage contains the header files for developing applications
|
|
|
|
that want to make use of libcups for adding print support.
|
2007-01-16 00:08:16 +01:00
|
|
|
|
2010-03-18 23:08:54 +01:00
|
|
|
%package ddk
|
|
|
|
Summary: CUPS Driver Development Kit
|
|
|
|
Group: Hardware/Printing
|
|
|
|
Requires: cups = %{version}
|
|
|
|
Requires: cups-devel = %{version}
|
|
|
|
# Since CUPS 1.4 the CUPS Driver Development Kit (DDK) is bundled with CUPS.
|
|
|
|
# For CUPS 1.2.x and 1.3.x, the DDK was separated software
|
|
|
|
# which we provided (up to openSUSE 11.1 / SLE11) in our cupsddk package:
|
|
|
|
Provides: cupsddk = %{version}
|
|
|
|
Obsoletes: cupsddk < %{version}
|
|
|
|
|
|
|
|
%description ddk
|
2011-10-06 11:36:19 +02:00
|
|
|
The CUPS Driver Development Kit (DDK) provides
|
|
|
|
a suite of standard drivers, a PPD file compiler,
|
|
|
|
and other utilities that can be used to develop
|
|
|
|
printer drivers for CUPS.
|
|
|
|
|
2007-01-16 00:08:16 +01:00
|
|
|
%prep
|
2015-02-16 16:27:41 +01:00
|
|
|
%setup -q
|
2010-03-18 23:08:54 +01:00
|
|
|
# Patch0...Patch9 is for patches from upstream:
|
2015-02-16 16:27:41 +01:00
|
|
|
# Patch10...Patch99 is for patches from SUSE which are intended for upstream:
|
2015-09-01 14:47:12 +02:00
|
|
|
# Patch10 cups-2.1.0-choose-uri-template.patch adds 'smb://...' URIs to templates/choose-uri.tmpl:
|
|
|
|
%patch10 -b choose-uri-template.orig
|
|
|
|
# Patch11 cups-2.1.0-default-webcontent-path.patch changes the default path whereto the
|
2015-02-16 16:27:41 +01:00
|
|
|
# web content is installed from /usr/share/doc/cups to /usr/share/cups/webcontent
|
|
|
|
# because the files of the CUPS web content are no documentation, see CUPS STR #3578
|
2022-03-04 09:58:18 +01:00
|
|
|
# and https://bugzilla.suse.com/show_bug.cgi?id=546023#c6 and subsequent comments:
|
2017-06-02 11:41:37 +02:00
|
|
|
%patch11 -b default-webcontent-path.orig
|
2015-02-16 16:27:41 +01:00
|
|
|
# Patch100...Patch999 is for private patches from SUSE which are not intended for upstream:
|
|
|
|
# Patch100 cups-pam.diff adds conf/pam.suse regarding support for PAM for SUSE:
|
2017-06-02 11:41:37 +02:00
|
|
|
%patch100 -b cups-pam.orig
|
2015-07-01 15:50:32 +02:00
|
|
|
# Patch101 cups-2.0.3-additional_policies.patch adds the 'allowallforanybody' policy to cupsd.conf
|
2022-03-04 09:58:18 +01:00
|
|
|
# see SUSE FATE 303515 and https://bugzilla.suse.com/show_bug.cgi?id=936309
|
2017-06-02 11:41:37 +02:00
|
|
|
%patch101 -b additional_policies.orig
|
2015-02-16 16:27:41 +01:00
|
|
|
# Patch103 cups-1.4-do_not_strip_recommended_from_PPDs.patch
|
|
|
|
# reverts the change which was added by Michael Sweet in Jan 2007
|
|
|
|
# which strips the word "recommended" from NickName in PPDs because
|
|
|
|
# at least yast2-printer in SUSE needs it, compare the
|
|
|
|
# 'Why not "recommend" PPDs in the NickName?' and the subsequent
|
|
|
|
# 'RFC: New Driver Rating/Information Attributes' mail thread on cups@easysw.com:
|
2017-06-02 11:41:37 +02:00
|
|
|
%patch103 -b do_not_strip_recommended_from_PPDs.orig
|
2015-02-16 16:27:41 +01:00
|
|
|
# Patch104 cups-config-libs.patch fixes option --libs in cups-config script:
|
2017-06-02 11:41:37 +02:00
|
|
|
%patch104 -b cups-config-libs.orig
|
2022-03-04 09:58:18 +01:00
|
|
|
# Patch107 harden_cups.service.patch adds hardening to systemd service cups.service
|
|
|
|
# see https://bugzilla.suse.com/show_bug.cgi?id=1181400
|
|
|
|
# and https://en.opensuse.org/openSUSE:Security_Features#Systemd_hardening_effort
|
|
|
|
# where the default hardening settings are enhanced by adding
|
|
|
|
# ReadWritePaths=/etc/cups because cupsd needs write access in /etc/cups
|
|
|
|
# see https://bugzilla.suse.com/show_bug.cgi?id=1195288
|
|
|
|
%patch107 -p1 -b harden_cups.service.orig
|
|
|
|
# Patch108 downgrade-autoconf-requirement.patch
|
|
|
|
# downgrades the autoconf requirement to the autoconf available in Tumbleweed as of this writing:
|
2022-05-30 10:55:44 +02:00
|
|
|
%patch108 -b downgrade-autoconf-requirement.orig
|
2007-01-16 00:08:16 +01:00
|
|
|
|
|
|
|
%build
|
2015-02-16 16:27:41 +01:00
|
|
|
# Remove ".SILENT" rule for verbose build output
|
|
|
|
sed 's#^.SILENT:##g' -i Makedefs.in
|
|
|
|
aclocal -I config-scripts
|
|
|
|
autoconf -I config-scripts
|
|
|
|
# Export the build options we desire
|
|
|
|
export CXXFLAGS="$CXXFLAGS %{optflags} -O2 -fstack-protector -fPIE -fPIC"
|
|
|
|
export CFLAGS="$CFLAGS %{optflags} -fstack-protector -fPIE -fPIC"
|
|
|
|
export LDFLAGS="-pie"
|
|
|
|
export CXX=c++
|
|
|
|
export CC=cc
|
2015-09-01 14:47:12 +02:00
|
|
|
# As long as cups-2.1.0-default-webcontent-path.patch is applied
|
2010-05-07 15:35:59 +02:00
|
|
|
# configure --with-docdir=... would be no longer needed
|
2015-09-01 14:47:12 +02:00
|
|
|
# because cups-2.1.0-default-webcontent-path.patch changes the
|
2010-05-07 15:35:59 +02:00
|
|
|
# default with-docdir path whereto the web content is installed
|
|
|
|
# from /usr/share/doc/cups to /usr/share/cups/webcontent because the
|
|
|
|
# files of the CUPS web content are no documentation, see CUPS STR #3578
|
2022-03-04 09:58:18 +01:00
|
|
|
# and https://bugzilla.suse.com/show_bug.cgi?id=546023#c6 and subsequent comments
|
2010-05-07 15:35:59 +02:00
|
|
|
# so that the new default could be used as is but upstream may accept
|
2015-09-01 14:47:12 +02:00
|
|
|
# cups-2.1.0-default-webcontent-path.patch in general but change its default
|
2015-02-16 16:27:41 +01:00
|
|
|
# so that with-docdir is explicitly set here to be future proof.
|
|
|
|
# Regarding --with-rundir and --with-domainsocket
|
|
|
|
# see https://www.cups.org/str.php?L4306 and
|
|
|
|
# http://lists.opensuse.org/opensuse-factory/2013-01/msg00578.html
|
|
|
|
# --without-perl/php - neither actually work correctly so rather disable
|
|
|
|
# --without-xinetd - socket activation from systemd works better
|
|
|
|
# --enable-debug - avoids stripping of binaries
|
|
|
|
# --enable-relro - force relro sections in binaries/libs
|
|
|
|
%configure \
|
|
|
|
--enable-option-checking \
|
|
|
|
--with-docdir=%{_datadir}/cups/webcontent \
|
|
|
|
--with-cups-user=lp \
|
|
|
|
--with-cups-group=lp \
|
|
|
|
--with-system-groups=root \
|
|
|
|
--enable-debug \
|
|
|
|
--enable-debug-printfs \
|
|
|
|
--enable-relro \
|
|
|
|
--enable-gssapi \
|
|
|
|
--enable-libusb \
|
|
|
|
--disable-static \
|
|
|
|
--without-rcdir \
|
|
|
|
--with-cachedir=%{_localstatedir}/cache/cups \
|
|
|
|
--with-rundir=/run/cups \
|
|
|
|
--with-domainsocket=/run/cups/cups.sock \
|
|
|
|
--enable-dbus \
|
|
|
|
--enable-pam \
|
|
|
|
--enable-threads \
|
|
|
|
--enable-gnutls \
|
|
|
|
--enable-systemd \
|
|
|
|
--enable-avahi --disable-dnssd \
|
|
|
|
--enable-libpaper \
|
|
|
|
--without-perl \
|
|
|
|
--without-php \
|
|
|
|
--with-xinetd=no \
|
|
|
|
--enable-webif \
|
|
|
|
localedir=%{_datadir}/locale
|
|
|
|
make %{?_smp_mflags}
|
2007-01-16 00:08:16 +01:00
|
|
|
|
|
|
|
%install
|
2014-02-14 09:37:00 +01:00
|
|
|
make BUILDROOT=%{buildroot} install
|
2010-03-31 19:57:49 +02:00
|
|
|
# Make directory for ssl files:
|
2014-02-14 09:37:00 +01:00
|
|
|
mkdir -p %{buildroot}%{_sysconfdir}/cups/ssl
|
2010-03-31 19:57:49 +02:00
|
|
|
# Add a client.conf as template (Source108: cups-client.conf):
|
2014-02-14 09:37:00 +01:00
|
|
|
install -m644 %{SOURCE108} %{buildroot}%{_sysconfdir}/cups/client.conf
|
2010-03-31 19:57:49 +02:00
|
|
|
# Make the libraries accessible also via generic named links:
|
2014-02-14 09:37:00 +01:00
|
|
|
ln -sf libcupsimage.so.2 %{buildroot}%{_libdir}/libcupsimage.so
|
|
|
|
ln -sf libcups.so.2 %{buildroot}%{_libdir}/libcups.so
|
2022-04-04 16:08:30 +02:00
|
|
|
# Move /usr/lib/pkgconfig/cups.pc to _libdir if it is not there
|
|
|
|
# to avoid a conflict that cups-devel and cups-devel-32bit
|
|
|
|
# would both contain /usr/lib/pkgconfig/cups.pc because
|
|
|
|
# when cups.pc is arch dependent it has to be in _libdir
|
|
|
|
# which it is because it contains 'libdir=/usr/lib64' on x86_64
|
|
|
|
# (if it was arch independent it would have to be in _datadir)
|
|
|
|
# cf. https://build.opensuse.org/request/show/965680
|
|
|
|
test -d %{buildroot}%{_libdir}/pkgconfig || mv %{buildroot}/usr/lib/pkgconfig %{buildroot}%{_libdir}/pkgconfig
|
2010-03-31 19:57:49 +02:00
|
|
|
# Add missing usual directories:
|
2014-02-14 09:37:00 +01:00
|
|
|
install -d -m755 %{buildroot}%{_datadir}/cups/drivers
|
2015-02-16 16:27:41 +01:00
|
|
|
install -d -m755 %{buildroot}%{_localstatedir}/cache/cups
|
2010-03-31 19:57:49 +02:00
|
|
|
# Add conf/pam.suse regarding support for PAM (see Patch100: cups-pam.diff):
|
2015-02-16 16:27:41 +01:00
|
|
|
install -m 644 -D conf/pam.suse %{buildroot}%{_sysconfdir}/pam.d/cups
|
2017-10-20 14:22:46 +02:00
|
|
|
# Add missing usual documentation.
|
2014-02-14 09:37:00 +01:00
|
|
|
install -d -m755 %{buildroot}/%{_defaultdocdir}/cups
|
2017-12-20 12:43:22 +01:00
|
|
|
for f in CHANGES.md CREDITS.md INSTALL.md LICENSE README.md
|
2014-02-14 09:37:00 +01:00
|
|
|
do install -m 644 "$f" %{buildroot}%{_defaultdocdir}/cups/
|
2007-01-16 00:08:16 +01:00
|
|
|
done
|
2015-02-16 16:27:41 +01:00
|
|
|
# Add generic PostScript printer PPDs:
|
|
|
|
# Source102: Postscript.ppd.gz
|
|
|
|
install -m 644 %{SOURCE102} %{buildroot}%{_datadir}/cups/model/Postscript.ppd.gz
|
|
|
|
# Source105: Postscript-level1.ppd,gz
|
|
|
|
install -m 644 %{SOURCE105} %{buildroot}%{_datadir}/cups/model/Postscript-level1.ppd.gz
|
|
|
|
# Source106: Postscript-level2.ppd.gz
|
|
|
|
install -m 644 %{SOURCE106} %{buildroot}%{_datadir}/cups/model/Postscript-level2.ppd.gz
|
2016-07-01 15:52:54 +02:00
|
|
|
# Rm files for desktop menu:
|
2015-02-16 16:27:41 +01:00
|
|
|
rm -f %{buildroot}%{_datadir}/applications/cups.desktop
|
|
|
|
rm -rf %{buildroot}%{_datadir}/icons
|
2012-08-01 12:50:21 +02:00
|
|
|
# Save /etc/cups/cupsd.conf and /etc/cups/cupsd.conf.default from becoming hardlinked
|
2022-03-04 09:58:18 +01:00
|
|
|
# via the fdupes run below, see https://bugzilla.suse.com/show_bug.cgi?id=773971
|
2012-08-01 12:50:21 +02:00
|
|
|
# by making their content different and at the same time fix the misleading comment.
|
|
|
|
# Intentionally let the build fail if 'grep' does not find what 'sed' should change
|
2015-02-16 16:27:41 +01:00
|
|
|
# because if upstream changed it 'sed' would silently no longer change the files:
|
|
|
|
grep -q '^# Configuration ' %{buildroot}/%{_sysconfdir}/cups/cupsd.conf.default
|
|
|
|
sed -i -e 's/^# Configuration /# Default configuration /' %{buildroot}/%{_sysconfdir}/cups/cupsd.conf.default
|
2017-12-20 12:43:22 +01:00
|
|
|
# rcbla aliases:
|
2015-02-16 16:27:41 +01:00
|
|
|
ln -s service %{buildroot}%{_sbindir}/rccups
|
|
|
|
ln -s service %{buildroot}%{_sbindir}/rccups-lpd
|
2014-02-14 09:37:00 +01:00
|
|
|
# Install /usr/lib/tmpfiles.d/cups.conf
|
2017-06-08 16:03:34 +02:00
|
|
|
# According to
|
|
|
|
# https://developers.redhat.com/blog/2016/09/20/managing-temporary-files-with-systemd-tmpfiles-on-rhel7/
|
|
|
|
# d /var/spool/cups/tmp - - - 30d
|
|
|
|
# results that each file older than 30 days on /var/spool/cups/tmp will be deleted where a file
|
|
|
|
# will be considered unused only if atime, mtime and ctime are all older than the specified time.
|
|
|
|
# We use group 'root' for /run/cups/certs (instead of 'sys')
|
|
|
|
# d /run/cups/certs 0511 lp root -
|
|
|
|
# because of https://bugzilla.opensuse.org/show_bug.cgi?id=1042916
|
2014-02-14 09:37:00 +01:00
|
|
|
mkdir -p %{buildroot}%{_tmpfilesdir}
|
|
|
|
cat > %{buildroot}%{_tmpfilesdir}/cups.conf <<EOF
|
2013-10-09 10:41:40 +02:00
|
|
|
# See tmpfiles.d(5) for details
|
2017-06-08 16:03:34 +02:00
|
|
|
# Type(d=directory) Path Mode UID GID Age(until delete when cleaning)
|
2013-10-09 10:41:40 +02:00
|
|
|
d /run/cups 0755 root lp -
|
2017-06-08 16:03:34 +02:00
|
|
|
d /run/cups/certs 0511 lp root -
|
2015-02-16 16:27:41 +01:00
|
|
|
d %{_localstatedir}/spool/cups/tmp - - - 30d
|
2013-10-09 10:41:40 +02:00
|
|
|
EOF
|
2014-01-29 16:05:09 +01:00
|
|
|
# Never run fdupes carelessly over the whole buildroot directory
|
|
|
|
# because in older openSUSE and SLE11 versions fdupes
|
|
|
|
# links files with different owner, group, or permissions
|
2022-03-04 09:58:18 +01:00
|
|
|
# see https://bugzilla.suse.com/show_bug.cgi?id=784670
|
2015-02-16 16:27:41 +01:00
|
|
|
# and even in current openSUSE versions fdupes links across sub-package
|
2022-03-04 09:58:18 +01:00
|
|
|
# boundaries, compare https://bugzilla.suse.com/show_bug.cgi?id=784869
|
2014-09-02 15:58:54 +02:00
|
|
|
%fdupes -s %{buildroot}/%{_datadir}/cups/templates
|
2007-01-16 00:08:16 +01:00
|
|
|
|
2021-04-06 12:09:56 +02:00
|
|
|
%check
|
|
|
|
%if %{with testsuite}
|
2022-03-04 13:48:44 +01:00
|
|
|
# There appears to be some kind of race condition when running 'make test'
|
2021-04-06 12:09:56 +02:00
|
|
|
# cf. https://github.com/OpenPrinting/cups/issues/155
|
2022-03-04 13:48:44 +01:00
|
|
|
# so we do not call 'make %{?_smp_mflags} test' but plain 'make test'
|
|
|
|
# cf. https://github.com/OpenPrinting/cups/issues/155#issuecomment-802886811
|
|
|
|
# We print the log files for debugging purposes if the testsuite fails.
|
|
|
|
# The log files in the test directory are named like
|
|
|
|
# access_log-2022-03-04-abuild
|
|
|
|
# debug_log-2022-03-04-abuild
|
|
|
|
# error_log-2022-03-04-abuild
|
|
|
|
# page_log-2022-03-04-abuild
|
|
|
|
# We do not error out because https://github.com/OpenPrinting/cups/issues/155
|
|
|
|
# is not yet actually fixed so currently the testsuite still sometimes fails:
|
|
|
|
echo "TEST: running 'make test'"
|
|
|
|
if make test
|
|
|
|
then echo "TEST: succeeded"
|
|
|
|
else echo "TEST: 'make test' FAILED"
|
|
|
|
for logfile in test/*_log-*-$(whoami)
|
|
|
|
do echo "TEST: printing log file $logfile:"
|
|
|
|
cat $logfile
|
|
|
|
echo "TEST: end of log file $logfile"
|
|
|
|
done
|
|
|
|
echo "TEST: end of printing log files"
|
|
|
|
fi
|
2021-04-06 12:09:56 +02:00
|
|
|
%else
|
2022-03-04 13:48:44 +01:00
|
|
|
echo "TEST: skipped 'make test', cf. https://github.com/OpenPrinting/cups/issues/155"
|
2021-04-06 12:09:56 +02:00
|
|
|
%endif
|
|
|
|
|
2015-07-01 15:50:32 +02:00
|
|
|
%pre -p /bin/bash
|
2017-10-17 11:55:46 +02:00
|
|
|
getent group ntadmin >/dev/null || %{_sbindir}/groupadd -g 71 -o -r ntadmin
|
2018-09-19 10:39:04 +02:00
|
|
|
%service_add_pre cups.service cups-lpd.socket cups.socket
|
2007-01-16 00:08:16 +01:00
|
|
|
|
2015-07-01 15:50:32 +02:00
|
|
|
%post -p /bin/bash
|
2021-03-19 09:01:02 +01:00
|
|
|
%if 0
|
2015-09-01 09:38:56 +02:00
|
|
|
# Use %%tmpfiles_create when 13.2 is oldest in support scope
|
2021-03-19 09:01:02 +01:00
|
|
|
%endif
|
2015-06-25 10:03:07 +02:00
|
|
|
/usr/bin/systemd-tmpfiles --create %{_tmpfilesdir}/cups.conf || :
|
2021-03-19 09:01:02 +01:00
|
|
|
%service_add_post cups.service cups-lpd.socket cups.socket
|
2007-01-16 00:08:16 +01:00
|
|
|
|
2015-07-01 15:50:32 +02:00
|
|
|
%preun -p /bin/bash
|
2018-09-19 10:39:04 +02:00
|
|
|
%service_del_preun cups.service cups-lpd.socket cups.socket
|
2007-01-16 00:08:16 +01:00
|
|
|
|
2015-07-01 15:50:32 +02:00
|
|
|
%postun -p /bin/bash
|
2018-09-19 10:39:04 +02:00
|
|
|
%service_del_postun cups.service cups-lpd.socket cups.socket
|
2010-03-31 19:57:49 +02:00
|
|
|
|
2021-04-06 12:09:56 +02:00
|
|
|
# Removed code comments from expanded scriptlets to reduce scriptlet size in binary RPMs
|
|
|
|
# but then users could no longer see the comments via "rpm -q --scripts cups"
|
|
|
|
# cf. https://build.opensuse.org/request/show/879976
|
2015-07-01 15:50:32 +02:00
|
|
|
%posttrans -p /bin/bash
|
2021-03-19 09:01:02 +01:00
|
|
|
%if 0
|
2014-11-25 17:11:18 +01:00
|
|
|
# Use a real bash script with an explicit "exit 0" at the end to be by default fail safe
|
|
|
|
# an explicit "exit 1" must be use to enforce package install/upgrade/erase failure where needed
|
|
|
|
# see the "Shared_libraries" section in http://en.opensuse.org/openSUSE:Packaging_scriptlet_snippets
|
|
|
|
# Begin refresh systemd units and clean up possibly obsolete systemd units
|
|
|
|
# The following is a generic way how to refresh and/or clean up systemd units.
|
|
|
|
# A systemd unit may need a refresh after updating a package when the new package
|
|
|
|
# had installed a changed systemd unit file for an enabled systemd unit.
|
|
|
|
# A systemd unit may become obsolete by updating a package (see bnc#904215).
|
|
|
|
# A systemd unit is considered to have become obsolete when the systemd
|
|
|
|
# symlink /etc/systemd/system/.../unit_name -> /path/to/unit_file is broken.
|
|
|
|
# When during package update the new package does no longer provide a unit file
|
|
|
|
# then the systemd symlink becomes broken after the files of the old package
|
|
|
|
# had been actually removed by RPM.
|
|
|
|
# According to /usr/share/doc/packages/rpm/manual/triggers and according
|
|
|
|
# to https://en.opensuse.org/openSUSE:Packaging_scriptlet_snippets#Scriptlet_Ordering
|
|
|
|
# and http://fedoraproject.org/wiki/Packaging:ScriptletSnippets#Scriptlet_Ordering
|
|
|
|
# from the new package only "posttrans of new package" is run after "removal of old package"
|
|
|
|
# so that the new package must do the clean up as RPM posttrans scriptlet.
|
2021-03-19 09:01:02 +01:00
|
|
|
%endif
|
2015-02-16 16:27:41 +01:00
|
|
|
for u in cups.service cups.socket cups.path; do
|
|
|
|
if systemctl --quiet is-enabled $u 2>/dev/null
|
2021-03-19 09:01:02 +01:00
|
|
|
then
|
|
|
|
%if 0
|
|
|
|
# Refresh still valid enabled systemd units and clean up possibly obsoleted systemd units:
|
2014-11-25 17:11:18 +01:00
|
|
|
# Enforce systemd to use the current unit file which is usually the unit file of the new package
|
|
|
|
# but also in case of custom units (that use other unit files) a "reenable" won't hurt because
|
|
|
|
# "reenable" does not implicitly stop a running service which is "the right thing" because
|
|
|
|
# a RPM package installation must not automatically disrupt (restart) a running service.
|
|
|
|
# Using "--force reenable" is essential to clean up possibly conflicting/broken symlinks.
|
|
|
|
# (without "|| :" build fails with "Failed to get D-Bus connection: No connection to service manager. posttrans script ... failed"):
|
2021-03-19 09:01:02 +01:00
|
|
|
%endif
|
2014-11-25 17:11:18 +01:00
|
|
|
systemctl --quiet --force reenable $u 2>/dev/null || :
|
2021-03-19 09:01:02 +01:00
|
|
|
else
|
|
|
|
%if 0
|
|
|
|
# Refresh still valid disabled systemd units and clean up possibly obsoleted systemd units:
|
2014-11-25 17:11:18 +01:00
|
|
|
# First using "--force reenable" is essential to clean up possibly conflicting/broken symlinks
|
|
|
|
# because there is no "--force disable" that would clean up possibly conflicting/broken symlinks
|
|
|
|
# see https://bugzilla.opensuse.org/show_bug.cgi?id=904215#c34
|
|
|
|
# so that first the unit has a clean state and then it is set back to disabled (as it was before).
|
|
|
|
# If a disabled systemd unit has become obsoleted, "systemctl --force reenable" will clean it up
|
|
|
|
# which means the unit gets removed and the subsequent "systemctl disable" will do nothing.
|
|
|
|
# (without "|| :" build fails with "Failed to get D-Bus connection: No connection to service manager. posttrans script ... failed"):
|
2021-03-19 09:01:02 +01:00
|
|
|
%endif
|
2014-11-25 17:11:18 +01:00
|
|
|
systemctl --quiet --force reenable $u 2>/dev/null || :
|
|
|
|
systemctl --quiet disable $u 2>/dev/null || :
|
|
|
|
fi
|
|
|
|
done
|
|
|
|
exit 0
|
|
|
|
|
2017-10-17 11:55:46 +02:00
|
|
|
%post -n libcups2 -p /sbin/ldconfig
|
|
|
|
%postun -n libcups2 -p /sbin/ldconfig
|
|
|
|
%post -n libcupsimage2 -p /sbin/ldconfig
|
|
|
|
%postun -n libcupsimage2 -p /sbin/ldconfig
|
2010-03-31 19:57:49 +02:00
|
|
|
|
2011-10-06 11:36:19 +02:00
|
|
|
%files
|
2015-02-16 16:27:41 +01:00
|
|
|
%defattr(-,root,root)
|
2012-02-21 09:52:18 +01:00
|
|
|
# In particular all executables are listed explicitly.
|
2010-03-31 19:57:49 +02:00
|
|
|
# This avoids that CUPS' configure magic might silently
|
|
|
|
# not build and install an executable when whatever condition
|
2015-02-16 16:27:41 +01:00
|
|
|
# for configure's automated tests is not fulfilled in the build system.
|
2022-03-04 09:58:18 +01:00
|
|
|
# See https://bugzilla.suse.com/show_bug.cgi?id=526847#c9
|
2021-05-03 10:34:56 +02:00
|
|
|
# Regarding specific owner group and permission settings for directories
|
|
|
|
# see https://bugzilla.suse.com/show_bug.cgi?id=1184161
|
|
|
|
# When cupsd creates directories with specific owner group and permissions
|
|
|
|
# (usually owner is 'root' and group matches "configure --with-cups-group=lp")
|
|
|
|
# we must specify same owner group and permission settings here
|
|
|
|
# to ensure those directories are installed by RPM with the right settings
|
|
|
|
# because if those directories were installed by RPM with different settings then
|
|
|
|
# cupsd would use them as is and not adjust its specific owner group and permissions.
|
|
|
|
# How cupsd creates those directories:
|
|
|
|
# drwxr-xr-x ... root lp ... /etc/cups/ppd
|
|
|
|
# see https://bugzilla.suse.com/show_bug.cgi?id=1184161#c7
|
|
|
|
# The /etc/cups/ssl directory is not created by cupsd (but needed by it)
|
|
|
|
# and when needed (e.g. during the first run of "# lpstat -E -p")
|
|
|
|
# cupsd creates files in /etc/cups/ssl like localhost.crt and localhost.key
|
|
|
|
# so we specify secure owner group and permissions for /etc/cups/ssl
|
2015-02-16 16:27:41 +01:00
|
|
|
%config(noreplace) %attr(640,root,lp) %{_sysconfdir}/cups/cups-files.conf
|
2010-03-18 23:08:53 +01:00
|
|
|
%config(noreplace) %attr(640,root,lp) %{_sysconfdir}/cups/cupsd.conf
|
|
|
|
%config(noreplace) %attr(640,root,lp) %{_sysconfdir}/cups/snmp.conf
|
2010-03-18 23:08:54 +01:00
|
|
|
%config %{_sysconfdir}/pam.d/cups
|
2010-05-07 15:35:59 +02:00
|
|
|
%config %{_sysconfdir}/dbus-1/system.d/cups.conf
|
2015-02-16 16:27:41 +01:00
|
|
|
%config %{_sysconfdir}/cups/cupsd.conf.default
|
2015-09-01 14:47:12 +02:00
|
|
|
%config %{_sysconfdir}/cups/cups-files.conf.default
|
|
|
|
%config %{_sysconfdir}/cups/snmp.conf.default
|
2010-03-18 23:08:54 +01:00
|
|
|
%dir %attr(755,root,lp) %{_sysconfdir}/cups/ppd
|
2021-05-03 10:34:56 +02:00
|
|
|
%dir %attr(700,root,root) %{_sysconfdir}/cups/ssl
|
2014-02-14 09:37:00 +01:00
|
|
|
%{_unitdir}/cups.service
|
2015-02-16 16:27:41 +01:00
|
|
|
%{_unitdir}/cups.socket
|
|
|
|
%{_unitdir}/cups.path
|
|
|
|
%{_unitdir}/cups-lpd.socket
|
|
|
|
%{_unitdir}/cups-lpd@.service
|
2014-02-14 09:37:00 +01:00
|
|
|
%{_tmpfilesdir}/cups.conf
|
2007-01-16 00:08:16 +01:00
|
|
|
%{_bindir}/cupstestppd
|
2007-10-16 02:39:15 +02:00
|
|
|
%{_sbindir}/cupsctl
|
2007-01-16 00:08:16 +01:00
|
|
|
%{_sbindir}/cupsd
|
2007-10-16 02:39:15 +02:00
|
|
|
%{_sbindir}/cupsfilter
|
2010-03-18 23:08:54 +01:00
|
|
|
%{_sbindir}/rccups
|
2015-02-16 16:27:41 +01:00
|
|
|
%{_sbindir}/rccups-lpd
|
2020-06-08 15:11:58 +02:00
|
|
|
%dir /usr/lib/cups
|
|
|
|
%dir /usr/lib/cups/backend
|
|
|
|
/usr/lib/cups/backend/dnssd
|
|
|
|
/usr/lib/cups/backend/http
|
|
|
|
/usr/lib/cups/backend/https
|
|
|
|
/usr/lib/cups/backend/ipp
|
|
|
|
/usr/lib/cups/backend/ipps
|
|
|
|
/usr/lib/cups/backend/lpd
|
|
|
|
/usr/lib/cups/backend/snmp
|
|
|
|
/usr/lib/cups/backend/socket
|
|
|
|
/usr/lib/cups/backend/usb
|
|
|
|
%dir /usr/lib/cups/cgi-bin
|
|
|
|
/usr/lib/cups/cgi-bin/admin.cgi
|
|
|
|
/usr/lib/cups/cgi-bin/classes.cgi
|
|
|
|
/usr/lib/cups/cgi-bin/help.cgi
|
|
|
|
/usr/lib/cups/cgi-bin/jobs.cgi
|
|
|
|
/usr/lib/cups/cgi-bin/printers.cgi
|
2020-10-22 10:44:04 +02:00
|
|
|
%dir /usr/lib/cups/command
|
|
|
|
/usr/lib/cups/command/ippevepcl
|
|
|
|
/usr/lib/cups/command/ippeveps
|
2020-06-08 15:11:58 +02:00
|
|
|
%dir /usr/lib/cups/daemon
|
|
|
|
/usr/lib/cups/daemon/cups-deviced
|
|
|
|
/usr/lib/cups/daemon/cups-driverd
|
|
|
|
/usr/lib/cups/daemon/cups-exec
|
|
|
|
/usr/lib/cups/daemon/cups-lpd
|
|
|
|
%dir /usr/lib/cups/driver
|
|
|
|
%dir /usr/lib/cups/filter
|
|
|
|
/usr/lib/cups/filter/commandtops
|
|
|
|
/usr/lib/cups/filter/gziptoany
|
|
|
|
/usr/lib/cups/filter/pstops
|
|
|
|
/usr/lib/cups/filter/rastertoepson
|
|
|
|
/usr/lib/cups/filter/rastertohp
|
|
|
|
/usr/lib/cups/filter/rastertolabel
|
|
|
|
/usr/lib/cups/filter/rastertopwg
|
|
|
|
%dir /usr/lib/cups/monitor
|
|
|
|
/usr/lib/cups/monitor/bcp
|
|
|
|
/usr/lib/cups/monitor/tbcp
|
|
|
|
%dir /usr/lib/cups/notifier
|
|
|
|
/usr/lib/cups/notifier/dbus
|
|
|
|
/usr/lib/cups/notifier/mailto
|
|
|
|
/usr/lib/cups/notifier/rss
|
2010-03-18 23:08:54 +01:00
|
|
|
%dir %attr(0775,root,ntadmin) %{_datadir}/cups/drivers
|
|
|
|
%doc %{_defaultdocdir}/cups
|
2015-02-16 16:27:41 +01:00
|
|
|
%doc %{_mandir}/man1/cups.1.gz
|
2010-03-18 23:08:54 +01:00
|
|
|
%doc %{_mandir}/man1/cupstestppd.1.gz
|
2020-10-22 10:44:04 +02:00
|
|
|
%doc %{_mandir}/man1/ippeveprinter.1.gz
|
2010-03-18 23:08:54 +01:00
|
|
|
%doc %{_mandir}/man5/classes.conf.5.gz
|
|
|
|
%doc %{_mandir}/man5/client.conf.5.gz
|
|
|
|
%doc %{_mandir}/man5/cups-snmp.conf.5.gz
|
2015-02-16 16:27:41 +01:00
|
|
|
%doc %{_mandir}/man5/cups-files.conf.5.gz
|
2015-08-21 09:09:25 +02:00
|
|
|
%doc %{_mandir}/man5/cupsd-logs.5.gz
|
2010-03-18 23:08:54 +01:00
|
|
|
%doc %{_mandir}/man5/cupsd.conf.5.gz
|
|
|
|
%doc %{_mandir}/man5/mailto.conf.5.gz
|
|
|
|
%doc %{_mandir}/man5/mime.convs.5.gz
|
|
|
|
%doc %{_mandir}/man5/mime.types.5.gz
|
|
|
|
%doc %{_mandir}/man5/printers.conf.5.gz
|
|
|
|
%doc %{_mandir}/man5/subscriptions.conf.5.gz
|
|
|
|
%doc %{_mandir}/man7/backend.7.gz
|
|
|
|
%doc %{_mandir}/man7/filter.7.gz
|
2020-10-22 10:44:04 +02:00
|
|
|
%doc %{_mandir}/man7/ippevepcl.7.gz
|
|
|
|
%doc %{_mandir}/man7/ippeveps.7.gz
|
2010-03-18 23:08:54 +01:00
|
|
|
%doc %{_mandir}/man7/notifier.7.gz
|
|
|
|
%doc %{_mandir}/man8/cups-deviced.8.gz
|
|
|
|
%doc %{_mandir}/man8/cups-driverd.8.gz
|
2015-02-16 16:27:41 +01:00
|
|
|
%doc %{_mandir}/man8/cups-exec.8.gz
|
2010-03-18 23:08:54 +01:00
|
|
|
%doc %{_mandir}/man8/cups-lpd.8.gz
|
2015-02-16 16:27:41 +01:00
|
|
|
%doc %{_mandir}/man8/cups-snmp.8.gz
|
2010-03-18 23:08:54 +01:00
|
|
|
%doc %{_mandir}/man8/cupsctl.8.gz
|
|
|
|
%doc %{_mandir}/man8/cupsd.8.gz
|
2015-02-16 16:27:41 +01:00
|
|
|
%doc %{_mandir}/man8/cupsd-helper.8.gz
|
2010-03-18 23:08:54 +01:00
|
|
|
%doc %{_mandir}/man8/cupsfilter.8.gz
|
|
|
|
%{_datadir}/cups/
|
2007-01-16 00:08:16 +01:00
|
|
|
|
2011-10-06 11:36:19 +02:00
|
|
|
%files client
|
2007-01-16 00:08:16 +01:00
|
|
|
%defattr(-,root,root)
|
2010-03-18 23:08:54 +01:00
|
|
|
%{_bindir}/cancel
|
2020-10-22 10:44:04 +02:00
|
|
|
%{_bindir}/ippeveprinter
|
2015-02-16 16:27:41 +01:00
|
|
|
%{_bindir}/ippfind
|
2011-10-06 11:36:19 +02:00
|
|
|
%{_bindir}/ipptool
|
2007-01-16 00:08:16 +01:00
|
|
|
%{_bindir}/lp
|
|
|
|
%{_bindir}/lpoptions
|
|
|
|
%{_bindir}/lpq
|
|
|
|
%{_bindir}/lpr
|
|
|
|
%{_bindir}/lprm
|
|
|
|
%{_bindir}/lpstat
|
2010-03-18 23:08:54 +01:00
|
|
|
%{_sbindir}/cupsaccept
|
|
|
|
%{_sbindir}/cupsdisable
|
|
|
|
%{_sbindir}/cupsenable
|
|
|
|
%{_sbindir}/cupsreject
|
|
|
|
%{_sbindir}/lpadmin
|
|
|
|
%{_sbindir}/lpc
|
|
|
|
%{_sbindir}/lpinfo
|
|
|
|
%{_sbindir}/lpmove
|
|
|
|
%doc %{_mandir}/man1/cancel.1.gz
|
2015-02-16 16:27:41 +01:00
|
|
|
%doc %{_mandir}/man1/ippfind.1.gz
|
2011-10-06 11:36:19 +02:00
|
|
|
%doc %{_mandir}/man1/ipptool.1.gz
|
2010-03-18 23:08:54 +01:00
|
|
|
%doc %{_mandir}/man1/lp.1.gz
|
|
|
|
%doc %{_mandir}/man1/lpoptions.1.gz
|
|
|
|
%doc %{_mandir}/man1/lpq.1.gz
|
|
|
|
%doc %{_mandir}/man1/lpr.1.gz
|
|
|
|
%doc %{_mandir}/man1/lprm.1.gz
|
|
|
|
%doc %{_mandir}/man1/lpstat.1.gz
|
2011-10-06 11:36:19 +02:00
|
|
|
%doc %{_mandir}/man5/ipptoolfile.5.gz
|
2010-03-18 23:08:54 +01:00
|
|
|
%doc %{_mandir}/man8/cupsaccept.8.gz
|
|
|
|
%doc %{_mandir}/man8/cupsdisable.8.gz
|
|
|
|
%doc %{_mandir}/man8/cupsenable.8.gz
|
|
|
|
%doc %{_mandir}/man8/cupsreject.8.gz
|
|
|
|
%doc %{_mandir}/man8/lpadmin.8.gz
|
|
|
|
%doc %{_mandir}/man8/lpc.8.gz
|
|
|
|
%doc %{_mandir}/man8/lpinfo.8.gz
|
|
|
|
%doc %{_mandir}/man8/lpmove.8.gz
|
2007-01-16 00:08:16 +01:00
|
|
|
|
|
|
|
%files devel
|
|
|
|
%defattr(-,root,root)
|
2010-03-18 23:08:54 +01:00
|
|
|
%{_includedir}/cups/
|
2007-05-25 00:40:10 +02:00
|
|
|
%{_libdir}/libcups.so
|
|
|
|
%{_libdir}/libcupsimage.so
|
2022-04-04 16:08:30 +02:00
|
|
|
%{_libdir}/pkgconfig/cups.pc
|
2010-03-18 23:08:54 +01:00
|
|
|
|
|
|
|
%files ddk
|
|
|
|
%defattr(-,root,root)
|
|
|
|
%{_bindir}/ppdc
|
|
|
|
%{_bindir}/ppdhtml
|
|
|
|
%{_bindir}/ppdi
|
|
|
|
%{_bindir}/ppdmerge
|
|
|
|
%{_bindir}/ppdpo
|
|
|
|
%doc %{_mandir}/man1/ppdc.1.gz
|
|
|
|
%doc %{_mandir}/man1/ppdhtml.1.gz
|
|
|
|
%doc %{_mandir}/man1/ppdi.1.gz
|
|
|
|
%doc %{_mandir}/man1/ppdmerge.1.gz
|
|
|
|
%doc %{_mandir}/man1/ppdpo.1.gz
|
|
|
|
%doc %{_mandir}/man5/ppdcfile.5.gz
|
2007-01-16 00:08:16 +01:00
|
|
|
|
2017-10-17 11:55:46 +02:00
|
|
|
%files -n libcups2
|
|
|
|
%defattr(-,root,root)
|
|
|
|
%{_libdir}/libcups.so.2
|
|
|
|
|
|
|
|
%files -n libcupsimage2
|
|
|
|
%defattr(-,root,root)
|
|
|
|
%{_libdir}/libcupsimage.so.2
|
|
|
|
|
|
|
|
%files config
|
2021-05-03 10:34:56 +02:00
|
|
|
# Regarding specific owner group and permission settings for directories
|
|
|
|
# see the above comment in the files section of the main package.
|
|
|
|
# How cupsd creates those directories:
|
|
|
|
# drwx--x--- ... root lp ... /var/spool/cups
|
|
|
|
# drwxrwx--T ... root lp ... /var/spool/cups/tmp
|
|
|
|
# drwxr-xr-x ... root lp ... /var/log/cups
|
|
|
|
# drwxrwx--- ... root lp ... /var/cache/cups
|
|
|
|
# see https://bugzilla.suse.com/show_bug.cgi?id=1184161#c7
|
|
|
|
# The 'lp' user does not need write permissions in /var/log/cups
|
|
|
|
# regardless that filters and backends are usually run as user 'lp' because
|
|
|
|
# filters and backends write log messages to the inherited stderr file descriptor
|
|
|
|
# and do not append them directly to /var/log/cups/error_log (via fopen on their own).
|
|
|
|
# The /etc/cups directory is not created by cupsd but needed by it
|
|
|
|
# because cupsd cannot start if there is no /etc/cups/cupsd.conf file
|
|
|
|
# (otherwise cupsd aborts with: "Unable to open /etc/cups/cupsd.conf").
|
2007-01-16 00:08:16 +01:00
|
|
|
%defattr(-,root,root)
|
2017-03-31 13:31:24 +02:00
|
|
|
%if 0%{?suse_version} >= 1330
|
|
|
|
%dir %attr(0755,root,lp) /etc/cups
|
|
|
|
%endif
|
2010-03-18 23:08:54 +01:00
|
|
|
%config(noreplace) %{_sysconfdir}/cups/client.conf
|
2008-01-17 22:30:43 +01:00
|
|
|
%dir %attr(0710,root,lp) %{_var}/spool/cups
|
|
|
|
%dir %attr(1770,root,lp) %{_var}/spool/cups/tmp
|
2021-05-03 10:34:56 +02:00
|
|
|
%dir %attr(0755,root,lp) %{_var}/log/cups
|
|
|
|
%dir %attr(0770,root,lp) %{_var}/cache/cups
|
2010-03-18 23:08:54 +01:00
|
|
|
%{_bindir}/cups-config
|
2007-01-16 00:08:16 +01:00
|
|
|
%{_datadir}/locale/*/cups_*
|
2010-03-18 23:08:54 +01:00
|
|
|
%doc %{_mandir}/man1/cups-config.1.gz
|
2007-12-18 18:29:38 +01:00
|
|
|
|
2007-02-23 12:29:03 +01:00
|
|
|
%changelog
|