From f25528457311fc46b394417fffc077286200489a Mon Sep 17 00:00:00 2001 From: =?utf8?q?Arkadiusz=20Mi=C5=9Bkiewicz?= Date: Tue, 22 Jul 2014 10:23:20 +0200 Subject: [PATCH] - up to 1.7.4; SECURITY fixes --- cups-avahi-no-threaded.patch | 111 +++++++++++++++++++------------- cups-systemd-socket.patch | 119 ++++++++++++++++++----------------- cups.spec | 4 +- 3 files changed, 130 insertions(+), 104 deletions(-) diff --git a/cups-avahi-no-threaded.patch b/cups-avahi-no-threaded.patch index a818c5f..f9e7b2d 100644 --- a/cups-avahi-no-threaded.patch +++ b/cups-avahi-no-threaded.patch @@ -1,6 +1,6 @@ -diff -up cups-1.7rc1/scheduler/avahi.c.avahi-no-threaded cups-1.7rc1/scheduler/avahi.c ---- cups-1.7rc1/scheduler/avahi.c.avahi-no-threaded 2013-07-22 11:47:27.599101572 +0100 -+++ cups-1.7rc1/scheduler/avahi.c 2013-07-22 11:47:27.599101572 +0100 +diff -up cups-1.7.2/scheduler/avahi.c.avahi-no-threaded cups-1.7.2/scheduler/avahi.c +--- cups-1.7.2/scheduler/avahi.c.avahi-no-threaded 2014-04-14 13:56:52.632617316 +0200 ++++ cups-1.7.2/scheduler/avahi.c 2014-04-14 13:56:52.631617331 +0200 @@ -0,0 +1,441 @@ +/* + * "$Id$" @@ -443,9 +443,9 @@ diff -up cups-1.7rc1/scheduler/avahi.c.avahi-no-threaded cups-1.7rc1/scheduler/a +/* + * End of "$Id$". + */ -diff -up cups-1.7rc1/scheduler/avahi.h.avahi-no-threaded cups-1.7rc1/scheduler/avahi.h ---- cups-1.7rc1/scheduler/avahi.h.avahi-no-threaded 2013-07-22 11:47:27.599101572 +0100 -+++ cups-1.7rc1/scheduler/avahi.h 2013-07-22 11:47:27.599101572 +0100 +diff -up cups-1.7.2/scheduler/avahi.h.avahi-no-threaded cups-1.7.2/scheduler/avahi.h +--- cups-1.7.2/scheduler/avahi.h.avahi-no-threaded 2014-04-14 13:56:52.632617316 +0200 ++++ cups-1.7.2/scheduler/avahi.h 2014-04-14 13:56:52.632617316 +0200 @@ -0,0 +1,69 @@ +/* + * "$Id$" @@ -516,9 +516,9 @@ diff -up cups-1.7rc1/scheduler/avahi.h.avahi-no-threaded cups-1.7rc1/scheduler/a +/* + * End of "$Id$". + */ -diff -up cups-1.7rc1/scheduler/cupsd.h.avahi-no-threaded cups-1.7rc1/scheduler/cupsd.h ---- cups-1.7rc1/scheduler/cupsd.h.avahi-no-threaded 2013-05-29 12:51:34.000000000 +0100 -+++ cups-1.7rc1/scheduler/cupsd.h 2013-07-22 11:47:31.319118984 +0100 +diff -up cups-1.7.2/scheduler/cupsd.h.avahi-no-threaded cups-1.7.2/scheduler/cupsd.h +--- cups-1.7.2/scheduler/cupsd.h.avahi-no-threaded 2013-05-29 13:51:34.000000000 +0200 ++++ cups-1.7.2/scheduler/cupsd.h 2014-04-14 13:56:52.632617316 +0200 @@ -119,6 +119,7 @@ extern const char *cups_hstrerror(int); #include "colorman.h" #include "conf.h" @@ -573,11 +573,11 @@ diff -up cups-1.7rc1/scheduler/cupsd.h.avahi-no-threaded cups-1.7rc1/scheduler/c /* * End of "$Id: cupsd.h 10996 2013-05-29 11:51:34Z msweet $". -diff -up cups-1.7rc1/scheduler/dirsvc.c.avahi-no-threaded cups-1.7rc1/scheduler/dirsvc.c ---- cups-1.7rc1/scheduler/dirsvc.c.avahi-no-threaded 2013-05-29 12:51:34.000000000 +0100 -+++ cups-1.7rc1/scheduler/dirsvc.c 2013-07-22 11:47:27.600101576 +0100 -@@ -212,7 +212,7 @@ cupsdStartBrowsing(void) - } +diff -up cups-1.7.2/scheduler/dirsvc.c.avahi-no-threaded cups-1.7.2/scheduler/dirsvc.c +--- cups-1.7.2/scheduler/dirsvc.c.avahi-no-threaded 2014-03-05 22:11:32.000000000 +0100 ++++ cups-1.7.2/scheduler/dirsvc.c 2014-04-14 14:21:11.121344106 +0200 +@@ -195,7 +195,7 @@ cupsdStartBrowsing(void) + cupsdUpdateDNSSDName(); # else /* HAVE_AVAHI */ - if ((DNSSDMaster = avahi_threaded_poll_new()) == NULL) @@ -585,16 +585,16 @@ diff -up cups-1.7rc1/scheduler/dirsvc.c.avahi-no-threaded cups-1.7rc1/scheduler/ { cupsdLogMessage(CUPSD_LOG_ERROR, "Unable to create DNS-SD thread."); -@@ -223,7 +223,7 @@ cupsdStartBrowsing(void) +@@ -206,7 +206,7 @@ cupsdStartBrowsing(void) { int error; /* Error code, if any */ -- DNSSDClient = avahi_client_new(avahi_threaded_poll_get(DNSSDMaster), 0, -+ DNSSDClient = avahi_client_new(avahi_cups_poll_get(DNSSDMaster), 0, - NULL, NULL, &error); +- DNSSDClient = avahi_client_new(avahi_threaded_poll_get(DNSSDMaster), AVAHI_CLIENT_NO_FAIL, dnssdClientCallback, NULL, &error); ++ DNSSDClient = avahi_client_new(avahi_cups_poll_get(DNSSDMaster), AVAHI_CLIENT_NO_FAIL, dnssdClientCallback, NULL, &error); if (DNSSDClient == NULL) -@@ -235,11 +235,9 @@ cupsdStartBrowsing(void) + { +@@ -217,11 +217,9 @@ cupsdStartBrowsing(void) if (FatalErrors & CUPSD_FATAL_BROWSE) cupsdEndProcess(getpid(), 0); @@ -606,42 +606,63 @@ diff -up cups-1.7rc1/scheduler/dirsvc.c.avahi-no-threaded cups-1.7rc1/scheduler/ - avahi_threaded_poll_start(DNSSDMaster); } # endif /* HAVE_DNSSD */ + } +@@ -606,7 +604,7 @@ dnssdClientCallback( + * Renew Avahi client... + */ + +- DNSSDClient = avahi_client_new(avahi_threaded_poll_get(DNSSDMaster), AVAHI_CLIENT_NO_FAIL, dnssdClientCallback, NULL, &error); ++ DNSSDClient = avahi_client_new(avahi_cups_poll_get(DNSSDMaster), AVAHI_CLIENT_NO_FAIL, dnssdClientCallback, NULL, &error); -@@ -746,9 +744,7 @@ dnssdDeregisterInstance( + if (!DNSSDClient) + { +@@ -670,13 +668,7 @@ dnssdDeregisterInstance( DNSServiceRefDeallocate(*srv); # else /* HAVE_AVAHI */ -- avahi_threaded_poll_lock(DNSSDMaster); +- if (!from_callback) +- avahi_threaded_poll_lock(DNSSDMaster); +- avahi_entry_group_free(*srv); -- avahi_threaded_poll_unlock(DNSSDMaster); +- +- if (!from_callback) +- avahi_threaded_poll_unlock(DNSSDMaster); # endif /* HAVE_DNSSD */ *srv = NULL; -@@ -1043,14 +1039,10 @@ dnssdRegisterInstance( +@@ -997,16 +989,10 @@ dnssdRegisterInstance( (void)commit; # else /* HAVE_AVAHI */ -- avahi_threaded_poll_lock(DNSSDMaster); +- if (!from_callback) +- avahi_threaded_poll_lock(DNSSDMaster); - if (!*srv) *srv = avahi_entry_group_new(DNSSDClient, dnssdRegisterCallback, NULL); if (!*srv) { -- avahi_threaded_poll_unlock(DNSSDMaster); +- if (!from_callback) +- avahi_threaded_poll_unlock(DNSSDMaster); - cupsdLogMessage(CUPSD_LOG_WARN, "DNS-SD registration of \"%s\" failed: %s", name, dnssdErrorString(avahi_client_errno(DNSSDClient))); return (0); -@@ -1165,8 +1157,6 @@ dnssdRegisterInstance( +@@ -1121,9 +1107,6 @@ dnssdRegisterInstance( cupsdLogMessage(CUPSD_LOG_DEBUG, "DNS-SD commit of \"%s\" failed.", name); } - -- avahi_threaded_poll_unlock(DNSSDMaster); +- if (!from_callback) +- avahi_threaded_poll_unlock(DNSSDMaster); # endif /* HAVE_DNSSD */ if (error) -@@ -1338,7 +1328,7 @@ dnssdStop(void) +@@ -1294,12 +1277,10 @@ dnssdStop(void) + DNSSDMaster = NULL; + + # else /* HAVE_AVAHI */ +- avahi_threaded_poll_stop(DNSSDMaster); +- avahi_client_free(DNSSDClient); DNSSDClient = NULL; @@ -650,9 +671,9 @@ diff -up cups-1.7rc1/scheduler/dirsvc.c.avahi-no-threaded cups-1.7rc1/scheduler/ DNSSDMaster = NULL; # endif /* HAVE_DNSSD */ -diff -up cups-1.7rc1/scheduler/dirsvc.h.avahi-no-threaded cups-1.7rc1/scheduler/dirsvc.h ---- cups-1.7rc1/scheduler/dirsvc.h.avahi-no-threaded 2013-05-29 12:51:34.000000000 +0100 -+++ cups-1.7rc1/scheduler/dirsvc.h 2013-07-22 11:47:27.600101576 +0100 +diff -up cups-1.7.2/scheduler/dirsvc.h.avahi-no-threaded cups-1.7.2/scheduler/dirsvc.h +--- cups-1.7.2/scheduler/dirsvc.h.avahi-no-threaded 2013-05-29 13:51:34.000000000 +0200 ++++ cups-1.7.2/scheduler/dirsvc.h 2014-04-14 13:56:52.633617302 +0200 @@ -51,7 +51,7 @@ VAR cups_array_t *DNSSDPrinters VALUE(NU VAR DNSServiceRef DNSSDMaster VALUE(NULL); /* Master DNS-SD service reference */ @@ -662,10 +683,10 @@ diff -up cups-1.7rc1/scheduler/dirsvc.h.avahi-no-threaded cups-1.7rc1/scheduler/ /* Master polling interface for Avahi */ VAR AvahiClient *DNSSDClient VALUE(NULL); /* Client information */ -diff -up cups-1.7rc1/scheduler/main.c.avahi-no-threaded cups-1.7rc1/scheduler/main.c ---- cups-1.7rc1/scheduler/main.c.avahi-no-threaded 2013-07-22 11:47:27.578101474 +0100 -+++ cups-1.7rc1/scheduler/main.c 2013-07-22 11:47:27.601101581 +0100 -@@ -155,6 +155,10 @@ main(int argc, /* I - Number of comm +diff -up cups-1.7.2/scheduler/main.c.avahi-no-threaded cups-1.7.2/scheduler/main.c +--- cups-1.7.2/scheduler/main.c.avahi-no-threaded 2014-04-14 13:56:52.600617782 +0200 ++++ cups-1.7.2/scheduler/main.c 2014-04-14 13:56:52.634617287 +0200 +@@ -134,6 +134,10 @@ main(int argc, /* I - Number of comm int launchd_idle_exit; /* Idle exit on select timeout? */ #endif /* HAVE_LAUNCHD */ @@ -676,7 +697,7 @@ diff -up cups-1.7rc1/scheduler/main.c.avahi-no-threaded cups-1.7rc1/scheduler/ma #ifdef HAVE_GETEUID -@@ -596,6 +600,14 @@ main(int argc, /* I - Number of comm +@@ -583,6 +587,14 @@ main(int argc, /* I - Number of comm httpInitialize(); @@ -691,7 +712,7 @@ diff -up cups-1.7rc1/scheduler/main.c.avahi-no-threaded cups-1.7rc1/scheduler/ma cupsdStartServer(); /* -@@ -917,6 +929,16 @@ main(int argc, /* I - Number of comm +@@ -904,6 +916,16 @@ main(int argc, /* I - Number of comm } #endif /* __APPLE__ */ @@ -708,7 +729,7 @@ diff -up cups-1.7rc1/scheduler/main.c.avahi-no-threaded cups-1.7rc1/scheduler/ma #ifndef __APPLE__ /* * Update the network interfaces once a minute... -@@ -1897,6 +1919,10 @@ select_timeout(int fds) /* I - Number +@@ -1884,6 +1906,10 @@ select_timeout(int fds) /* I - Number cupsd_job_t *job; /* Job information */ cupsd_subscription_t *sub; /* Subscription information */ const char *why; /* Debugging aid */ @@ -719,7 +740,7 @@ diff -up cups-1.7rc1/scheduler/main.c.avahi-no-threaded cups-1.7rc1/scheduler/ma cupsdLogMessage(CUPSD_LOG_DEBUG2, "select_timeout: JobHistoryUpdate=%ld", -@@ -1942,6 +1968,19 @@ select_timeout(int fds) /* I - Number +@@ -1929,6 +1955,19 @@ select_timeout(int fds) /* I - Number } #endif /* __APPLE__ */ @@ -739,9 +760,9 @@ diff -up cups-1.7rc1/scheduler/main.c.avahi-no-threaded cups-1.7rc1/scheduler/ma /* * Check whether we are accepting new connections... */ -diff -up cups-1.7rc1/scheduler/Makefile.avahi-no-threaded cups-1.7rc1/scheduler/Makefile ---- cups-1.7rc1/scheduler/Makefile.avahi-no-threaded 2013-07-22 11:47:27.578101474 +0100 -+++ cups-1.7rc1/scheduler/Makefile 2013-07-22 11:47:27.601101581 +0100 +diff -up cups-1.7.2/scheduler/Makefile.avahi-no-threaded cups-1.7.2/scheduler/Makefile +--- cups-1.7.2/scheduler/Makefile.avahi-no-threaded 2014-04-14 13:56:52.600617782 +0200 ++++ cups-1.7.2/scheduler/Makefile 2014-04-14 13:56:52.631617331 +0200 @@ -17,6 +17,7 @@ include ../Makedefs CUPSDOBJS = \ @@ -758,9 +779,9 @@ diff -up cups-1.7rc1/scheduler/Makefile.avahi-no-threaded cups-1.7rc1/scheduler/ tls.o LIBOBJS = \ filter.o \ -diff -up cups-1.7rc1/scheduler/timeout.c.avahi-no-threaded cups-1.7rc1/scheduler/timeout.c ---- cups-1.7rc1/scheduler/timeout.c.avahi-no-threaded 2013-07-22 11:47:27.601101581 +0100 -+++ cups-1.7rc1/scheduler/timeout.c 2013-07-22 11:47:27.601101581 +0100 +diff -up cups-1.7.2/scheduler/timeout.c.avahi-no-threaded cups-1.7.2/scheduler/timeout.c +--- cups-1.7.2/scheduler/timeout.c.avahi-no-threaded 2014-04-14 13:56:52.634617287 +0200 ++++ cups-1.7.2/scheduler/timeout.c 2014-04-14 13:56:52.634617287 +0200 @@ -0,0 +1,235 @@ +/* + * "$Id$" diff --git a/cups-systemd-socket.patch b/cups-systemd-socket.patch index cfbe933..7adf2ef 100644 --- a/cups-systemd-socket.patch +++ b/cups-systemd-socket.patch @@ -1,6 +1,6 @@ -diff -up cups-1.7rc1/config.h.in.systemd-socket cups-1.7rc1/config.h.in ---- cups-1.7rc1/config.h.in.systemd-socket 2013-05-29 13:51:34.000000000 +0200 -+++ cups-1.7rc1/config.h.in 2013-07-12 11:16:53.257546263 +0200 +diff -up cups-1.7.2/config.h.in.systemd-socket cups-1.7.2/config.h.in +--- cups-1.7.2/config.h.in.systemd-socket 2014-02-27 16:57:59.000000000 +0100 ++++ cups-1.7.2/config.h.in 2014-04-17 14:05:04.104472016 +0200 @@ -451,6 +451,13 @@ @@ -15,9 +15,9 @@ diff -up cups-1.7rc1/config.h.in.systemd-socket cups-1.7rc1/config.h.in * Various scripting languages... */ -diff -up cups-1.7rc1/config-scripts/cups-systemd.m4.systemd-socket cups-1.7rc1/config-scripts/cups-systemd.m4 ---- cups-1.7rc1/config-scripts/cups-systemd.m4.systemd-socket 2013-07-12 11:16:53.257546263 +0200 -+++ cups-1.7rc1/config-scripts/cups-systemd.m4 2013-07-12 11:16:53.257546263 +0200 +diff -up cups-1.7.2/config-scripts/cups-systemd.m4.systemd-socket cups-1.7.2/config-scripts/cups-systemd.m4 +--- cups-1.7.2/config-scripts/cups-systemd.m4.systemd-socket 2014-04-17 14:05:04.104472016 +0200 ++++ cups-1.7.2/config-scripts/cups-systemd.m4 2014-04-17 14:05:04.104472016 +0200 @@ -0,0 +1,36 @@ +dnl +dnl "$Id$" @@ -55,9 +55,9 @@ diff -up cups-1.7rc1/config-scripts/cups-systemd.m4.systemd-socket cups-1.7rc1/c +dnl +dnl "$Id$" +dnl -diff -up cups-1.7rc1/configure.in.systemd-socket cups-1.7rc1/configure.in ---- cups-1.7rc1/configure.in.systemd-socket 2013-07-08 23:15:13.000000000 +0200 -+++ cups-1.7rc1/configure.in 2013-07-12 11:16:53.257546263 +0200 +diff -up cups-1.7.2/configure.in.systemd-socket cups-1.7.2/configure.in +--- cups-1.7.2/configure.in.systemd-socket 2013-07-08 23:15:13.000000000 +0200 ++++ cups-1.7.2/configure.in 2014-04-17 14:05:04.104472016 +0200 @@ -33,6 +33,7 @@ sinclude(config-scripts/cups-pam.m4) sinclude(config-scripts/cups-largefile.m4) sinclude(config-scripts/cups-dnssd.m4) @@ -76,10 +76,10 @@ diff -up cups-1.7rc1/configure.in.systemd-socket cups-1.7rc1/configure.in desktop/cups.desktop doc/help/ref-cups-files-conf.html doc/help/ref-cupsd-conf.html -diff -up cups-1.7rc1/cups/usersys.c.systemd-socket cups-1.7rc1/cups/usersys.c ---- cups-1.7rc1/cups/usersys.c.systemd-socket 2013-07-10 16:08:39.000000000 +0200 -+++ cups-1.7rc1/cups/usersys.c 2013-07-12 11:16:53.258546249 +0200 -@@ -1046,7 +1046,7 @@ cups_read_client_conf( +diff -up cups-1.7.2/cups/usersys.c.systemd-socket cups-1.7.2/cups/usersys.c +--- cups-1.7.2/cups/usersys.c.systemd-socket 2014-03-05 22:22:12.000000000 +0100 ++++ cups-1.7.2/cups/usersys.c 2014-04-17 14:05:04.105472002 +0200 +@@ -1050,7 +1050,7 @@ cups_read_client_conf( struct stat sockinfo; /* Domain socket information */ if (!stat(CUPS_DEFAULT_DOMAINSOCKET, &sockinfo) && @@ -88,9 +88,9 @@ diff -up cups-1.7rc1/cups/usersys.c.systemd-socket cups-1.7rc1/cups/usersys.c cups_server = CUPS_DEFAULT_DOMAINSOCKET; else #endif /* CUPS_DEFAULT_DOMAINSOCKET */ -diff -up cups-1.7rc1/data/cups.path.in.systemd-socket cups-1.7rc1/data/cups.path.in ---- cups-1.7rc1/data/cups.path.in.systemd-socket 2013-07-12 11:16:53.258546249 +0200 -+++ cups-1.7rc1/data/cups.path.in 2013-07-12 11:16:53.258546249 +0200 +diff -up cups-1.7.2/data/cups.path.in.systemd-socket cups-1.7.2/data/cups.path.in +--- cups-1.7.2/data/cups.path.in.systemd-socket 2014-04-17 14:05:04.105472002 +0200 ++++ cups-1.7.2/data/cups.path.in 2014-04-17 14:05:04.105472002 +0200 @@ -0,0 +1,8 @@ +[Unit] +Description=CUPS Printer Service Spool @@ -100,23 +100,24 @@ diff -up cups-1.7rc1/data/cups.path.in.systemd-socket cups-1.7rc1/data/cups.path + +[Install] +WantedBy=multi-user.target -diff -up cups-1.7rc1/data/cups.service.in.systemd-socket cups-1.7rc1/data/cups.service.in ---- cups-1.7rc1/data/cups.service.in.systemd-socket 2013-07-12 11:16:53.258546249 +0200 -+++ cups-1.7rc1/data/cups.service.in 2013-07-12 11:16:53.258546249 +0200 -@@ -0,0 +1,10 @@ +diff -up cups-1.7.2/data/cups.service.in.systemd-socket cups-1.7.2/data/cups.service.in +--- cups-1.7.2/data/cups.service.in.systemd-socket 2014-04-17 14:05:04.105472002 +0200 ++++ cups-1.7.2/data/cups.service.in 2014-04-17 14:05:04.105472002 +0200 +@@ -0,0 +1,11 @@ +[Unit] +Description=CUPS Printing Service + +[Service] ++Type=notify +ExecStart=@sbindir@/cupsd -f +PrivateTmp=true + +[Install] +Also=cups.socket cups.path +WantedBy=printer.target -diff -up cups-1.7rc1/data/cups.socket.in.systemd-socket cups-1.7rc1/data/cups.socket.in ---- cups-1.7rc1/data/cups.socket.in.systemd-socket 2013-07-12 11:16:53.259546235 +0200 -+++ cups-1.7rc1/data/cups.socket.in 2013-07-12 11:16:53.259546235 +0200 +diff -up cups-1.7.2/data/cups.socket.in.systemd-socket cups-1.7.2/data/cups.socket.in +--- cups-1.7.2/data/cups.socket.in.systemd-socket 2014-04-17 14:05:04.105472002 +0200 ++++ cups-1.7.2/data/cups.socket.in 2014-04-17 14:05:04.105472002 +0200 @@ -0,0 +1,8 @@ +[Unit] +Description=CUPS Printing Service Sockets @@ -126,9 +127,9 @@ diff -up cups-1.7rc1/data/cups.socket.in.systemd-socket cups-1.7rc1/data/cups.so + +[Install] +WantedBy=sockets.target -diff -up cups-1.7rc1/data/Makefile.systemd-socket cups-1.7rc1/data/Makefile ---- cups-1.7rc1/data/Makefile.systemd-socket 2013-05-29 13:51:34.000000000 +0200 -+++ cups-1.7rc1/data/Makefile 2013-07-12 11:16:53.259546235 +0200 +diff -up cups-1.7.2/data/Makefile.systemd-socket cups-1.7.2/data/Makefile +--- cups-1.7.2/data/Makefile.systemd-socket 2013-05-29 13:51:34.000000000 +0200 ++++ cups-1.7.2/data/Makefile 2014-04-17 14:05:04.106471988 +0200 @@ -100,6 +100,12 @@ install-data: $(INSTALL_DATA) $$file $(DATADIR)/ppdc; \ done @@ -152,9 +153,9 @@ diff -up cups-1.7rc1/data/Makefile.systemd-socket cups-1.7rc1/data/Makefile # -diff -up cups-1.7rc1/Makedefs.in.systemd-socket cups-1.7rc1/Makedefs.in ---- cups-1.7rc1/Makedefs.in.systemd-socket 2013-07-12 11:16:53.246546416 +0200 -+++ cups-1.7rc1/Makedefs.in 2013-07-12 11:17:49.327768742 +0200 +diff -up cups-1.7.2/Makedefs.in.systemd-socket cups-1.7.2/Makedefs.in +--- cups-1.7.2/Makedefs.in.systemd-socket 2014-04-17 14:05:04.092472182 +0200 ++++ cups-1.7.2/Makedefs.in 2014-04-17 14:05:04.106471988 +0200 @@ -134,6 +134,7 @@ CXXFLAGS = @CPPFLAGS@ @CXXFLAGS@ CXXLIBS = @CXXLIBS@ DBUS_NOTIFIER = @DBUS_NOTIFIER@ @@ -171,7 +172,7 @@ diff -up cups-1.7rc1/Makedefs.in.systemd-socket cups-1.7rc1/Makedefs.in LDFLAGS = -L../cgi-bin -L../cups -L../filter -L../ppdc \ -L../scheduler @LDARCHFLAGS@ \ @LDFLAGS@ @RELROFLAGS@ @PIEFLAGS@ $(OPTIM) -@@ -231,6 +233,7 @@ PAMFILE = @PAMFILE@ +@@ -232,6 +234,7 @@ PAMFILE = @PAMFILE@ DEFAULT_LAUNCHD_CONF = @DEFAULT_LAUNCHD_CONF@ DBUSDIR = @DBUSDIR@ @@ -179,10 +180,10 @@ diff -up cups-1.7rc1/Makedefs.in.systemd-socket cups-1.7rc1/Makedefs.in # -diff -up cups-1.7rc1/scheduler/client.h.systemd-socket cups-1.7rc1/scheduler/client.h ---- cups-1.7rc1/scheduler/client.h.systemd-socket 2013-05-29 13:51:34.000000000 +0200 -+++ cups-1.7rc1/scheduler/client.h 2013-07-12 11:16:53.260546222 +0200 -@@ -77,6 +77,9 @@ typedef struct +diff -up cups-1.7.2/scheduler/client.h.systemd-socket cups-1.7.2/scheduler/client.h +--- cups-1.7.2/scheduler/client.h.systemd-socket 2013-08-02 00:23:18.000000000 +0200 ++++ cups-1.7.2/scheduler/client.h 2014-04-17 14:05:04.106471988 +0200 +@@ -79,6 +79,9 @@ typedef struct int fd; /* File descriptor for this server */ http_addr_t address; /* Bind address of socket */ http_encryption_t encryption; /* To encrypt or not to encrypt... */ @@ -192,9 +193,9 @@ diff -up cups-1.7rc1/scheduler/client.h.systemd-socket cups-1.7rc1/scheduler/cli } cupsd_listener_t; -diff -up cups-1.7rc1/scheduler/listen.c.systemd-socket cups-1.7rc1/scheduler/listen.c ---- cups-1.7rc1/scheduler/listen.c.systemd-socket 2013-05-29 13:51:34.000000000 +0200 -+++ cups-1.7rc1/scheduler/listen.c 2013-07-12 11:16:53.260546222 +0200 +diff -up cups-1.7.2/scheduler/listen.c.systemd-socket cups-1.7.2/scheduler/listen.c +--- cups-1.7.2/scheduler/listen.c.systemd-socket 2013-05-29 13:51:34.000000000 +0200 ++++ cups-1.7.2/scheduler/listen.c 2014-04-17 14:05:04.107471974 +0200 @@ -401,7 +401,11 @@ cupsdStopListening(void) lis; lis = (cupsd_listener_t *)cupsArrayNext(Listeners)) @@ -208,19 +209,10 @@ diff -up cups-1.7rc1/scheduler/listen.c.systemd-socket cups-1.7rc1/scheduler/lis { #ifdef WIN32 closesocket(lis->fd); -diff -up cups-1.7rc1/scheduler/main.c.systemd-socket cups-1.7rc1/scheduler/main.c ---- cups-1.7rc1/scheduler/main.c.systemd-socket 2013-07-12 11:16:53.212546887 +0200 -+++ cups-1.7rc1/scheduler/main.c 2013-07-12 11:16:53.261546208 +0200 -@@ -26,6 +26,8 @@ - * launchd_checkin() - Check-in with launchd and collect the listening - * fds. - * launchd_checkout() - Update the launchd KeepAlive file as needed. -+ * systemd_checkin() - Check-in with systemd and collect the -+ * listening fds. - * parent_handler() - Catch USR1/CHLD signals... - * process_children() - Process all dead children... - * select_timeout() - Calculate the select timeout value. -@@ -62,6 +64,10 @@ +diff -up cups-1.7.2/scheduler/main.c.systemd-socket cups-1.7.2/scheduler/main.c +--- cups-1.7.2/scheduler/main.c.systemd-socket 2014-04-17 14:05:04.052472738 +0200 ++++ cups-1.7.2/scheduler/main.c 2014-04-17 14:09:39.102634667 +0200 +@@ -39,6 +39,10 @@ # endif /* !LAUNCH_JOBKEY_SERVICEIPC */ #endif /* HAVE_LAUNCH_H */ @@ -231,7 +223,7 @@ diff -up cups-1.7rc1/scheduler/main.c.systemd-socket cups-1.7rc1/scheduler/main. #if defined(HAVE_MALLOC_H) && defined(HAVE_MALLINFO) # include #endif /* HAVE_MALLOC_H && HAVE_MALLINFO */ -@@ -83,6 +89,9 @@ +@@ -64,6 +68,9 @@ static void launchd_checkin(void); static void launchd_checkout(void); #endif /* HAVE_LAUNCHD */ @@ -241,7 +233,7 @@ diff -up cups-1.7rc1/scheduler/main.c.systemd-socket cups-1.7rc1/scheduler/main. static void parent_handler(int sig); static void process_children(void); static void sigchld_handler(int sig); -@@ -574,6 +583,13 @@ main(int argc, /* I - Number of comm +@@ -563,6 +570,13 @@ main(int argc, /* I - Number of comm } #endif /* HAVE_LAUNCHD */ @@ -255,7 +247,20 @@ diff -up cups-1.7rc1/scheduler/main.c.systemd-socket cups-1.7rc1/scheduler/main. /* * Startup the server... */ -@@ -762,6 +778,15 @@ main(int argc, /* I - Number of comm +@@ -654,6 +668,12 @@ main(int argc, /* I - Number of comm + "Scheduler started via launchd."); + else + #endif /* HAVE_LAUNCHD */ ++#ifdef HAVE_SYSTEMD ++ sd_notifyf(0, "READY=1\n" ++ "STATUS=Scheduler is running...\n" ++ "MAINPID=%lu", ++ (unsigned long) getpid()); ++#endif /* HAVE_SYSTEMD */ + if (fg) + cupsdAddEvent(CUPSD_EVENT_SERVER_STARTED, NULL, NULL, + "Scheduler started in foreground."); +@@ -751,6 +771,15 @@ main(int argc, /* I - Number of comm } #endif /* HAVE_LAUNCHD */ @@ -271,7 +276,7 @@ diff -up cups-1.7rc1/scheduler/main.c.systemd-socket cups-1.7rc1/scheduler/main. /* * Startup the server... */ -@@ -1511,6 +1536,102 @@ launchd_checkout(void) +@@ -1500,6 +1529,102 @@ launchd_checkout(void) } #endif /* HAVE_LAUNCHD */ @@ -374,9 +379,9 @@ diff -up cups-1.7rc1/scheduler/main.c.systemd-socket cups-1.7rc1/scheduler/main. /* * 'parent_handler()' - Catch USR1/CHLD signals... -diff -up cups-1.7rc1/scheduler/Makefile.systemd-socket cups-1.7rc1/scheduler/Makefile ---- cups-1.7rc1/scheduler/Makefile.systemd-socket 2013-05-29 13:51:34.000000000 +0200 -+++ cups-1.7rc1/scheduler/Makefile 2013-07-12 11:16:53.261546208 +0200 +diff -up cups-1.7.2/scheduler/Makefile.systemd-socket cups-1.7.2/scheduler/Makefile +--- cups-1.7.2/scheduler/Makefile.systemd-socket 2013-05-29 13:51:34.000000000 +0200 ++++ cups-1.7.2/scheduler/Makefile 2014-04-17 14:05:04.108471960 +0200 @@ -381,7 +381,7 @@ cupsd: $(CUPSDOBJS) $(LIBCUPSMIME) ../cu $(CC) $(LDFLAGS) -o cupsd $(CUPSDOBJS) -L. -lcupsmime \ $(LIBZ) $(SSLLIBS) $(LIBSLP) $(LIBLDAP) $(PAMLIBS) \ diff --git a/cups.spec b/cups.spec index e069762..f36bd66 100644 --- a/cups.spec +++ b/cups.spec @@ -10,13 +10,13 @@ Summary(pl.UTF-8): Ogólny system druku dla Uniksa Summary(pt_BR.UTF-8): Sistema Unix de Impressão Name: cups -Version: 1.7.1 +Version: 1.7.4 Release: 1 Epoch: 1 License: LGPL v2 (libraries), GPL v2 (the rest) + openssl exception Group: Applications/Printing Source0: http://www.cups.org/software/%{version}/%{name}-%{version}-source.tar.bz2 -# Source0-md5: 55277c40fd4b7183dc3671d39c5c42b7 +# Source0-md5: 1a2295c2b2d2f422db2e50f40ed2fb99 Source1: %{name}.init Source2: %{name}.pamd Source3: %{name}.logrotate -- 2.44.0