# Template file for 'cups'
pkgname=cups
version=1.6.1
revision=7
patch_args="-Np1"
makedepends="automake pkg-config acl-devel libjpeg-turbo-devel
 libpng-devel>=1.5.10 tiff-devel openssl-devel pam-devel mit-krb5-devel
 poppler-devel libusb-devel avahi-libs-devel systemd-devel gnutls-devel>=3.1.5
 poppler-utils"
short_desc="Common Unix Printing System"
maintainer="Juan RP <xtraeme@gmail.com>"
homepage="http://www.cups.org/"
license="GPL-2"
distfiles="ftp://ftp.easysw.com/pub/cups/${version}/cups-${version}-source.tar.bz2"
checksum=5842ab1144e653160fe667ee78b932ee036b054c0c2d20533d19e309149a7790

pre_configure() {
	aclocal -I config-scripts
	autoconf -I config-scripts
}

do_configure() {
	./configure ${CONFIGURE_SHARED_ARGS} --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=daemon --with-cups-group=lp \
		--enable-avahi --enable-pam --enable-ssl=yes --enable-gnutls \
		--with-systemdsystemunitdir=/usr/lib/systemd/system \
		--with-menudir=/usr/share/applications \
		--with-optim="${CFLAGS}"
}

do_build() {
	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
		chgrp lp ${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
}

libcups_package() {
	short_desc="${short_desc} -- client runtime shared libraries"
	conf_files="/etc/cups/client.conf"
	replaces="cups<1.6.0_1"
	pkg_install() {
		vmove "usr/lib/*.so*"
		vmove etc/cups/client.conf
		vmove usr/share/man/man5/client.conf.5
	}
}

cups-devel_package() {
	depends="gnutls-devel libcups>=$version"
	short_desc="${short_desc} -- development files"
	pkg_install() {
		vmove usr/include
		vmove usr/bin/cups-config
	}
}

cups_package() {
	systemd_services="cups.socket on"
	conf_files="
		/etc/cups/cupsd.conf
		/etc/cups/snmp.conf
		/etc/cups/printers.conf
		/etc/cups/classes.conf
		/etc/cups/subscriptions.conf
		/etc/dbus-1/system.d/cups.conf
		/etc/pam.d/cups"
	make_dirs="
		/var/cache/cups/rss 	0750 root lp
		/var/run/cups/certs 	0750 root lp
		/var/log/cups 		0750 root root
		/var/spool/cups 	0755 root lp
		/etc/cups/ssl 		0700 root lp"
	depends="libcups>=${version}_${revision} cups-filters bc"
	pkg_install() {
		vmove etc/cups/classes.conf
		vmove etc/cups/snmp.conf
		vmove etc/cups/subscriptions.conf
		vmove etc/cups/cupsd.conf
		vmove etc/cups/printers.conf
		vmove etc/pam.d/cups
		vmove etc/cups/cupsd.conf.default
		vmove usr
	}
}