diff options
author | root <root@rshg054.dnsready.net> | 2012-09-05 00:02:31 +0000 |
---|---|---|
committer | root <root@rshg054.dnsready.net> | 2012-09-05 00:02:31 +0000 |
commit | b915a21821423232052e2e48ea14f288b3098c32 (patch) | |
tree | 36efd4baf3e66f689f2c7d58d05d0a64fbfcc6e9 /testing/cups | |
parent | 8b7b4f2e5a808cb0c1226c23469fa57751eba190 (diff) |
Wed Sep 5 00:02:30 UTC 2012
Diffstat (limited to 'testing/cups')
-rw-r--r-- | testing/cups/PKGBUILD | 35 | ||||
-rw-r--r-- | testing/cups/avahi-missing-in-conditionals.patch | 118 | ||||
-rw-r--r-- | testing/cups/cups-systemd-socket.patch | 135 | ||||
-rw-r--r-- | testing/cups/cups.install | 5 | ||||
-rw-r--r-- | testing/cups/cupsd-conf-remove-obsolete-browse-directives.patch | 12 | ||||
-rw-r--r-- | testing/cups/recognize-remote-cups-queue-via-dnssd-uri.patch | 25 | ||||
-rw-r--r-- | testing/cups/usb-backend-reset-after-job-only-for-specific-devices.patch | 74 |
7 files changed, 328 insertions, 76 deletions
diff --git a/testing/cups/PKGBUILD b/testing/cups/PKGBUILD index d4ba2d8d7..12273883e 100644 --- a/testing/cups/PKGBUILD +++ b/testing/cups/PKGBUILD @@ -1,30 +1,38 @@ -# $Id: PKGBUILD 164245 2012-07-28 09:29:14Z andyrtr $ +# $Id: PKGBUILD 165915 2012-09-03 20:05:26Z heftig $ # Maintainer: Andreas Radke <andyrtr@archlinux.org> pkgbase="cups" pkgname=('libcups' 'cups') pkgver=1.6.1 -pkgrel=1 +pkgrel=6 arch=('i686' 'x86_64') license=('GPL') url="http://www.cups.org/" -makedepends=('libtiff>=4.0.0' 'libpng>=1.5.7' 'acl' 'openslp' 'pam' 'xdg-utils' 'krb5' 'gnutls>=2.8.3' 'cups-filters' 'bc' +makedepends=('libtiff>=4.0.0' 'libpng>=1.5.7' 'acl' 'pam' 'xdg-utils' 'krb5' 'gnutls>=2.8.3' 'cups-filters' 'bc' 'colord' 'xinetd' 'gzip' 'autoconf' 'libusb' 'dbus-core' 'avahi' 'hicolor-icon-theme' 'systemd') source=(ftp://ftp.easysw.com/pub/cups/${pkgver}/cups-${pkgver}-source.tar.bz2 cups-no-export-ssllibs.patch cups-no-gcrypt.patch cups-no-gzip-man.patch cups-systemd-socket.patch - cups cups.logrotate cups.pam) + cups cups.logrotate cups.pam + cupsd-conf-remove-obsolete-browse-directives.patch + avahi-missing-in-conditionals.patch + recognize-remote-cups-queue-via-dnssd-uri.patch + usb-backend-reset-after-job-only-for-specific-devices.patch) #options=('!emptydirs') md5sums=('87ade07e3d1efd03c9c3add949cf9c00' '9b8467a1e51d360096b70e2c3c081e6c' '3733c23e77eb503bd94cc368e02830dc' '90c30380d4c8cd48a908cfdadae1ea24' - 'a81573a429b98e16670d7fea47e528c4' + 'b4868b83f7f2d6ec24a1be76509379f0' '9657daa21760bb0b5fa3d8b51d5e01a1' 'f861b18f4446c43918c8643dcbbd7f6d' - '96f82c38f3f540b53f3e5144900acf17') + '96f82c38f3f540b53f3e5144900acf17' + '6bef262b5081051e88cd2ae94fed1867' + '9c91b1319f4b20dc323986cb4abbe806' + 'dcef8dd5614461166cada8a706eebb49' + '0779ef8ba1d724ebb3b9bf360deba52b') build() { cd ${srcdir}/${pkgbase}-${pkgver} @@ -40,6 +48,16 @@ build() { patch -Np1 -i "${srcdir}/cups-no-gcrypt.patch" # don't zip man pages in make install, let makepkg do that / Fedora patch -Np1 -i ${srcdir}/cups-no-gzip-man.patch + + # upstream bugtracker patches + # http://www.cups.org/str.php?L4157 - fix broken default server config + patch -Np1 -i ${srcdir}/cupsd-conf-remove-obsolete-browse-directives.patch + # http://www.cups.org/str.php?L4156 - In many DNS-SD/Bonjour conditionals Avahi is not considered + patch -Np1 -i ${srcdir}/avahi-missing-in-conditionals.patch + # http://www.cups.org/str.php?L4158 - DNS-SD-based print queues pointing to CUPS server are not considered remote printers with driver on server + patch -Np1 -i ${srcdir}/recognize-remote-cups-queue-via-dnssd-uri.patch + # http://cups.org/str.php?L4155 / https://bugs.archlinux.org/task/30965 + patch -Np0 -i ${srcdir}/usb-backend-reset-after-job-only-for-specific-devices.patch # Rebuild configure script for not zipping man-pages. aclocal -I config-scripts @@ -105,7 +123,7 @@ backup=(etc/cups/cupsd.conf etc/logrotate.d/cups etc/pam.d/cups etc/xinetd.d/cups-lpd) -depends=('acl' 'openslp' 'pam' "libcups>=${pkgver}" 'cups-filters' 'bc' 'colord' 'libusb' 'dbus-core' 'libsystemd' 'hicolor-icon-theme') +depends=('acl' 'pam' "libcups>=${pkgver}" 'cups-filters' 'bc' 'colord' 'libusb' 'dbus-core' 'libsystemd' 'hicolor-icon-theme') optdepends=('xdg-utils: xdg .desktop file support') cd ${srcdir}/${pkgbase}-${pkgver} @@ -150,4 +168,7 @@ optdepends=('xdg-utils: xdg .desktop file support') rm -v ${pkgdir}/usr/share/cups/data/testprint # comment out all conversion rules which use any of the removed filters perl -p -i -e 's:^(.*\s+bannertops\s*)$:#\1:' /usr/share/cups/mime/mime.convs + + # Provide native service for arch-daemons generator + ln -s cups.service "$pkgdir/usr/lib/systemd/system/cupsd.service" } diff --git a/testing/cups/avahi-missing-in-conditionals.patch b/testing/cups/avahi-missing-in-conditionals.patch new file mode 100644 index 000000000..b261f58ae --- /dev/null +++ b/testing/cups/avahi-missing-in-conditionals.patch @@ -0,0 +1,118 @@ +diff -uraN cups/scheduler/client.c cups-new/scheduler/client.c +--- cups/scheduler/client.c 2012-05-25 15:28:49.000000000 +0200 ++++ cups-new/scheduler/client.c 2012-08-04 20:13:17.082220961 +0200 +@@ -4021,7 +4021,7 @@ + !strncmp(host, "[::1]:", 6)); + } + +-#ifdef HAVE_DNSSD ++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI) + /* + * Check if the hostname is something.local (Bonjour); if so, allow it. + */ +@@ -4040,7 +4040,7 @@ + !_cups_strcasecmp(end, ".local.") || + !_cups_strncasecmp(end, ".local.:", 8))) + return (1); +-#endif /* HAVE_DNSSD */ ++#endif /* HAVE_DNSSD || HAVE_AVAHI */ + + /* + * Check if the hostname is an IP address... +@@ -4101,7 +4101,7 @@ + } + } + +-#ifdef HAVE_DNSSD ++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI) + for (a = (cupsd_alias_t *)cupsArrayFirst(DNSSDAlias); + a; + a = (cupsd_alias_t *)cupsArrayNext(DNSSDAlias)) +@@ -4126,7 +4126,7 @@ + return (1); + } + } +-#endif /* HAVE_DNSSD */ ++#endif /* HAVE_DNSSD || HAVE_AVAHI */ + + /* + * Check for interface hostname matches... +diff -uraN cups/scheduler/conf.c cups-new/scheduler/conf.c +--- cups/scheduler/conf.c 2012-05-25 15:28:49.000000000 +0200 ++++ cups-new/scheduler/conf.c 2012-08-04 20:15:49.830978405 +0200 +@@ -89,9 +89,9 @@ + { + { "AccessLog", &AccessLog, CUPSD_VARTYPE_STRING }, + { "AutoPurgeJobs", &JobAutoPurge, CUPSD_VARTYPE_BOOLEAN }, +-#ifdef HAVE_DNSSD ++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI) + { "BrowseDNSSDSubTypes", &DNSSDSubTypes, CUPSD_VARTYPE_STRING }, +-#endif /* HAVE_DNSSD */ ++#endif /* HAVE_DNSSD || HAVE_AVAHI */ + { "BrowseWebIF", &BrowseWebIF, CUPSD_VARTYPE_BOOLEAN }, + { "Browsing", &Browsing, CUPSD_VARTYPE_BOOLEAN }, + { "CacheDir", &CacheDir, CUPSD_VARTYPE_STRING }, +@@ -735,9 +735,9 @@ + Browsing = CUPS_DEFAULT_BROWSING; + DefaultShared = CUPS_DEFAULT_DEFAULT_SHARED; + +-#ifdef HAVE_DNSSD ++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI) + cupsdSetString(&DNSSDSubTypes, "_cups,_print"); +-#endif /* HAVE_DNSSD */ ++#endif /* HAVE_DNSSD || HAVE_AVAHI */ + + cupsdSetString(&LPDConfigFile, CUPS_DEFAULT_LPD_CONFIG_FILE); + cupsdSetString(&SMBConfigFile, CUPS_DEFAULT_SMB_CONFIG_FILE); +diff -uraN cups/scheduler/ipp.c cups-new/scheduler/ipp.c +--- cups/scheduler/ipp.c 2012-05-25 15:28:49.000000000 +0200 ++++ cups-new/scheduler/ipp.c 2012-08-04 20:13:17.086220978 +0200 +@@ -4813,7 +4813,7 @@ + ippAddDate(con->response, IPP_TAG_PRINTER, "printer-current-time", + ippTimeToDate(curtime)); + +-#ifdef HAVE_DNSSD ++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI) + if (!ra || cupsArrayFind(ra, "printer-dns-sd-name")) + { + if (printer->reg_name) +@@ -4823,7 +4823,7 @@ + ippAddInteger(con->response, IPP_TAG_PRINTER, IPP_TAG_NOVALUE, + "printer-dns-sd-name", 0); + } +-#endif /* HAVE_DNSSD */ ++#endif /* HAVE_DNSSD || HAVE_AVAHI */ + + if (!ra || cupsArrayFind(ra, "printer-error-policy")) + ippAddString(con->response, IPP_TAG_PRINTER, IPP_TAG_NAME, +diff -uraN cups/scheduler/main.c cups-new/scheduler/main.c +--- cups/scheduler/main.c 2012-05-25 15:28:49.000000000 +0200 ++++ cups-new/scheduler/main.c 2012-08-04 20:13:17.090221001 +0200 +@@ -781,9 +781,9 @@ + * Got an error from select! + */ + +-#ifdef HAVE_DNSSD ++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI) + cupsd_printer_t *p; /* Current printer */ +-#endif /* HAVE_DNSSD */ ++#endif /* HAVE_DNSSD || HAVE_AVAHI */ + + + if (errno == EINTR) /* Just interrupted by a signal */ +@@ -824,13 +824,13 @@ + job->print_pipes[0], job->print_pipes[1], + job->back_pipes[0], job->back_pipes[1]); + +-#ifdef HAVE_DNSSD ++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI) + for (p = (cupsd_printer_t *)cupsArrayFirst(Printers); + p; + p = (cupsd_printer_t *)cupsArrayNext(Printers)) + cupsdLogMessage(CUPSD_LOG_EMERG, "printer[%s] reg_name=\"%s\"", p->name, + p->reg_name ? p->reg_name : "(null)"); +-#endif /* HAVE_DNSSD */ ++#endif /* HAVE_DNSSD || HAVE_AVAHI */ + + break; + } diff --git a/testing/cups/cups-systemd-socket.patch b/testing/cups/cups-systemd-socket.patch index f699b9eda..83fabdb4f 100644 --- a/testing/cups/cups-systemd-socket.patch +++ b/testing/cups/cups-systemd-socket.patch @@ -1,7 +1,7 @@ -diff -up cups-1.5.0/config.h.in.systemd-socket cups-1.5.0/config.h.in ---- cups-1.5.0/config.h.in.systemd-socket 2011-10-18 15:32:40.741672460 +0100 -+++ cups-1.5.0/config.h.in 2011-10-18 15:32:40.843670530 +0100 -@@ -503,6 +503,13 @@ +diff -up cups-1.6b1/config.h.in.systemd-socket cups-1.6b1/config.h.in +--- cups-1.6b1/config.h.in.systemd-socket 2012-05-17 00:57:03.000000000 +0200 ++++ cups-1.6b1/config.h.in 2012-05-28 11:16:35.657250584 +0200 +@@ -506,6 +506,13 @@ /* @@ -15,9 +15,9 @@ diff -up cups-1.5.0/config.h.in.systemd-socket cups-1.5.0/config.h.in * Various scripting languages... */ -diff -up cups-1.5.0/config-scripts/cups-systemd.m4.systemd-socket cups-1.5.0/config-scripts/cups-systemd.m4 ---- cups-1.5.0/config-scripts/cups-systemd.m4.systemd-socket 2011-10-18 15:32:40.844670511 +0100 -+++ cups-1.5.0/config-scripts/cups-systemd.m4 2011-10-18 15:33:16.861989058 +0100 +diff -up cups-1.6b1/config-scripts/cups-systemd.m4.systemd-socket cups-1.6b1/config-scripts/cups-systemd.m4 +--- cups-1.6b1/config-scripts/cups-systemd.m4.systemd-socket 2012-05-28 11:16:35.658250577 +0200 ++++ cups-1.6b1/config-scripts/cups-systemd.m4 2012-05-28 11:16:35.658250577 +0200 @@ -0,0 +1,36 @@ +dnl +dnl "$Id$" @@ -55,18 +55,18 @@ diff -up cups-1.5.0/config-scripts/cups-systemd.m4.systemd-socket cups-1.5.0/con +dnl +dnl "$Id$" +dnl -diff -up cups-1.5.0/configure.in.systemd-socket cups-1.5.0/configure.in ---- cups-1.5.0/configure.in.systemd-socket 2010-11-20 01:03:46.000000000 +0000 -+++ cups-1.5.0/configure.in 2011-10-18 15:32:40.844670511 +0100 -@@ -37,6 +37,7 @@ sinclude(config-scripts/cups-pam.m4) +diff -up cups-1.6b1/configure.in.systemd-socket cups-1.6b1/configure.in +--- cups-1.6b1/configure.in.systemd-socket 2012-04-23 19:26:57.000000000 +0200 ++++ cups-1.6b1/configure.in 2012-05-28 11:16:35.658250577 +0200 +@@ -33,6 +33,7 @@ sinclude(config-scripts/cups-pam.m4) sinclude(config-scripts/cups-largefile.m4) sinclude(config-scripts/cups-dnssd.m4) sinclude(config-scripts/cups-launchd.m4) +sinclude(config-scripts/cups-systemd.m4) sinclude(config-scripts/cups-defaults.m4) - sinclude(config-scripts/cups-pdf.m4) sinclude(config-scripts/cups-scripting.m4) -@@ -71,6 +72,9 @@ AC_OUTPUT(Makedefs + +@@ -66,6 +67,9 @@ AC_OUTPUT(Makedefs conf/snmp.conf cups-config data/testprint @@ -76,10 +76,10 @@ diff -up cups-1.5.0/configure.in.systemd-socket cups-1.5.0/configure.in desktop/cups.desktop doc/help/ref-cupsd-conf.html doc/help/standard.html -diff -up cups-1.5.0/cups/usersys.c.systemd-socket cups-1.5.0/cups/usersys.c ---- cups-1.5.0/cups/usersys.c.systemd-socket 2011-10-18 15:32:40.645674277 +0100 -+++ cups-1.5.0/cups/usersys.c 2011-10-18 15:32:40.845670492 +0100 -@@ -770,7 +770,7 @@ cups_read_client_conf( +diff -up cups-1.6b1/cups/usersys.c.systemd-socket cups-1.6b1/cups/usersys.c +--- cups-1.6b1/cups/usersys.c.systemd-socket 2012-04-23 19:26:57.000000000 +0200 ++++ cups-1.6b1/cups/usersys.c 2012-05-28 11:16:35.659250570 +0200 +@@ -975,7 +975,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.5.0/cups/usersys.c.systemd-socket cups-1.5.0/cups/usersys.c cups_server = CUPS_DEFAULT_DOMAINSOCKET; else #endif /* CUPS_DEFAULT_DOMAINSOCKET */ -diff -up cups-1.5.0/data/cups.path.in.systemd-socket cups-1.5.0/data/cups.path.in ---- cups-1.5.0/data/cups.path.in.systemd-socket 2011-10-18 15:32:40.846670473 +0100 -+++ cups-1.5.0/data/cups.path.in 2011-10-18 15:32:40.846670473 +0100 +diff -up cups-1.6b1/data/cups.path.in.systemd-socket cups-1.6b1/data/cups.path.in +--- cups-1.6b1/data/cups.path.in.systemd-socket 2012-05-28 11:16:35.659250570 +0200 ++++ cups-1.6b1/data/cups.path.in 2012-05-28 11:16:35.659250570 +0200 @@ -0,0 +1,8 @@ +[Unit] +Description=CUPS Printer Service Spool @@ -100,10 +100,10 @@ diff -up cups-1.5.0/data/cups.path.in.systemd-socket cups-1.5.0/data/cups.path.i + +[Install] +WantedBy=multi-user.target -diff -up cups-1.5.0/data/cups.service.in.systemd-socket cups-1.5.0/data/cups.service.in ---- cups-1.5.0/data/cups.service.in.systemd-socket 2011-10-18 15:32:40.846670473 +0100 -+++ cups-1.5.0/data/cups.service.in 2011-10-18 15:32:40.846670473 +0100 -@@ -0,0 +1,9 @@ +diff -up cups-1.6b1/data/cups.service.in.systemd-socket cups-1.6b1/data/cups.service.in +--- cups-1.6b1/data/cups.service.in.systemd-socket 2012-05-28 11:16:35.659250570 +0200 ++++ cups-1.6b1/data/cups.service.in 2012-05-28 11:16:35.659250570 +0200 +@@ -0,0 +1,10 @@ +[Unit] +Description=CUPS Printing Service + @@ -114,25 +114,22 @@ diff -up cups-1.5.0/data/cups.service.in.systemd-socket cups-1.5.0/data/cups.ser +[Install] +Also=cups.socket cups.path +WantedBy=printer.target -diff -up cups-1.5.0/data/cups.socket.in.systemd-socket cups-1.5.0/data/cups.socket.in ---- cups-1.5.0/data/cups.socket.in.systemd-socket 2011-10-18 15:32:40.847670454 +0100 -+++ cups-1.5.0/data/cups.socket.in 2011-10-18 15:32:40.847670454 +0100 -@@ -0,0 +1,10 @@ +diff -up cups-1.6b1/data/cups.socket.in.systemd-socket cups-1.6b1/data/cups.socket.in +--- cups-1.6b1/data/cups.socket.in.systemd-socket 2012-05-28 11:16:35.660250563 +0200 ++++ cups-1.6b1/data/cups.socket.in 2012-05-28 11:16:35.660250563 +0200 +@@ -0,0 +1,8 @@ +[Unit] +Description=CUPS Printing Service Sockets + +[Socket] +ListenStream=@CUPS_DEFAULT_DOMAINSOCKET@ -+ListenStream=631 -+ListenDatagram=0.0.0.0:631 -+BindIPv6Only=ipv6-only + +[Install] +WantedBy=sockets.target -diff -up cups-1.5.0/data/Makefile.systemd-socket cups-1.5.0/data/Makefile ---- cups-1.5.0/data/Makefile.systemd-socket 2011-05-12 06:21:56.000000000 +0100 -+++ cups-1.5.0/data/Makefile 2011-10-18 15:32:40.847670454 +0100 -@@ -112,6 +112,12 @@ install-data: +diff -up cups-1.6b1/data/Makefile.systemd-socket cups-1.6b1/data/Makefile +--- cups-1.6b1/data/Makefile.systemd-socket 2011-08-27 11:23:01.000000000 +0200 ++++ cups-1.6b1/data/Makefile 2012-05-28 11:16:35.660250563 +0200 +@@ -100,6 +100,12 @@ install-data: $(INSTALL_DATA) $$file $(DATADIR)/ppdc; \ done $(INSTALL_DIR) -m 755 $(DATADIR)/profiles @@ -145,8 +142,8 @@ diff -up cups-1.5.0/data/Makefile.systemd-socket cups-1.5.0/data/Makefile # -@@ -159,6 +165,9 @@ uninstall: - -$(RMDIR) $(DATADIR)/charsets +@@ -143,6 +149,9 @@ uninstall: + -$(RMDIR) $(DATADIR)/data -$(RMDIR) $(DATADIR)/banners -$(RMDIR) $(DATADIR) + for file in $(SYSTEMD_UNITS); do \ @@ -155,10 +152,10 @@ diff -up cups-1.5.0/data/Makefile.systemd-socket cups-1.5.0/data/Makefile # -diff -up cups-1.5.0/Makedefs.in.systemd-socket cups-1.5.0/Makedefs.in ---- cups-1.5.0/Makedefs.in.systemd-socket 2011-10-18 15:32:40.719672876 +0100 -+++ cups-1.5.0/Makedefs.in 2011-10-18 15:32:40.848670435 +0100 -@@ -143,6 +143,7 @@ CXXFLAGS = @CPPFLAGS@ @CXXFLAGS@ +diff -up cups-1.6b1/Makedefs.in.systemd-socket cups-1.6b1/Makedefs.in +--- cups-1.6b1/Makedefs.in.systemd-socket 2012-05-28 11:16:35.648250647 +0200 ++++ cups-1.6b1/Makedefs.in 2012-05-28 11:16:35.660250563 +0200 +@@ -134,11 +134,13 @@ CXXFLAGS = @CPPFLAGS@ @CXXFLAGS@ CXXLIBS = @CXXLIBS@ DBUS_NOTIFIER = @DBUS_NOTIFIER@ DBUS_NOTIFIERLIBS = @DBUS_NOTIFIERLIBS@ @@ -166,15 +163,13 @@ diff -up cups-1.5.0/Makedefs.in.systemd-socket cups-1.5.0/Makedefs.in DNSSD_BACKEND = @DNSSD_BACKEND@ DSOFLAGS = -L../cups @DSOFLAGS@ DSOLIBS = @DSOLIBS@ $(COMMONLIBS) -@@ -151,6 +152,7 @@ FONTS = @FONTS@ - IMGLIBS = @IMGLIBS@ - IMGFILTERS = @IMGFILTERS@ + DNSSDLIBS = @DNSSDLIBS@ LAUNCHDLIBS = @LAUNCHDLIBS@ +SDLIBS = @SDLIBS@ LDFLAGS = -L../cgi-bin -L../cups -L../filter -L../ppdc \ -L../scheduler @LDARCHFLAGS@ \ @LDFLAGS@ @RELROFLAGS@ @PIEFLAGS@ $(OPTIM) -@@ -267,6 +269,7 @@ PAMFILE = @PAMFILE@ +@@ -229,6 +231,7 @@ PAMFILE = @PAMFILE@ DEFAULT_LAUNCHD_CONF = @DEFAULT_LAUNCHD_CONF@ DBUSDIR = @DBUSDIR@ @@ -182,10 +177,10 @@ diff -up cups-1.5.0/Makedefs.in.systemd-socket cups-1.5.0/Makedefs.in # -diff -up cups-1.5.0/scheduler/client.h.systemd-socket cups-1.5.0/scheduler/client.h ---- cups-1.5.0/scheduler/client.h.systemd-socket 2011-03-25 21:25:38.000000000 +0000 -+++ cups-1.5.0/scheduler/client.h 2011-10-18 15:32:40.848670435 +0100 -@@ -75,6 +75,9 @@ typedef struct +diff -up cups-1.6b1/scheduler/client.h.systemd-socket cups-1.6b1/scheduler/client.h +--- cups-1.6b1/scheduler/client.h.systemd-socket 2012-03-22 21:30:20.000000000 +0100 ++++ cups-1.6b1/scheduler/client.h 2012-05-28 11:16:35.661250556 +0200 +@@ -77,6 +77,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... */ @@ -195,9 +190,9 @@ diff -up cups-1.5.0/scheduler/client.h.systemd-socket cups-1.5.0/scheduler/clien } cupsd_listener_t; -diff -up cups-1.5.0/scheduler/listen.c.systemd-socket cups-1.5.0/scheduler/listen.c ---- cups-1.5.0/scheduler/listen.c.systemd-socket 2011-04-16 00:38:13.000000000 +0100 -+++ cups-1.5.0/scheduler/listen.c 2011-10-18 15:32:40.849670416 +0100 +diff -up cups-1.6b1/scheduler/listen.c.systemd-socket cups-1.6b1/scheduler/listen.c +--- cups-1.6b1/scheduler/listen.c.systemd-socket 2011-04-16 01:38:13.000000000 +0200 ++++ cups-1.6b1/scheduler/listen.c 2012-05-28 11:16:35.661250556 +0200 @@ -401,7 +401,11 @@ cupsdStopListening(void) lis; lis = (cupsd_listener_t *)cupsArrayNext(Listeners)) @@ -211,9 +206,9 @@ diff -up cups-1.5.0/scheduler/listen.c.systemd-socket cups-1.5.0/scheduler/liste { #ifdef WIN32 closesocket(lis->fd); -diff -up cups-1.5.0/scheduler/main.c.systemd-socket cups-1.5.0/scheduler/main.c ---- cups-1.5.0/scheduler/main.c.systemd-socket 2011-10-18 15:32:40.802671306 +0100 -+++ cups-1.5.0/scheduler/main.c 2011-10-18 15:32:40.851670379 +0100 +diff -up cups-1.6b1/scheduler/main.c.systemd-socket cups-1.6b1/scheduler/main.c +--- cups-1.6b1/scheduler/main.c.systemd-socket 2012-05-28 11:16:35.612250897 +0200 ++++ cups-1.6b1/scheduler/main.c 2012-05-28 12:49:32.698375139 +0200 @@ -26,6 +26,8 @@ * launchd_checkin() - Check-in with launchd and collect the listening * fds. @@ -244,7 +239,7 @@ diff -up cups-1.5.0/scheduler/main.c.systemd-socket cups-1.5.0/scheduler/main.c static void parent_handler(int sig); static void process_children(void); static void sigchld_handler(int sig); -@@ -537,6 +546,13 @@ main(int argc, /* I - Number of comm +@@ -528,6 +537,13 @@ main(int argc, /* I - Number of comm } #endif /* HAVE_LAUNCHD */ @@ -258,7 +253,7 @@ diff -up cups-1.5.0/scheduler/main.c.systemd-socket cups-1.5.0/scheduler/main.c /* * Startup the server... */ -@@ -759,6 +775,15 @@ main(int argc, /* I - Number of comm +@@ -738,6 +754,15 @@ main(int argc, /* I - Number of comm } #endif /* HAVE_LAUNCHD */ @@ -274,7 +269,7 @@ diff -up cups-1.5.0/scheduler/main.c.systemd-socket cups-1.5.0/scheduler/main.c /* * Startup the server... */ -@@ -1584,6 +1609,100 @@ launchd_checkout(void) +@@ -1516,6 +1541,102 @@ launchd_checkout(void) } #endif /* HAVE_LAUNCHD */ @@ -306,14 +301,16 @@ diff -up cups-1.5.0/scheduler/main.c.systemd-socket cups-1.5.0/scheduler/main.c + char s[256]; + + r = sd_is_socket(fd, AF_UNSPEC, SOCK_STREAM, 1); -+ if (r < 0) { ++ if (r < 0) ++ { + cupsdLogMessage(CUPSD_LOG_ERROR, + "systemd_checkin: Unable to verify socket type - %s", + strerror(-r)); + continue; + } + -+ if (!r) { ++ if (!r) ++ { + cupsdLogMessage(CUPSD_LOG_ERROR, + "systemd_checkin: Socket not of the right type"); + continue; @@ -327,7 +324,7 @@ diff -up cups-1.5.0/scheduler/main.c.systemd-socket cups-1.5.0/scheduler/main.c + continue; + } + -+ /* ++ /* + * Try to match the systemd socket address to one of the listeners... + */ + @@ -335,7 +332,7 @@ diff -up cups-1.5.0/scheduler/main.c.systemd-socket cups-1.5.0/scheduler/main.c + lis; + lis = (cupsd_listener_t *)cupsArrayNext(Listeners)) + if (httpAddrEqual(&lis->address, &addr)) -+ break; ++ break; + + if (lis) + { @@ -375,10 +372,10 @@ diff -up cups-1.5.0/scheduler/main.c.systemd-socket cups-1.5.0/scheduler/main.c /* * 'parent_handler()' - Catch USR1/CHLD signals... -diff -up cups-1.5.0/scheduler/Makefile.systemd-socket cups-1.5.0/scheduler/Makefile ---- cups-1.5.0/scheduler/Makefile.systemd-socket 2011-10-18 15:32:40.817671022 +0100 -+++ cups-1.5.0/scheduler/Makefile 2011-10-18 15:32:40.852670360 +0100 -@@ -382,7 +382,7 @@ cupsd: $(CUPSDOBJS) $(LIBCUPSMIME) ../cu +diff -up cups-1.6b1/scheduler/Makefile.systemd-socket cups-1.6b1/scheduler/Makefile +--- cups-1.6b1/scheduler/Makefile.systemd-socket 2012-05-21 19:40:22.000000000 +0200 ++++ cups-1.6b1/scheduler/Makefile 2012-05-28 11:16:35.663250542 +0200 +@@ -371,7 +371,7 @@ cupsd: $(CUPSDOBJS) $(LIBCUPSMIME) ../cu $(CC) $(LDFLAGS) -o cupsd $(CUPSDOBJS) -L. -lcupsmime \ $(LIBZ) $(SSLLIBS) $(LIBSLP) $(LIBLDAP) $(PAMLIBS) \ $(LIBPAPER) $(LIBMALLOC) $(SERVERLIBS) $(DNSSDLIBS) $(LIBS) \ @@ -387,12 +384,12 @@ diff -up cups-1.5.0/scheduler/Makefile.systemd-socket cups-1.5.0/scheduler/Makef cupsd-static: $(CUPSDOBJS) libcupsmime.a ../cups/$(LIBCUPSSTATIC) echo Linking $@... -@@ -390,7 +390,7 @@ cupsd-static: $(CUPSDOBJS) libcupsmime.a +@@ -379,7 +379,7 @@ cupsd-static: $(CUPSDOBJS) libcupsmime.a $(LIBZ) $(SSLLIBS) $(LIBSLP) $(LIBLDAP) $(PAMLIBS) \ ../cups/$(LIBCUPSSTATIC) $(COMMONLIBS) $(LIBZ) $(LIBPAPER) \ $(LIBMALLOC) $(SERVERLIBS) $(DNSSDLIBS) $(LIBGSSAPI) \ - $(LIBWRAP) -+ $(LIBWRAP) $(SDLIBS) ++ $(LIBWRAP) $(SDLIBS) + tls.o: tls-darwin.c tls-gnutls.c tls-openssl.c - # diff --git a/testing/cups/cups.install b/testing/cups/cups.install index cea52282e..fc015f951 100644 --- a/testing/cups/cups.install +++ b/testing/cups/cups.install @@ -24,6 +24,11 @@ post_upgrade() { echo "* check your config with cupsd -t" echo " and fix all Browsing related settings" fi + if [ "`vercmp $2 1.6.1-3`" -lt 0 ]; then + # important upgrade notice + echo "> It's now safe to load usblp kernel module." + echo "> There's no more need to blacklist it." + fi } post_remove() { diff --git a/testing/cups/cupsd-conf-remove-obsolete-browse-directives.patch b/testing/cups/cupsd-conf-remove-obsolete-browse-directives.patch new file mode 100644 index 000000000..97636c7f2 --- /dev/null +++ b/testing/cups/cupsd-conf-remove-obsolete-browse-directives.patch @@ -0,0 +1,12 @@ +diff -uraN cups/conf/cupsd.conf.in cups-new/conf/cupsd.conf.in +--- cups/conf/cupsd.conf.in 2012-05-25 15:28:25.000000000 +0200 ++++ cups-new/conf/cupsd.conf.in 2012-08-04 20:56:26.699062177 +0200 +@@ -19,8 +19,6 @@ + + # Show shared printers on the local network. + Browsing On +-BrowseOrder allow,deny +-BrowseAllow all + BrowseLocalProtocols @CUPS_BROWSE_LOCAL_PROTOCOLS@ + + # Default authentication type, when authentication is required... diff --git a/testing/cups/recognize-remote-cups-queue-via-dnssd-uri.patch b/testing/cups/recognize-remote-cups-queue-via-dnssd-uri.patch new file mode 100644 index 000000000..6349bd901 --- /dev/null +++ b/testing/cups/recognize-remote-cups-queue-via-dnssd-uri.patch @@ -0,0 +1,25 @@ +diff -uraN cups/scheduler/printers.c cups-new/scheduler/printers.c +--- cups/scheduler/printers.c 2012-05-25 15:28:49.000000000 +0200 ++++ cups-new/scheduler/printers.c 2012-08-04 20:58:40.475725544 +0200 +@@ -4829,13 +4829,14 @@ + "printer-make-and-model", NULL, + "Local System V Printer"); + } +- else if (!strncmp(p->device_uri, "ipp://", 6) && +- (strstr(p->device_uri, "/printers/") != NULL || +- strstr(p->device_uri, "/classes/") != NULL || +- ((strstr(p->device_uri, "._ipp.") != NULL || +- strstr(p->device_uri, "._ipps.") != NULL) && +- !strcmp(p->device_uri + strlen(p->device_uri) - 5, +- "/cups")))) ++ else if ((!strncmp(p->device_uri, "ipp://", 6) && ++ (strstr(p->device_uri, "/printers/") != NULL || ++ strstr(p->device_uri, "/classes/") != NULL)) || ++ (!strncmp(p->device_uri, "dnssd://", 8) && ++ (strstr(p->device_uri, "._ipp.") != NULL || ++ strstr(p->device_uri, "._ipps.") != NULL) && ++ !strcmp(p->device_uri + strlen(p->device_uri) - 5, ++ "/cups"))) + { + /* + * Tell the client this is really a hard-wired remote printer. diff --git a/testing/cups/usb-backend-reset-after-job-only-for-specific-devices.patch b/testing/cups/usb-backend-reset-after-job-only-for-specific-devices.patch new file mode 100644 index 000000000..dcf91c833 --- /dev/null +++ b/testing/cups/usb-backend-reset-after-job-only-for-specific-devices.patch @@ -0,0 +1,74 @@ +--- backend/usb-libusb.c.orig 2012-07-16 19:10:55.000000000 +0200 ++++ backend/usb-libusb.c 2012-08-06 11:01:58.034150159 +0200 +@@ -70,7 +70,7 @@ + read_endp, /* Read endpoint */ + protocol, /* Protocol: 1 = Uni-di, 2 = Bi-di. */ + usblp_attached, /* "usblp" kernel module attached? */ +- opened_for_job; /* Set to 1 by print_device() */ ++ reset_after_job; /* Set to 1 by print_device() */ + unsigned int quirks; /* Quirks flags */ + struct libusb_device_handle *handle; /* Open handle to device */ + } usb_printer_t; +@@ -122,6 +122,8 @@ + #define USBLP_QUIRK_USB_INIT 0x2 /* needs vendor USB init string */ + #define USBLP_QUIRK_BAD_CLASS 0x4 /* descriptor uses vendor-specific + Class or SubClass */ ++#define USBLP_QUIRK_RESET 0x4000 /* After printing do a reset ++ for clean-up */ + #define USBLP_QUIRK_NO_REATTACH 0x8000 /* After printing we cannot re-attach + the usblp kernel module */ + +@@ -147,9 +149,11 @@ + { 0x04b8, 0x0202, USBLP_QUIRK_BAD_CLASS }, /* Seiko Epson Receipt + Printer M129C */ + { 0x067b, 0x2305, USBLP_QUIRK_BIDIR | +- USBLP_QUIRK_NO_REATTACH }, ++ USBLP_QUIRK_NO_REATTACH | ++ USBLP_QUIRK_RESET }, + /* Prolific Technology, Inc. PL2305 Parallel Port + (USB -> Parallel adapter) */ ++ { 0x04e8, 0x0000, USBLP_QUIRK_RESET }, /* All Samsung devices */ + { 0, 0 } + }; + +@@ -256,7 +260,12 @@ + } + + g.print_fd = print_fd; +- g.printer->opened_for_job = 1; ++ ++ /* ++ * Some devices need a reset after finishing a job, these devices are ++ * marked with the USBLP_QUIRK_RESET quirk. ++ */ ++ g.printer->reset_after_job = (g.printer->quirks & USBLP_QUIRK_RESET ? 1 : 0); + + /* + * If we are printing data from a print driver on stdin, ignore SIGTERM +@@ -772,7 +781,7 @@ + * Reset the device to clean up after the job + */ + +- if (printer->opened_for_job == 1) ++ if (printer->reset_after_job == 1) + { + if ((errcode = libusb_reset_device(printer->handle)) < 0) + fprintf(stderr, +@@ -1288,7 +1297,7 @@ + } + + printer->usblp_attached = 0; +- printer->opened_for_job = 0; ++ printer->reset_after_job = 0; + + if (verbose) + fputs("STATE: +connecting-to-device\n", stderr); +@@ -1586,7 +1595,7 @@ + for (i = 0; quirk_printers[i].vendorId; i++) + { + if (vendor == quirk_printers[i].vendorId && +- product == quirk_printers[i].productId) ++ (product == 0x0000 || product == quirk_printers[i].productId)) + return quirk_printers[i].quirks; + } + return 0; |