void-packages/srcpkgs/cups/template
Helmut Pozimski ec2acdc051 cups: fix default cupsd.conf add gssapi build option (#5649)
The cupsd.conf currently provided by the cups package contains a Kerberos
section. Since cupsd is built without gssapi support, the daemon fails
to verify it's configuration and refuses to start. This commit adds a
build option to make it possible to build the package with gssapi
support and also provides a patch pulled in from Alpine Linux for the
cupsd.conf to be able to start the daemon without building it with gssapi
support.
2017-02-05 15:37:53 +01:00

117 lines
3.8 KiB
Bash

# Template file for 'cups'
pkgname=cups
version=2.2.2
revision=2
patch_args="-Np1"
short_desc="Common Unix Printing System"
maintainer="Juan RP <xtraeme@voidlinux.eu>"
homepage="http://www.cups.org/"
license="GPL-2"
distfiles="https://github.com/apple/cups/releases/download/v${version}/cups-${version}-source.tar.gz"
checksum=f589bb7d5d1dc3aa0915d7cf2b808571ef2e1530cd1a6ebe76ae8f9f4994e4f6
hostmakedepends="automake pkg-config poppler-utils gnutls-devel avahi-libs-devel"
makedepends="acl-devel libjpeg-turbo-devel libpng-devel tiff-devel
gnutls-devel pam-devel poppler-devel libusb-devel avahi-libs-devel
libpaper-devel $(vopt_if gssapi mit-krb5-devel)"
depends="xdg-utils"
conf_files="/etc/pam.d/cups /etc/cups/*.conf"
make_dirs="
/usr/lib/cups/driver 0755 root root
/var/log/cups 0750 root root
/var/cache/cups/rss 0750 cups lp
/var/spool/cups 0755 cups lp
/etc/cups/ssl 0700 cups lp"
build_options="gssapi"
# Package build options
system_accounts="cups"
cups_pgroup="lp"
cups_homedir="/var/spool/cups"
pre_configure() {
aclocal -I config-scripts
autoconf -I config-scripts
}
do_configure() {
if [ "$CROSS_BUILD" ]; then
CC=cc AR= RANLIB= CFLAGS=-Os LDFLAGS= ./configure
make -C cups libcups.a
make -C man mantohtml
mkdir cross-tools
cp man/mantohtml cross-tools
make clean
fi
./configure ${configure_args} --sbindir=/usr/bin --libdir=/usr/lib \
--enable-acl --enable-dbus --enable-raw-printing \
--enable-threads --with-logdir=/var/log/cups \
--with-docdir=/usr/share/cups/doc \
--with-cups-user=cups --with-cups-group=lp --enable-relro \
--enable-libpaper --enable-avahi --enable-pam --enable-ssl \
--with-menudir=/usr/share/applications --with-xinetd=/etc/xinetd.d \
--with-optim="${CFLAGS}" --without-systemd \
--without-perl --without-php --without-python $(vopt_enable gssapi)
}
do_build() {
# Do not run genstrings binary in cross builds.
if [ "$CROSS_BUILD" ]; then
sed -e '/.\/genstrings.*/d' -i ppdc/Makefile
sed -e "s,./mantohtml,${wrksrc}/cross-tools/mantohtml,g" -i man/Makefile
fi
make ${makejobs}
}
do_install() {
make BUILDROOT=${DESTDIR} install
# Remove sysvinit scripts.
rm -rf ${DESTDIR}/etc/rc.d
rm -rf ${DESTDIR}/etc/init.d
# compress some driver files, adopted from Fedora
find ${DESTDIR}/usr/share/cups/model -name "*.ppd"|xargs gzip -n9f
# install some more configuration files that will get filled by cupsd
for f in printers classes client subscriptions; do
touch ${DESTDIR}/etc/cups/${f}.conf
done
echo "# see 'man client.conf'" >> ${DESTDIR}/etc/cups/client.conf
echo "ServerName /var/run/cups/cups.sock" >> ${DESTDIR}/etc/cups/client.conf
echo "# alternative: ServerName hostname-or-ip-address[:port] of a remote server" >> \
${DESTDIR}/etc/cups/client.conf
# fix .desktop file
sed -i 's|^Exec=htmlview http://localhost:631/|Exec=xdg-open http://localhost:631/|g' \
${DESTDIR}/usr/share/applications/cups.desktop
# Install pam file
vinstall ${FILESDIR}/cups.pam 644 etc/pam.d cups
# Remove files provided by cups-filters.
rm -f ${DESTDIR}/usr/share/cups/banners/*
rm -f ${DESTDIR}/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:' \
${DESTDIR}/usr/share/cups/mime/mime.convs
# comment out unnecessary PageLogFormat entry
sed -i -e 's:PageLogFormat:#PageLogFormat:' ${DESTDIR}/etc/cups/cupsd.conf*
# runit service
vsv cupsd
}
libcups_package() {
short_desc+=" - client runtime shared libraries"
conf_files="/etc/cups/client.conf"
pkg_install() {
vmove "usr/lib/*.so.*"
vmove etc/cups/client.conf
vmove usr/share/man/man5/client.conf.5
}
}
cups-devel_package() {
depends="zlib-devel libcups>=${version}_${revision}"
short_desc+=" - development files"
pkg_install() {
vmove usr/include
vmove usr/bin/cups-config
vmove "usr/lib/*.so"
}
}