[arch-commits] Commit in cups/trunk (9 files)
Andreas Radke
andyrtr at archlinux.org
Tue Oct 21 17:53:33 UTC 2014
Date: Tuesday, October 21, 2014 @ 19:53:33
Author: andyrtr
Revision: 225152
upgpkg: cups 2.0.0-2
apply upstream fixes for FS#42115, FS#42231, FS#40937, FS#40443 + upstream fix for https://www.cups.org/str.php?L4500; cleanup unneeded downstream patches
Added:
cups/trunk/str4495.patch
cups/trunk/str4497.patch
cups/trunk/str4500.patch
Modified:
cups/trunk/PKGBUILD
Deleted:
cups/trunk/cups-avahi-address.patch
cups/trunk/cups-enum-all.patch
cups/trunk/cups-final-content-type.patch
cups/trunk/cups-res_init.patch
cups/trunk/ppd-poll-with-client-conf.patch
---------------------------------+
PKGBUILD | 37 ++++++++------
cups-avahi-address.patch | 95 --------------------------------------
cups-enum-all.patch | 17 ------
cups-final-content-type.patch | 18 -------
cups-res_init.patch | 26 ----------
ppd-poll-with-client-conf.patch | 18 -------
str4495.patch | 26 ++++++++++
str4497.patch | 43 +++++++++++++++++
str4500.patch | 17 ++++++
9 files changed, 106 insertions(+), 191 deletions(-)
Modified: PKGBUILD
===================================================================
--- PKGBUILD 2014-10-21 16:33:24 UTC (rev 225151)
+++ PKGBUILD 2014-10-21 17:53:33 UTC (rev 225152)
@@ -20,12 +20,10 @@
cups-1.6.2-statedir.patch
cups-1.6.0-fix-install-perms.patch
# bugfixes
- # cups-res_init.patch # FC
- # cups-avahi-address.patch # FC
- # cups-enum-all.patch #FC
- # cups-final-content-type.patch #FC
- # ppd-poll-with-client-conf.patch # Debian
-)
+ str4497.patch
+ str4495.patch
+ str4500.patch # FC
+ )
md5sums=('2cdd81fea23e9e29555c24bdfd0d7c89'
'SKIP'
'fc8286f185e2cc5f7e1f6843bf193e2b'
@@ -34,7 +32,10 @@
'1beb4896f217bc241bc08a422274ec0c'
'90c30380d4c8cd48a908cfdadae1ea24'
'451609db34f95209d64c38474de27ce1'
- '5117f65342fcc69c6a506529e4daca9e')
+ '5117f65342fcc69c6a506529e4daca9e'
+ '5aab5a160482d89e5d2a4def1f83ef8f'
+ '84da6459947d4fb62398e9bad7922a11'
+ '8c0514e41c3b50b2b838b218f683e227')
prepare() {
@@ -53,18 +54,20 @@
patch -Np0 -i ${srcdir}/cups-1.6.0-fix-install-perms.patch
# bug fixes
- # Debian patch for http://www.cups.org/str.php?L2763
-# patch -Np1 -i ${srcdir}/ppd-poll-with-client-conf.patch
- # FC: Re-initialise the resolver on failure in httpAddrGetList()
-# patch -Np1 -i ${srcdir}/cups-res_init.patch
- # FC: Use IP address when resolving DNSSD URIs
-# patch -Np1 -i ${srcdir}/cups-avahi-address.patch
- # FC: Return from cupsEnumDests() once all records have been returned.
-# patch -Np1 -i ${srcdir}/cups-enum-all.patch
- # FC: Fix printing to some network printers fails - https://bugs.archlinux.org/task/37605
-# patch -Np1 -i ${srcdir}/cups-final-content-type.patch
+
+ # https://www.cups.org/str.php?L4497 + https://www.cups.org/str.php?L4491
+ # "Port 631" binds to localhost only (systemd regression)
+ patch -Np0 -i ${srcdir}/str4497.patch
+ # https://bugs.archlinux.org/task/40937 - https://www.cups.org/str.php?L4495
+ # adds a warning to the config file and honors the FatalErrors directive
+ patch -Np0 -i ${srcdir}/str4495.patch
+ # https://www.cups.org/str.php?L4500
+ # /etc/cups/ppd/*.ppd not world-readable, cupsGetPPD() returns symlink
+ patch -Np1 -i ${srcdir}/str4500.patch
+
+
# set MaxLogSize to 0 to prevent using cups internal log rotation
sed -i -e '1iMaxLogSize 0' conf/cupsd.conf.in
Deleted: cups-avahi-address.patch
===================================================================
--- cups-avahi-address.patch 2014-10-21 16:33:24 UTC (rev 225151)
+++ cups-avahi-address.patch 2014-10-21 17:53:33 UTC (rev 225152)
@@ -1,95 +0,0 @@
-diff -up cups-2.0rc1/cups/http-support.c.avahi-address cups-2.0rc1/cups/http-support.c
---- cups-2.0rc1/cups/http-support.c.avahi-address 2014-08-28 17:37:22.000000000 +0200
-+++ cups-2.0rc1/cups/http-support.c 2014-09-12 15:31:45.062950696 +0200
-@@ -2342,7 +2342,7 @@ http_resolve_cb(
- const char *type, /* I - Registration type */
- const char *domain, /* I - Domain (unused) */
- const char *hostTarget, /* I - Hostname */
-- const AvahiAddress *address, /* I - Address (unused) */
-+ const AvahiAddress *address, /* I - Address */
- uint16_t port, /* I - Port number */
- AvahiStringList *txt, /* I - TXT record */
- AvahiLookupResultFlags flags, /* I - Lookup flags (unused) */
-@@ -2495,39 +2495,62 @@ http_resolve_cb(
- * getting the IP address of the .local name and then do reverse-lookups...
- */
-
-- http_addrlist_t *addrlist, /* List of addresses */
-- *addr; /* Current address */
-+ http_addr_t addr;
-+ size_t addrlen;
-+ int error;
-
- DEBUG_printf(("8http_resolve_cb: Looking up \"%s\".", hostTarget));
-
-- snprintf(fqdn, sizeof(fqdn), "%d", ntohs(port));
-- if ((addrlist = httpAddrGetList(hostTarget, AF_UNSPEC, fqdn)) != NULL)
-+ switch (address->proto)
- {
-- for (addr = addrlist; addr; addr = addr->next)
-+ case AVAHI_PROTO_INET:
-+ addr.ipv4.sin_family = AF_INET;
-+ addrlen = sizeof (addr.ipv4.sin_addr);
-+ memcpy (&addr.ipv4.sin_addr, &address->data, addrlen);
-+ break;
-+ case AVAHI_PROTO_INET6:
-+ addr.ipv6.sin6_family = AF_INET6;
-+ addrlen = sizeof (addr.ipv6.sin6_addr);
-+ memcpy (&addr.ipv6.sin6_addr, &address->data, addrlen);
-+ break;
-+ default:
-+ DEBUG_printf(("8http_resolve_cb: unknown address family %d",
-+ address->proto));
-+ addrlen = 0;
-+ }
-+
-+ if (addrlen > 0) {
-+ error = getnameinfo(&addr.addr, httpAddrLength (&addr),
-+ fqdn, sizeof(fqdn), NULL, 0, NI_NAMEREQD);
-+
-+ if (!error)
- {
-- int error = getnameinfo(&(addr->addr.addr), (socklen_t)httpAddrLength(&(addr->addr)), fqdn, sizeof(fqdn), NULL, 0, NI_NAMEREQD);
-+ DEBUG_printf(("8http_resolve_cb: Found \"%s\".", fqdn));
-
-- if (!error)
-- {
-- DEBUG_printf(("8http_resolve_cb: Found \"%s\".", fqdn));
-+ if ((hostptr = fqdn + strlen(fqdn) - 6) <= fqdn ||
-+ _cups_strcasecmp(hostptr, ".local"))
-
-- if ((hostptr = fqdn + strlen(fqdn) - 6) <= fqdn ||
-- _cups_strcasecmp(hostptr, ".local"))
-- {
-- hostTarget = fqdn;
-- break;
-- }
-+ {
-+ hostTarget = fqdn;
- }
-+ } else {
-+ avahi_address_snprint (fqdn, sizeof (fqdn), address);
-+ hostTarget = fqdn;
-+
- #ifdef DEBUG
-- else
-- DEBUG_printf(("8http_resolve_cb: \"%s\" did not resolve: %d",
-- httpAddrString(&(addr->addr), fqdn, sizeof(fqdn)),
-- error));
-+ DEBUG_printf(("8http_resolve_cb: \"%s\" did not resolve: %d",
-+ fqdn, error));
- #endif /* DEBUG */
- }
-
-- httpAddrFreeList(addrlist);
- }
-+ } else {
-+ /*
-+ * Use the IP address that responded...
-+ */
-+
-+ avahi_address_snprint (fqdn, sizeof (fqdn), address);
-+ hostTarget = fqdn;
- }
-
- /*
Deleted: cups-enum-all.patch
===================================================================
--- cups-enum-all.patch 2014-10-21 16:33:24 UTC (rev 225151)
+++ cups-enum-all.patch 2014-10-21 17:53:33 UTC (rev 225152)
@@ -1,17 +0,0 @@
-diff -up cups-1.6.2/cups/dest.c.enum-all cups-1.6.2/cups/dest.c
---- cups-1.6.2/cups/dest.c.enum-all 2013-06-04 10:58:36.169786250 +0100
-+++ cups-1.6.2/cups/dest.c 2013-06-04 10:59:02.147900811 +0100
-@@ -2724,9 +2724,12 @@ cups_dnssd_browse_cb(
- break;
-
- case AVAHI_BROWSER_REMOVE:
-- case AVAHI_BROWSER_ALL_FOR_NOW:
- case AVAHI_BROWSER_CACHE_EXHAUSTED:
- break;
-+
-+ case AVAHI_BROWSER_ALL_FOR_NOW:
-+ avahi_simple_poll_quit(data->simple_poll);
-+ break;
- }
- }
-
Deleted: cups-final-content-type.patch
===================================================================
--- cups-final-content-type.patch 2014-10-21 16:33:24 UTC (rev 225151)
+++ cups-final-content-type.patch 2014-10-21 17:53:33 UTC (rev 225152)
@@ -1,18 +0,0 @@
-diff -up cups-1.6.4/scheduler/job.c.final-content-type cups-1.6.4/scheduler/job.c
---- cups-1.6.4/scheduler/job.c.final-content-type 2013-09-27 16:58:13.934775402 +0100
-+++ cups-1.6.4/scheduler/job.c 2013-09-27 17:00:57.716549576 +0100
-@@ -692,12 +692,7 @@ cupsdContinueJob(cupsd_job_t *job) /* I
-
- if (!job->printer->remote)
- {
-- for (filter = (mime_filter_t *)cupsArrayLast(filters);
-- filter && filter->dst;
-- filter = (mime_filter_t *)cupsArrayPrev(filters))
-- if (strcmp(filter->dst->super, "printer") ||
-- strcmp(filter->dst->type, job->printer->name))
-- break;
-+ filter = (mime_filter_t *)cupsArrayLast(filters);
-
- if (filter && filter->dst)
- {
-
Deleted: cups-res_init.patch
===================================================================
--- cups-res_init.patch 2014-10-21 16:33:24 UTC (rev 225151)
+++ cups-res_init.patch 2014-10-21 17:53:33 UTC (rev 225152)
@@ -1,26 +0,0 @@
-diff -up cups-1.7b1/cups/http-addr.c.res_init cups-1.7b1/cups/http-addr.c
---- cups-1.7b1/cups/http-addr.c.res_init 2013-03-20 19:14:10.000000000 +0100
-+++ cups-1.7b1/cups/http-addr.c 2013-04-19 12:01:36.927512159 +0200
-@@ -319,7 +319,8 @@ httpAddrLookup(
-
- if (error)
- {
-- if (error == EAI_FAIL)
-+ if (error == EAI_FAIL || error == EAI_AGAIN || error == EAI_NODATA ||
-+ error == EAI_NONAME)
- cg->need_res_init = 1;
-
- return (httpAddrString(addr, name, namelen));
-diff -up cups-1.7b1/cups/http-addrlist.c.res_init cups-1.7b1/cups/http-addrlist.c
---- cups-1.7b1/cups/http-addrlist.c.res_init 2013-04-19 12:01:36.930512119 +0200
-+++ cups-1.7b1/cups/http-addrlist.c 2013-04-19 12:03:13.769229554 +0200
-@@ -581,7 +581,8 @@ httpAddrGetList(const char *hostname, /*
- }
- else
- {
-- if (error == EAI_FAIL)
-+ if (error == EAI_FAIL || error == EAI_AGAIN || error == EAI_NODATA ||
-+ error == EAI_NONAME)
- cg->need_res_init = 1;
-
- _cupsSetError(IPP_STATUS_ERROR_INTERNAL, gai_strerror(error), 0);
Deleted: ppd-poll-with-client-conf.patch
===================================================================
--- ppd-poll-with-client-conf.patch 2014-10-21 16:33:24 UTC (rev 225151)
+++ ppd-poll-with-client-conf.patch 2014-10-21 17:53:33 UTC (rev 225152)
@@ -1,18 +0,0 @@
-Description: If an external server is used via client.conf and the DNS
- is inconsistent (ex: DNS gives "noname" for many IPs, reverse DNS gives
- one of these IPs for "noname") local PPDs can get polled for print
- queues instead of the PPDs of the external server
-Bug: http://www.cups.org/str.php?L2763
-Last-Updated: 2014-01-03
-
---- a/cups/util.c
-+++ b/cups/util.c
-@@ -1088,6 +1088,8 @@
- http2 = http;
- else if ((http2 = httpConnect2(hostname, port, NULL, AF_UNSPEC,
- cupsEncryption(), 1, 30000, NULL)) == NULL)
-+ if ((http2 = httpConnect2(http_hostname, http_port, NULL, AF_UNSPEC,
-+ cupsEncryption(), 1, 30000, NULL)) == NULL)
- {
- DEBUG_puts("1cupsGetPPD3: Unable to connect to server");
-
Added: str4495.patch
===================================================================
--- str4495.patch (rev 0)
+++ str4495.patch 2014-10-21 17:53:33 UTC (rev 225152)
@@ -0,0 +1,26 @@
+Index: conf/cups-files.conf.in
+===================================================================
+--- conf/cups-files.conf.in (revision 12220)
++++ conf/cups-files.conf.in (working copy)
+@@ -15,6 +15,7 @@
+ #Group @CUPS_GROUP@
+
+ # Administrator user group, used to match @SYSTEM in cupsd.conf policy rules...
++# This cannot contain the Group value for security reasons...
+ SystemGroup @CUPS_SYSTEM_GROUPS@
+ @CUPS_SYSTEM_AUTHKEY@
+
+Index: scheduler/conf.c
+===================================================================
+--- scheduler/conf.c (revision 12220)
++++ scheduler/conf.c (working copy)
+@@ -995,6 +995,9 @@
+
+ cupsdLogMessage(CUPSD_LOG_NOTICE,
+ "Group and SystemGroup cannot use the same groups.");
++ if (FatalErrors & (CUPSD_FATAL_CONFIG | CUPSD_FATAL_PERMISSIONS))
++ return (0);
++
+ cupsdLogMessage(CUPSD_LOG_INFO, "Resetting Group to \"nobody\"...");
+
+ group = getgrnam("nobody");
Added: str4497.patch
===================================================================
--- str4497.patch (rev 0)
+++ str4497.patch 2014-10-21 17:53:33 UTC (rev 225152)
@@ -0,0 +1,43 @@
+Index: scheduler/main.c
+===================================================================
+--- scheduler/main.c (revision 12213)
++++ scheduler/main.c (working copy)
+@@ -763,6 +763,9 @@
+
+ if (timeout == 86400 && OnDemand && IdleExitTimeout &&
+ !cupsArrayCount(ActiveJobs) &&
++# ifdef HAVE_SYSTEMD
++ !WebInterface &&
++# endif /* HAVE_SYSTEMD */
+ (!Browsing || !BrowseLocalProtocols || !cupsArrayCount(Printers)))
+ {
+ timeout = IdleExitTimeout;
+@@ -2114,8 +2117,12 @@
+ * jobs or shared printers to advertise...
+ */
+
+- if (cupsArrayCount(ActiveJobs) ||
++ if (cupsArrayCount(ActiveJobs) || /* Active jobs */
++# ifdef HAVE_SYSTEMD
++ WebInterface || /* Web interface enabled */
++# endif /* HAVE_SYSTEMD */
+ (Browsing && BrowseLocalProtocols && cupsArrayCount(Printers)))
++ /* Printers being shared */
+ {
+ cupsdLogMessage(CUPSD_LOG_DEBUG, "Creating keep-alive file \"" CUPS_KEEPALIVE "\".");
+
+Index: scheduler/org.cups.cupsd.socket.in
+===================================================================
+--- scheduler/org.cups.cupsd.socket.in (revision 12213)
++++ scheduler/org.cups.cupsd.socket.in (working copy)
+@@ -3,10 +3,6 @@
+
+ [Socket]
+ ListenStream=@CUPS_DEFAULT_DOMAINSOCKET@
+-ListenStream=[::1]:631
+-ListenStream=127.0.0.1:631
+-BindIPv6Only=ipv6-only
+-ReusePort=true
+
+ [Install]
+ WantedBy=sockets.target
Added: str4500.patch
===================================================================
--- str4500.patch (rev 0)
+++ str4500.patch 2014-10-21 17:53:33 UTC (rev 225152)
@@ -0,0 +1,17 @@
+diff -up cups-2.0.0/cups/util.c.str4500 cups-2.0.0/cups/util.c
+--- cups-2.0.0/cups/util.c.str4500 2014-10-15 12:59:27.105942488 +0100
++++ cups-2.0.0/cups/util.c 2014-10-15 13:03:38.618187112 +0100
+@@ -846,10 +846,10 @@ cupsGetPPD3(http_t *http, /* I - H
+
+ snprintf(ppdname, sizeof(ppdname), "%s/ppd/%s.ppd", cg->cups_serverroot,
+ name);
+- if (!stat(ppdname, &ppdinfo))
++ if (!stat(ppdname, &ppdinfo) && !access(ppdname, R_OK))
+ {
+ /*
+- * OK, the file exists, use it!
++ * OK, the file exists and is readable, use it!
+ */
+
+ if (buffer[0])
+
More information about the arch-commits
mailing list