diff options
author | Andreas Hüttel <dilfridge@gentoo.org> | 2014-04-15 11:34:22 +0000 |
---|---|---|
committer | Andreas Hüttel <dilfridge@gentoo.org> | 2014-04-15 11:34:22 +0000 |
commit | ec5cf6b55ee1b2815a4ba1f8c9a014ce35794004 (patch) | |
tree | 14aacb41b4e0769bd8513cc8ac0a5c6b8797b08e /net-print | |
parent | Update Ondrej's mail and fix typo. (diff) | |
download | historical-ec5cf6b55ee1b2815a4ba1f8c9a014ce35794004.tar.gz historical-ec5cf6b55ee1b2815a4ba1f8c9a014ce35794004.tar.bz2 historical-ec5cf6b55ee1b2815a4ba1f8c9a014ce35794004.zip |
Version bump, bug 507696; no keywords because of build failures
Package-Manager: portage-2.2.8-r1/cvs/Linux x86_64
Manifest-Sign-Key: 0x94BFDF4484AD142F
Diffstat (limited to 'net-print')
-rw-r--r-- | net-print/cups/ChangeLog | 8 | ||||
-rw-r--r-- | net-print/cups/Manifest | 35 | ||||
-rw-r--r-- | net-print/cups/cups-1.7.2.ebuild | 322 | ||||
-rw-r--r-- | net-print/cups/files/cups-1.7.2-systemd-socket-2.patch | 391 |
4 files changed, 739 insertions, 17 deletions
diff --git a/net-print/cups/ChangeLog b/net-print/cups/ChangeLog index 2a668a5d11fe..ed9ce871a56c 100644 --- a/net-print/cups/ChangeLog +++ b/net-print/cups/ChangeLog @@ -1,6 +1,12 @@ # ChangeLog for net-print/cups # Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/net-print/cups/ChangeLog,v 1.598 2014/03/01 22:33:47 mgorny Exp $ +# $Header: /var/cvsroot/gentoo-x86/net-print/cups/ChangeLog,v 1.599 2014/04/15 11:34:09 dilfridge Exp $ + +*cups-1.7.2 (15 Apr 2014) + + 15 Apr 2014; Andreas K. Huettel <dilfridge@gentoo.org> +cups-1.7.2.ebuild, + +files/cups-1.7.2-systemd-socket-2.patch: + Version bump, bug 507696; no keywords because of build failures 01 Mar 2014; Michał Górny <mgorny@gentoo.org> cups-1.7.1.ebuild, cups-9999.ebuild: diff --git a/net-print/cups/Manifest b/net-print/cups/Manifest index f39692722479..c96d145738c4 100644 --- a/net-print/cups/Manifest +++ b/net-print/cups/Manifest @@ -5,28 +5,31 @@ AUX cups-1.4.4-nostrip.patch 487 SHA256 b96448896f08c5f91d5afb0c093f2638a262d1c4 AUX cups-1.5.0-systemd-socket-2.patch 12914 SHA256 779a91231b62f6467b3ee08d5cf9cb85c1fc5408a23b727aa4c4ddc54f450ed6 SHA512 9577ba50e737dd920ef06e6a5d95938ef10db5fcab8254137f15b2214846de56360dbf8c40c3a95e0b3459f5f925d18a9cd07a844cdda7dd9a41d9fac0118291 WHIRLPOOL a15a97f64db18c7ef7ba5e80096d3aeb06dbb19c388424b069e5fc8e125c159c0623aed59dc0748c8359c349a3fa314ef79f32a7b59aad214e92b974eb4f332e AUX cups-1.6.0-dont-compress-manpages.patch 435 SHA256 d3e41e8d4a841ac71e5ed8598fc444a2f11b4c94215b55dcf5147694bbbc88c3 SHA512 f004b1e7178212eddefda8416c33514834e0e444243c456a8f0723e763247330b8366e71f64ee0e84196789498c5b22334049a8bec210068e02f06b64b683d7c WHIRLPOOL 1453927d8478c740f74ad9f18ef2bdc3dea30596b59cd5fb2a740942da14bef76a2418c3e536aeaad1cbf5ffb14c72e914ba6726776fe5f23f8b43ef4dedd25f AUX cups-1.6.0-fix-install-perms.patch 948 SHA256 4a4a885bb2e111bd67bcb90a5780f33841b18bc02382317fb5e64c384aa0c4c8 SHA512 9b2ecc47be2fd08d092017316af39e217e17a540d096cc62971521052632c40033a06cd7bdd5b319bd7f623fea803d569ced6728504d680fd50087288302164f WHIRLPOOL 7d6f4a5eab9964e6c2277f03affaf0eada9b7408eeac742a75d541ec5efe883940c816ea508a59c733327d3bbe0e31bd242b8c183e3f817a54208ed4a3071982 +AUX cups-1.7.2-systemd-socket-2.patch 11799 SHA256 aec7a98202143e26384fc46baa434f9da022b97793413c95bc1b3765449aceef SHA512 f551e6e1917303ce3e2206284f396885a9aa15bfdee6fdcd88182279cd52a26fc92f5e529b8b30edb0c58dbc749440d23515fa1246959875f525fb5e6b08d466 WHIRLPOOL 063253ffc641c1fd35d929f65c3e42374d5223afc106c2a2f2f0098d5115788573eeaad8fb2c53efe90334ef7a1605d164b1741189c8f8b77e7788097aa76923 AUX cupsd.init.d-r1 504 SHA256 4705b68372090ee7db69da1ad35131551ed1ba99032db2486ff6c31d2170ce6b SHA512 9eac4fc725b14615bb31c96a69c00a14ab2fb23fa355f1ced655f93e6364555b2710a277ceab439199a275405b016492b4c9183fab755c02354013e0904a03bc WHIRLPOOL e0ce34f4b73de6e63ba1f01b0df543cd66fecc692af8254acb3dd1147c0cd4e1f42ed7df4b18b26af0114db54c3b8c1bca526ed54146307223ac24a0b3d3502c DIST cups-1.7.1-source.tar.bz2 8738002 SHA256 f52bec893d9daf92b6029be79c07e6c516b4c85ffae3e6e01885cc85e9081681 SHA512 e52f98f00e8b2c0eb7a8b29a8ed5e33b14b1a68a18f3f4558e473d8146c2dfd659c9a96ae07257c456d7a34dcc7bcabf858dcf719e8557173c8849d734711e57 WHIRLPOOL b715560357b22d0cc5887059137b79132e1f46a9adc76410d3ad2e8a1a16047fd2179372632f544b1d798a03a3d41410071f09d2ed82aeda66afe789c080cb04 +DIST cups-1.7.2-source.tar.bz2 8754601 SHA256 315cdff436924c4efe04cb110b145fb1a6e038e2eed8445359052f86e9e95676 SHA512 441256bdfbe4a720244143d229f12e0a3e2e27e6298baee3ddca9f7f6bd3e3c2818136c90a110bebbbf9b034a48f8bd1af06788c25258e61aa3bc524e492a912 WHIRLPOOL b3c977275a89c6c8b2773bddf615168bcc6f2379bf49f991e0141eb5db482035e0e611d22d6c99351dc1e41e003470322dedabcc37244289c237671bae5f792c EBUILD cups-1.7.1.ebuild 9236 SHA256 aa03e3d61ee332799dace86f969c82ba68a76ec9aff2f39d7b67c198f1e21b94 SHA512 e9fbe6287cac20d06b4278e99013fba7bf15f1e7f23f037115373f4193320faf5fe96e86338bb181a9f084606c757f30a711754bc3df746bb27f07fb79a0aa15 WHIRLPOOL 46353815cc0df8ffcd0d9eb1b0026ee0db234bb74f81d5195caebbd8241004a768b154e38e09d918a75c7875f1e69756165c2cf6218e4a7b59d19941385cad54 +EBUILD cups-1.7.2.ebuild 9261 SHA256 21a9761756d2c5f236804d7df01e185bd0cbd33c9559d6defb3d222965c263de SHA512 22bfd4748e60579c257e72ab4799317b8cc8026ab1e3312d69cbceab5897a915cb5ab5d20e59adcacc49a8c569ab0aafb866949eab0588df500ba14d22efc449 WHIRLPOOL 65b4b675912f87981d106cb6dffa664be3471972f451ac633b70dbf4d4e0c15295e2c099c3a9b5b732e7cecfbbd2ee62faabb56a43c24f755a12f770c1d69c4c EBUILD cups-9999.ebuild 9244 SHA256 8e325354ed31558c3437922927e0b41b8e4c3ed8eb9015a8cc937eecbfcbc868 SHA512 f724cd56a6d4e640f637ce3c605303ed103ca3c241ee80b30844b289c99fa6ce44ece9196531743207160ca27be1edcbd69b9f5aec18c0d35c2215f3394d96be WHIRLPOOL 7365351bbe91444b35218f3c056f804c542e882805f2c2686d0dd50edc8dbdb8f965c04d3739404bec1cc92ede360191f3363a4336295553c22715226a179d70 -MISC ChangeLog 90521 SHA256 e36348272ba79d3ee3f2edc3178da3da43914732e7bf58dc5dc87870871b18a1 SHA512 af85a35d47e4092a500df8f4a258631d941555fc9c5ca3cfa0d6edd61c937f3823a7dc1ed4e7e4f463fc076e47e584f6d476504aca943a133e7d6aefdb4273bc WHIRLPOOL 988952b52f1373712beb0d2209f470726ebe875d6c553d3d5ca9ecf6b27958af509a2d4226f8221286b4948dd7d5d36b55fdc0ac780b9ba5097ea39e00383d46 +MISC ChangeLog 90739 SHA256 34cad5e634ef8066d99c284074bc1db3856b8a3e75e0f02709e339d0be3d4bfa SHA512 84b403a83a0438ba84bc8b7b39406c82047c544478fe7bc9f7724baa38860cf1896dfd3a6828b9d0e49508bdeea94b229eb58d3473be6a68221eb2df8b951043 WHIRLPOOL 475d1696bae69e51b77d3304d95977ef35b1008734bca1a657fa4ea6699ce3b4b8f60322593f947ec5c4269e1fab4b4d92fa0fed57d9d7e16e21721bc0c07fbb MISC metadata.xml 496 SHA256 732bba7ee060b7be5e0b23d06d24c12c2bfc1c6be1440cdfebe6d5d94d145c47 SHA512 713300abb461ad923c4f6e59326fa97b2372181df4ef82bf04dd6f2d68dc0eb7c34e518cbb40ebd535cb9c4bf52d2648512002cc2cb55c6f21406cc973fa4496 WHIRLPOOL 061013ee6ddaf510964589024e39c4a05f18f0a6d2488eb5b121bb962a378348e71261f7e153f34dbb33337a2e49eb7da94e52d0cb7a128d71e9b4466f8a5933 -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.22 (GNU/Linux) -iQJ8BAEBCABmBQJTEmBQXxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25zLm9w -ZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXQ2REJCMDdDQzRGMERBRDA2RUEwQUZFNDFC -MDdBMUFFQUVGQjQ0NjRFAAoJELB6GurvtEZOsE0QANf9ztQl0vfHKOeEW6F0VQgT -GxAg6WIhBkKgLaJXhGZVYlaefRgHQ9QdNPjTkAbomvTW4T7k2OtBSPmXacXB0SzE -OVHy87t7e5QmF/9GFkyc+8oOidWEq0apyG5z8KuMmxFqsLVR/iXRg91mVY8W+N0x -VpE20HngKtwp4J4cDONeJAP1VjS/rExQO1noFZgd70T97/RUtL51nbkrjrmZH9Fq -31A+xP4eKMvNJPO6kh8hPCJy56+AhruiNt0pIXXYhYJvIVvgBpSdROwCToal2Kk8 -qr35QbsLJTLEmFLscras7BVGeASKDo+YaaDE7DGn+G5bd8XzXTAJ1QvZCZl+ssTB -ZRIC3iO/MeO6F0iVvzD4R8tQGf+S1ZFnPjuPfKQD85PW1RvwZT4mHbihzWlyFh7J -kVNqodDcIXshzMmIDB8/eB+trXKvkz6PSO5gEDh9nrIsTmld3BDKxjWCNTHApEAd -wz05OMDcF8EJBjw5X39ISZYgq/tB5KtnjQiKtGU6WkuoeU/Qov2TitGy+nV2d9dB -hp1B9Su8GMJQQ5kntiUi354SnahirZB2HusO6aoGSFqjGYcm3XjIfOey2zaTmJ62 -wQ0a9js890fZCgrdliEt3ROa8Ox3sLXbyUjZOAj7NnWVYmJ/0fkxTb/q/Igm1soU -LWVh4qPYNsfEB9hS4eWh -=9nR7 +iQJ8BAEBCABmBQJTTRkwXxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25zLm9w +ZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXQzNUIxN0RGNTc1MjU3N0NBMEM1NDFDRUI5 +NEJGREY0NDg0QUQxNDJGAAoJEJS/30SErRQvs40P/RyKlBKKiKt3JyCJmtuoG8rc +hftzP2YkqT7aG2jGEm7vvsZ2wSMQC/+3MsEt5Igd33ZLWynNbAEqj0OYk7Uxg+Ks +J+coVoU4q230dgJbhErt+9t5O516Z74wNn9rW/tktMWHHjmG3apufyyOIe0M1lBI +E7kKCOozTHarjk/ZxflRWGcmyb2vpqor8R/FIs/GwasYqrqBPMWiWBicYXRbsuQU +ewMM63j+UNYZy8IWWQXIdNMrcmYNE3acQ5zufjPjkaOyDH6h/GIA6en0HcSs0H/6 +Wa3HcTXc45P6bQp8qiX+BNFLf2Y9LENkABbvWEIWUDXfYrVlfzDAM5gxIzWQt0wn +uRzhz14xjNT6jNV4s/ORznv6af0QJGAC9dvKHtns/eRb0JW1x+eZwlf3jIaQSqwW +FprnH9CaCA0tEziralWVLaaXu4BeZA8/gfoASPMJm6ZCNFHYgJNsHWYDCsiXy7nD +fTEbnInmrDpJxyBaHNwQwvvZhnfzlRzJ31QXju/cm9o8BYoIlle8qiFKZG2mTWCV +1QXqim+kEZam0AgvwkGsXMIS2xYeNJdhQZYIQNYccEThbh+obZsi6KrvI5VPMXoB +pSDif9i8eiqh8qYbSTb6qYgLcb2t8NBF1wpGKxtUluflYaOVHoS38mH/z37Tgie2 +UMDPa6sUnUvcZ3kki9aM +=4NXo -----END PGP SIGNATURE----- diff --git a/net-print/cups/cups-1.7.2.ebuild b/net-print/cups/cups-1.7.2.ebuild new file mode 100644 index 000000000000..36c530dfb3ac --- /dev/null +++ b/net-print/cups/cups-1.7.2.ebuild @@ -0,0 +1,322 @@ +# Copyright 1999-2014 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/net-print/cups/cups-1.7.2.ebuild,v 1.1 2014/04/15 11:34:09 dilfridge Exp $ + +EAPI=5 + +PYTHON_COMPAT=( python{2_6,2_7} ) + +inherit autotools base fdo-mime gnome2-utils flag-o-matic linux-info \ + multilib pam python-single-r1 user versionator java-pkg-opt-2 systemd \ + toolchain-funcs + +MY_P=${P/_rc/rc} +MY_P=${MY_P/_beta/b} +MY_PV=${PV/_rc/rc} +MY_PV=${MY_PV/_beta/b} + +if [[ ${PV} == *9999 ]]; then + inherit git-2 + EGIT_REPO_URI="http://www.cups.org/cups.git" + if [[ ${PV} != 9999 ]]; then + EGIT_BRANCH=branch-${PV/.9999} + fi + KEYWORDS="" +else + SRC_URI="http://www.cups.org/software/${MY_PV}/${MY_P}-source.tar.bz2" +# KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~m68k-mint" + KEYWORDS="" +fi + +DESCRIPTION="The Common Unix Printing System" +HOMEPAGE="http://www.cups.org/" + +LICENSE="GPL-2" +SLOT="0" +IUSE="acl dbus debug gnutls java kerberos lprng-compat pam + python selinux +ssl static-libs +threads usb X xinetd zeroconf" + +LANGS="ca es fr it ja ru" +for X in ${LANGS} ; do + IUSE="${IUSE} +linguas_${X}" +done + +RDEPEND=" + app-text/libpaper + acl? ( + kernel_linux? ( + sys-apps/acl + sys-apps/attr + ) + ) + dbus? ( sys-apps/dbus ) + java? ( >=virtual/jre-1.6 ) + kerberos? ( virtual/krb5 ) + !lprng-compat? ( !net-print/lprng ) + pam? ( virtual/pam ) + python? ( ${PYTHON_DEPS} ) + selinux? ( sec-policy/selinux-cups ) + ssl? ( + gnutls? ( + dev-libs/libgcrypt:0 + net-libs/gnutls + ) + !gnutls? ( >=dev-libs/openssl-0.9.8g ) + ) + usb? ( virtual/libusb:1 ) + X? ( x11-misc/xdg-utils ) + xinetd? ( sys-apps/xinetd ) + zeroconf? ( net-dns/avahi ) +" + +DEPEND="${RDEPEND} + virtual/pkgconfig +" + +PDEPEND=" + app-text/ghostscript-gpl[cups] + app-text/poppler[utils] + >=net-print/cups-filters-1.0.43 +" + +REQUIRED_USE=" + gnutls? ( ssl ) + python? ( ${PYTHON_REQUIRED_USE} ) + usb? ( threads ) +" + +# upstream includes an interactive test which is a nono for gentoo +RESTRICT="test" + +S="${WORKDIR}/${MY_P}" + +PATCHES=( + "${FILESDIR}/${PN}-1.6.0-dont-compress-manpages.patch" + "${FILESDIR}/${PN}-1.6.0-fix-install-perms.patch" + "${FILESDIR}/${PN}-1.4.4-nostrip.patch" + "${FILESDIR}/${PN}-1.7.2-systemd-socket-2.patch" # systemd support +) + +pkg_setup() { + enewgroup lp + enewuser lp -1 -1 -1 lp + enewgroup lpadmin 106 + + use python && python-single-r1_pkg_setup + + if use kernel_linux; then + linux-info_pkg_setup + if ! linux_config_exists; then + ewarn "Can't check the linux kernel configuration." + ewarn "You might have some incompatible options enabled." + else + # recheck that we don't have usblp to collide with libusb + if use usb; then + if linux_chkconfig_present USB_PRINTER; then + eerror "Your usb printers will be managed via libusb. In this case, " + eerror "${P} requires the USB_PRINTER support disabled." + eerror "Please disable it:" + eerror " CONFIG_USB_PRINTER=n" + eerror "in /usr/src/linux/.config or" + eerror " Device Drivers --->" + eerror " USB support --->" + eerror " [ ] USB Printer support" + eerror "Alternatively, just disable the usb useflag for cups (your printer will still work)." + fi + else + #here we should warn user that he should enable it so he can print + if ! linux_chkconfig_present USB_PRINTER; then + ewarn "If you plan to use USB printers you should enable the USB_PRINTER" + ewarn "support in your kernel." + ewarn "Please enable it:" + ewarn " CONFIG_USB_PRINTER=y" + ewarn "in /usr/src/linux/.config or" + ewarn " Device Drivers --->" + ewarn " USB support --->" + ewarn " [*] USB Printer support" + ewarn "Alternatively, enable the usb useflag for cups and use the libusb code." + fi + fi + fi + fi +} + +src_prepare() { + base_src_prepare + AT_M4DIR=config-scripts eaclocal + eautoconf +} + +src_configure() { + export DSOFLAGS="${LDFLAGS}" + + einfo LANGS=\"${LANGS}\" + einfo LINGUAS=\"${LINGUAS}\" + + local myconf + if use ssl ; then + myconf+=" + $(use_enable gnutls) + $(use_enable !gnutls openssl) + " + else + myconf+=" + --disable-gnutls + --disable-openssl + " + fi + + if tc-is-static-only; then + myconf+=" + --disable-shared + " + fi + + econf \ + --libdir="${EPREFIX}"/usr/$(get_libdir) \ + --localstatedir="${EPREFIX}"/var \ + --with-rundir="${EPREFIX}"/run/cups \ + --with-cups-user=lp \ + --with-cups-group=lp \ + --with-docdir="${EPREFIX}"/usr/share/cups/html \ + --with-languages="${LINGUAS}" \ + --with-system-groups=lpadmin \ + $(use_enable acl) \ + $(use_enable zeroconf avahi) \ + $(use_enable dbus) \ + $(use_enable debug) \ + $(use_enable debug debug-guards) \ + $(use_enable kerberos gssapi) \ + $(use_enable pam) \ + $(use_enable static-libs static) \ + $(use_enable threads) \ + $(use_enable usb libusb) \ + --disable-dnssd \ + $(use_with java) \ + --without-perl \ + --without-php \ + $(use_with python python "${PYTHON}") \ + $(use_with xinetd xinetd /etc/xinetd.d) \ + --enable-libpaper \ + --with-systemdsystemunitdir="$(systemd_get_unitdir)" \ + ${myconf} + + # install in /usr/libexec always, instead of using /usr/lib/cups, as that + # makes more sense when facing multilib support. + sed -i -e "s:SERVERBIN.*:SERVERBIN = \"\$\(BUILDROOT\)${EPREFIX}/usr/libexec/cups\":" Makedefs || die + sed -i -e "s:#define CUPS_SERVERBIN.*:#define CUPS_SERVERBIN \"${EPREFIX}/usr/libexec/cups\":" config.h || die + sed -i -e "s:cups_serverbin=.*:cups_serverbin=\"${EPREFIX}/usr/libexec/cups\":" cups-config || die +} + +src_install() { + # Fix install-sh, posix sh does not have 'function'. + sed 's#function gzipcp#gzipcp()#g' -i "${S}/install-sh" + + emake BUILDROOT="${D}" install + dodoc {CHANGES,CREDITS,README}.txt + + # move the default config file to docs + dodoc "${ED}"/etc/cups/cupsd.conf.default + rm -f "${ED}"/etc/cups/cupsd.conf.default + + # clean out cups init scripts + rm -rf "${ED}"/etc/{init.d/cups,rc*,pam.d/cups} + + # install our init script + local neededservices + use zeroconf && neededservices+=" avahi-daemon" + use dbus && neededservices+=" dbus" + [[ -n ${neededservices} ]] && neededservices="need${neededservices}" + cp "${FILESDIR}"/cupsd.init.d-r1 "${T}"/cupsd || die + sed -i \ + -e "s/@neededservices@/$neededservices/" \ + "${T}"/cupsd || die + doinitd "${T}"/cupsd + + # install our pam script + pamd_mimic_system cups auth account + + if use xinetd ; then + # correct path + sed -i \ + -e "s:server = .*:server = /usr/libexec/cups/daemon/cups-lpd:" \ + "${ED}"/etc/xinetd.d/cups-lpd || die + # it is safer to disable this by default, bug #137130 + grep -w 'disable' "${ED}"/etc/xinetd.d/cups-lpd || \ + { sed -i -e "s:}:\tdisable = yes\n}:" "${ED}"/etc/xinetd.d/cups-lpd || die ; } + # write permission for file owner (root), bug #296221 + fperms u+w /etc/xinetd.d/cups-lpd || die "fperms failed" + else + rm -rf "${ED}"/etc/xinetd.d + fi + + keepdir /usr/libexec/cups/driver /usr/share/cups/{model,profiles} \ + /var/log/cups /var/spool/cups/tmp + + keepdir /etc/cups/{interfaces,ppd,ssl} + + use X || rm -r "${ED}"/usr/share/applications + + # create /etc/cups/client.conf, bug #196967 and #266678 + echo "ServerName ${EPREFIX}/run/cups/cups.sock" >> "${ED}"/etc/cups/client.conf + + # the following files are now provided by cups-filters: + rm -r "${ED}"/usr/share/cups/banners || die + rm -r "${ED}"/usr/share/cups/data/testprint || die + + # the following are created by the init script + rm -r "${ED}"/var/cache/cups || die + rm -r "${ED}"/run || die + + # for the special case of running lprng and cups together, bug 467226 + if use lprng-compat ; then + rm -fv "${ED}"/usr/bin/{lp*,cancel} + rm -fv "${ED}"/usr/sbin/lp* + rm -fv "${ED}"/usr/share/man/man1/{lp*,cancel*} + rm -fv "${ED}"/usr/share/man/man8/lp* + ewarn "Not installing lp... binaries, since the lprng-compat useflag is set." + ewarn "Unless you plan to install an exotic server setup, you most likely" + ewarn "do not want this. Disable the useflag then and all will be fine." + fi +} + +pkg_preinst() { + gnome2_icon_savelist +} + +pkg_postinst() { + # Update desktop file database and gtk icon cache (bug 370059) + gnome2_icon_cache_update + fdo-mime_desktop_database_update + + # not slotted - at most one value + if ! [[ "${REPLACING_VERSIONS}" ]]; then + echo + elog "For information about installing a printer and general cups setup" + elog "take a look at: http://www.gentoo.org/doc/en/printing-howto.xml" + echo + fi + + if [[ "${REPLACING_VERSIONS}" ]] && [[ "${REPLACING_VERSIONS}" < "1.6" ]]; then + echo + elog "CUPS-1.6 no longer supports automatic remote printers or implicit classes" + elog "via the CUPS, LDAP, or SLP protocols, i.e. \"network browsing\"." + elog "You will have to find printers using zeroconf/avahi instead, enter" + elog "the location manually, or run cups-browsed from net-print/cups-filters" + elog "which re-adds that functionality as a separate daemon." + echo + fi + + if [[ "${REPLACING_VERSIONS}" == "1.6.2-r4" ]]; then + ewarn + ewarn "You are upgrading from the broken version net-print/cups-1.6.2-r4." + ewarn "Please rebuild net-print/cups-filters now to make sure everything is OK." + ewarn + fi +} + +pkg_postrm() { + # Update desktop file database and gtk icon cache (bug 370059) + gnome2_icon_cache_update + fdo-mime_desktop_database_update +} diff --git a/net-print/cups/files/cups-1.7.2-systemd-socket-2.patch b/net-print/cups/files/cups-1.7.2-systemd-socket-2.patch new file mode 100644 index 000000000000..547f31ba3737 --- /dev/null +++ b/net-print/cups/files/cups-1.7.2-systemd-socket-2.patch @@ -0,0 +1,391 @@ +diff -ruN cups-1.7.2.orig/Makedefs.in cups-1.7.2/Makedefs.in +--- cups-1.7.2.orig/Makedefs.in 2013-07-17 17:21:18.000000000 +0200 ++++ cups-1.7.2/Makedefs.in 2014-04-15 13:24:45.594054459 +0200 +@@ -134,6 +134,7 @@ + CXXLIBS = @CXXLIBS@ + DBUS_NOTIFIER = @DBUS_NOTIFIER@ + DBUS_NOTIFIERLIBS = @DBUS_NOTIFIERLIBS@ ++SYSTEMD_UNITS = @SYSTEMD_UNITS@ + DNSSD_BACKEND = @DNSSD_BACKEND@ + DSOFLAGS = -L../cups @DSOFLAGS@ + DSOLIBS = @DSOLIBS@ $(COMMONLIBS) +@@ -141,6 +142,7 @@ + IPPFIND_BIN = @IPPFIND_BIN@ + IPPFIND_MAN = @IPPFIND_MAN@ + LAUNCHDLIBS = @LAUNCHDLIBS@ ++SDLIBS = @SDLIBS@ + LDFLAGS = -L../cgi-bin -L../cups -L../filter -L../ppdc \ + -L../scheduler @LDARCHFLAGS@ \ + @LDFLAGS@ @RELROFLAGS@ @PIEFLAGS@ $(OPTIM) +@@ -232,6 +234,7 @@ + + DEFAULT_LAUNCHD_CONF = @DEFAULT_LAUNCHD_CONF@ + DBUSDIR = @DBUSDIR@ ++SYSTEMDUNITDIR = $(BUILDROOT)@systemdsystemunitdir@ + + + # +diff -ruN cups-1.7.2.orig/config-scripts/cups-systemd.m4 cups-1.7.2/config-scripts/cups-systemd.m4 +--- cups-1.7.2.orig/config-scripts/cups-systemd.m4 1970-01-01 01:00:00.000000000 +0100 ++++ cups-1.7.2/config-scripts/cups-systemd.m4 2014-04-15 13:24:45.592054459 +0200 +@@ -0,0 +1,36 @@ ++dnl ++dnl "$Id: cups-1.7.2-systemd-socket-2.patch,v 1.1 2014/04/15 11:34:10 dilfridge Exp $" ++dnl ++dnl systemd stuff for CUPS. ++ ++dnl Find whether systemd is available ++ ++SDLIBS="" ++AC_ARG_WITH([systemdsystemunitdir], ++ AS_HELP_STRING([--with-systemdsystemunitdir=DIR], [Directory for systemd service files]), ++ [], [with_systemdsystemunitdir=$($PKGCONFIG --variable=systemdsystemunitdir systemd)]) ++if test "x$with_systemdsystemunitdir" != xno; then ++ AC_MSG_CHECKING(for libsystemd-daemon) ++ AC_SUBST([systemdsystemunitdir], [$with_systemdsystemunitdir]) ++ if $PKGCONFIG --exists libsystemd-daemon; then ++ AC_MSG_RESULT(yes) ++ SDCFLAGS=`$PKGCONFIG --cflags libsystemd-daemon` ++ SDLIBS=`$PKGCONFIG --libs libsystemd-daemon` ++ AC_DEFINE(HAVE_SYSTEMD) ++ else ++ AC_MSG_RESULT(no) ++ fi ++fi ++ ++if test -n "$with_systemdsystemunitdir" -a "x$with_systemdsystemunitdir" != xno ; then ++ SYSTEMD_UNITS="cups.service cups.socket cups.path" ++else ++ SYSTEMD_UNITS="" ++fi ++ ++AC_SUBST(SYSTEMD_UNITS) ++AC_SUBST(SDLIBS) ++ ++dnl ++dnl "$Id: cups-1.7.2-systemd-socket-2.patch,v 1.1 2014/04/15 11:34:10 dilfridge Exp $" ++dnl +diff -ruN cups-1.7.2.orig/config.h.in cups-1.7.2/config.h.in +--- cups-1.7.2.orig/config.h.in 2014-02-27 16:57:59.000000000 +0100 ++++ cups-1.7.2/config.h.in 2014-04-15 13:24:45.592054459 +0200 +@@ -451,6 +451,13 @@ + + + /* ++ * Do we have systemd support? ++ */ ++ ++#undef HAVE_SYSTEMD ++ ++ ++/* + * Various scripting languages... + */ + +diff -ruN cups-1.7.2.orig/configure.in cups-1.7.2/configure.in +--- cups-1.7.2.orig/configure.in 2013-07-08 23:15:13.000000000 +0200 ++++ cups-1.7.2/configure.in 2014-04-15 13:24:45.593054459 +0200 +@@ -33,6 +33,7 @@ + sinclude(config-scripts/cups-largefile.m4) + sinclude(config-scripts/cups-dnssd.m4) + sinclude(config-scripts/cups-launchd.m4) ++sinclude(config-scripts/cups-systemd.m4) + sinclude(config-scripts/cups-defaults.m4) + sinclude(config-scripts/cups-scripting.m4) + +@@ -67,6 +68,9 @@ + conf/snmp.conf + cups-config + data/testprint ++ data/cups.service ++ data/cups.socket ++ data/cups.path + desktop/cups.desktop + doc/help/ref-cups-files-conf.html + doc/help/ref-cupsd-conf.html +diff -ruN cups-1.7.2.orig/cups/usersys.c cups-1.7.2/cups/usersys.c +--- cups-1.7.2.orig/cups/usersys.c 2014-03-05 22:22:12.000000000 +0100 ++++ cups-1.7.2/cups/usersys.c 2014-04-15 13:24:45.593054459 +0200 +@@ -1050,7 +1050,7 @@ + struct stat sockinfo; /* Domain socket information */ + + if (!stat(CUPS_DEFAULT_DOMAINSOCKET, &sockinfo) && +- (sockinfo.st_mode & S_IRWXO) == S_IRWXO) ++ (sockinfo.st_mode & (S_IROTH | S_IWOTH)) == (S_IROTH | S_IWOTH)) + cups_server = CUPS_DEFAULT_DOMAINSOCKET; + else + #endif /* CUPS_DEFAULT_DOMAINSOCKET */ +diff -ruN cups-1.7.2.orig/data/Makefile cups-1.7.2/data/Makefile +--- cups-1.7.2.orig/data/Makefile 2013-05-29 13:51:34.000000000 +0200 ++++ cups-1.7.2/data/Makefile 2014-04-15 13:24:45.594054459 +0200 +@@ -100,6 +100,12 @@ + $(INSTALL_DATA) $$file $(DATADIR)/ppdc; \ + done + $(INSTALL_DIR) -m 755 $(DATADIR)/profiles ++ if test "x$(SYSTEMD_UNITS)" != "x" ; then \ ++ $(INSTALL_DIR) -m 755 $(SYSTEMDUNITDIR); \ ++ for file in $(SYSTEMD_UNITS); do \ ++ $(INSTALL_DATA) $$file $(SYSTEMDUNITDIR); \ ++ done; \ ++ fi + + + # +@@ -143,6 +149,9 @@ + -$(RMDIR) $(DATADIR)/data + -$(RMDIR) $(DATADIR)/banners + -$(RMDIR) $(DATADIR) ++ for file in $(SYSTEMD_UNITS); do \ ++ $(RM) $(SYSTEMDUNITDIR)/$$file; \ ++ done + + + # +diff -ruN cups-1.7.2.orig/data/cups.path.in cups-1.7.2/data/cups.path.in +--- cups-1.7.2.orig/data/cups.path.in 1970-01-01 01:00:00.000000000 +0100 ++++ cups-1.7.2/data/cups.path.in 2014-04-15 13:24:45.593054459 +0200 +@@ -0,0 +1,8 @@ ++[Unit] ++Description=CUPS Printer Service Spool ++ ++[Path] ++PathExistsGlob=@CUPS_REQUESTS@/d* ++ ++[Install] ++WantedBy=multi-user.target +diff -ruN cups-1.7.2.orig/data/cups.service.in cups-1.7.2/data/cups.service.in +--- cups-1.7.2.orig/data/cups.service.in 1970-01-01 01:00:00.000000000 +0100 ++++ cups-1.7.2/data/cups.service.in 2014-04-15 13:24:45.594054459 +0200 +@@ -0,0 +1,9 @@ ++[Unit] ++Description=CUPS Printing Service ++ ++[Service] ++ExecStart=@sbindir@/cupsd -f ++ ++[Install] ++Also=cups.socket cups.path ++WantedBy=printer.target +diff -ruN cups-1.7.2.orig/data/cups.socket.in cups-1.7.2/data/cups.socket.in +--- cups-1.7.2.orig/data/cups.socket.in 1970-01-01 01:00:00.000000000 +0100 ++++ cups-1.7.2/data/cups.socket.in 2014-04-15 13:24:45.594054459 +0200 +@@ -0,0 +1,10 @@ ++[Unit] ++Description=CUPS Printing Service Sockets ++ ++[Socket] ++ListenStream=@CUPS_DEFAULT_DOMAINSOCKET@ ++ListenStream=631 ++BindIPv6Only=ipv6-only ++ ++[Install] ++WantedBy=sockets.target +diff -ruN cups-1.7.2.orig/scheduler/Makefile cups-1.7.2/scheduler/Makefile +--- cups-1.7.2.orig/scheduler/Makefile 2013-05-29 13:51:34.000000000 +0200 ++++ cups-1.7.2/scheduler/Makefile 2014-04-15 13:24:45.595054459 +0200 +@@ -381,7 +381,7 @@ + $(CC) $(LDFLAGS) -o cupsd $(CUPSDOBJS) -L. -lcupsmime \ + $(LIBZ) $(SSLLIBS) $(LIBSLP) $(LIBLDAP) $(PAMLIBS) \ + $(LIBPAPER) $(LIBMALLOC) $(SERVERLIBS) $(DNSSDLIBS) $(LIBS) \ +- $(LIBGSSAPI) $(LIBWRAP) ++ $(LIBGSSAPI) $(LIBWRAP) $(SDLIBS) + + cupsd-static: $(CUPSDOBJS) libcupsmime.a ../cups/$(LIBCUPSSTATIC) + echo Linking $@... +@@ -389,7 +389,7 @@ + $(LIBZ) $(SSLLIBS) $(LIBSLP) $(LIBLDAP) $(PAMLIBS) \ + ../cups/$(LIBCUPSSTATIC) $(COMMONLIBS) $(LIBZ) $(LIBPAPER) \ + $(LIBMALLOC) $(SERVERLIBS) $(DNSSDLIBS) $(LIBGSSAPI) \ +- $(LIBWRAP) ++ $(LIBWRAP) $(SDLIBS) + + tls.o: tls-darwin.c tls-gnutls.c tls-openssl.c + +diff -ruN cups-1.7.2.orig/scheduler/client.h cups-1.7.2/scheduler/client.h +--- cups-1.7.2.orig/scheduler/client.h 2013-08-02 00:23:18.000000000 +0200 ++++ cups-1.7.2/scheduler/client.h 2014-04-15 13:24:45.594054459 +0200 +@@ -79,6 +79,9 @@ + int fd; /* File descriptor for this server */ + http_addr_t address; /* Bind address of socket */ + http_encryption_t encryption; /* To encrypt or not to encrypt... */ ++#ifdef HAVE_SYSTEMD ++ int is_systemd; /* Is this a systemd socket? */ ++#endif /* HAVE_SYSTEMD */ + } cupsd_listener_t; + + +diff -ruN cups-1.7.2.orig/scheduler/listen.c cups-1.7.2/scheduler/listen.c +--- cups-1.7.2.orig/scheduler/listen.c 2013-05-29 13:51:34.000000000 +0200 ++++ cups-1.7.2/scheduler/listen.c 2014-04-15 13:24:45.594054459 +0200 +@@ -401,7 +401,11 @@ + lis; + lis = (cupsd_listener_t *)cupsArrayNext(Listeners)) + { +- if (lis->fd != -1) ++ if (lis->fd != -1 ++#ifdef HAVE_SYSTEMD ++ && !lis->is_systemd ++#endif /* HAVE_SYSTEMD */ ++ ) + { + #ifdef WIN32 + closesocket(lis->fd); +diff -ruN cups-1.7.2.orig/scheduler/main.c cups-1.7.2/scheduler/main.c +--- cups-1.7.2.orig/scheduler/main.c 2014-03-21 19:18:56.000000000 +0100 ++++ cups-1.7.2/scheduler/main.c 2014-04-15 13:24:45.595054459 +0200 +@@ -39,6 +39,10 @@ + # endif /* !LAUNCH_JOBKEY_SERVICEIPC */ + #endif /* HAVE_LAUNCH_H */ + ++#ifdef HAVE_SYSTEMD ++#include <systemd/sd-daemon.h> ++#endif /* HAVE_SYSTEMD */ ++ + #if defined(HAVE_MALLOC_H) && defined(HAVE_MALLINFO) + # include <malloc.h> + #endif /* HAVE_MALLOC_H && HAVE_MALLINFO */ +@@ -64,6 +68,9 @@ + static void launchd_checkin(void); + static void launchd_checkout(void); + #endif /* HAVE_LAUNCHD */ ++#ifdef HAVE_SYSTEMD ++static int systemd_checkin(void); ++#endif /* HAVE_SYSTEMD */ + static void parent_handler(int sig); + static void process_children(void); + static void sigchld_handler(int sig); +@@ -553,6 +560,14 @@ + } + #endif /* HAVE_LAUNCHD */ + ++#ifdef HAVE_SYSTEMD ++ /* ++ * If we were started by systemd get the listen sockets file descriptors... ++ */ ++ if (systemd_checkin() < 0) ++ exit(EXIT_FAILURE); ++#endif /* HAVE_SYSTEMD */ ++ + /* + * Startup the server... + */ +@@ -741,6 +756,16 @@ + } + #endif /* HAVE_LAUNCHD */ + ++#ifdef HAVE_SYSTEMD ++ /* ++ * If we were started by systemd get the listen sockets file ++ * descriptors... ++ */ ++ ++ if (systemd_checkin() < 0) ++ exit(EXIT_FAILURE); ++#endif /* HAVE_SYSTEMD */ ++ + /* + * Startup the server... + */ +@@ -1490,6 +1515,102 @@ + } + #endif /* HAVE_LAUNCHD */ + ++#ifdef HAVE_SYSTEMD ++static int ++systemd_checkin(void) ++{ ++ int n, fd; ++ ++ n = sd_listen_fds(0); ++ if (n < 0) ++ { ++ cupsdLogMessage(CUPSD_LOG_ERROR, ++ "systemd_checkin: Failed to acquire sockets " ++ "from systemd - %s -- skipping systemd activation", ++ strerror(-n)); ++ return (1); ++ } ++ ++ if (n == 0) ++ return (0); ++ ++ for (fd = SD_LISTEN_FDS_START; fd < SD_LISTEN_FDS_START + n; fd ++) ++ { ++ http_addr_t addr; ++ socklen_t addrlen = sizeof (addr); ++ int r; ++ cupsd_listener_t *lis; ++ char s[256]; ++ ++ r = sd_is_socket(fd, AF_UNSPEC, SOCK_STREAM, 1); ++ if (r < 0) { ++ cupsdLogMessage(CUPSD_LOG_ERROR, ++ "systemd_checkin: Unable to verify socket type - %s", ++ strerror(-r)); ++ continue; ++ } ++ ++ if (!r) { ++ cupsdLogMessage(CUPSD_LOG_ERROR, ++ "systemd_checkin: Socket not of the right type"); ++ continue; ++ } ++ ++ if (getsockname(fd, (struct sockaddr*) &addr, &addrlen)) ++ { ++ cupsdLogMessage(CUPSD_LOG_ERROR, ++ "systemd_checkin: Unable to get local address - %s", ++ strerror(errno)); ++ continue; ++ } ++ ++ /* ++ * Try to match the systemd socket address to one of the listeners... ++ */ ++ ++ for (lis = (cupsd_listener_t *)cupsArrayFirst(Listeners); ++ lis; ++ lis = (cupsd_listener_t *)cupsArrayNext(Listeners)) ++ if (httpAddrEqual(&lis->address, &addr)) ++ break; ++ ++ if (lis) ++ { ++ cupsdLogMessage(CUPSD_LOG_DEBUG, ++ "systemd_checkin: Matched existing listener %s with fd %d...", ++ httpAddrString(&(lis->address), s, sizeof(s)), fd); ++ } ++ else ++ { ++ cupsdLogMessage(CUPSD_LOG_DEBUG, ++ "systemd_checkin: Adding new listener %s with fd %d...", ++ httpAddrString(&addr, s, sizeof(s)), fd); ++ ++ if ((lis = calloc(1, sizeof(cupsd_listener_t))) == NULL) ++ { ++ cupsdLogMessage(CUPSD_LOG_ERROR, ++ "systemd_checkin: Unable to allocate listener - " ++ "%s.", strerror(errno)); ++ return (-ENOMEM); ++ } ++ ++ cupsArrayAdd(Listeners, lis); ++ ++ memcpy(&lis->address, &addr, sizeof(lis->address)); ++ } ++ ++ lis->fd = fd; ++ lis->is_systemd = 1; ++ ++# ifdef HAVE_SSL ++ if (_httpAddrPort(&(lis->address)) == 443) ++ lis->encryption = HTTP_ENCRYPT_ALWAYS; ++# endif /* HAVE_SSL */ ++ } ++ ++ return (0); ++} ++#endif /* HAVE_SYSTEMD */ + + /* + * 'parent_handler()' - Catch USR1/CHLD signals... |