core/cups/PKGBUILD

176 lines
6.9 KiB
Bash
Raw Normal View History

2010-10-09 08:25:46 +08:00
# Platform Packages for Chakra, part of chakra-project.org
#
# maintainer abveritas@chakraproject.org
2010-03-14 23:48:48 +08:00
pkgbase="cups"
2010-03-14 23:48:48 +08:00
pkgname=('libcups' 'cups')
pkgver=1.6.1
pkgrel=5
arch=('x86_64')
2010-03-14 23:48:48 +08:00
license=('GPL')
url="http://www.cups.org/"
makedepends=('libtiff' 'libpng' 'acl' 'pam' 'xdg-utils' 'krb5' 'gnutls>=2.8.3' 'cups-filters' 'bc'
'xinetd' 'gzip' 'autoconf' 'libusb' 'dbus-core' 'avahi' 'hicolor-icon-theme' 'systemd' 'colord')
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.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'
'b4868b83f7f2d6ec24a1be76509379f0'
2010-03-14 23:48:48 +08:00
'f861b18f4446c43918c8643dcbbd7f6d'
'96f82c38f3f540b53f3e5144900acf17'
'6bef262b5081051e88cd2ae94fed1867'
'9c91b1319f4b20dc323986cb4abbe806'
'dcef8dd5614461166cada8a706eebb49'
'0779ef8ba1d724ebb3b9bf360deba52b')
2010-03-14 23:48:48 +08:00
build() {
cd ${srcdir}/${pkgbase}-${pkgver}
# add systemd socket support - Fedora patch, also used in Gentoo
# modified now to the changes done by Gentoo in their svn ebuild
# http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/net-print/cups/files/cups-1.5.0-systemd-socket.patch?revision=1.1
patch -p1 -i ${srcdir}/cups-systemd-socket.patch
# Do not export SSL libs in cups-config
patch -p1 -i "${srcdir}/cups-no-export-ssllibs.patch"
patch -p1 -i "${srcdir}/cups-no-gcrypt.patch"
# don't zip man pages in make install, let makepkg do that / Fedora
patch -p1 -i ${srcdir}/cups-no-gzip-man.patch
# upstream bugtracker patches
# http://www.cups.org/str.php?L4157 - fix broken default server config
patch -p1 -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 -p1 -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 -p1 -i ${srcdir}/recognize-remote-cups-queue-via-dnssd-uri.patch
# http://cups.org/str.php?L4155 / https://bugs.archlinux.org/task/30965
patch -p0 -i ${srcdir}/usb-backend-reset-after-job-only-for-specific-devices.patch
2010-10-09 08:25:46 +08:00
# Rebuild configure script for not zipping man-pages.
2010-03-14 23:48:48 +08:00
aclocal -I config-scripts
autoconf -I config-scripts
2010-10-09 08:25:46 +08:00
./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
--libdir=/usr/lib \
--with-systemdsystemunitdir=/usr/lib/systemd/system \
--with-logdir=/var/log/cups \
--with-docdir=/usr/share/cups/doc \
--with-cups-user=daemon \
--with-cups-group=lp \
--enable-pam=yes \
--enable-raw-printing \
--enable-dbus --with-dbusdir=/etc/dbus-1 \
--enable-ssl=yes --enable-gnutls \
--enable-threads \
--disable-avahi\
--with-php=/usr/bin/php-cgi \
--with-optim="$CFLAGS"
make
}
check() {
cd "$srcdir/$pkgbase-$pkgver"
#httpAddrGetList(workstation64): FAIL
#1 TESTS FAILED!
#make[1]: *** [testhttp] Error 1
make -k check || /bin/true
2010-03-14 23:48:48 +08:00
}
package_libcups() {
pkgdesc="The CUPS Printing System - client libraries and headers"
depends=('gnutls>=2.8.3' 'libtiff' 'libpng' 'krb5' 'avahi')
backup=(etc/cups/client.conf)
2010-03-14 23:48:48 +08:00
cd ${srcdir}/${pkgbase}-${pkgver}
2011-07-17 00:27:33 +08:00
make BUILDROOT=${pkgdir} install-headers install-libs
2010-03-14 23:48:48 +08:00
# 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
# install client.conf man page and config file
install -dm755 ${pkgdir}/usr/share/man/man5
#install -Dm644 ${srcdir}/${pkgbase}-${pkgver}/man/client.conf.5.gz ${pkgdir}/usr/share/man/man5/
install -Dm644 ${srcdir}/${pkgbase}-${pkgver}/man/client.conf.5 ${pkgdir}/usr/share/man/man5/
install -dm755 ${pkgdir}/etc/cups
touch ${pkgdir}/etc/cups/client.conf
echo "# see 'man client.conf'" >> ${pkgdir}/etc/cups/client.conf
echo "ServerName /var/run/cups/cups.sock # alternative: ServerName hostname-or-ip-address[:port] of a remote server" >> ${pkgdir}/etc/cups/client.conf
chgrp lp ${pkgdir}/etc/cups/client.conf
2010-03-14 23:48:48 +08:00
}
package_cups() {
pkgdesc="The CUPS Printing System - daemon package"
2010-03-14 23:48:48 +08:00
install=cups.install
backup=(etc/cups/cupsd.conf
etc/cups/snmp.conf
2010-04-07 03:23:26 +08:00
etc/cups/printers.conf
etc/cups/classes.conf
etc/cups/subscriptions.conf
2010-03-14 23:48:48 +08:00
etc/dbus-1/system.d/cups.conf
etc/logrotate.d/cups
etc/pam.d/cups
etc/xinetd.d/cups-lpd)
depends=('acl' 'pam' "libcups>=${pkgver}" 'cups-filters' 'bc' 'libusb' 'dbus-core'
'systemd' 'hicolor-icon-theme' 'colord')
optdepends=('xdg-utils: xdg .desktop file support')
2010-03-14 23:48:48 +08:00
cd ${srcdir}/${pkgbase}-${pkgver}
make BUILDROOT=${pkgdir} install-data install-exec
2010-03-14 23:48:48 +08:00
# this one we ship in the libcups pkg
rm -f ${pkgdir}/usr/bin/cups-config
2010-03-14 23:48:48 +08:00
# kill the sysv stuff
#rm -rf ${pkgdir}/etc/rc*.d
rm -rf ${pkgdir}/etc/init.d
#install -D -m755 ../cups ${pkgdir}/etc/rc.d/cupsd
install -D -m644 ../cups.logrotate ${pkgdir}/etc/logrotate.d/cups
install -D -m644 ../cups.pam ${pkgdir}/etc/pam.d/cups
2010-03-14 23:48:48 +08:00
# fix perms on /var/spool and /etc
chmod 755 ${pkgdir}/var/spool
chmod 755 ${pkgdir}/etc
2010-03-14 23:48:48 +08:00
2010-04-07 03:23:26 +08:00
# install ssl directory where to store the certs, solves some samba issues
install -dm700 -g lp ${pkgdir}/etc/cups/ssl
# remove directory from package, we create it in cups rc.d file
#rm -rf ${pkgdir}/var/run
2010-04-07 03:23:26 +08:00
# 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 lp ${pkgdir}/etc/cups/{printers.conf,classes.conf,subscriptions.conf}
2010-04-07 03:23:26 +08:00
2010-03-14 23:48:48 +08:00
# fix .desktop file
sed -i 's|^Exec=htmlview http://localhost:631/|Exec=xdg-open http://localhost:631/|g' ${pkgdir}/usr/share/applications/cups.desktop
2010-03-14 23:48:48 +08:00
# 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
# remove files now part of cups-filters
rm -v ${pkgdir}/usr/share/cups/banners/*
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
ln -s cups.service "$pkgdir/usr/lib/systemd/system/cupsd.service"
2010-03-14 23:48:48 +08:00
}