Skip to content

Commit

Permalink
net-print/cups: Bump to version 2.2.6
Browse files Browse the repository at this point in the history
Package-Manager: Portage-2.3.13, Repoman-2.3.4
  • Loading branch information
Lars Wendler committed Nov 10, 2017
1 parent 635aa9c commit a7e1ca3
Show file tree
Hide file tree
Showing 3 changed files with 368 additions and 0 deletions.
1 change: 1 addition & 0 deletions net-print/cups/Manifest
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
DIST cups-2.1.4.tar.gz 9572653 SHA256 1f182f145489e2454969b221056b6b9bac2beb4e38cd75fa12a9ec15d24d5301 SHA512 5f36d21e1e094323f1811229b452f096f3f0b264757b3c3b1742bbd7ea0059e34d3cd2fbf3b6856d25a04ae1779babafa6d598a8ba249448fce3bf7cafa59aae WHIRLPOOL 217b9024c34369c8839b0a1b2b3924eb00e9b8d87cfd8d50a59ad0c33c1044f53d479246d67dff4598049efd15259def90e4bcddc6c3c20dff38811e159d2c4b
DIST cups-2.2.3.tar.gz 9496214 SHA256 7aa7e8d581f0eb204f75203082403bfa931f8c058bffae71b210800102e5feb5 SHA512 95d8f18fad5b3fd25fe88cc29d159723dcfa735248503d0285949fcd7451f0ccac286719077d0f8a8eda7ee9a053a3d30fa3fd28cb74b59336b6718552d9d2e8 WHIRLPOOL 3aa43f1b83ee62939939bd148c2ab13985143746f7acc3d9c82283e1b096524c7738ae5e1670e717c9329f8d3e917cfcc1c8a7e33af93baa74ea83837d92b5f9
DIST cups-2.2.4.tar.gz 9984903 SHA256 339fb0c0a70a1edf1ef169f2afb21bab92cdd3074adf630352c427b795f20fa7 SHA512 765fe49d1a7a491d7d5db051f73d039d183d0f7a560e9fd89f6732b8a699d3246080e1aaed4ddfed3a9fbdb876b09aa22939d6ee5da2280b1246e4ba933c55f0 WHIRLPOOL 86557f6244b7aa7b19cc67caff7c845291d09699353bd337090111f92b6afb6b9e175ca68df8a15d8915a5a15fd72348805e4ecb7da532a994f46b2c2d4cdada
DIST cups-2.2.6.tar.gz 10317889 SHA256 bf75b33755be92ffe11642dc54365d876c57cee13d6e12507645a8c2d570033a SHA512 ae880aa3f675e0c1ad269200d06be3c25675a45a697c7a8b44e6ec0c30f05f333acca35cd965e667ff066d753df5e59447c2eeaea240e72d2731690b3b9dcf76 WHIRLPOOL 6f7107703701f12349122f45401d4fbfd7c03fae847fcf5760a656b24f2cadf836447491b305bbc1074bf2f17aead3b9544c6d03fd16201dc30b5852ff349662
349 changes: 349 additions & 0 deletions net-print/cups/cups-2.2.6.ebuild
Original file line number Diff line number Diff line change
@@ -0,0 +1,349 @@
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2

EAPI=6

PYTHON_COMPAT=( python2_7 )

inherit autotools gnome2-utils flag-o-matic linux-info xdg-utils \
multilib multilib-minimal 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-r3
EGIT_REPO_URI="https://github.com/apple/cups.git"
if [[ ${PV} != 9999 ]]; then
EGIT_BRANCH=branch-${PV/.9999}
fi
else
SRC_URI="https://github.com/apple/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~m68k-mint"
fi

DESCRIPTION="The Common Unix Printing System"
HOMEPAGE="https://www.cups.org/"

LICENSE="GPL-2"
SLOT="0"
IUSE="acl dbus debug java kerberos lprng-compat pam
python selinux +ssl static-libs systemd +threads usb X xinetd zeroconf"

LANGS="ca cs de es fr it ja ru"
for X in ${LANGS} ; do
IUSE="${IUSE} +linguas_${X}"
done

CDEPEND="
app-text/libpaper
sys-libs/zlib
acl? (
kernel_linux? (
sys-apps/acl
sys-apps/attr
)
)
dbus? ( >=sys-apps/dbus-1.6.18-r1[${MULTILIB_USEDEP}] )
java? ( >=virtual/jre-1.6:* )
kerberos? ( >=virtual/krb5-0-r1[${MULTILIB_USEDEP}] )
!lprng-compat? ( !net-print/lprng )
pam? ( virtual/pam )
python? ( ${PYTHON_DEPS} )
ssl? (
>=net-libs/gnutls-2.12.23-r6:0=[${MULTILIB_USEDEP}]
)
systemd? ( sys-apps/systemd )
usb? ( virtual/libusb:1 )
X? ( x11-misc/xdg-utils )
xinetd? ( sys-apps/xinetd )
zeroconf? ( >=net-dns/avahi-0.6.31-r2[${MULTILIB_USEDEP}] )
abi_x86_32? (
!<=app-emulation/emul-linux-x86-baselibs-20140508
!app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)]
)
"

DEPEND="${CDEPEND}
>=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}]
"

RDEPEND="${CDEPEND}
selinux? ( sec-policy/selinux-cups )
"

PDEPEND=">=net-print/cups-filters-1.0.43"

REQUIRED_USE="
python? ( ${PYTHON_REQUIRED_USE} )
usb? ( threads )
"

# upstream includes an interactive test which is a nono for gentoo
RESTRICT="test"

# systemd-socket.patch from Fedora
PATCHES=(
"${FILESDIR}/${PN}-2.2.0-dont-compress-manpages.patch"
"${FILESDIR}/${PN}-2.2.6-fix-install-perms.patch"
"${FILESDIR}/${PN}-1.4.4-nostrip.patch"
"${FILESDIR}/${PN}-2.0.2-rename-systemd-service-files.patch"
"${FILESDIR}/${PN}-2.0.1-xinetd-installation-fix.patch"
)

MULTILIB_CHOST_TOOLS=(
/usr/bin/cups-config
)

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; this should now work in most cases (bug 501122)
if use usb; then
if linux_chkconfig_present USB_PRINTER; then
elog "Your USB printers will be managed via libusb. In case you run into problems, "
elog "please try disabling USB_PRINTER support in your kernel or blacklisting the"
elog "usblp kernel module."
elog "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() {
default

# Remove ".SILENT" rule for verbose output (bug 524338).
sed 's#^.SILENT:##g' -i "${S}"/Makedefs.in || die "sed failed"

# Fix install-sh, posix sh does not have 'function'.
sed 's#function gzipcp#gzipcp()#g' -i "${S}/install-sh"

AT_M4DIR=config-scripts eaclocal
eautoconf

# custom Makefiles
multilib_copy_sources
}

multilib_src_configure() {
export DSOFLAGS="${LDFLAGS}"

einfo LANGS=\"${LANGS}\"
einfo LINGUAS=\"${LINGUAS}\"

local myeconfargs=()

# explicitly specify compiler wrt bug 524340
#
# need to override KRB5CONFIG for proper flags
# https://github.com/apple/cups/issues/4423
myeconfargs+=(
CC="$(tc-getCC)"
CXX="$(tc-getCXX)"
KRB5CONFIG="${EPREFIX}"/usr/bin/${CHOST}-krb5-config
--libdir="${EPREFIX}"/usr/$(get_libdir)
--localstatedir="${EPREFIX}"/var
--with-exe-file-perm=755
--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
--with-xinetd="${EPREFIX}"/etc/xinetd.d
$(multilib_native_use_enable acl)
$(use_enable dbus)
$(use_enable debug)
$(use_enable debug debug-guards)
$(use_enable debug debug-printfs)
$(multilib_native_use_with java)
$(use_enable kerberos gssapi)
$(multilib_native_use_enable pam)
$(multilib_native_use_with python python "${PYTHON}")
$(use_enable static-libs static)
$(use_enable threads)
$(use_enable ssl gnutls)
$(use_enable systemd)
$(multilib_native_use_enable usb libusb)
$(use_enable zeroconf avahi)
--disable-dnssd
--without-perl
--without-php
$(multilib_is_native_abi && echo --enable-libpaper || echo --disable-libpaper)
)

if tc-is-static-only; then
myeconfargs+=(
--disable-shared
)
fi

econf "${myeconfargs[@]}"

# 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

# additional path corrections needed for prefix, see bug 597728
sed -i -e "s:ICONDIR.*:ICONDIR = ${EPREFIX}/usr/share/icons:" Makedefs || die
sed -i -e "s:INITDIR.*:INITDIR = ${EPREFIX}/etc:" Makedefs || die
sed -i -e "s:DBUSDIR.*:DBUSDIR = ${EPREFIX}/etc/dbus-1:" Makedefs || die
sed -i -e "s:MENUDIR.*:MENUDIR = ${EPREFIX}/usr/share/applications:" Makedefs || die
}

multilib_src_compile() {
if multilib_is_native_abi; then
default
else
emake libs
fi
}

multilib_src_test() {
multilib_is_native_abi && default
}

multilib_src_install() {
if multilib_is_native_abi; then
emake BUILDROOT="${D}" install
else
emake BUILDROOT="${D}" install-libs install-headers
dobin cups-config
fi
}

multilib_src_install_all() {
dodoc {CHANGES,CREDITS,README}.md

# 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-r3 "${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
# always configure with --with-xinetd= and clean up later,
# bug #525604
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 file is now provided by cups-filters:
rm -r "${ED}"/usr/share/cups/banners || 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
xdg_desktop_database_update

local v

for v in ${REPLACING_VERSIONS}; do
if ! version_is_at_least 2.2.2-r2 ${v}; then
echo
ewarn "The cupsd init script switched to using pidfiles. Shutting down"
ewarn "cupsd will fail the next time. To fix this, please run once as root"
ewarn " killall cupsd ; /etc/init.d/cupsd zap ; /etc/init.d/cupsd start"
echo
break
fi
done

for v in ${REPLACING_VERSIONS}; do
echo
elog "For information about installing a printer and general cups setup"
elog "take a look at: https://wiki.gentoo.org/wiki/Printing"
echo
break
done
}

pkg_postrm() {
# Update desktop file database and gtk icon cache (bug 370059)
gnome2_icon_cache_update
xdg_desktop_database_update
}
18 changes: 18 additions & 0 deletions net-print/cups/files/cups-2.2.6-fix-install-perms.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
--- cups-2.2.6/Makedefs.in
+++ cups-2.2.6/Makedefs.in
@@ -49,12 +49,12 @@
#

INSTALL_BIN = @LIBTOOL_INSTALL@ $(INSTALL) -c -m @CUPS_EXE_FILE_PERM@ @INSTALL_STRIP@
-INSTALL_COMPDATA = $(INSTALL) -c -m 444 @INSTALL_GZIP@
+INSTALL_COMPDATA = $(INSTALL) -c -m 644 @INSTALL_GZIP@
INSTALL_CONFIG = $(INSTALL) -c -m @CUPS_CONFIG_FILE_PERM@
-INSTALL_DATA = $(INSTALL) -c -m 444
+INSTALL_DATA = $(INSTALL) -c -m 644
INSTALL_DIR = $(INSTALL) -d
INSTALL_LIB = @LIBTOOL_INSTALL@ $(INSTALL) -c -m @CUPS_EXE_FILE_PERM@ @INSTALL_STRIP@
-INSTALL_MAN = $(INSTALL) -c -m 444
+INSTALL_MAN = $(INSTALL) -c -m 644
INSTALL_SCRIPT = $(INSTALL) -c -m @CUPS_EXE_FILE_PERM@

#

0 comments on commit a7e1ca3

Please sign in to comment.