diff options
author | V3n3RiX <venerix@koprulu.sector> | 2022-06-29 12:04:12 +0100 |
---|---|---|
committer | V3n3RiX <venerix@koprulu.sector> | 2022-06-29 12:04:12 +0100 |
commit | 0f558761aa2dee1017b4751e4017205e015a9560 (patch) | |
tree | 037df795519468a25d9362b4e95cdaeb84eb1cf9 /net-print/cups/cups-9999.ebuild | |
parent | 752d6256e5204b958b0ef7905675a940b5e9172f (diff) |
gentoo resync : 29.12.2022
Diffstat (limited to 'net-print/cups/cups-9999.ebuild')
-rw-r--r-- | net-print/cups/cups-9999.ebuild | 142 |
1 files changed, 75 insertions, 67 deletions
diff --git a/net-print/cups/cups-9999.ebuild b/net-print/cups/cups-9999.ebuild index af141c8f5d36..8583dd21407e 100644 --- a/net-print/cups/cups-9999.ebuild +++ b/net-print/cups/cups-9999.ebuild @@ -1,25 +1,23 @@ # Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=7 +EAPI=8 -inherit autotools flag-o-matic linux-info xdg multilib-minimal pam systemd toolchain-funcs +inherit autotools linux-info xdg multilib-minimal optfeature pam toolchain-funcs MY_PV="${PV/_beta/b}" MY_PV="${MY_PV/_rc/rc}" MY_PV="${MY_PV/_p/op}" MY_P="${PN}-${MY_PV}" -if [[ ${PV} == *9999 ]]; then +if [[ ${PV} == *9999 ]] ; then inherit git-r3 -# EGIT_REPO_URI="https://github.com/apple/cups.git" EGIT_REPO_URI="https://github.com/OpenPrinting/cups.git" [[ ${PV} != 9999 ]] && EGIT_BRANCH=branch-${PV/.9999} else -# SRC_URI="https://github.com/apple/cups/releases/download/v${MY_PV}/${MY_P}-source.tar.gz" SRC_URI="https://github.com/OpenPrinting/cups/releases/download/v${MY_PV}/cups-${MY_PV}-source.tar.gz" - if [[ "${PV}" != *_beta* ]] && [[ "${PV}" != *_rc* ]] ; then - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86" + if [[ ${PV} != *_beta* ]] && [[ ${PV} != *_rc* ]] ; then + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" fi fi @@ -28,11 +26,11 @@ HOMEPAGE="https://www.cups.org/ https://github.com/OpenPrinting/cups" LICENSE="Apache-2.0" SLOT="0" -IUSE="acl dbus debug kerberos pam selinux +ssl static-libs systemd +threads usb X xinetd zeroconf" +IUSE="acl dbus debug kerberos openssl pam selinux +ssl static-libs systemd test usb X xinetd zeroconf" -REQUIRED_USE="usb? ( threads )" -# upstream includes an interactive test which is a nono for gentoo -RESTRICT="test" +# As of 2.4.2, they don't actually seem to be interactive (they pass some flags +# by default to input for us), but they fail on some greyscale issue w/ poppler? +RESTRICT="!test? ( test ) test" BDEPEND=" acct-group/lp @@ -52,12 +50,15 @@ DEPEND=" kerberos? ( >=virtual/krb5-0-r1[${MULTILIB_USEDEP}] ) pam? ( sys-libs/pam ) !pam? ( virtual/libcrypt:= ) - ssl? ( >=net-libs/gnutls-2.12.23-r6:0=[${MULTILIB_USEDEP}] ) + ssl? ( + !openssl? ( >=net-libs/gnutls-2.12.23-r6:0=[${MULTILIB_USEDEP}] ) + openssl? ( dev-libs/openssl:=[${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}] ) + zeroconf? ( >=net-dns/avahi-0.6.31-r2[dbus,${MULTILIB_USEDEP}] ) " RDEPEND="${DEPEND} acct-group/lp @@ -67,8 +68,9 @@ RDEPEND="${DEPEND} PDEPEND=">=net-print/cups-filters-1.0.43" PATCHES=( - "${FILESDIR}/${PN}-2.2.6-fix-install-perms.patch" - "${FILESDIR}/${PN}-1.4.4-nostrip.patch" + "${FILESDIR}/${PN}-2.4.1-nostrip.patch" + "${FILESDIR}/${PN}-2.4.1-user-AR.patch" + "${FILESDIR}/${PN}-2.4.2-no-fortify-override.patch" ) MULTILIB_CHOST_TOOLS=( @@ -84,7 +86,7 @@ pkg_setup() { 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) + # 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, " @@ -93,7 +95,6 @@ pkg_setup() { 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." @@ -113,31 +114,21 @@ pkg_setup() { src_prepare() { default - # Remove ".SILENT" rule for verbose output (bug 524338). + # Remove ".SILENT" rule for verbose output (bug #524338). sed 's#^.SILENT:##g' -i Makedefs.in || die - # Fix install-sh, posix sh does not have 'function'. - sed 's#function gzipcp#gzipcp()#g' -i install-sh || die - - # Do not add -Werror even for live ebuilds - sed '/WARNING_OPTIONS/s@-Werror@@' \ - -i config-scripts/cups-compiler.m4 || die - - AT_M4DIR=config-scripts eaclocal - eautoconf + AT_M4DIR="config-scripts" eautoreconf - # custom Makefiles + # Custom Makefiles multilib_copy_sources } multilib_src_configure() { export DSOFLAGS="${LDFLAGS}" - einfo LINGUAS=\"${LINGUAS}\" - - # explicitly specify compiler wrt bug 524340 + # Explicitly specify compiler wrt bug #524340 # - # need to override KRB5CONFIG for proper flags + # Need to override KRB5CONFIG for proper flags # https://github.com/apple/cups/issues/4423 local myeconfargs=( CC="$(tc-getCC)" @@ -145,12 +136,21 @@ multilib_src_configure() { KRB5CONFIG="${EPREFIX}"/usr/bin/${CHOST}-krb5-config --libdir="${EPREFIX}"/usr/$(get_libdir) --localstatedir="${EPREFIX}"/var + # Follow Fedora permission setting + --with-cupsd-file-perm=0755 --with-exe-file-perm=755 + --with-log-file-perm=0640 + # Used by Debian, also prevents printers from getting + # disabled and users not knowing how to re-enable them + --with-error-policy=retry-job + # Used in Debian and Fedora + --enable-sync-on-close + # --with-rundir="${EPREFIX}"/run/cups + --with-pkgconfpath="${EPREFIX}"/usr/$(get_libdir)/pkgconfig --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) @@ -161,30 +161,40 @@ multilib_src_configure() { $(use_enable kerberos gssapi) $(multilib_native_use_enable pam) $(use_enable static-libs static) - $(use_enable threads) - $(use_enable ssl gnutls) - $(use_enable systemd) + $(use_enable test unit-tests) + # USE="ssl" => gnutls + # USE="ssl openssl" => openssl + $(use_with ssl tls $(usex openssl openssl gnutls)) + $(use_with systemd ondemand systemd) $(multilib_native_use_enable usb libusb) - $(use_enable zeroconf avahi) - --disable-dnssd + $(use_with zeroconf dnssd avahi) $(multilib_is_native_abi && echo --enable-libpaper || echo --disable-libpaper) ) + # Handle empty LINGUAS properly, bug #771162 + if [[ -n "${LINGUAS+x}" ]] ; then + myeconfargs+=( + --with-languages="${LINGUAS}" + ) + fi + if tc-is-static-only; then myeconfargs+=( --disable-shared ) fi + # Install in /usr/libexec always, instead of using /usr/lib/cups, as that + # makes more sense when facing multilib support. + sed -i -e 's:CUPS_SERVERBIN="$exec_prefix/lib/cups":CUPS_SERVERBIN="$exec_prefix/libexec/cups":g' configure ||die + 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 + # Additional path corrections needed for prefix, see bug #597728 sed \ -e "s:ICONDIR.*:ICONDIR = ${EPREFIX}/usr/share/icons:" \ -e "s:INITDIR.*:INITDIR = ${EPREFIX}/etc:" \ @@ -202,6 +212,12 @@ multilib_src_compile() { } multilib_src_test() { + # Avoid using /tmp + export CUPS_TESTBASE="${T}"/cups-tests + + mkdir "${T}"/cups-tests || die + + # We only build some of CUPS for multilib, so can't run the tests. multilib_is_native_abi && default } @@ -217,70 +233,64 @@ multilib_src_install() { multilib_src_install_all() { dodoc {CHANGES,CREDITS,README}.md - # move the default config file to docs + # Move the default config file to docs dodoc "${ED}"/etc/cups/cupsd.conf.default rm "${ED}"/etc/cups/cupsd.conf.default || die - # clean out cups init scripts - rm -r "${ED}"/etc/{init.d/cups,rc*,pam.d/cups} || die + # Clean out cups init scripts + rm -r "${ED}"/etc/{init.d/cups,rc*} || die - # install our init script + # Install our init script local neededservices=( $(usex zeroconf avahi-daemon '') $(usex dbus dbus '') ) [[ -n ${neededservices[@]} ]] && neededservices="need ${neededservices[@]}" - cp "${FILESDIR}"/cupsd.init.d-r3 "${T}"/cupsd || die + cp "${FILESDIR}"/cupsd.init.d-r4 "${T}"/cupsd || die sed -i -e "s/@neededservices@/${neededservices}/" "${T}"/cupsd || die doinitd "${T}"/cupsd - if use pam; then + if use pam ; then + rm "${ED}"/etc/pam.d/${PN} || die pamd_mimic_system cups auth account fi if use xinetd ; then - # correct path + # 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 + # 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 + # Write permission for file owner (root), bug #296221 fperms u+w /etc/xinetd.d/cups-lpd else - # always configure with --with-xinetd= and clean up later, + # Always configure with --with-xinetd= and clean up later, # bug #525604 rm -r "${ED}"/etc/xinetd.d || die fi - keepdir /usr/libexec/cups/driver /usr/share/cups/{model,profiles} \ - /var/cache/cups /var/log/cups /var/spool/cups/tmp - keepdir /etc/cups/{interfaces,ppd,ssl} if ! use X ; then rm -r "${ED}"/usr/share/applications || die fi - # create /etc/cups/client.conf, bug #196967 and #266678 + # Create /etc/cups/client.conf, bug #196967 and bug #266678 echo "ServerName ${EPREFIX}/run/cups/cups.sock" >> "${ED}"/etc/cups/client.conf - # the following file is now provided by cups-filters: + # The following file is now provided by cups-filter: rm -r "${ED}"/usr/share/cups/banners || die - # the following are created by the init script - rm -r "${ED}"/var/cache/cups || die + # The following are created by the init script + rm -r "${ED}"/var/cache || die rm -r "${ED}"/run || die -} -pkg_preinst() { - xdg_pkg_preinst + keepdir /usr/libexec/cups/driver /usr/share/cups/{model,profiles} /var/log/cups /var/spool/cups/tmp } pkg_postinst() { - # Update desktop file database and gtk icon cache (bug 370059) xdg_pkg_postinst - local v for v in ${REPLACING_VERSIONS}; do @@ -298,9 +308,7 @@ pkg_postinst() { elog "take a look at: https://wiki.gentoo.org/wiki/Printing" break done -} -pkg_postrm() { - # Update desktop file database and gtk icon cache (bug 370059) - xdg_pkg_postrm + optfeature_header "CUPS may need installing the following for certain features to work:" + use zeroconf && optfeature "local hostname resolution using a hostname.local naming scheme" sys-auth/nss-mdns } |