upg cups cups-filters add cups/libcups-no-dbus

This commit is contained in:
joborun linux 2022-06-10 22:05:37 +03:00
parent 5c72e11f0d
commit aeca2e9bfa
22 changed files with 858 additions and 6 deletions

View File

@ -7,11 +7,11 @@
pkgname=cups-filters
pkgver=1.28.15
pkgrel=01
pkgrel=02
pkgdesc="OpenPrinting CUPS Filters w/o systemd"
arch=('x86_64')
url="https://wiki.linuxfoundation.org/openprinting/cups-filters"
depends=('lcms2' 'poppler' 'qpdf' 'imagemagick' 'liblouis' 'ijs' 'libcups>=2.2.6-2')
depends=('lcms2' 'poppler' 'qpdf' 'imagemagick' 'liblouis' 'ijs' 'libcups')
makedepends=('ghostscript' 'python' 'mupdf-tools')
checkdepends=('ttf-dejavu') # ttf-dejavu for make check
@ -61,3 +61,5 @@ package() {
license=('custom')
sha256sums=(a907ec769fbb72efbfbf9b540b250a08e33b6e373a8a7c343f9840fba4d0478b) # cups-filters-1.28.15.tar.xz

View File

@ -0,0 +1,17 @@
From c0c403744b1bf4a9790a8fcaabcd60970cbefe06 Mon Sep 17 00:00:00 2001
From: Michael R Sweet <michael.r.sweet@gmail.com>
Date: Tue, 7 Jun 2022 13:45:29 -0400
Subject: [PATCH] Fix OpenSSL crash bug - "tls" pointer wasn't cleared after
freeing it (Issue #409)
diff --git a/cups/tls-openssl.c b/cups/tls-openssl.c
index c3e57742e..6db9f8a9c 100644
--- a/cups/tls-openssl.c
+++ b/cups/tls-openssl.c
@@ -1152,6 +1152,8 @@ _httpTLSStop(http_t *http) // I - Connection to server
SSL_shutdown(http->tls);
SSL_CTX_free(context);
SSL_free(http->tls);
+
+ http->tls = NULL;
}

View File

@ -0,0 +1,40 @@
From aa2507530076eaff042b096de55442dc8b665abb Mon Sep 17 00:00:00 2001
From: Zdenek Dohnal <zdohnal@redhat.com>
Date: Wed, 1 Dec 2021 12:00:16 +0100
Subject: [PATCH] de/index.html: Fix missing bracket (fixes issue #299)
The bracket was unintentionally removed by commit b76a97a.
---
CHANGES.md | 5 +++++
doc/de/index.html.in | 2 +-
2 files changed, 6 insertions(+), 1 deletion(-)
diff --git a/CHANGES.md b/CHANGES.md
index d4eb9aae0..c49b902f5 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -1,6 +1,11 @@
CHANGES - OpenPrinting CUPS 2.4.0 - 2021-11-29
==============================================
+Changes in CUPS v2.4.1 (TBA)
+----------------------------
+
+- Fixed missing bracket in de/index.html (Issue #299)
+
Changes in CUPS v2.4.0 (29th November 2021)
-------------------------------------------
diff --git a/doc/de/index.html.in b/doc/de/index.html.in
index 30f7d288e..2b3f3a6b1 100644
--- a/doc/de/index.html.in
+++ b/doc/de/index.html.in
@@ -7,7 +7,7 @@
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=9">
<meta name="viewport" content="width=device-width">
- <title>Startseite - CUPS @CUPS_VERSION@/title>
+ <title>Startseite - CUPS @CUPS_VERSION@</title>
</head>
<body>
<div class="header">

210
cups-no-dbus/PKGBUILD Normal file
View File

@ -0,0 +1,210 @@
#!/usr/bin/bash
# JOBoRun : Jwm OpenBox Obarun RUNit
# Maintainer : Joe Bo Run <joborun@disroot.org>
# PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobextra/$pkgname"
# Website : https://pozol.eu
#-----------------------------------------| DESCRIPTION |---------------------------------------
pkgbase="cups"
pkgname=('libcups-no-dbus' 'cups-no-dbus')
_pkgname=('libcups' 'cups')
pkgver=2.4.2
pkgrel=03
epoch=1
arch=('x86_64')
url="https://openprinting.github.io/cups/"
makedepends=('libtiff' 'libpng' 'acl' 'pam' 'xdg-utils' 'krb5' 'gnutls'
'cups-filters' 'bc' 'libcolord' 'gzip' 'autoconf' 'libusb'
'hicolor-icon-theme' 'libxcrypt' 'inetutils' 'libpaper' 'valgrind'
'git' 'libeudev')
source=(https://github.com/OpenPrinting/cups/releases/download/v${pkgver}/cups-${pkgver}-source.tar.gz{,.sig}
cups.logrotate
cups.pam
cups.sysusers
cups-2.4.0-statedir.patch
# bugfixes
cups-freebind.patch
guid.patch
0001_Fix_OpenSSL_crash_bug.patch
)
#options=(!makeflags)
prepare() {
cd "${pkgbase}"-${pkgver}
# move /var/run -> /run for pid file
patch -Np1 -i "${srcdir}"/cups-2.4.0-statedir.patch
# bug fixes
# 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
# FS#56818 - https://github.com/apple/cups/issues/5236
patch -Np1 -i "${srcdir}"/guid.patch
# FS#75005 - Fix OpenSSL crash bug - "tls" pointer wasn't cleared after
# Fix OpenSSL crash bug - "tls" pointer wasn't cleared after
patch -Np1 -i "${srcdir}"/0001_Fix_OpenSSL_crash_bug.patch
# # fix german webinterface not opening
# # 0001_fix_missing_bracket.patch
# patch -Np1 -i ../0001_fix_missing_bracket.patch
# Rebuild configure script
aclocal -I config-scripts
autoconf -I config-scripts
}
build() {
cd "${pkgbase}"-${pkgver}
# 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
./configure --prefix=/usr \
--sysconfdir=/etc \
--localstatedir=/var \
--sbindir=/usr/bin \
--libdir=/usr/lib \
--with-logdir=/var/log/cups \
--with-docdir=/usr/share/cups/doc \
--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=no \
--with-tls=gnutls \
--with-dbusdir=no \
--enable-ssl=yes \
--enable-relro \
--enable-libpaper \
--with-php=/usr/bin/php-cgi \
--disable-systemd \
--disable-avahi \
--with-optim="$CFLAGS" #--help
make
}
check() {
cd "${pkgbase}"-${pkgver}
# make -k check || /bin/true
# make check
}
package_libcups-no-dbus() {
pkgdesc="The CUPS Printing System - client libraries and headers - no systemd no avahi no dbus"
depends=('gnutls' 'libtiff>=4.0.0' 'libpng>=1.5.7' 'krb5' 'libusb' 'libxcrypt')
conflicts=('libcups')
provides=('libcups')
cd ${pkgbase}-${pkgver}
make 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}"/"${pkgbase}"-${pkgver}/cups-config "${pkgdir}"/usr/bin/cups-config
# add license + exception
install -m644 -Dt "${pkgdir}/usr/share/licenses/${_pkgname}" {LICENSE,NOTICE}
}
package_cups-no-dbus() {
pkgdesc="The CUPS Printing System - daemon package - no systemd no avahi no dbus"
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-no-dbus>=${pkgver}" 'cups-filters' 'bc'
'libpaper' 'hicolor-icon-theme' 'xinetd')
optdepends=('ipp-usb: allows to send HTTP requests via a USB connection on devices without Ethernet or WiFi connections'
'xdg-utils: xdg .desktop file support'
'colord: for ICC color profile support'
'logrotate: for logfile rotation support')
conflicts=('cups')
replaces=('cups')
provides=('cups')
cd "${pkgbase}"-${pkgver}
make BUILDROOT="${pkgdir}" install-data install-exec
# this one we ship in the libcups pkg
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
# fix perms on /var/spool and /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/$_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
# remove directory from package, it will be recreated at each server start
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 .desktop file
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
# remove client.conf man page
rm -f "${pkgdir}"/usr/share/man/man5/client.conf.5
# 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*
# # no more xinetd support
# rm -rf "${pkgdir}"/etc/xinetd.d
}
#---- license gpg-key sha256sums ----
license=('Apache' 'custom')
validpgpkeys=(7082A0A50A2E92640F3880E0E4522DCC9B246FF7 # Zdenek Dohnal (The old 4D4227D7 key revoked) <zdohnal@redhat.com>
3737FD0D0E63B30172440D2DDBA3A7AB08D76223 # CUPS.org (CUPS.org PGP key) <security@cups.org>
45D083946E3035282B3CCA9AF434104235DA97EB # "CUPS.org <security@cups.org>"
845464660B686AAB36540B6F999559A027815955) # "Michael R Sweet <michael.r.sweet@gmail.com>"
# 7ADB58203CA5F046F28025B215AA6A7F4D4227D7) # "Zdenek Dohnal (Associate Software Engineer) <zdohnal@redhat.com>"
sha256sums=(f03ccb40b087d1e30940a40e0141dcbba263f39974c20eb9f2521066c9c6c908 # cups-2.4.2-source.tar.gz
50e382ba0d58e8f213769b90f78beae5949231d18ec00b5024cc337df4e1729b # cups-2.4.2-source.tar.gz.sig
d87fa0f0b5ec677aae34668f260333db17ce303aa1a752cba5f8e72623d9acf9 # cups.logrotate
57dfd072fd7ef0018c6b0a798367aac1abb5979060ff3f9df22d1048bb71c0d5 # cups.pam
06173dfaea37bdd9b39b3e09aba98c34ae7112a2f521db45a688907d8848caa2 # cups.sysusers
f0b15192952c151b1843742c87850ff3a7d0f3ba5dd236ed16623ef908472ad7 # cups-2.4.0-statedir.patch
3385047b9ac8a7b13aeb8f0ca55d15f793ce7283516db0155fe28a67923c592d # cups-freebind.patch
0bf6a75ba1b051771f155d9a5d36b307a6d40c6857d645b250fe93f3fb713474 # guid.patch
632faf08bfd1863e9ad6807aff766983e84030a0e4df441167f17de7266ca152) # 0001_Fix_OpenSSL_crash_bug.patch

181
cups-no-dbus/PKGBUILD-arch Normal file
View File

@ -0,0 +1,181 @@
# Maintainer: Andreas Radke <andyrtr@archlinux.org>
pkgbase="cups"
pkgname=('libcups' 'cups')
pkgver=2.4.2
pkgrel=3
epoch=1
arch=('x86_64')
license=('Apache' 'custom')
url="https://openprinting.github.io/cups/"
makedepends=('libtiff' 'libpng' 'acl' 'pam' 'xdg-utils' 'krb5' 'gnutls'
'cups-filters' 'bc' 'colord' 'gzip' 'autoconf' 'libusb' 'dbus'
'avahi' 'hicolor-icon-theme' 'systemd' 'libxcrypt' 'inetutils' 'libpaper' 'valgrind'
'git')
source=(https://github.com/OpenPrinting/cups/releases/download/v${pkgver}/cups-${pkgver}-source.tar.gz{,.sig}
cups.logrotate
cups.pam
cups.sysusers
cups-2.4.0-statedir.patch
# bugfixes
cups-freebind.patch
guid.patch
0001_Fix_OpenSSL_crash_bug.patch
)
sha256sums=('f03ccb40b087d1e30940a40e0141dcbba263f39974c20eb9f2521066c9c6c908'
'SKIP'
'd87fa0f0b5ec677aae34668f260333db17ce303aa1a752cba5f8e72623d9acf9'
'57dfd072fd7ef0018c6b0a798367aac1abb5979060ff3f9df22d1048bb71c0d5'
'06173dfaea37bdd9b39b3e09aba98c34ae7112a2f521db45a688907d8848caa2'
'f0b15192952c151b1843742c87850ff3a7d0f3ba5dd236ed16623ef908472ad7'
'3385047b9ac8a7b13aeb8f0ca55d15f793ce7283516db0155fe28a67923c592d'
'0bf6a75ba1b051771f155d9a5d36b307a6d40c6857d645b250fe93f3fb713474'
'632faf08bfd1863e9ad6807aff766983e84030a0e4df441167f17de7266ca152')
#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>"
#validpgpkeys=('7ADB58203CA5F046F28025B215AA6A7F4D4227D7') # "Zdenek Dohnal (Associate Software Engineer) <zdohnal@redhat.com>"
validpgpkeys=('7082A0A50A2E92640F3880E0E4522DCC9B246FF7') # Zdenek Dohnal (The old 4D4227D7 key revoked) <zdohnal@redhat.com>
#options=(!makeflags)
prepare() {
cd "${pkgbase}"-${pkgver}
# move /var/run -> /run for pid file
patch -Np1 -i "${srcdir}"/cups-2.4.0-statedir.patch
# bug fixes
# 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
# FS#56818 - https://github.com/apple/cups/issues/5236
patch -Np1 -i "${srcdir}"/guid.patch
# FS#75005 - Fix OpenSSL crash bug - "tls" pointer wasn't cleared after
# Fix OpenSSL crash bug - "tls" pointer wasn't cleared after
patch -Np1 -i "${srcdir}"/0001_Fix_OpenSSL_crash_bug.patch
# Rebuild configure script
aclocal -I config-scripts
autoconf -I config-scripts
}
build() {
cd "${pkgbase}"-${pkgver}
# 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
./configure --prefix=/usr \
--sysconfdir=/etc \
--localstatedir=/var \
--sbindir=/usr/bin \
--libdir=/usr/lib \
--with-logdir=/var/log/cups \
--with-docdir=/usr/share/cups/doc \
--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-tls=gnutls \
--with-dbusdir=/usr/share/dbus-1 \
--enable-relro \
--enable-libpaper \
--with-optim="$CFLAGS" #--help
make
}
check() {
cd "${pkgbase}"-${pkgver}
# make -k check || /bin/true
# make check
}
package_libcups() {
pkgdesc="The CUPS Printing System - client libraries and headers"
depends=('gnutls' 'libtiff>=4.0.0' 'libpng>=1.5.7' 'krb5' 'avahi' 'libusb' 'libxcrypt')
cd ${pkgbase}-${pkgver}
make 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}"/"${pkgbase}"-${pkgver}/cups-config "${pkgdir}"/usr/bin/cups-config
# add license + exception
install -m644 -Dt "${pkgdir}/usr/share/licenses/${pkgname}" {LICENSE,NOTICE}
}
package_cups() {
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' "libcups>=${pkgver}" 'cups-filters' 'bc'
'dbus' 'systemd' 'libpaper' 'hicolor-icon-theme')
optdepends=('ipp-usb: allows to send HTTP requests via a USB connection on devices without Ethernet or WiFi connections'
'xdg-utils: xdg .desktop file support'
'colord: for ICC color profile support'
'logrotate: for logfile rotation support')
cd "${pkgbase}"-${pkgver}
make BUILDROOT="${pkgdir}" install-data install-exec
# this one we ship in the libcups pkg
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
# fix perms on /var/spool and /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/$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
# remove directory from package, it will be recreated at each server start
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 .desktop file
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
# remove client.conf man page
rm -f "${pkgdir}"/usr/share/man/man5/client.conf.5
# 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*
# no more xinetd support
rm -rf "${pkgdir}"/etc/xinetd.d
}

245
cups-no-dbus/PKGBUILD-oba Normal file
View File

@ -0,0 +1,245 @@
# Copyright : Obarun
#------------------------
# Maintainer : Eric Vidal <eric@obarun.org>
# Maintainer : Jean-Michel T.Dydak <jean-michel@obarun.org>
# Maintainer : YianIris <yianiris At disroot Dot org>
#----------------
# Obarun PkgSrc : https://git.obarun.org/pkg/obextra/cups
#--------------------------------------------------------------
# DESCRIPTION ]
pkgbase="cups"
pkgver=2.4.1
pkgrel=2
epoch=1
url='https://openprinting.github.io/cups/'
pkgname=(
'libcups'
'cups'
)
track="releases/download/v$pkgver"
target="cups-$pkgver-source"
source=(
"https://github.com/OpenPrinting/cups/${track}/${target}.tar.gz"{,.sig}
cups.logrotate
cups.pam
cups.sysusers
cups-2.4.0-statedir.patch
cups-freebind.patch
guid.patch
)
#----------------------
# BUILD CONFIGURATION ]
makedepends=(
'libtiff'
'libpng'
'acl'
'pam'
'xdg-utils'
'krb5'
'gnutls'
'cups-filters'
'bc'
'colord'
'gzip'
'autoconf'
'libusb'
'dbus'
'hicolor-icon-theme'
'libxcrypt'
'inetutils'
'libpaper'
'valgrind'
'libeudev'
)
#----------------
# BUILD PREPARE ]
prepare() {
cd $pkgbase-$pkgver
## move /var/run -> /run for pid file
patch -Np1 -i "${srcdir}"/cups-2.4.0-statedir.patch
## bug fixes
## 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
## FS#56818 - https://github.com/apple/cups/issues/5236
patch -Np1 -i "${srcdir}"/guid.patch
## Rebuild configure script
aclocal -I config-scripts
autoconf -I config-scripts
}
#----------------
# BUILD CONTROL ]
_flags=(
--prefix=/usr
--sysconfdir=/etc
--localstatedir=/var
--sbindir=/usr/bin
--libdir=/usr/lib
--with-logdir=/var/log/cups
--with-docdir=/usr/share/cups/doc
--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-libpaper
--with-php=/usr/bin/php-cgi
--disable-systemd
--disable-avahi
--with-optim="$CFLAGS"
)
#--------
# BUILD ]
build() {
cd $pkgbase-$pkgver
## The build system uses only DSOFLAGS but not LDFLAGS to build some libraries.
export DSOFLAGS=${LDFLAGS}
./configure "${_flags[@]}"
make
}
#--------
# CHECK ]
check() {
cd $pkgbase-$pkgver
#make -k check || /bin/true
#make check
}
#----------
# PACKAGE ]
package_libcups() {
pkgdesc="The CUPS Printing System - client libraries and headers"
depends=(
'gnutls'
'libtiff>=4.0.0'
'libpng>=1.5.7'
'krb5'
'libusb'
'libxcrypt'
)
cd $pkgbase-$pkgver
make 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"/$pkgbase-$pkgver/cups-config "$pkgdir"/usr/bin/cups-config
## add license + exception
install -m644 -Dt "$pkgdir"/usr/share/licenses/$pkgname {LICENSE,NOTICE}
}
package_cups() {
pkgdesc="The CUPS Printing System - daemon package"
depends=(
'acl'
'pam'
"libcups>=$pkgver"
'cups-filters'
'bc'
'dbus'
'libpaper'
'hicolor-icon-theme'
)
optdepends=(
'xdg-utils: xdg .desktop file support'
'colord: for ICC color profile support'
)
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'
)
install=cups.install
cd $pkgbase-$pkgver
make BUILDROOT="$pkgdir" install-data install-exec
## this one we ship in the libcups pkg
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
## fix perms on /var/spool and /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/$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
## remove directory from package, it will be recreated at each server start
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 .desktop file
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
## remove client.conf man page
rm -f "$pkgdir"/usr/share/man/man5/client.conf.5
## 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*
}
#--------------------
# ARCH LICENSE AUTH ]
arch=(x86_64)
license=(Apache custom)
validpgpkeys=(
'7082A0A50A2E92640F3880E0E4522DCC9B246FF7' # Zdenek Dohnal (The old 4D4227D7 key revoked) <zdohnal@redhat.com>
)
sha512sums=('')

1
cups-no-dbus/clean Normal file
View File

@ -0,0 +1 @@
rm -rvf {src,pkg,cups*source.tar.gz*}

View File

@ -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.])

View File

@ -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

28
cups-no-dbus/cups.install Normal file
View File

@ -0,0 +1,28 @@
post_install() {
echo ">> If you use an HTTPS connection to CUPS, the first time you access"
echo ">> the interface it may take a very long time before the site comes up."
echo ">> This is because the first request triggers the generation of the CUPS"
echo ">> SSL certificates which can be a very time-consuming job."
}
post_upgrade() {
# FS#56818 - make sure we change the ownership to the new cups group
if [[ $(vercmp 2.2.6-3 $2) = 1 ]]; then
chgrp -R 209 /etc/cups
echo "Cups daemon is now running under \"cups\" user+group."
echo "Please make sure to enable the new user+group change in"
echo "/etc/cups/cups-files.conf or merge changes from"
echo "/etc/cups/cups-files.conf.default. After a service restart"
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
}

View File

@ -0,0 +1,5 @@
/var/log/cups/*_log {
missingok
notifempty
sharedscripts
}

3
cups-no-dbus/cups.pam Normal file
View File

@ -0,0 +1,3 @@
auth required pam_unix.so
account required pam_unix.so
session required pam_unix.so

View File

@ -0,0 +1,2 @@
u cups 209 "cups helper user"
m cups lp

17
cups-no-dbus/deps Normal file
View File

@ -0,0 +1,17 @@
libtiff
libpng
xdg-utils
bc
libcolord
autoconf
libusb
hicolor-icon-theme
inetutils
libpaper
valgrind
git
automake
cups-filters
libmicrohttpd
libcups-no-dbus

39
cups-no-dbus/guid.patch Normal file
View File

@ -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)
{

1
cups-no-dbus/key Normal file
View File

@ -0,0 +1 @@
gpg -v --recv-key E4522DCC9B246FF7

19
cups-no-dbus/note Normal file
View File

@ -0,0 +1,19 @@
with checks enable building takes for ever, even though tests don't fail.
Running IPP compliance tests...
Performing 4.1-requests.test: PASS
Performing 4.2-cups-printer-ops.test: PASS
Performing 4.3-job-ops.test: PASS
Performing 4.4-subscription-ops.test: PASS
Performing ipp-2.1.test: PASS
Running command tests...
Performing 5.1-lpadmin.sh: PASS
Waiting for jobs to complete...1...
Performing 5.2-lpc.sh: PASS
Waiting for jobs to complete...1...
Performing 5.3-lpq.sh: PASS
Waiting for jobs to complete...1...
It is up to you to let it run for hours or disable checks all together and build it in less than a minute

9
cups-no-dbus/sums Normal file
View File

@ -0,0 +1,9 @@
cups-2.4.0-source.tar.gz
cups-2.4.0-source.tar.gz.sig
cups.logrotate
cups.pam
cups.sysusers
cups-2.4.0-statedir.patch
cups-freebind.patch
guid.patch
0001_fix_missing_bracket.patch

4
cups-no-dbus/time Normal file
View File

@ -0,0 +1,4 @@
real 0m45.322s
user 1m34.038s
sys 0m6.720s

View File

@ -8,7 +8,7 @@
pkgbase="cups"
pkgname=('libcups' 'cups')
pkgver=2.4.2
pkgrel=02
pkgrel=03
epoch=1
arch=('x86_64')
url="https://openprinting.github.io/cups/"
@ -81,6 +81,7 @@ build() {
--enable-pam=yes \
--enable-raw-printing \
--enable-dbus=yes \
--with-tls=gnutls \
--with-dbusdir=/usr/share/dbus-1 \
--enable-ssl=yes \
--enable-relro \
@ -202,3 +203,5 @@ sha256sums=(f03ccb40b087d1e30940a40e0141dcbba263f39974c20eb9f2521066c9c6c908 # c
632faf08bfd1863e9ad6807aff766983e84030a0e4df441167f17de7266ca152) # 0001_Fix_OpenSSL_crash_bug.patch

View File

@ -3,7 +3,7 @@
pkgbase="cups"
pkgname=('libcups' 'cups')
pkgver=2.4.2
pkgrel=2
pkgrel=3
epoch=1
arch=('x86_64')
license=('Apache' 'custom')
@ -83,6 +83,7 @@ build() {
--enable-pam=yes \
--enable-raw-printing \
--enable-dbus=yes \
--with-tls=gnutls \
--with-dbusdir=/usr/share/dbus-1 \
--enable-relro \
--enable-libpaper \

View File

@ -12,6 +12,5 @@ valgrind
git
automake
cups-filters
libmicrohttpd