Date: Tuesday, November 1, 2022 @ 22:45:53
Author: felixonmars
Revision: 1340517
archrelease: copy trunk to multilib-staging-x86_64
Added:
lib32-libcups/repos/multilib-staging-x86_64/
lib32-libcups/repos/multilib-staging-x86_64/PKGBUILD
(from rev 1340516, lib32-libcups/trunk/PKGBUILD)
lib32-libcups/repos/multilib-staging-x86_64/cups-freebind.patch
(from rev 1340516, lib32-libcups/trunk/cups-freebind.patch)
lib32-libcups/repos/multilib-staging-x86_64/guid.patch
(from rev 1340516, lib32-libcups/trunk/guid.patch)
lib32-libcups/repos/multilib-staging-x86_64/keys/
---------------------+
PKGBUILD | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
cups-freebind.patch | 15 +++++++++++++++
guid.patch | 39 +++++++++++++++++++++++++++++++++++++++
3 files changed, 102 insertions(+)
Copied: lib32-libcups/repos/multilib-staging-x86_64/PKGBUILD (from rev 1340516,
lib32-libcups/trunk/PKGBUILD)
===================================================================
--- multilib-staging-x86_64/PKGBUILD (rev 0)
+++ multilib-staging-x86_64/PKGBUILD 2022-11-01 22:45:53 UTC (rev 1340517)
@@ -0,0 +1,48 @@
+# Maintainer: Andreas Radke <[email protected]>
+
+_pkgbasename=libcups
+pkgname=lib32-$_pkgbasename
+pkgver=2.4.2
+pkgrel=2
+pkgdesc="The CUPS Printing System - client libraries (32-bit)"
+arch=('x86_64')
+license=('Apache' 'custom')
+url="https://www.cups.org/"
+depends=(lib32-krb5 lib32-libtiff lib32-libpng lib32-gnutls $_pkgbasename)
+source=(https://github.com/OpenPrinting/cups/releases/download/v${pkgver}/cups-${pkgver}-source.tar.gz{,.sig}
+ cups-freebind.patch
+ guid.patch
+)
+sha256sums=('f03ccb40b087d1e30940a40e0141dcbba263f39974c20eb9f2521066c9c6c908'
+ 'SKIP'
+ '3385047b9ac8a7b13aeb8f0ca55d15f793ce7283516db0155fe28a67923c592d'
+ '0bf6a75ba1b051771f155d9a5d36b307a6d40c6857d645b250fe93f3fb713474')
+#validpgpkeys=('7ADB58203CA5F046F28025B215AA6A7F4D4227D7') # "Zdenek Dohnal
(Associate Software Engineer) <[email protected]>"
+validpgpkeys=('7082A0A50A2E92640F3880E0E4522DCC9B246FF7') # Zdenek Dohnal (The
old 4D4227D7 key revoked) <[email protected]>
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd cups-${pkgver}
+
+ aclocal -I config-scripts
+ autoconf -I config-scripts
+
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
+ --disable-ldap --enable-raw-printing --disable-gssapi --disable-dbus \
+ --enable-ssl=yes--enable-threads --enable-libusb=no \
+ --with-dnssd=no \
+ --with-optim="$CFLAGS" --libdir=/usr/lib32
+ make libs
+}
+
+package() {
+ cd cups-${pkgver}
+ make BUILDROOT="${pkgdir}" install-libs
+ rm -rf "$pkgdir/usr/lib"
+
+# add license + exception
+ install -m644 -Dt "${pkgdir}/usr/share/licenses/${pkgname}" {LICENSE,NOTICE}
+}
Copied: lib32-libcups/repos/multilib-staging-x86_64/cups-freebind.patch (from
rev 1340516, lib32-libcups/trunk/cups-freebind.patch)
===================================================================
--- multilib-staging-x86_64/cups-freebind.patch (rev 0)
+++ multilib-staging-x86_64/cups-freebind.patch 2022-11-01 22:45:53 UTC (rev
1340517)
@@ -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
Copied: lib32-libcups/repos/multilib-staging-x86_64/guid.patch (from rev
1340516, lib32-libcups/trunk/guid.patch)
===================================================================
--- multilib-staging-x86_64/guid.patch (rev 0)
+++ multilib-staging-x86_64/guid.patch 2022-11-01 22:45:53 UTC (rev 1340517)
@@ -0,0 +1,39 @@
+--- 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))
++ {
++ fprintf(stderr, "DEBUG: initgroups failed\n");
+ exit(errno + 100);
++ }
++# endif /* CUPS_SNAP */
+
+ if (uid && setuid(uid))
+ exit(errno + 100);
+--- 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)
+- setuid(user); /* Run as restricted user */
++ {
++#include <pwd.h>
++ struct passwd * pwd = getpwuid(user);
++ if(initgroups(pwd->pw_name,pwd->pw_gid))
++ {
++ fprintf(stderr, "DEBUG: initgroups failed\n");
++ exit(errno + 100);
++ }
++ setuid(user); /* Run as restricted user */
++ }
+
+ if ((fd = open("/dev/null", O_RDONLY)) > 0)
+ {