diff --git a/.gitignore b/.gitignore index 2de6a89..fac2d0d 100644 --- a/.gitignore +++ b/.gitignore @@ -93,3 +93,4 @@ cups-1.4.4-source.tar.bz2 /cups-2.3.0-source.tar.gz /cups-2.3.1-source.tar.gz /cups-2.3.3-source.tar.gz +/cups-2.3.3op1-source.tar.gz diff --git a/0001-Add-Requires-cups.socket-to-cups.service-to-make-sur.patch b/0001-Add-Requires-cups.socket-to-cups.service-to-make-sur.patch deleted file mode 100644 index 48d115a..0000000 --- a/0001-Add-Requires-cups.socket-to-cups.service-to-make-sur.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 1157832777d18f614cee9f396d8f34a938adb796 Mon Sep 17 00:00:00 2001 -From: Didier Raboud -Date: Mon, 24 Feb 2020 11:46:49 +0100 -Subject: [PATCH] Add Requires=cups.socket to cups.service, to make sure they - start in the right order - ---- - scheduler/cups.service.in | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/scheduler/cups.service.in b/scheduler/cups.service.in -index 5273762fb..e9052d7a3 100644 ---- a/scheduler/cups.service.in -+++ b/scheduler/cups.service.in -@@ -2,6 +2,7 @@ - Description=CUPS Scheduler - Documentation=man:cupsd(8) - After=network.target sssd.service ypbind.service -+Requires=cups.socket - - [Service] - ExecStart=@sbindir@/cupsd -l --- -2.26.2 - diff --git a/0001-Fix-memory-leak-Issue-49.patch b/0001-Fix-memory-leak-Issue-49.patch deleted file mode 100644 index 5afb84e..0000000 --- a/0001-Fix-memory-leak-Issue-49.patch +++ /dev/null @@ -1,43 +0,0 @@ -diff --git a/cups/http-support.c b/cups/http-support.c -index 6317514..ea8640c 100644 ---- a/cups/http-support.c -+++ b/cups/http-support.c -@@ -1,8 +1,9 @@ - /* - * HTTP support routines for CUPS. - * -- * Copyright 2007-2019 by Apple Inc. -- * Copyright 1997-2007 by Easy Software Products, all rights reserved. -+ * Copyright © 2020 by Michael R Sweet -+ * Copyright © 2007-2019 by Apple Inc. -+ * Copyright © 1997-2007 by Easy Software Products, all rights reserved. - * - * Licensed under Apache License v2.0. See the file "LICENSE" for more - * information. -@@ -26,6 +27,8 @@ - #elif defined(HAVE_AVAHI) - # include - # include -+// for avahi_free() -+# include - # include - #endif /* HAVE_DNSSD */ - -@@ -2536,6 +2539,8 @@ http_resolve_cb( - memcpy(uuid, value, valueLen); - uuid[valueLen] = '\0'; - -+ avahi_free(value); -+ - if (_cups_strcasecmp(uuid, uribuf->uuid)) - { - if (uribuf->options & _HTTP_RESOLVE_STDERR) -@@ -2620,6 +2625,8 @@ http_resolve_cb( - memcpy(resource + 1, value, valueLen); - resource[valueLen + 1] = '\0'; - } -+ -+ avahi_free(value); - } - else - { diff --git a/0001-Let-snmp-backend-also-use-manufacturer-specific-MIBs.patch b/0001-Let-snmp-backend-also-use-manufacturer-specific-MIBs.patch deleted file mode 100644 index 5352ab5..0000000 --- a/0001-Let-snmp-backend-also-use-manufacturer-specific-MIBs.patch +++ /dev/null @@ -1,52 +0,0 @@ -From 48655d013efbbebf5cb489458789e15356ea63eb Mon Sep 17 00:00:00 2001 -From: Tim Waugh -Date: Tue, 9 Aug 2016 18:11:30 +0200 -Subject: [PATCH] Let snmp backend also use manufacturer-specific MIBs -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - - … of HP and Ricoh to obtain the device IDs of network-connected - printers. This way we get more reliable information about make and model - and in addition the supported page description languages, which allows one to - identify whether an optional PostScript add-on is installed or for an - unsupported printer which generic PPD is the best choice (requested by - Ricoh). -Bug: https://github.com/apple/cups/issues/3552 -Patch-Name: Let-snmp-backend-also-use-manufacturer-specific-MIBs.patch ---- - backend/snmp.c | 8 ++++++++ - 1 file changed, 8 insertions(+) - -diff --git a/backend/snmp.c b/backend/snmp.c -index 66ac884c6..9572822a8 100644 ---- a/backend/snmp.c -+++ b/backend/snmp.c -@@ -154,6 +154,8 @@ static const int UriOID[] = { CUPS_OID_ppmPortServiceNameOrURI, 1, 1, -1 }; - static const int LexmarkProductOID[] = { 1,3,6,1,4,1,641,2,1,2,1,2,1,-1 }; - static const int LexmarkProductOID2[] = { 1,3,6,1,4,1,674,10898,100,2,1,2,1,2,1,-1 }; - static const int LexmarkDeviceIdOID[] = { 1,3,6,1,4,1,641,2,1,2,1,3,1,-1 }; -+static const int HPDeviceIdOID[] = { 1,3,6,1,4,1,11,2,3,9,1,1,7,0,-1 }; -+static const int RicohDeviceIdOID[] = { 1,3,6,1,4,1,367,3,2,1,1,1,11,0,-1 }; - static const int XeroxProductOID[] = { 1,3,6,1,4,1,128,2,1,3,1,2,0,-1 }; - static cups_array_t *DeviceURIs = NULL; - static int HostNameLookups = 0; -@@ -969,9 +971,15 @@ read_snmp_response(int fd) /* I - SNMP socket file descriptor */ - _cupsSNMPWrite(fd, &(packet.address), CUPS_SNMP_VERSION_1, - packet.community, CUPS_ASN1_GET_REQUEST, - DEVICE_ID, LexmarkDeviceIdOID); -+ _cupsSNMPWrite(fd, &(packet.address), CUPS_SNMP_VERSION_1, -+ packet.community, CUPS_ASN1_GET_REQUEST, -+ DEVICE_ID, RicohDeviceIdOID); - _cupsSNMPWrite(fd, &(packet.address), CUPS_SNMP_VERSION_1, - packet.community, CUPS_ASN1_GET_REQUEST, - DEVICE_PRODUCT, XeroxProductOID); -+ _cupsSNMPWrite(fd, &(packet.address), CUPS_SNMP_VERSION_1, -+ packet.community, CUPS_ASN1_GET_REQUEST, -+ DEVICE_ID, HPDeviceIdOID); - break; - - case DEVICE_DESCRIPTION : --- -2.26.2 - diff --git a/0001-backend-scheduler-ipp.c-Fix-printer-alert-invalid-fr.patch b/0001-backend-scheduler-ipp.c-Fix-printer-alert-invalid-fr.patch deleted file mode 100644 index cb6f9ba..0000000 --- a/0001-backend-scheduler-ipp.c-Fix-printer-alert-invalid-fr.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 5313c22785446473771e07d5adb1d2f11cbcbfe7 Mon Sep 17 00:00:00 2001 -From: Zdenek Dohnal -Date: Mon, 9 Nov 2020 07:40:20 +0100 -Subject: [PATCH] backend,scheduler/ipp.c: Fix 'printer-alert' invalid free -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -The fix is created by Bernhard Übelacker from apple/cups #5826. ---- - backend/ipp.c | 2 +- - scheduler/ipp.c | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/backend/ipp.c b/backend/ipp.c -index 35c0711c0..3e601b2ad 100644 ---- a/backend/ipp.c -+++ b/backend/ipp.c -@@ -3075,7 +3075,7 @@ report_printer_state(ipp_t *ipp) /* I - IPP response */ - * Report alerts and messages... - */ - -- if ((pa = ippFindAttribute(ipp, "printer-alert", IPP_TAG_TEXT)) != NULL) -+ if ((pa = ippFindAttribute(ipp, "printer-alert", IPP_TAG_STRING)) != NULL) - report_attr(pa); - - if ((pam = ippFindAttribute(ipp, "printer-alert-message", -diff --git a/scheduler/ipp.c b/scheduler/ipp.c -index 0c44d7d4a..68763a0f1 100644 ---- a/scheduler/ipp.c -+++ b/scheduler/ipp.c -@@ -4891,7 +4891,7 @@ copy_printer_attrs( - } - - if (printer->alert && (!ra || cupsArrayFind(ra, "printer-alert"))) -- ippAddString(con->response, IPP_TAG_PRINTER, IPP_TAG_STRING, "printer-alert", NULL, printer->alert); -+ ippAddOctetString(con->response, IPP_TAG_PRINTER, "printer-alert", printer->alert, (int)strlen(printer->alert)); - - if (printer->alert_description && (!ra || cupsArrayFind(ra, "printer-alert-description"))) - ippAddString(con->response, IPP_TAG_PRINTER, IPP_TAG_TEXT, "printer-alert-description", NULL, printer->alert_description); --- -2.26.2 - diff --git a/cups-etimedout.patch b/cups-etimedout.patch deleted file mode 100644 index 31defda..0000000 --- a/cups-etimedout.patch +++ /dev/null @@ -1,25 +0,0 @@ -diff --git a/cups/http-addrlist.c b/cups/http-addrlist.c -index e4ffc3d..a989055 100644 ---- a/cups/http-addrlist.c -+++ b/cups/http-addrlist.c -@@ -240,7 +240,10 @@ httpAddrConnect2( - } - - if (!addrlist && nfds == 0) -+ { -+ errno = EHOSTDOWN; - break; -+ } - - /* - * See if we can connect to any of the addresses so far... -@@ -371,6 +374,9 @@ httpAddrConnect2( - remaining -= 250; - } - -+ if (remaining <= 0) -+ errno = ETIMEDOUT; -+ - while (nfds > 0) - { - nfds --; diff --git a/cups-ipptool-mdns-uri.patch b/cups-ipptool-mdns-uri.patch deleted file mode 100644 index 04f8ded..0000000 --- a/cups-ipptool-mdns-uri.patch +++ /dev/null @@ -1,39 +0,0 @@ -diff --git a/cups/ipp-vars.c b/cups/ipp-vars.c -index 395b0eb..d863287 100644 ---- a/cups/ipp-vars.c -+++ b/cups/ipp-vars.c -@@ -12,7 +12,7 @@ - * Include necessary headers... - */ - --#include -+#include "cups/cups-private.h" - #include "ipp-private.h" - #include "string-private.h" - #include "debug-internal.h" -@@ -220,10 +220,22 @@ _ippVarsSet(_ipp_vars_t *v, /* I - IPP variables */ - { - if (!strcmp(name, "uri")) - { -- char uri[1024]; /* New printer URI */ -- http_uri_status_t uri_status; /* URI status */ -+ char uri[1024]; /* New printer URI */ -+ char resolved[1024]; /* Resolved mDNS URI */ - -- if ((uri_status = httpSeparateURI(HTTP_URI_CODING_ALL, value, v->scheme, sizeof(v->scheme), v->username, sizeof(v->username), v->host, sizeof(v->host), &(v->port), v->resource, sizeof(v->resource))) < HTTP_URI_STATUS_OK) -+ if (strstr(value, "._tcp")) -+ { -+ /* -+ * Resolve URI... -+ */ -+ -+ if (!_httpResolveURI(value, resolved, sizeof(resolved), _HTTP_RESOLVE_DEFAULT, NULL, NULL)) -+ return (0); -+ -+ value = resolved; -+ } -+ -+ if (httpSeparateURI(HTTP_URI_CODING_ALL, value, v->scheme, sizeof(v->scheme), v->username, sizeof(v->username), v->host, sizeof(v->host), &(v->port), v->resource, sizeof(v->resource)) < HTTP_URI_STATUS_OK) - return (0); - - if (v->username[0]) diff --git a/cups-manual-copies.patch b/cups-manual-copies.patch deleted file mode 100644 index 5d9c1af..0000000 --- a/cups-manual-copies.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/cups/ppd-cache.c b/cups/ppd-cache.c -index 94a125a..79aab32 100644 ---- a/cups/ppd-cache.c -+++ b/cups/ppd-cache.c -@@ -3228,7 +3228,7 @@ _ppdCreateFromIPP(char *buffer, /* I - Filename buffer */ - cupsFilePuts(fp, "*cupsFilter2: \"application/vnd.cups-pdf application/pdf 10 -\"\n"); - } - else -- cupsFilePuts(fp, "*cupsManualCopies: true\n"); -+ cupsFilePuts(fp, "*cupsManualCopies: True\n"); - if (is_apple) - cupsFilePuts(fp, "*cupsFilter2: \"image/urf image/urf 100 -\"\n"); - if (is_pwg) diff --git a/cups-ppdleak.patch b/cups-ppdleak.patch deleted file mode 100644 index 3354f76..0000000 --- a/cups-ppdleak.patch +++ /dev/null @@ -1,22 +0,0 @@ -diff --git a/ppdc/ppdc-import.cxx b/ppdc/ppdc-import.cxx -index 04b587d..60d8834 100644 ---- a/ppdc/ppdc-import.cxx -+++ b/ppdc/ppdc-import.cxx -@@ -27,7 +27,7 @@ ppdcSource::import_ppd(const char *f) // I - Filename - char line[256], // Comment line - *ptr; // Pointer into line - int cost; // Cost for filter -- ppd_file_t *ppd; // PPD file data -+ ppd_file_t *ppd = NULL; // PPD file data - ppd_group_t *group; // PPD group - ppd_option_t *option; // PPD option - ppd_choice_t *choice; // PPD choice -@@ -323,5 +323,8 @@ ppdcSource::import_ppd(const char *f) // I - Filename - } - } - -+ if (ppd) -+ ppdClose(ppd); -+ - return (1); - } diff --git a/cups-prioritize-print-color-mode.patch b/cups-prioritize-print-color-mode.patch deleted file mode 100644 index 37a1e5a..0000000 --- a/cups-prioritize-print-color-mode.patch +++ /dev/null @@ -1,16 +0,0 @@ -diff --git a/cups/ppd-cache.c b/cups/ppd-cache.c -index 167e1df..6c05735 100644 ---- a/cups/ppd-cache.c -+++ b/cups/ppd-cache.c -@@ -3790,6 +3790,11 @@ _ppdCreateFromIPP(char *buffer, /* I - Filename buffer */ - PRINTF_COLOROPTION("RGB", _("Color"), CUPS_CSPACE_SRGB, 8) - - default_color = "RGB"; -+ -+ // Apparently some printers only advertise color support, so make sure -+ // we also do grayscale for these printers... -+ if (!ippContainsString(attr, "sgray_8") && !ippContainsString(attr, "black_1") && !ippContainsString(attr, "black_8")) -+ PRINTF_COLOROPTION("Gray", _("GrayScale"), CUPS_CSPACE_SW, 8) - } - else if (!strcasecmp(keyword, "adobe-rgb_16") || !strcmp(keyword, "ADOBERGB48") || !strcmp(keyword, "ADOBERGB24-48")) - { diff --git a/cups-rastertopwg-crash.patch b/cups-rastertopwg-crash.patch deleted file mode 100644 index 4c378b9..0000000 --- a/cups-rastertopwg-crash.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff --git a/filter/rastertopwg.c b/filter/rastertopwg.c -index 1e63e4e..b3a2e87 100644 ---- a/filter/rastertopwg.c -+++ b/filter/rastertopwg.c -@@ -260,7 +260,8 @@ main(int argc, /* I - Number of command-line args */ - } - - if (inheader.cupsPageSizeName[0] && -- (pwg_size = _ppdCacheGetSize(cache, inheader.cupsPageSizeName)) != NULL) -+ (pwg_size = _ppdCacheGetSize(cache, inheader.cupsPageSizeName)) != NULL && -+ pwg_size->map.pwg) - { - strlcpy(outheader.cupsPageSizeName, pwg_size->map.pwg, - sizeof(outheader.cupsPageSizeName)); diff --git a/cups-synconclose.patch b/cups-synconclose.patch deleted file mode 100644 index 3f7d122..0000000 --- a/cups-synconclose.patch +++ /dev/null @@ -1,191 +0,0 @@ -From 9c1dcee087eee3c57937a223df76757a61dfd046 Mon Sep 17 00:00:00 2001 -From: Michael R Sweet -Date: Sat, 14 Nov 2020 09:58:12 -0500 -Subject: [PATCH] Add --enable-sync-on-close configure option (Issue #37) - ---- - CHANGES-OPENPRINTING.md | 1 + - conf/cups-files.conf.in | 2 +- - config-scripts/cups-defaults.m4 | 10 ++++++++++ - config.h.in | 7 +++++++ - configure | 17 +++++++++++++++++ - man/cups-files.conf.5 | 3 +-- - scheduler/conf.c | 4 ++++ - vcnet/config.h | 7 +++++++ - xcode/config.h | 7 +++++++ - 9 files changed, 55 insertions(+), 3 deletions(-) - -diff --git a/conf/cups-files.conf.in b/conf/cups-files.conf.in -index 4a78ba615..af11fcce6 100644 ---- a/conf/cups-files.conf.in -+++ b/conf/cups-files.conf.in -@@ -7,7 +7,7 @@ - #FatalErrors @CUPS_FATAL_ERRORS@ - - # Do we call fsync() after writing configuration or status files? --#SyncOnClose No -+#SyncOnClose @CUPS_SYNC_ON_CLOSE@ - - # Default user and group for filters/backends/helper programs; this cannot be - # any user or group that resolves to ID 0 for security reasons... -diff --git a/config-scripts/cups-defaults.m4 b/config-scripts/cups-defaults.m4 -index b6051778d..df386b822 100644 ---- a/config-scripts/cups-defaults.m4 -+++ b/config-scripts/cups-defaults.m4 -@@ -137,6 +137,16 @@ else - fi - AC_SUBST(CUPS_PAGE_LOG_FORMAT) - -+dnl Default SyncOnClose -+AC_ARG_ENABLE(sync_on_close, [ --enable-sync-on-close enable SyncOnClose (off by default)]) -+if test "x$enable_sync_on_close" = xyes; then -+ CUPS_SYNC_ON_CLOSE="Yes" -+ AC_DEFINE(CUPS_DEFAULT_SYNC_ON_CLOSE) -+else -+ CUPS_SYNC_ON_CLOSE="No" -+fi -+AC_SUBST(CUPS_SYNC_ON_CLOSE) -+ - dnl Default Browsing - AC_ARG_ENABLE(browsing, [ --disable-browsing disable Browsing by default]) - if test "x$enable_browsing" = xno; then -diff --git a/config.h.in b/config.h.in -index 6a197ecc5..6343e6dd0 100644 ---- a/config.h.in -+++ b/config.h.in -@@ -101,6 +101,13 @@ - #define CUPS_DEFAULT_MAX_COPIES 9999 - - -+/* -+ * Default SyncOnClose value... -+ */ -+ -+#undef CUPS_DEFAULT_SYNC_ON_CLOSE -+ -+ - /* - * Do we have domain socket support, and if so what is the default one? - */ -diff --git a/configure b/configure -index a7e7a825e..ee25f1f24 100755 ---- a/configure -+++ b/configure -@@ -642,6 +642,7 @@ CUPS_USER - CUPS_DEFAULT_SHARED - CUPS_BROWSE_LOCAL_PROTOCOLS - CUPS_BROWSING -+CUPS_SYNC_ON_CLOSE - CUPS_PAGE_LOG_FORMAT - CUPS_ACCESS_LOG_LEVEL - CUPS_LOG_LEVEL -@@ -903,6 +904,7 @@ with_fatal_errors - with_log_level - with_access_log_level - enable_page_logging -+enable_sync_on_close - enable_browsing - with_local_protocols - enable_default_shared -@@ -1573,6 +1575,7 @@ Optional Features: - --disable-systemd disable systemd support - --enable-upstart enable upstart support - --enable-page-logging enable page_log by default -+ --enable-sync-on-close enable SyncOnClose (off by default) - --disable-browsing disable Browsing by default - --disable-default-shared - disable DefaultShared by default -@@ -9459,6 +9462,20 @@ else - fi - - -+# Check whether --enable-sync_on_close was given. -+if test "${enable_sync_on_close+set}" = set; then : -+ enableval=$enable_sync_on_close; -+fi -+ -+if test "x$enable_sync_on_close" = xyes; then -+ CUPS_SYNC_ON_CLOSE="Yes" -+ $as_echo "#define CUPS_DEFAULT_SYNC_ON_CLOSE 1" >>confdefs.h -+ -+else -+ CUPS_SYNC_ON_CLOSE="No" -+fi -+ -+ - # Check whether --enable-browsing was given. - if test "${enable_browsing+set}" = set; then : - enableval=$enable_browsing; -diff --git a/man/cups-files.conf.5 b/man/cups-files.conf.5 -index b451e2f92..d9b9a63e3 100644 ---- a/man/cups-files.conf.5 -+++ b/man/cups-files.conf.5 -@@ -7,7 +7,7 @@ - .\" Licensed under Apache License v2.0. See the file "LICENSE" for more - .\" information. - .\" --.TH cups-files.conf 5 "CUPS" "26 April 2019" "Apple Inc." -+.TH cups-files.conf 5 "CUPS" "14 November 2020" "Apple Inc." - .SH NAME - cups\-files.conf \- file and directory configuration file for cups - .SH DESCRIPTION -@@ -211,7 +211,6 @@ The default is "/var/run/cups" or "/etc/cups" depending on the platform. - Specifies whether the scheduler calls - .BR fsync (2) - after writing configuration or state files. --The default is "No". - .\"#SystemGroup - .TP 5 - \fBSystemGroup \fIgroup-name \fR[ ... \fIgroup-name\fR ] -diff --git a/scheduler/conf.c b/scheduler/conf.c -index 839cd6866..8dfebe546 100644 ---- a/scheduler/conf.c -+++ b/scheduler/conf.c -@@ -735,7 +735,11 @@ cupsdReadConfiguration(void) - RootCertDuration = 300; - Sandboxing = CUPSD_SANDBOXING_STRICT; - StrictConformance = FALSE; -+#ifdef CUPS_DEFAULT_SYNC_ON_CLOSE -+ SyncOnClose = TRUE; -+#else - SyncOnClose = FALSE; -+#endif /* CUPS_DEFAULT_SYNC_ON_CLOSE */ - Timeout = 900; - WebInterface = CUPS_DEFAULT_WEBIF; - -diff --git a/vcnet/config.h b/vcnet/config.h -index 5e105c826..05d36dcfc 100644 ---- a/vcnet/config.h -+++ b/vcnet/config.h -@@ -181,6 +181,13 @@ typedef unsigned long useconds_t; - #define CUPS_DEFAULT_MAX_COPIES 9999 - - -+/* -+ * Default SyncOnClose value... -+ */ -+ -+/* #undef CUPS_DEFAULT_SYNC_ON_CLOSE */ -+ -+ - /* - * Do we have domain socket support, and if so what is the default one? - */ -diff --git a/xcode/config.h b/xcode/config.h -index 7a3f98aa9..5f8117467 100644 ---- a/xcode/config.h -+++ b/xcode/config.h -@@ -102,6 +102,13 @@ - #define CUPS_DEFAULT_MAX_COPIES 9999 - - -+/* -+ * Default SyncOnClose value... -+ */ -+ -+/* #undef CUPS_DEFAULT_SYNC_ON_CLOSE */ -+ -+ - /* - * Do we have domain socket support, and if so what is the default one? - */ diff --git a/cups-systemd-socket.patch b/cups-systemd-socket.patch deleted file mode 100644 index 007321f..0000000 --- a/cups-systemd-socket.patch +++ /dev/null @@ -1,40 +0,0 @@ -diff --git a/scheduler/cups.service.in b/scheduler/cups.service.in -index cd23343..928d77f 100644 ---- a/scheduler/cups.service.in -+++ b/scheduler/cups.service.in -@@ -1,11 +1,11 @@ - [Unit] - Description=CUPS Scheduler - Documentation=man:cupsd(8) --After=sssd.service -+After=network.target sssd.service - - [Service] - ExecStart=@sbindir@/cupsd -l --Type=simple -+Type=notify - Restart=on-failure - - [Install] -diff --git a/scheduler/main.c b/scheduler/main.c -index 4fee24f..206db30 100644 ---- a/scheduler/main.c -+++ b/scheduler/main.c -@@ -706,8 +706,16 @@ main(int argc, /* I - Number of command-line args */ - - #ifdef HAVE_ONDEMAND - if (OnDemand) -+ { - cupsdAddEvent(CUPSD_EVENT_SERVER_STARTED, NULL, NULL, "Scheduler started on demand."); -- else -+# 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_ONDEMAND */ - if (fg) - cupsdAddEvent(CUPSD_EVENT_SERVER_STARTED, NULL, NULL, "Scheduler started in foreground."); diff --git a/cups-unit-files.patch b/cups-unit-files.patch deleted file mode 100644 index bc24724..0000000 --- a/cups-unit-files.patch +++ /dev/null @@ -1,265 +0,0 @@ -diff --git a/configure b/configure -index 6f34f65..e57e603 100755 ---- a/configure -+++ b/configure -@@ -9993,7 +9993,7 @@ fi - - - --ac_config_files="$ac_config_files Makedefs conf/cups-files.conf conf/cupsd.conf conf/mime.convs conf/pam.std conf/snmp.conf cups-config desktop/cups.desktop doc/index.html scheduler/cups-lpd.xinetd scheduler/cups.sh scheduler/cups.xml scheduler/org.cups.cups-lpd.plist scheduler/org.cups.cups-lpdAT.service scheduler/org.cups.cupsd.path scheduler/org.cups.cupsd.service scheduler/org.cups.cupsd.socket templates/header.tmpl packaging/cups.list $LANGFILES" -+ac_config_files="$ac_config_files Makedefs conf/cups-files.conf conf/cupsd.conf conf/mime.convs conf/pam.std conf/snmp.conf cups-config desktop/cups.desktop doc/index.html scheduler/cups-lpd.xinetd scheduler/cups.sh scheduler/cups.xml scheduler/org.cups.cups-lpd.plist scheduler/cups-lpdAT.service scheduler/cups.path scheduler/cups.service scheduler/cups.socket templates/header.tmpl packaging/cups.list $LANGFILES" - - cat >confcache <<\_ACEOF - # This file is a shell script that caches the results of configure -@@ -10700,10 +10700,10 @@ do - "scheduler/cups.sh") CONFIG_FILES="$CONFIG_FILES scheduler/cups.sh" ;; - "scheduler/cups.xml") CONFIG_FILES="$CONFIG_FILES scheduler/cups.xml" ;; - "scheduler/org.cups.cups-lpd.plist") CONFIG_FILES="$CONFIG_FILES scheduler/org.cups.cups-lpd.plist" ;; -- "scheduler/org.cups.cups-lpdAT.service") CONFIG_FILES="$CONFIG_FILES scheduler/org.cups.cups-lpdAT.service" ;; -- "scheduler/org.cups.cupsd.path") CONFIG_FILES="$CONFIG_FILES scheduler/org.cups.cupsd.path" ;; -- "scheduler/org.cups.cupsd.service") CONFIG_FILES="$CONFIG_FILES scheduler/org.cups.cupsd.service" ;; -- "scheduler/org.cups.cupsd.socket") CONFIG_FILES="$CONFIG_FILES scheduler/org.cups.cupsd.socket" ;; -+ "scheduler/cups-lpdAT.service") CONFIG_FILES="$CONFIG_FILES scheduler/cups-lpdAT.service" ;; -+ "scheduler/cups.path") CONFIG_FILES="$CONFIG_FILES scheduler/cups.path" ;; -+ "scheduler/cups.service") CONFIG_FILES="$CONFIG_FILES scheduler/cups.service" ;; -+ "scheduler/cups.socket") CONFIG_FILES="$CONFIG_FILES scheduler/cups.socket" ;; - "templates/header.tmpl") CONFIG_FILES="$CONFIG_FILES templates/header.tmpl" ;; - "packaging/cups.list") CONFIG_FILES="$CONFIG_FILES packaging/cups.list" ;; - "$LANGFILES") CONFIG_FILES="$CONFIG_FILES $LANGFILES" ;; -diff --git a/configure.ac b/configure.ac -index 44bf6eb..78b318e 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -72,10 +72,10 @@ AC_OUTPUT(Makedefs - scheduler/cups.sh - scheduler/cups.xml - scheduler/org.cups.cups-lpd.plist -- scheduler/org.cups.cups-lpdAT.service -- scheduler/org.cups.cupsd.path -- scheduler/org.cups.cupsd.service -- scheduler/org.cups.cupsd.socket -+ scheduler/cups-lpdAT.service -+ scheduler/cups.path -+ scheduler/cups.service -+ scheduler/cups.socket - templates/header.tmpl - packaging/cups.list - $LANGFILES) -diff --git a/packaging/cups.list.in b/packaging/cups.list.in -index 537c194..a167a99 100644 ---- a/packaging/cups.list.in -+++ b/packaging/cups.list.in -@@ -1,6 +1,7 @@ - # - # ESP Package Manager (EPM) file list for CUPS. - # -+# Copyright © 2020 by Michael R Sweet - # Copyright © 2007-2019 by Apple Inc. - # Copyright © 1997-2007 by Easy Software Products, all rights reserved. - # -@@ -10,8 +11,8 @@ - - # Product information - %product CUPS --%copyright 2007-2019 by Apple Inc. --%vendor Apple Inc. -+%copyright 2020 by Michael R Sweet, 2007-2019 by Apple Inc. -+%vendor OpenPrinting - #%license LICENSE - %readme LICENSE - %format rpm -@@ -20,8 +21,9 @@ - %format !rpm - %version @CUPS_VERSION@ - %format all --%description CUPS is the standards-based, open source printing system developed by --%description Apple Inc. for macOS® and other UNIX®-like operating systems. -+%description CUPS is the standards-based, open source printing system developed -+%description by Apple Inc. and maintained by OpenPrinting for macOS® and other -+%description UNIX®-like operating systems. - - %format rpm - %provides lpd -diff --git a/packaging/cups.spec.in b/packaging/cups.spec.in -index d37103c..59caee0 100644 ---- a/packaging/cups.spec.in -+++ b/packaging/cups.spec.in -@@ -3,6 +3,7 @@ - # - # Original version by Jason McMullan . - # -+# Copyright © 2020 by Michael R Sweet - # Copyright © 2007-2019 by Apple Inc. - # Copyright © 1999-2007 by Easy Software Products, all rights reserved. - # -@@ -48,7 +49,7 @@ Group: System Environment/Daemons - Source: https://github.com/apple/cups/releases/download/v%{version}/cups-%{version}-source.tar.gz - Url: http://www.cups.org - Packager: Anonymous --Vendor: Example Corp -+Vendor: OpenPrinting - - # Package names are as defined for Red Hat (and clone) distributions - BuildRequires: gnutls-devel, pam-devel -@@ -97,7 +98,8 @@ Requires: %{name} = %{epoch}:%{version} xinetd - - %description - CUPS is the standards-based, open source printing system developed by --Apple Inc. for macOS® and other UNIX®-like operating systems. -+Apple Inc. and maintained by OpenPrinting for macOS® and other UNIX®-like -+operating systems. - - %description devel - This package provides the CUPS headers and development environment. -@@ -126,11 +128,11 @@ rm -rf $RPM_BUILD_ROOT/usr/share/cups/banners $RPM_BUILD_ROOT/usr/share/cups/dat - - %post - %if %{?_with_systemd:1}%{!?_with_systemd:0} --/bin/systemctl enable org.cups.cupsd.service -+/bin/systemctl enable cups.service - - if test $1 -ge 1; then -- /bin/systemctl stop org.cups.cupsd.service -- /bin/systemctl start org.cups.cupsd.service -+ /bin/systemctl stop cups.service -+ /bin/systemctl start cups.service - fi - - %else -@@ -150,8 +152,8 @@ fi - %preun - %if %{?_with_systemd:1}%{!?_with_systemd:0} - if test $1 -ge 1; then -- /bin/systemctl stop org.cups.cupsd.service -- /bin/systemctl disable org.cups.cupsd.service -+ /bin/systemctl stop cups.service -+ /bin/systemctl disable cups.service - fi - - %else -@@ -164,8 +166,8 @@ fi - %postun - %if %{?_with_systemd:1}%{!?_with_systemd:0} - if test $1 -ge 1; then -- /bin/systemctl stop org.cups.cupsd.service -- /bin/systemctl start org.cups.cupsd.service -+ /bin/systemctl stop cups.service -+ /bin/systemctl start cups.service - fi - - %else -@@ -203,7 +205,7 @@ rm -rf $RPM_BUILD_ROOT - - %if %{?_with_systemd:1}%{!?_with_systemd:0} - # SystemD --/usr/lib/systemd/system/org.cups.cupsd.* -+/usr/lib/systemd/system/cups.* - - %else - # Legacy init support on Linux -@@ -425,7 +427,7 @@ rm -rf $RPM_BUILD_ROOT - %defattr(-,root,root) - %if %{?_with_systemd:1}%{!?_with_systemd:0} - # SystemD --/usr/lib/systemd/system/org.cups.cups-lpd* -+/usr/lib/systemd/system/cups-lpd* - %else - # Legacy xinetd - /etc/xinetd.d/cups-lpd -diff --git a/scheduler/Makefile b/scheduler/Makefile -index b50bd0a..a9b6ad6 100644 ---- a/scheduler/Makefile -+++ b/scheduler/Makefile -@@ -194,11 +194,11 @@ install-data: - if test "x$(SYSTEMD_DIR)" != x; then \ - echo Installing systemd configuration files...; \ - $(INSTALL_DIR) $(BUILDROOT)$(SYSTEMD_DIR); \ -- $(INSTALL_DATA) org.cups.cupsd.path $(BUILDROOT)$(SYSTEMD_DIR); \ -- $(INSTALL_DATA) org.cups.cupsd.service $(BUILDROOT)$(SYSTEMD_DIR); \ -- $(INSTALL_DATA) org.cups.cupsd.socket $(BUILDROOT)$(SYSTEMD_DIR); \ -- $(INSTALL_DATA) org.cups.cups-lpdAT.service $(BUILDROOT)$(SYSTEMD_DIR)/org.cups.cups-lpd@.service; \ -- $(INSTALL_DATA) org.cups.cups-lpd.socket $(BUILDROOT)$(SYSTEMD_DIR); \ -+ $(INSTALL_DATA) cups.path $(BUILDROOT)$(SYSTEMD_DIR); \ -+ $(INSTALL_DATA) cups.service $(BUILDROOT)$(SYSTEMD_DIR); \ -+ $(INSTALL_DATA) cups.socket $(BUILDROOT)$(SYSTEMD_DIR); \ -+ $(INSTALL_DATA) cups-lpdAT.service $(BUILDROOT)$(SYSTEMD_DIR)/cups-lpd@.service; \ -+ $(INSTALL_DATA) cups-lpd.socket $(BUILDROOT)$(SYSTEMD_DIR); \ - elif test "x$(XINETD)" != x; then \ - echo Installing xinetd configuration file for cups-lpd...; \ - $(INSTALL_DIR) -m 755 $(BUILDROOT)$(XINETD); \ -@@ -294,9 +294,9 @@ uninstall: - fi - if test "x$SYSTEMD_DIR" != x; then \ - echo Uninstalling systemd files...; \ -- $(RM) $(BUILDROOT)$(SYSTEMD_DIR)/org.cups.cupsd.path; \ -- $(RM) $(BUILDROOT)$(SYSTEMD_DIR)/org.cups.cupsd.service; \ -- $(RM) $(BUILDROOT)$(SYSTEMD_DIR)/org.cups.cupsd.socket; \ -+ $(RM) $(BUILDROOT)$(SYSTEMD_DIR)/cups.path; \ -+ $(RM) $(BUILDROOT)$(SYSTEMD_DIR)/cups.service; \ -+ $(RM) $(BUILDROOT)$(SYSTEMD_DIR)/cups.socket; \ - fi - if test "x$(SMFMANIFESTDIR)" != x; then \ - echo Uninstalling SMF manifest file...;\ -diff --git a/scheduler/org.cups.cups-lpd.socket b/scheduler/cups-lpd.socket -similarity index 77% -rename from scheduler/org.cups.cups-lpd.socket -rename to scheduler/cups-lpd.socket -index ed23f9d..eb84459 100644 ---- a/scheduler/org.cups.cups-lpd.socket -+++ b/scheduler/cups-lpd.socket -@@ -1,6 +1,6 @@ - [Unit] - Description=CUPS LPD Server Socket --PartOf=org.cups.cups-lpd.service -+PartOf=cups-lpd.service - - [Socket] - ListenStream=515 -diff --git a/scheduler/org.cups.cups-lpdAT.service.in b/scheduler/cups-lpdAT.service.in -similarity index 100% -rename from scheduler/org.cups.cups-lpdAT.service.in -rename to scheduler/cups-lpdAT.service.in -diff --git a/scheduler/org.cups.cupsd.path.in b/scheduler/cups.path.in -similarity index 80% -rename from scheduler/org.cups.cupsd.path.in -rename to scheduler/cups.path.in -index 0f1cc46..7c8509f 100644 ---- a/scheduler/org.cups.cupsd.path.in -+++ b/scheduler/cups.path.in -@@ -1,6 +1,6 @@ - [Unit] - Description=CUPS Scheduler --PartOf=org.cups.cupsd.service -+PartOf=cups.service - - [Path] - PathExists=@CUPS_CACHEDIR@/org.cups.cupsd -diff --git a/scheduler/org.cups.cupsd.service.in b/scheduler/cups.service.in -similarity index 79% -rename from scheduler/org.cups.cupsd.service.in -rename to scheduler/cups.service.in -index 5273762..cd23343 100644 ---- a/scheduler/org.cups.cupsd.service.in -+++ b/scheduler/cups.service.in -@@ -9,5 +9,5 @@ Type=simple - Restart=on-failure - - [Install] --Also=org.cups.cupsd.socket org.cups.cupsd.path -+Also=cups.socket cups.path - WantedBy=printer.target -diff --git a/scheduler/org.cups.cupsd.socket.in b/scheduler/cups.socket.in -similarity index 80% -rename from scheduler/org.cups.cupsd.socket.in -rename to scheduler/cups.socket.in -index 613b977..3c37d72 100644 ---- a/scheduler/org.cups.cupsd.socket.in -+++ b/scheduler/cups.socket.in -@@ -1,6 +1,6 @@ - [Unit] - Description=CUPS Scheduler --PartOf=org.cups.cupsd.service -+PartOf=cups.service - - [Socket] - ListenStream=@CUPS_DEFAULT_DOMAINSOCKET@ diff --git a/cups-webui-uri.patch b/cups-webui-uri.patch deleted file mode 100644 index 7021205..0000000 --- a/cups-webui-uri.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/cgi-bin/admin.c b/cgi-bin/admin.c -index a87e6be..4600d33 100644 ---- a/cgi-bin/admin.c -+++ b/cgi-bin/admin.c -@@ -974,6 +974,8 @@ do_am_printer(http_t *http, /* I - HTTP connection */ - - cgiSetVariable("TEMPLATE_NAME", template); - } -+ -+ cgiSetVariable("DEVICE_URI", var); - } - } - diff --git a/cups-ypbind.patch b/cups-ypbind.patch deleted file mode 100644 index 661afc6..0000000 --- a/cups-ypbind.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -up cups-2.2.12/scheduler/cups.service.in.ypbind cups-2.2.12/scheduler/cups.service.in ---- cups-2.2.12/scheduler/cups.service.in.ypbind 2019-08-19 10:00:47.586326493 +0200 -+++ cups-2.2.12/scheduler/cups.service.in 2019-08-19 10:01:39.295890076 +0200 -@@ -1,7 +1,7 @@ - [Unit] - Description=CUPS Scheduler - Documentation=man:cupsd(8) --After=network.target sssd.service -+After=network.target sssd.service ypbind.service - - [Service] - ExecStart=@sbindir@/cupsd -l diff --git a/cups.spec b/cups.spec index 4aa9b66..802ddad 100644 --- a/cups.spec +++ b/cups.spec @@ -10,15 +10,18 @@ #%%global prever rc1 #%%global VERSION %%{version}%%{prever} %global VERSION %{version} +# Openprinting version +%global OP_VER op1 Summary: CUPS printing system Name: cups Epoch: 1 -Version: 2.3.3 -Release: 20%{?dist} +Version: 2.3.3%{OP_VER} +Release: 1%{?dist} License: ASL 2.0 Url: http://www.cups.org/ -Source0: https://github.com/apple/cups/releases/download/v%{VERSION}/cups-%{VERSION}-source.tar.gz +# Apple stopped uploading the new versions into github, use OpenPrinting fork +Source0: https://github.com/OpenPrinting/cups/releases/download/v%{VERSION}/cups-%{VERSION}-source.tar.gz # Pixmap for desktop file Source1: cupsprinter.png # cups_serverbin macro definition for use during builds @@ -65,55 +68,7 @@ Patch13: cups-dymo-deviceid.patch Patch100: cups-lspp.patch %endif -#### UPSTREAM PATCHES #### -# fixing snmp oid for hp and ricoh printers - taken from upstream -Patch1000: 0001-Let-snmp-backend-also-use-manufacturer-specific-MIBs.patch -# needed for correct color support of Canon printers, which -# reports better options in print-color-mode-supported than -# in pwg-raster-document-type-supported -# https://github.com/apple/cups/pull/5722/ -Patch1001: cups-prioritize-print-color-mode.patch -# leaks ppd struct in ppdc -# https://github.com/apple/cups/pull/5738/ -Patch1002: cups-ppdleak.patch -# crashes with wide roll printers in rastertopwg filter -# https://github.com/apple/cups/pull/5773/ -Patch1003: cups-rastertopwg-crash.patch -# job for disconnected devices are processing for eternity -# https://github.com/apple/cups/pull/5782 -Patch1004: cups-etimedout.patch -# cgi script creates a bad uri in web ui -# https://github.com/apple/cups/pull/5792 -Patch1005: cups-webui-uri.patch -# ipptool doesn't support mdns uris -# https://github.com/apple/cups/pull/5793 -Patch1006: cups-ipptool-mdns-uri.patch -# ppd generator creates invalid cupsManualCopies entry, causing -# printing only one copy everytime -# https://github.com/apple/cups/pull/5807 -Patch1007: cups-manual-copies.patch -# invalid free for printer-alert IPP attribute, because it was -# freed as a different attribute type than it was allocated -# backported from upstream https://github.com/OpenPrinting/cups/pull/43 -Patch1008: 0001-backend-scheduler-ipp.c-Fix-printer-alert-invalid-fr.patch -# https://github.com/OpenPrinting/cups/pull/49 -# https://github.com/OpenPrinting/cups/pull/52 -Patch1009: 0001-Fix-memory-leak-Issue-49.patch -# https://github.com/OpenPrinting/cups/commit/a72b0140ee9ad72f7ffc1f46fbe962bde159cbb8 -# https://github.com/OpenPrinting/cups/commit/4999193d4778288e6bbddbbb86dbbb70835ea982 -Patch1010: cups-unit-files.patch -# change to notify type, because when it fails to start, it gives a error -# message + renaming org.cups.cupsd names, because we have cups units in -# in older Fedoras -# https://github.com/OpenPrinting/cups/pull/51 -Patch1011: cups-systemd-socket.patch -# ypbind must be started before cups if NIS configured -# https://github.com/OpenPrinting/cups/pull/51 -Patch1012: cups-ypbind.patch -# https://github.com/OpenPrinting/cups/pull/31 -Patch1013: 0001-Add-Requires-cups.socket-to-cups.service-to-make-sur.patch -# needs to be set to Yes to avoid race conditions -Patch1014: cups-synconclose.patch +#### UPSTREAM PATCHES (starts with 1000) #### ##### Patches removed because IMHO they aren't no longer needed ##### but still I'll leave them in git in case their removal @@ -298,30 +253,6 @@ to CUPS daemon. This solution will substitute printer drivers and raw queues in %patch100 -p1 -b .lspp %endif -# Taken from upstream -# Add an SNMP query for HP's device ID OID (STR #3552). -%patch1000 -p1 -b .deviceid-oid -%patch1001 -p1 -b .print-color-mode -%patch1002 -p1 -b .ppdleak -%patch1003 -p1 -b .rastertopwg-crash -# job for disconnected devices are processing for eternity -# https://github.com/apple/cups/pull/5782 -%patch1004 -p1 -b .etimedout -%patch1005 -p1 -b .webui-uri -%patch1006 -p1 -b .ipptool-mdns-uri -%patch1007 -p1 -b .manual-copies -%patch1008 -p1 -b .printer-alert -%patch1009 -p1 -b .avahi-leak -%patch1010 -p1 -b .unit-files -# Make cups.service Type=notify (bug #1088918). -%patch1011 -p1 -b .systemd-socket -# CUPS may fail to start if NIS groups are used (bug #1494558) -%patch1012 -p1 -b .ypbind -# https://github.com/OpenPrinting/cups/pull/31 -%patch1013 -p1 -b .require-socket -# Set the default for SyncOnClose to Yes. -%patch1014 -p1 -b .synconclose - # Log to the system journal by default (bug #1078781, bug #1519331). sed -i -e 's,^ErrorLog .*$,ErrorLog syslog,' conf/cups-files.conf.in @@ -721,6 +652,9 @@ rm -f %{cups_serverbin}/backend/smb %{_mandir}/man7/ippeveps.7.gz %changelog +* Mon Nov 30 2020 Zdenek Dohnal - 1:2.3.3op1-1 +- 2.3.3op1 + * Fri Nov 27 2020 Zdenek Dohnal - 1:2.3.3-20 - make unit files writeable by root - remove %%post scriptlet - it is covered by drop-in now diff --git a/sources b/sources index 312f9ef..47d80ab 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (cups-2.3.3-source.tar.gz) = 7d6f4a01794c5599cc71525778ea785fd17271c31ac146a56e8fc374a88f99e4035d018dae48e37e541455e9cc93b302e892b2e93ec558c1b4bfc46dad68c92d +SHA512 (cups-2.3.3op1-source.tar.gz) = 89949b4190288d5464f425cbff6b854e9da96ba3071e4e0d595ad581797b2db4724f49d884f3ea43e372ed4d0faec72839b0b7182cdde13b96f2824d619a4843