diff options
-rw-r--r-- | .SRCINFO | 43 | ||||
-rw-r--r-- | .gitignore | 5 | ||||
-rw-r--r-- | PKGBUILD | 222 | ||||
-rw-r--r-- | cups-1.6.2-statedir.patch | 12 | ||||
-rw-r--r-- | cups-2.4.0-statedir.patch | 11 | ||||
-rw-r--r-- | cups-freebind.patch | 15 | ||||
-rw-r--r-- | cups-no-export-ssllibs.patch | 12 | ||||
-rw-r--r-- | cups-no-gzip-man.patch | 18 | ||||
-rw-r--r-- | cups-systemd-socket.patch | 50 | ||||
-rw-r--r-- | cups.install | 10 | ||||
-rw-r--r-- | guid.patch | 25 | ||||
-rw-r--r-- | samsung-printer-workaround.patch | 30 |
12 files changed, 159 insertions, 294 deletions
@@ -1,9 +1,10 @@ pkgbase = cups-git - pkgver = 2.3.3.r28.gab83aeec8 + pkgver = 2.4.1.r14.g55359b905 pkgrel = 1 - url = https://www.cups.org/ + url = https://openprinting.github.io/cups/ arch = x86_64 - license = GPL + license = Apache + makedepends = git makedepends = libtiff makedepends = libpng makedepends = acl @@ -24,49 +25,37 @@ pkgbase = cups-git makedepends = systemd makedepends = inetutils makedepends = libpaper - makedepends = valgrind - makedepends = git - source = git+https://github.com/apple/cups.git + source = git+https://github.com/OpenPrinting/cups.git source = cups.logrotate source = cups.pam source = cups.sysusers - source = cups-no-export-ssllibs.patch - source = cups-no-gzip-man.patch - source = cups-1.6.2-statedir.patch - source = cups-systemd-socket.patch + source = cups-2.4.0-statedir.patch + source = cups-freebind.patch source = guid.patch - source = samsung-printer-workaround.patch - validpgpkeys = 3737FD0D0E63B30172440D2DDBA3A7AB08D76223 - validpgpkeys = 45D083946E3035282B3CCA9AF434104235DA97EB - validpgpkeys = 845464660B686AAB36540B6F999559A027815955 sha256sums = SKIP sha256sums = d87fa0f0b5ec677aae34668f260333db17ce303aa1a752cba5f8e72623d9acf9 sha256sums = 57dfd072fd7ef0018c6b0a798367aac1abb5979060ff3f9df22d1048bb71c0d5 sha256sums = 06173dfaea37bdd9b39b3e09aba98c34ae7112a2f521db45a688907d8848caa2 - sha256sums = ff3eb0782af0405f5dafe89e04b1b4ea7a49afc5496860d724343bd04f375832 - sha256sums = b8fc2e3bc603495f0278410350ea8f0161d9d83719feb64f573b63430cb4800b - sha256sums = 23349c96f2f7aeb7d48e3bcd35a969f5d5ac8f55a032b0cfaa0a03d7e37ea9af - sha256sums = ea5a3d378807d45e1959c0b3893c84e50298b57d7f11943f9ed8ba2166d17cd7 - sha256sums = d4537526c1e075866ae22ad263da000fc2a592d36c26b79a459a1cfdade2bb2d - sha256sums = ae3e154b8382f3412c73d863f4db095e722eb5255e15f0684b2bb9e02e5438af + sha256sums = f0b15192952c151b1843742c87850ff3a7d0f3ba5dd236ed16623ef908472ad7 + sha256sums = 3385047b9ac8a7b13aeb8f0ca55d15f793ce7283516db0155fe28a67923c592d + sha256sums = 0bf6a75ba1b051771f155d9a5d36b307a6d40c6857d645b250fe93f3fb713474 pkgname = libcups-git - pkgdesc = The CUPS Printing System - client libraries and headers (GIT version) + pkgdesc = The CUPS Printing System - client libraries and headers depends = gnutls - depends = libtiff>=4.0.0 - depends = libpng>=1.5.7 + depends = libtiff + depends = libpng depends = krb5 depends = avahi depends = libusb - provides = libcups=2.3.3 + provides = libcups=2.4.1 conflicts = libcups pkgname = cups-git - pkgdesc = The CUPS Printing System - daemon package (GIT version) + pkgdesc = The CUPS Printing System - daemon package install = cups.install depends = acl depends = pam - depends = libcups>=2.3.3 depends = cups-filters depends = bc depends = dbus @@ -76,7 +65,7 @@ pkgname = cups-git depends = libcups-git optdepends = xdg-utils: xdg .desktop file support optdepends = colord: for ICC color profile support - provides = cups=2.3.3 + provides = cups conflicts = cups backup = etc/cups/cupsd.conf backup = etc/cups/snmp.conf diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000000..81ff9afef2e5 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +src +pkg +*.log +*.tar* + @@ -2,98 +2,67 @@ # Contributor: lilac # Contributor: Andreas Radke <andyrtr@archlinux.org> -pkgbase="cups" -pkgname=('libcups' 'cups') -pkgver=2.3.3.r28.gab83aeec8 +pkgbase=cups-git +pkgname=(libcups-git cups-git) +pkgver=2.4.1.r14.g55359b905 pkgrel=1 -arch=('x86_64') -license=('GPL') -url="https://www.cups.org/" -makedepends=('libtiff' 'libpng' 'acl' 'pam' 'xdg-utils' 'krb5' 'gnutls' - 'cups-filters' 'bc' 'colord' 'xinetd' 'gzip' 'autoconf' 'libusb' 'dbus' - 'avahi' 'hicolor-icon-theme' 'systemd' 'inetutils' 'libpaper' 'valgrind') -_srcdir='cups' -source=(git+https://github.com/apple/cups.git +arch=(x86_64) +license=(Apache) +url="https://openprinting.github.io/cups/" +makedepends=(git libtiff libpng acl pam xdg-utils krb5 gnutls + cups-filters bc colord xinetd gzip autoconf libusb dbus + avahi hicolor-icon-theme systemd inetutils libpaper) +source=("git+https://github.com/OpenPrinting/cups.git" cups.logrotate cups.pam cups.sysusers - # improve build and linking - cups-no-export-ssllibs.patch - cups-no-gzip-man.patch - cups-1.6.2-statedir.patch + cups-2.4.0-statedir.patch # bugfixes - cups-systemd-socket.patch - guid.patch - samsung-printer-workaround.patch) + cups-freebind.patch + guid.patch) sha256sums=('SKIP' 'd87fa0f0b5ec677aae34668f260333db17ce303aa1a752cba5f8e72623d9acf9' '57dfd072fd7ef0018c6b0a798367aac1abb5979060ff3f9df22d1048bb71c0d5' '06173dfaea37bdd9b39b3e09aba98c34ae7112a2f521db45a688907d8848caa2' - 'ff3eb0782af0405f5dafe89e04b1b4ea7a49afc5496860d724343bd04f375832' - 'b8fc2e3bc603495f0278410350ea8f0161d9d83719feb64f573b63430cb4800b' - '23349c96f2f7aeb7d48e3bcd35a969f5d5ac8f55a032b0cfaa0a03d7e37ea9af' - 'ea5a3d378807d45e1959c0b3893c84e50298b57d7f11943f9ed8ba2166d17cd7' - 'd4537526c1e075866ae22ad263da000fc2a592d36c26b79a459a1cfdade2bb2d' - 'ae3e154b8382f3412c73d863f4db095e722eb5255e15f0684b2bb9e02e5438af') -validpgpkeys=('3737FD0D0E63B30172440D2DDBA3A7AB08D76223') # CUPS.org (CUPS.org PGP key) <security@cups.org> -validpgpkeys+=('45D083946E3035282B3CCA9AF434104235DA97EB') # "CUPS.org <security@cups.org>" -validpgpkeys+=('845464660B686AAB36540B6F999559A027815955') # "Michael R Sweet <michael.r.sweet@gmail.com>" - -pkgbase+='-git' -pkgname=("${pkgname[@]/%/-git}") -makedepends+=('git') + 'f0b15192952c151b1843742c87850ff3a7d0f3ba5dd236ed16623ef908472ad7' + '3385047b9ac8a7b13aeb8f0ca55d15f793ce7283516db0155fe28a67923c592d' + '0bf6a75ba1b051771f155d9a5d36b307a6d40c6857d645b250fe93f3fb713474') +#validpgpkeys=('3737FD0D0E63B30172440D2DDBA3A7AB08D76223') # CUPS.org (CUPS.org PGP key) <security@cups.org> +#validpgpkeys+=('45D083946E3035282B3CCA9AF434104235DA97EB') # "CUPS.org <security@cups.org>" +#validpgpkeys+=('845464660B686AAB36540B6F999559A027815955') # "Michael R Sweet <michael.r.sweet@gmail.com>" + pkgver() { - cd "$_srcdir" + cd "cups" git describe --long --tags | sed 's/^v//;s/\([^-]*-g\)/r\1/;s/-/./g' } prepare() { + cd "cups" - cd "${_srcdir}" - set -x - - # improve build and linking - # Do not export SSL libs in cups-config - patch -Np1 -i ${srcdir}/cups-no-export-ssllibs.patch - # don't zip man pages in make install, let makepkg do that / Fedora - #patch -Np1 -i ${srcdir}/cups-no-gzip-man.patch # move /var/run -> /run for pid file - patch -Np1 -i ${srcdir}/cups-1.6.2-statedir.patch + patch -Np1 -i "${srcdir}"/cups-2.4.0-statedir.patch # bug fixes - # make sure network is up when starting and notify systemd - FC - patch -Np1 -i ${srcdir}/cups-systemd-socket.patch - - # FS#56818 - https://github.com/apple/cups/issues/5236 - patch -Np1 -i ${srcdir}/guid.patch - # FS#62360 / https://github.com/apple/cups/issues/5562 - #patch -Np1 -i ${srcdir}/samsung-printer-workaround.patch + # https://github.com/OpenPrinting/cups/issues/53 + # use IP_FREEBIND, because cupsd cannot bind to not yet existing IP address + patch -Np1 -i "${srcdir}"/cups-freebind.patch - set +x - - # set MaxLogSize to 0 to prevent using cups internal log rotation - sed -i -e '5i\ ' conf/cupsd.conf.in - sed -i -e '6i# Disable cups internal logging - use logrotate instead' conf/cupsd.conf.in - sed -i -e '7iMaxLogSize 0' conf/cupsd.conf.in + # FS#56818 - https://github.com/apple/cups/issues/5236 + patch -Np1 -i "${srcdir}"/guid.patch - sed -i -e 's/WARNING_OPTIONS="-Werror /WARNING_OPTIONS="/g' config-scripts/cups-compiler.m4 - #sed -i -e 's/subtype)/subtypes)/g' test/ippeveprinter.c + # Rebuild configure script + aclocal -I config-scripts + autoconf -I config-scripts } build() { - cd "${_srcdir}" + cd "cups" -if [ ! -s 'cups-config' ]; then - # Rebuild configure script for not zipping man-pages. - # and -Werror change. - set -x - aclocal -I config-scripts - autoconf -I config-scripts - set +x + # The build system uses only DSOFLAGS but not LDFLAGS to build some libraries. + export DSOFLAGS=${LDFLAGS} # use fixed cups user (id 209) since systemd adds "lp" group without a fixed id - local _conf=( ./configure --prefix=/usr \ --sysconfdir=/etc \ --localstatedir=/var \ @@ -104,111 +73,104 @@ if [ ! -s 'cups-config' ]; then --with-exe-file-perm=0755 \ --with-cups-user=209 \ --with-cups-group=209 \ + --with-max-log-size=0 \ --enable-pam=yes \ --enable-raw-printing \ --enable-dbus=yes \ --with-dbusdir=/usr/share/dbus-1 \ - --enable-ssl=yes \ - --enable-threads \ - --enable-avahi\ - --enable-libpaper - #--with-php=/usr/bin/php-cgi + --enable-relro \ + --enable-libpaper \ --with-optim="$CFLAGS" #--help - ) - ./configure "${_conf[@]:1}" -fi make } check() { - cd "${_srcdir}" - #make -k check || /bin/true + cd "cups" + #make -k check } package_libcups-git() { -pkgdesc="The CUPS Printing System - client libraries and headers" -pkgdesc+=" (GIT version)" -depends=('gnutls' 'libtiff>=4.0.0' 'libpng>=1.5.7' 'krb5' 'avahi' 'libusb') -provides=("libcups=${pkgver%.r*}") -conflicts=('libcups') + pkgdesc="The CUPS Printing System - client libraries and headers" + depends=(gnutls libtiff libpng krb5 avahi libusb) + provides=("libcups=${pkgver%.r*}") + conflicts=(libcups) - cd "${_srcdir}" + cd "cups" make -j1 BUILDROOT=${pkgdir} install-headers install-libs # put this into the libs pkg to make other software find the libs(no pkg-config file included) mkdir -p ${pkgdir}/usr/bin - install -m755 ${srcdir}/${_srcdir}/cups-config ${pkgdir}/usr/bin/cups-config + install -m755 ${srcdir}/cups/cups-config ${pkgdir}/usr/bin/cups-config } package_cups-git() { -pkgdesc="The CUPS Printing System - daemon package" -pkgdesc+=" (GIT version)" -install=cups.install -backup=(etc/cups/cupsd.conf - etc/cups/snmp.conf - etc/cups/printers.conf - etc/cups/classes.conf - etc/cups/cups-files.conf - etc/cups/subscriptions.conf - etc/logrotate.d/cups - etc/pam.d/cups) -depends=('acl' 'pam' "libcups>=${pkgver%.r*}" 'cups-filters' 'bc' - 'dbus' 'systemd' 'libpaper' 'hicolor-icon-theme') -#depends+=('avahi') -depends+=("libcups-git") -optdepends=('xdg-utils: xdg .desktop file support' - 'colord: for ICC color profile support') -provides=("cups=${pkgver%.r*}") -conflicts=('cups') - - cd "${_srcdir}" + pkgdesc="The CUPS Printing System - daemon package" + install=cups.install + backup=(etc/cups/cupsd.conf + etc/cups/snmp.conf + etc/cups/printers.conf + etc/cups/classes.conf + etc/cups/cups-files.conf + etc/cups/subscriptions.conf + etc/logrotate.d/cups + etc/pam.d/cups) + depends=(acl pam cups-filters bc + dbus systemd libpaper hicolor-icon-theme) + depends+=(libcups-git) + optdepends=('xdg-utils: xdg .desktop file support' + 'colord: for ICC color profile support') + provides=(cups) + conflicts=(cups) + + + cd "cups" make -j1 BUILDROOT=${pkgdir} install-data install-exec + make BUILDROOT="${pkgdir}" install-data install-exec + # this one we ship in the libcups pkg - rm -f ${pkgdir}/usr/bin/cups-config + rm -f "${pkgdir}"/usr/bin/cups-config # kill the sysv stuff - rm -rf ${pkgdir}/etc/rc*.d - rm -rf ${pkgdir}/etc/init.d - install -D -m644 ../cups.logrotate ${pkgdir}/etc/logrotate.d/cups - install -D -m644 ../cups.pam ${pkgdir}/etc/pam.d/cups + rm -rf "${pkgdir}"/etc/rc*.d + rm -rf "${pkgdir}"/etc/init.d + install -D -m644 ../cups.logrotate "${pkgdir}"/etc/logrotate.d/cups + install -D -m644 ../cups.pam "${pkgdir}"/etc/pam.d/cups # fix perms on /var/spool and /etc - chmod 755 ${pkgdir}/var/spool - chmod 755 ${pkgdir}/etc + chmod 755 "${pkgdir}"/var/spool + chmod 755 "${pkgdir}"/etc # use cups group FS#36769 - install -Dm644 "$srcdir"/cups.sysusers "${pkgdir}/usr/lib/sysusers.d/${pkgbase%-git}.conf" - sed -i "s:#User 209:User 209:" ${pkgdir}/etc/cups/cups-files.conf{,.default} - sed -i "s:#Group 209:Group 209:" ${pkgdir}/etc/cups/cups-files.conf{,.default} + install -Dm644 "$srcdir"/cups.sysusers "${pkgdir}/usr/lib/sysusers.d/$pkgname.conf" + sed -i "s:#User 209:User 209:" "${pkgdir}"/etc/cups/cups-files.conf{,.default} + sed -i "s:#Group 209:Group 209:" "${pkgdir}"/etc/cups/cups-files.conf{,.default} # install ssl directory where to store the certs, solves some samba issues - install -dm700 -g 209 ${pkgdir}/etc/cups/ssl + install -dm700 -g 209 "${pkgdir}"/etc/cups/ssl # remove directory from package, it will be recreated at each server start - rm -rf ${pkgdir}/run + rm -rf "${pkgdir}"/run # install some more configuration files that will get filled by cupsd - touch ${pkgdir}/etc/cups/printers.conf - touch ${pkgdir}/etc/cups/classes.conf - touch ${pkgdir}/etc/cups/subscriptions.conf - chgrp -R 209 ${pkgdir}/etc/cups - - # fix dbus policy location - --with-dbusdir doens't work - #install -dm755 ${pkgdir}/usr/share/dbus-1/system.d - #mv ${pkgdir}/etc/dbus-1/system.d/cups.conf ${pkgdir}/usr/share/dbus-1/system.d - #rm -rf ${pkgdir}/etc/dbus-1 + touch "${pkgdir}"/etc/cups/printers.conf + touch "${pkgdir}"/etc/cups/classes.conf + touch "${pkgdir}"/etc/cups/subscriptions.conf + chgrp -R 209 "${pkgdir}"/etc/cups # fix .desktop file - sed -i 's|^Exec=htmlview http://localhost:631/|Exec=xdg-open http://localhost:631/|g' ${pkgdir}/usr/share/applications/cups.desktop + sed -i 's|^Exec=htmlview http://localhost:631/|Exec=xdg-open http://localhost:631/|g' "${pkgdir}"/usr/share/applications/cups.desktop # compress some driver files, adopted from Fedora - find ${pkgdir}/usr/share/cups/model -name "*.ppd" | xargs gzip -n9f + find "${pkgdir}"/usr/share/cups/model -name "*.ppd" | xargs gzip -n9f # remove client.conf man page - rm -f ${pkgdir}/usr/share/man/man5/client.conf.5 + rm -f "${pkgdir}"/usr/share/man/man5/client.conf.5 - # comment out all conversion rules which use any of the removed filters that are now part of cups-filters - perl -p -i -e 's:^(.*\s+bannertops\s*)$:#\1:' $pkgdir/usr/share/cups/mime/mime.convs + # comment out removed filters that are now part of cups-filters + perl -p -i -e 's:^(.*\s+bannertops\s*)$:#\1:' "$pkgdir"/usr/share/cups/mime/mime.convs # comment out unnecessary PageLogFormat entry - sed -i -e 's:PageLogFormat:#PageLogFormat:' $pkgdir/etc/cups/cupsd.conf* + sed -i -e 's:PageLogFormat:#PageLogFormat:' "$pkgdir"/etc/cups/cupsd.conf* + + # no more xinetd support + rm -rf "${pkgdir}"/etc/xinetd.d } diff --git a/cups-1.6.2-statedir.patch b/cups-1.6.2-statedir.patch deleted file mode 100644 index c44ebed07c50..000000000000 --- a/cups-1.6.2-statedir.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -ruN cups-1.6.2.orig/config-scripts/cups-directories.m4 cups-1.6.2/config-scripts/cups-directories.m4 ---- cups-1.6.2.orig/config-scripts/cups-directories.m4 2012-10-01 03:55:23.000000000 +0200 -+++ cups-1.6.2/config-scripts/cups-directories.m4 2013-04-02 00:11:41.000000000 +0200 -@@ -420,7 +420,7 @@ - ;; - *) - # All others -- CUPS_STATEDIR="$localstatedir/run/cups" -+ CUPS_STATEDIR="/run/cups" - ;; - esac]) - AC_DEFINE_UNQUOTED(CUPS_STATEDIR, "$CUPS_STATEDIR") diff --git a/cups-2.4.0-statedir.patch b/cups-2.4.0-statedir.patch new file mode 100644 index 000000000000..c6d030346121 --- /dev/null +++ b/cups-2.4.0-statedir.patch @@ -0,0 +1,11 @@ +--- cups-2.4.0/config-scripts/cups-directories.m4 2021-11-29 16:12:17.094244942 +0100 ++++ cups-2.4.0/config-scripts/cups-directories.m4.new 2021-11-29 16:15:16.958747398 +0100 +@@ -268,7 +268,7 @@ + CUPS_STATEDIR="$CUPS_SERVERROOT" + ], [*], [ + # All others +- CUPS_STATEDIR="$localstatedir/run/cups" ++ CUPS_STATEDIR="/run/cups" + ]) + ]) + AC_DEFINE_UNQUOTED([CUPS_STATEDIR], ["$CUPS_STATEDIR"], [Location of transient state files.]) diff --git a/cups-freebind.patch b/cups-freebind.patch new file mode 100644 index 000000000000..6d9ba430b5e4 --- /dev/null +++ b/cups-freebind.patch @@ -0,0 +1,15 @@ +diff -up cups-2.0.2/cups/http-addr.c.freebind cups-2.0.2/cups/http-addr.c +--- cups-2.0.2/cups/http-addr.c.freebind 2015-02-10 14:46:33.000000000 +0100 ++++ cups-2.0.2/cups/http-addr.c 2015-02-10 14:50:35.074759141 +0100 +@@ -186,6 +186,10 @@ httpAddrListen(http_addr_t *addr, /* I - + val = 1; + setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, CUPS_SOCAST &val, sizeof(val)); + ++#ifdef __linux ++ setsockopt(fd, IPPROTO_IP, IP_FREEBIND, CUPS_SOCAST &val, sizeof(val)); ++#endif /* __linux */ ++ + #ifdef IPV6_V6ONLY + if (addr->addr.sa_family == AF_INET6) + setsockopt(fd, IPPROTO_IPV6, IPV6_V6ONLY, CUPS_SOCAST &val, sizeof(val)); +diff -up cups-2.0.2/scheduler/listen.c.freebind cups-2.0.2/scheduler/listen.c diff --git a/cups-no-export-ssllibs.patch b/cups-no-export-ssllibs.patch deleted file mode 100644 index e227bd182390..000000000000 --- a/cups-no-export-ssllibs.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -up cups-1.5b1/config-scripts/cups-ssl.m4.no-export-ssllibs cups-1.5b1/config-scripts/cups-ssl.m4 ---- cups-1.6.2/config-scripts/cups-ssl.m4.no-export-ssllibs 2011-05-11 02:52:08.000000000 +0200 -+++ cups-1.6.2/config-scripts/cups-ssl.m4 2011-05-23 17:47:27.000000000 +0200 -@@ -180,7 +180,7 @@ - AC_SUBST(SSLFLAGS) - AC_SUBST(SSLLIBS) - --EXPORT_SSLLIBS="$SSLLIBS" -+EXPORT_SSLLIBS="" - AC_SUBST(EXPORT_SSLLIBS) - - dnl diff --git a/cups-no-gzip-man.patch b/cups-no-gzip-man.patch deleted file mode 100644 index a66971cbc4b7..000000000000 --- a/cups-no-gzip-man.patch +++ /dev/null @@ -1,18 +0,0 @@ -diff -up cups-1.5b1/config-scripts/cups-manpages.m4.no-gzip-man cups-1.5b1/config-scripts/cups-manpages.m4 ---- cups-1.5b1/config-scripts/cups-manpages.m4.no-gzip-man 2011-05-12 07:21:56.000000000 +0200 -+++ cups-1.5b1/config-scripts/cups-manpages.m4 2011-05-23 17:25:50.000000000 +0200 -@@ -69,10 +69,10 @@ case "$uname" in - ;; - Linux* | GNU* | Darwin*) - # Linux, GNU Hurd, and macOS -- MAN1EXT=1.gz -- MAN5EXT=5.gz -- MAN7EXT=7.gz -- MAN8EXT=8.gz -+ MAN1EXT=1 -+ MAN5EXT=5 -+ MAN7EXT=7 -+ MAN8EXT=8 - MAN8DIR=8 - ;; - *) diff --git a/cups-systemd-socket.patch b/cups-systemd-socket.patch deleted file mode 100644 index 4999ab507423..000000000000 --- a/cups-systemd-socket.patch +++ /dev/null @@ -1,50 +0,0 @@ -diff -up cups-2.0.2/scheduler/main.c.ustTJg cups-2.0.2/scheduler/main.c ---- cups-2.0.2/scheduler/main.c.ustTJg 2015-02-10 13:40:24.121547526 +0100 -+++ cups-2.0.2/scheduler/main.c 2015-02-10 13:40:24.295545063 +0100 -@@ -690,8 +690,15 @@ main(int argc, /* I - Number of comm - - #if defined(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 -up cups-2.0.2/scheduler/org.cups.cupsd.path.in.ustTJg cups-2.0.2/scheduler/org.cups.cupsd.path.in ---- cups-2.0.2/scheduler/org.cups.cupsd.path.in.ustTJg 2014-03-21 15:50:24.000000000 +0100 -+++ cups-2.0.2/scheduler/org.cups.cupsd.path.in 2015-02-10 13:40:24.295545063 +0100 -@@ -2,7 +2,7 @@ - Description=CUPS Scheduler - - [Path] --PathExists=@CUPS_CACHEDIR@/org.cups.cupsd -+PathExistsGlob=@CUPS_REQUESTS@/d* - - [Install] - WantedBy=multi-user.target -diff -up cups-2.0.2/scheduler/org.cups.cupsd.service.in.ustTJg cups-2.0.2/scheduler/org.cups.cupsd.service.in ---- cups-2.0.2/scheduler/org.cups.cupsd.service.in.ustTJg 2014-10-21 13:55:01.000000000 +0200 -+++ cups-2.0.2/scheduler/org.cups.cupsd.service.in 2015-02-10 13:40:24.296545049 +0100 -@@ -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/cups.install b/cups.install index c83a437ea8c3..017cc4dcae13 100644 --- a/cups.install +++ b/cups.install @@ -16,5 +16,13 @@ post_upgrade() { echo "make sure /etc/cups and all files within are owned by" echo "cups group - run \"chgrp -R cups /etc/cups\"." fi -} + # upstream reverted back to common old naming scheme + if [[ $(vercmp 2.3.3+105+g59137acc1-1 $2) = 1 ]]; then + echo ">>> Cups systemd socket and service files have been" + echo ">>> renamed by upstream decision. Please make sure" + echo ">>> to disable/reenable the services to your need." + echo ">>> hint: \"pacman -Ql cups | grep systemd\" and" + echo ">>> \"ls -lR /etc/systemd/ | grep cups\" " + fi +} diff --git a/guid.patch b/guid.patch index ce28e024f3fd..b1bd19232e72 100644 --- a/guid.patch +++ b/guid.patch @@ -1,12 +1,11 @@ -diff --git a/scheduler/cups-exec.c b/scheduler/cups-exec.c -index aab43a797..46c549075 100644 ---- a/scheduler/cups-exec.c -+++ b/scheduler/cups-exec.c -@@ -133,8 +133,13 @@ main(int argc, /* I - Number of command-line args */ - if (setgid(gid)) - exit(errno + 100); - +--- cups-2.4.0/scheduler/cups-exec.c 2021-11-29 16:19:34.235186064 +0100 ++++ cups-2.4.0/scheduler/cups-exec.c.new 2021-11-29 16:25:30.764049649 +0100 +@@ -134,9 +134,14 @@ main(int argc, /* I - Number of command-line args */ + # if CUPS_SNAP + if (setgroups(0, NULL)) + # else - if (setgroups(1, &gid)) +-# endif /* CUPS_SNAP */ +#include <pwd.h> + struct passwd * pwd = getpwuid(uid); + if(initgroups(pwd->pw_name,pwd->pw_gid)) @@ -14,14 +13,13 @@ index aab43a797..46c549075 100644 + fprintf(stderr, "DEBUG: initgroups failed\n"); exit(errno + 100); + } ++# endif /* CUPS_SNAP */ if (uid && setuid(uid)) exit(errno + 100); -diff --git a/scheduler/util.c b/scheduler/util.c -index 19ebf069b..4638562bd 100644 ---- a/scheduler/util.c -+++ b/scheduler/util.c -@@ -300,7 +300,16 @@ cupsdPipeCommand(int *pid, /* O - Process ID or 0 on error */ +--- cups-2.4.0/scheduler/util.c 2021-11-29 15:27:31.000000000 +0100 ++++ cups-2.4.0/scheduler/util.c.new 2021-11-29 16:29:58.810719066 +0100 +@@ -296,7 +296,16 @@ */ if (!getuid() && user) @@ -39,4 +37,3 @@ index 19ebf069b..4638562bd 100644 if ((fd = open("/dev/null", O_RDONLY)) > 0) { - diff --git a/samsung-printer-workaround.patch b/samsung-printer-workaround.patch deleted file mode 100644 index f4259ff061c8..000000000000 --- a/samsung-printer-workaround.patch +++ /dev/null @@ -1,30 +0,0 @@ -diff --git a/cups/ppd.c b/cups/ppd.c -index 435b992f4..29456d97a 100644 ---- a/cups/ppd.c -+++ b/cups/ppd.c -@@ -1182,6 +1182,24 @@ _ppdOpen( - else if (!strcmp(string, "Plus90")) - ppd->landscape = 90; - } -+ else if (!strcmp(keyword, "Emulators") && string && ppd->num_emulations == 0) -+ { -+ /* -+ * Issue #5562: Samsung printer drivers incorrectly use Emulators keyword -+ * to configure themselves -+ * -+ * The Emulators keyword was loaded but never used by anything in CUPS, -+ * and has no valid purpose in CUPS. The old code was removed due to a -+ * memory leak (Issue #5475), so the following (new) code supports a single -+ * name for the Emulators keyword, allowing these drivers to work until we -+ * remove PPD and driver support entirely in a future version of CUPS. -+ */ -+ -+ ppd->num_emulations = 1; -+ ppd->emulations = calloc(1, sizeof(ppd_emul_t)); -+ -+ strlcpy(ppd->emulations[0].name, string, sizeof(ppd->emulations[0].name)); -+ } - else if (!strcmp(keyword, "JobPatchFile")) - { - /* - |