From 0f558761aa2dee1017b4751e4017205e015a9560 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Wed, 29 Jun 2022 12:04:12 +0100 Subject: gentoo resync : 29.12.2022 --- net-print/cups/Manifest | 22 +- net-print/cups/cups-2.3.3-r4.ebuild | 336 ----------- net-print/cups/cups-2.3.3_p2-r2.ebuild | 308 ---------- net-print/cups/cups-2.3.3_p2-r3.ebuild | 2 +- net-print/cups/cups-2.4.1.ebuild | 320 ++++++++++ net-print/cups/cups-2.4.2-r1.ebuild | 314 ++++++++++ net-print/cups/cups-9999.ebuild | 142 ++--- .../files/0001-Fix-some-web-interface-issues.patch | 667 +++++++++++++++++++++ .../cups/files/0001-Footer-message-corrected.patch | 89 +++ .../files/0001-cups-fix-uninit-value-jump.patch | 18 + ...ps-tls-gnutls.c-Use-always-GNUTLS_SHUT_WR.patch | 55 ++ net-print/cups/files/cups-2.4.1-nostrip.patch | 11 + net-print/cups/files/cups-2.4.1-resolve-uri.patch | 31 + net-print/cups/files/cups-2.4.1-user-AR.patch | 21 + .../files/cups-2.4.2-no-fortify-override.patch | 18 + net-print/cups/files/cupsd.init.d-r3 | 22 - net-print/cups/metadata.xml | 24 +- 17 files changed, 1646 insertions(+), 754 deletions(-) delete mode 100644 net-print/cups/cups-2.3.3-r4.ebuild delete mode 100644 net-print/cups/cups-2.3.3_p2-r2.ebuild create mode 100644 net-print/cups/cups-2.4.1.ebuild create mode 100644 net-print/cups/cups-2.4.2-r1.ebuild create mode 100644 net-print/cups/files/0001-Fix-some-web-interface-issues.patch create mode 100644 net-print/cups/files/0001-Footer-message-corrected.patch create mode 100644 net-print/cups/files/0001-cups-fix-uninit-value-jump.patch create mode 100644 net-print/cups/files/0001-cups-tls-gnutls.c-Use-always-GNUTLS_SHUT_WR.patch create mode 100644 net-print/cups/files/cups-2.4.1-nostrip.patch create mode 100644 net-print/cups/files/cups-2.4.1-resolve-uri.patch create mode 100644 net-print/cups/files/cups-2.4.1-user-AR.patch create mode 100644 net-print/cups/files/cups-2.4.2-no-fortify-override.patch delete mode 100644 net-print/cups/files/cupsd.init.d-r3 (limited to 'net-print/cups') diff --git a/net-print/cups/Manifest b/net-print/cups/Manifest index 50dd1fb51beb..f8730d0e951b 100644 --- a/net-print/cups/Manifest +++ b/net-print/cups/Manifest @@ -1,3 +1,7 @@ +AUX 0001-Fix-some-web-interface-issues.patch 26176 BLAKE2B 98f62d55b5e3d76388ecef69f3bc984ca047b185fd09ca17759617003ceed464310c4f2e543434cb2dc7ebdb27c01b3de9a12b17c1ca44052b913da0abb0a788 SHA512 16ab69029f868d009208931d087a5be15d2c2f33eaea8321fc6e76e84785cd4109afb3d9d9bb8ed770c324e136d5b5e22c989de18d8853a938554cfb8694b370 +AUX 0001-Footer-message-corrected.patch 4298 BLAKE2B e5c2d4135b65326d33ec64a1b476279d853ea721a10749274ae1ff0124a9b0298ae32ffbc66efd71397f1b90e0e5eb4a6788b37f9fb4ade1b4d4c5a80a57677b SHA512 413d354f3fb4d755766184abfe2b8e4bc5b79536561c5a436310cc491fac335cf241e3e0ba02111078e9a0a0c0b94d8b9929f055bf0af1d57d06ff634eb001c0 +AUX 0001-cups-fix-uninit-value-jump.patch 608 BLAKE2B d980d4331dc298008352d51b0ed167b6dbd6e87084f6673c8592c946d7e6960375199fc2d7709e3fad0d522b2ba64fe3d3c4ff9ea20b412f6877d220ee35f4c4 SHA512 c7a0fdcfb3cbf57a8513af79779dcdcd443138d9b12ab4145657c0704dc5441a7ea39b0d1d66126804de38313bb0f960d3a06b0e893a90d3e24417a1097561a7 +AUX 0001-cups-tls-gnutls.c-Use-always-GNUTLS_SHUT_WR.patch 2253 BLAKE2B ef06cd9bd348c5b923dc847cb881b9c3008e9ce989345055a159b67668e8fff8a1c1cacf2dbb7dfec7a14fd66bc9706c5f5e2cae2f96675ebf00af23571057c5 SHA512 e49c311e6383702d2a2ccbf2ba54d6a143a2dbbf2fac08f4b35041038045bd396d9eeedb7ae88e2a4a2f56e1b5b3b85fa3f2d83e0f4b0b4571f3804914833894 AUX cups-1.4.4-nostrip.patch 487 BLAKE2B efc4b3db44b65a1b0c67c472e467d80b486969396a48443b8e6be007ba991bdf6830b1e36965bae053753440528e1aa58d792c4f42bea8464ffed1179f049960 SHA512 10f46e841aa5646f40564e92b6c5b90a5d27702ea8a4dd8652cfd39834be54feec20a2c8d4fea663b90685865deae17851e57161aad7ff250916ce4accbb01fa AUX cups-2.0.1-xinetd-installation-fix.patch 332 BLAKE2B 5688eeabaea0d2db636012e658f5cbbf6793138653df731c24c89149553994a2db423f85251385628de2f467597af98baa91ab954f63f77b5f7eec037d8db7af SHA512 e4111fb05ac381f5639868464734fbbc9296252bda288fc415274cb0eda37ff57d4d2816e34960a3e30a1c73c3aa6911267a5d2c29f1480d8e44fdb6e95f3836 AUX cups-2.0.2-rename-systemd-service-files.patch 2092 BLAKE2B c34d8d6c5295aea6eaeb5aea05dcf32a9a554d445ae1b57b8d33386394e1d3f414095d89dc55eb0d4c5678e2985c37451e64101e6426bc2ad26aa50404b51844 SHA512 409a7508dccbbcfca60ba448f8cea84ecb2710890e7655c67b8292c34c8d555884e7e82e70c2c700691af1a786ce0d8c8c799b6fb471a18f1b87eda99eacd9cb @@ -8,12 +12,16 @@ AUX cups-2.3.3-manpage.patch 620 BLAKE2B c22a6f3f03d6d1762b7bb847ab246cf03311383 AUX cups-2.3.3-no-libtool.patch 912 BLAKE2B 14c19e8a215e2a56af387c6cf904a6a2a11de41a730d4a272a30d37ec98ee031be5e24458ad9a82c221dc76c71a4550055fedd877455752a1b7e925eb684f4cb SHA512 a12be37b290e2e2d875d20d1aec426ce0bfec4980ffa321a4232a3c8ffe5c8c7360c2882915b370236133168b54abfcdb729acdfb5ef2d08f706f981bf7c1214 AUX cups-2.3.3-timeout.patch 979 BLAKE2B d94473d42b6b7bf454d275b51835777f50d7fbf847a94c6c7a6078d93b5d07249d965217be146adc4f7b0703dbf3a16899535c4cb9486bdb42b16472b2fa76a1 SHA512 89db33ffd331beb42350c44474b648ef8f81d21c08a638a22de1cfedbf5d1d987d528f9e3492b66a6f91b1a0e6ca43b58b7d2ffe5c3dc5ddcb86137f32791ce4 AUX cups-2.3.3-user-AR.patch 593 BLAKE2B 4794e162b156075a507707296a045226af5f6342870fb7173017ff530aa052b4467cc64c03cfc80d4e2d3500e584e6c313414ed7237acaeda8a8107c3ed2e65a SHA512 ec570a3a7bd6710f50e8e702755a106158f8a2fd9b7e2efad6e345f12210bbd79e450f60ae0d30ae838f1abf1b4c7fd89d13363d2e4bbacd653177b60f05786c -AUX cupsd.init.d-r3 584 BLAKE2B f503663a59673209fc6c161aed3cc214cab2b3e68692078dc47c1a833fe141225f48f2d07dab65fc19ea68e54bb7c9a7c94f6db1dac443111d04b392fd7855a4 SHA512 ace66b46c17f99f8c6487188c14e8a1baf7acad602156b88cdae7fb4738c163a045240a1b28c6db4af86caa317723357186812eed81f9553a9ef3517c966c6b3 +AUX cups-2.4.1-nostrip.patch 411 BLAKE2B 67b7ebe76e3586ef819a0dfee5729781ee6d5ece9ea3ff2e6805ed5bffd7cdaac039e62bbb0c47ef663fae46ae42041e025ada586f978301077124ff0ce85712 SHA512 6e792b90dbba541142f505563d37f5a567ef8469e298e2b373a9ac1900b31ffde3050b995d16fcbbeed792252b933e75c7517419a5907f9ce69e22e9c5656ff0 +AUX cups-2.4.1-resolve-uri.patch 1481 BLAKE2B 6b4b7c8cbbdad3e5c434c55f41de8a18891d393fbf40cc7926600f3cf8f38ac82831ccc94387418504eeb4c6d017bf6f8e377dac9ad3a61f7329c9eb28af8747 SHA512 7d8c4f43fdd8253bc4224416b19b9087f9d924e64372f24e35fbe641fe8187695ed8463de3656d373d5685cce4dd4680f1491f2b328f54c5899667eb161d361e +AUX cups-2.4.1-user-AR.patch 567 BLAKE2B 06e91a7601ebbe534808b310e80d482b0dc0b3df0d2c738979fc0917a6c497341dbb0c5f12eedc19b58a149546bab26c13324bc4d1916966d9628413a18d065f SHA512 136871e48c19be011e368dc004c39d104405a2f6729b7612c3c6355d6e1bb8dc112909c850cb58bffcbcf1efe0d4b1c3cfa3083bb63dbfc512dc93a2d0379a9e +AUX cups-2.4.2-no-fortify-override.patch 637 BLAKE2B d5bed1249fa6e55884d0a8cb6a60e850c01fb50ba367d1c22e2363795bf39faa09f71f4d62d5b0f91e24ec728ae97962feac63283d35834b97280d5d7516bfd4 SHA512 f39ece2d8e46c627c79bae65032867fdaa3fec1e03909d354746e666c15d7d5692c64b9f8249eb9610e5d40ed43c3a8f7e0552b1968683f1e31e2ddcfb6f1a19 AUX cupsd.init.d-r4 577 BLAKE2B 48508b10a13ee73e905b3d061275f5cb12ebdc2175ce46affb2007d4a5d007719a147f490e7c17a3e9a5211b82d9b89be7111921b1c9d991a6fc4c457f63eae0 SHA512 23ec5714764f2bac4105130efe6f79a508a352ecb45ab3f6e08042b156af05065330b2ac85615d0ce792a4dcd8f5230302dba9d1a96fca84c11d8bf2573ccc0e -DIST cups-2.3.3-source.tar.gz 8140741 BLAKE2B 427e6ee3602aec33ac336d9b2c6c8eb270f2996371f0edd3d69e411b94b2e93fc58a0032ba9f6d048f2c58a1c6b48f742671b4011cd725b882adfcc06ed7fd8a SHA512 7d6f4a01794c5599cc71525778ea785fd17271c31ac146a56e8fc374a88f99e4035d018dae48e37e541455e9cc93b302e892b2e93ec558c1b4bfc46dad68c92d DIST cups-2.3.3op2-source.tar.gz 7993205 BLAKE2B 8c115b91ec185a4820578561aaf681238280b22b5c68b68c484ffbd0fa3c4ec1beb4d426e3f0e33192e32bce78aa8b7f50ed6799732a467fa9e75c34787057ee SHA512 db27dd6fb616bd7ad895b2bdf4ea7b010501358a50dc8f2e7e29558d1cfc088a572b1b35ac512654d3ed410c84df87dc34ca636533a4499117253915d4763117 -EBUILD cups-2.3.3-r4.ebuild 9576 BLAKE2B 4f43af0f9fbf852ee1de861e40c5f14e500c0423ddfc876a1d8f803e57909f77ecc38476e6ae2f5e927b55ebf8d1a31fab586a1b9a4cd5f593c292bd622ed504 SHA512 b685fec0e66bf4d80d5ffa87c7e51b0265caf3bc057ebd023818363fed272a2ee3b2f1fd98f52868312eed40023dc06bab7a1d21e75b09c787a3959d3dde4186 -EBUILD cups-2.3.3_p2-r2.ebuild 8946 BLAKE2B 903d051c6d0150ecfce6a77c489682b53eb78ee547169ab8ab476dc7e3b66d464133b14ca2f6cf882724d41d33639ff5b9da8c4f7dfe3361c14866c045ef9c64 SHA512 7f4edabf8d7e99717560459bb78118341a041e7459debe9caa56e27de99a9dc591472243eb55d74d1ed484e42e15e9279710b38ef0688ab06377e1884eb615a9 -EBUILD cups-2.3.3_p2-r3.ebuild 9564 BLAKE2B 28af05108474223cc54c32b24f4d843b784235072232a118af14a2549482ab0b2754387e14a9ce95423bbbb29daec1528e8c73f6dd2d9b268a204fa7d52656ce SHA512 feaa03a2882670572295e750ed0950e0b384a5f0a51e864a47bd8ea7c4fe40dc6fa6e5920e4d868cb24c67218669b842fdd7f887f68d87e0422e50d56277c7a5 -EBUILD cups-9999.ebuild 8880 BLAKE2B 81fffe1f180384a312aec3a6bc5d1cc30fe3d4e7105fb32c268d718fd63a48e6db8acf2cb406ea3f1fd1a2f0fce2afeeae1add677e636736ddbfa9d998488213 SHA512 74feb5fcb658d0bdc7540b650f47cb5e950178cbb262bed39ac1faf47f822d7515c328eed0dfdacd827802a2e6851718c6b8fe737a8c5ef9c98001b751b71295 -MISC metadata.xml 528 BLAKE2B 5dedc19570fc6fa2c8ddf6578b30ec8fb1820fb5deb8e2b62cb0897b1f4805086b59cab33bc5e5a8992f4ce2995fba42ab441a77ccf8889b5c4b05da18fdd966 SHA512 c12285daaf0d3a141e7caead57525e8130fcf6859479ae275ed214a508934b15b4697a0cb3f0f5fb90c2931a1727b6919116f1651af6f5dd7eff2eaef7b41803 +DIST cups-2.4.1-source.tar.gz 8113914 BLAKE2B 690d9d92f9bc84c2bb360699191cd67e1489ffc3ab219376dfc1a8795379950c95bf58c2033a0dbd2918262c5d104e21e31c4585cb35d229b0fac6cf4967bfd7 SHA512 74e83728fcc3baf709176442b26711250fd4d4ede1e81e35b02a5607711067e28cd5a05d5bc3337953f6b2236c5a429b13f3a7f1218a08a2d3c30a8c9b0d96fd +DIST cups-2.4.2-source.tar.gz 8128785 BLAKE2B 97053feb502d4fdc28810b806000b6c84a6795d5adcec0789e73e5477d5802d46a99381366d16219f627166df088f6decde5c144bd0c38b5745815dc1e426bc5 SHA512 07474643bffe11c79b3226b70d28f1bb803dc19daa10711938cea303feacdcce3945ba8ff0334d94fdd5922ea7d6bf37a28c1ea62cce8ce946c2f90a0faf002f +EBUILD cups-2.3.3_p2-r3.ebuild 9571 BLAKE2B 5afeb6352867c9069d4446c83e854f790b1e13b6a88a73f1fb72b27e139f2694435ac2db5328d031d91408f31ccbde60e7b29287dc402437e29831199e8ea295 SHA512 0265ec3ab43990be1917cf6e021049cf5fcae7e17a2e968ada26eef5a1e0f5cd9a2e5221781c2800382b943c08376947337e43aca6e6052e62fce28c2d448e38 +EBUILD cups-2.4.1.ebuild 9851 BLAKE2B 180f6df4690f747539c1dec368923b1e9ceca3f8fb5069ef7726f31244423c5bbf93866f88313f9176f098257441b6a64d9326547dd6dd0827175f9e854391b4 SHA512 90b988b4f7ceae8f4f6e86a02ade98553380ab69b43da589d9cdcc1a6d4fab87a3ea1a375c8fc30b0158bd5085606b3cfe69c8b8fe2dd1f539dbcf0e78a33950 +EBUILD cups-2.4.2-r1.ebuild 9441 BLAKE2B 0c3e0d14e8315bc487196ff8ed7f3a8ee79db6ec9943772982af652e0f104b301c0546a69a4d820231df362a5c15d1d00247b2f1321010dd6695adec26c125fb SHA512 1f194f9dde815b4f721fa8ec2181fca69a07e0a6ae0298b16be40148575b2d911aed3ed6af188e66850ccf6097cf1b45ee868bbc0311a9582c410198115f5eff +EBUILD cups-9999.ebuild 9441 BLAKE2B 0c3e0d14e8315bc487196ff8ed7f3a8ee79db6ec9943772982af652e0f104b301c0546a69a4d820231df362a5c15d1d00247b2f1321010dd6695adec26c125fb SHA512 1f194f9dde815b4f721fa8ec2181fca69a07e0a6ae0298b16be40148575b2d911aed3ed6af188e66850ccf6097cf1b45ee868bbc0311a9582c410198115f5eff +MISC metadata.xml 527 BLAKE2B 04a32175e666165226eaa97785a6b9e4b779644e352c503a4653870631f28089dddbaaa3db3143f09a1d97c7f57952e4d760d64005eafacb379c23035fe9ad19 SHA512 136c81a99b501ffcedfd71f4425ba556292b79abc0ac819d336d2c845401775955b8cd72e6194f02f4c48d0cd26bc93ee7c94c7438228b49410daca80a159523 diff --git a/net-print/cups/cups-2.3.3-r4.ebuild b/net-print/cups/cups-2.3.3-r4.ebuild deleted file mode 100644 index d7f3b5fab7e2..000000000000 --- a/net-print/cups/cups-2.3.3-r4.ebuild +++ /dev/null @@ -1,336 +0,0 @@ -# Copyright 1999-2022 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit autotools flag-o-matic linux-info xdg multilib-minimal pam systemd toolchain-funcs - -MY_PV="${PV/_rc/rc}" -MY_PV="${MY_PV/_beta/b}" -MY_P="${PN}-${MY_PV}" - -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" - SRC_URI="https://github.com/apple/cups/releases/download/v${MY_PV}/${MY_P}-source.tar.gz" - if [[ "${PV}" != *_beta* ]] && [[ "${PV}" != *_rc* ]] ; then - KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~mips ppc ppc64 ~s390 sparc x86" - fi -fi - -DESCRIPTION="The Common Unix Printing System" -HOMEPAGE="https://www.cups.org/" - -LICENSE="Apache-2.0" -SLOT="0" -IUSE="acl dbus debug kerberos lprng-compat pam selinux +ssl static-libs systemd +threads usb X xinetd zeroconf" - -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}] ) - kerberos? ( >=virtual/krb5-0-r1[${MULTILIB_USEDEP}] ) - !lprng-compat? ( !net-print/lprng ) - pam? ( sys-libs/pam ) - !pam? ( virtual/libcrypt:= ) - 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}] ) -" - -DEPEND="${CDEPEND}" -BDEPEND=" - acct-group/lp - acct-group/lpadmin - virtual/pkgconfig -" - -RDEPEND="${CDEPEND} - acct-group/lp - acct-group/lpadmin - selinux? ( sec-policy/selinux-cups ) -" - -PDEPEND=">=net-print/cups-filters-1.0.43" - -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.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" - "${FILESDIR}/${PN}-2.3.3-user-AR.patch" - "${FILESDIR}/${PN}-2.3.3-no-libtool.patch" -) - -MULTILIB_CHOST_TOOLS=( - /usr/bin/cups-config -) - -S="${WORKDIR}/${MY_P}" - -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" - - # 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 - - # custom Makefiles - multilib_copy_sources -} - -multilib_src_configure() { - export DSOFLAGS="${LDFLAGS}" - - einfo LINGUAS=\"${LINGUAS}\" - - # explicitly specify compiler wrt bug 524340 - # - # need to override KRB5CONFIG for proper flags - # https://github.com/apple/cups/issues/4423 - local 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) - $(use_enable kerberos gssapi) - $(multilib_native_use_enable pam) - $(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 - $(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 \ - -e "s:ICONDIR.*:ICONDIR = ${EPREFIX}/usr/share/icons:" \ - -e "s:INITDIR.*:INITDIR = ${EPREFIX}/etc:" \ - -e "s:DBUSDIR.*:DBUSDIR = ${EPREFIX}/etc/dbus-1:" \ - -e "s:MENUDIR.*:MENUDIR = ${EPREFIX}/usr/share/applications:" \ - -i 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=( - $(usex zeroconf avahi-daemon '') - $(usex dbus 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 - - if use pam; then - pamd_mimic_system cups auth account - fi - - 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 - 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} - - if ! use X ; then - rm -r "${ED}"/usr/share/applications || die - fi - - # 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() { - xdg_pkg_preinst -} - -pkg_postinst() { - # Update desktop file database and gtk icon cache (bug 370059) - xdg_pkg_postinst - - local v - - for v in ${REPLACING_VERSIONS}; do - if ! ver_test ${v} -ge 2.2.2-r2 ; 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) - xdg_pkg_postrm -} diff --git a/net-print/cups/cups-2.3.3_p2-r2.ebuild b/net-print/cups/cups-2.3.3_p2-r2.ebuild deleted file mode 100644 index 2937e9dfac79..000000000000 --- a/net-print/cups/cups-2.3.3_p2-r2.ebuild +++ /dev/null @@ -1,308 +0,0 @@ -# Copyright 1999-2022 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit autotools flag-o-matic linux-info xdg multilib-minimal pam systemd 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 - 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 ~riscv ~s390 sparc x86" - fi -fi - -DESCRIPTION="The Common Unix Printing System" -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" - -REQUIRED_USE="usb? ( threads )" -# upstream includes an interactive test which is a nono for gentoo -RESTRICT="test" - -BDEPEND=" - acct-group/lp - acct-group/lpadmin - virtual/pkgconfig -" -DEPEND=" - 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}] ) - 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}] ) - 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}] ) -" -RDEPEND="${DEPEND} - acct-group/lp - acct-group/lpadmin - selinux? ( sec-policy/selinux-cups ) -" -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.3.3-user-AR.patch" -) - -MULTILIB_CHOST_TOOLS=( - /usr/bin/cups-config -) - -S="${WORKDIR}/${MY_P}" - -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 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 - - # custom Makefiles - multilib_copy_sources -} - -multilib_src_configure() { - export DSOFLAGS="${LDFLAGS}" - - einfo LINGUAS=\"${LINGUAS}\" - - # explicitly specify compiler wrt bug 524340 - # - # need to override KRB5CONFIG for proper flags - # https://github.com/apple/cups/issues/4423 - local 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) - $(use_enable kerberos gssapi) - $(multilib_native_use_enable pam) - $(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 - $(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 \ - -e "s:ICONDIR.*:ICONDIR = ${EPREFIX}/usr/share/icons:" \ - -e "s:INITDIR.*:INITDIR = ${EPREFIX}/etc:" \ - -e "s:DBUSDIR.*:DBUSDIR = ${EPREFIX}/etc/dbus-1:" \ - -e "s:MENUDIR.*:MENUDIR = ${EPREFIX}/usr/share/applications:" \ - -i 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 "${ED}"/etc/cups/cupsd.conf.default || die - - # clean out cups init scripts - rm -r "${ED}"/etc/{init.d/cups,rc*} || die - - # 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 - sed -i -e "s/@neededservices@/${neededservices}/" "${T}"/cupsd || die - doinitd "${T}"/cupsd - - if use pam ; then - rm "${ED}"/etc/pam.d/${PN} || die - pamd_mimic_system cups auth account - fi - - 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 - else - # 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 - 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 -} - -pkg_preinst() { - xdg_pkg_preinst -} - -pkg_postinst() { - # Update desktop file database and gtk icon cache (bug 370059) - xdg_pkg_postinst - - local v - - for v in ${REPLACING_VERSIONS}; do - if ! ver_test ${v} -ge 2.2.2-r2 ; then - 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" - break - fi - done - - for v in ${REPLACING_VERSIONS}; do - elog - elog "For information about installing a printer and general cups setup" - 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 -} diff --git a/net-print/cups/cups-2.3.3_p2-r3.ebuild b/net-print/cups/cups-2.3.3_p2-r3.ebuild index d05803d0c1c5..d9f24db198ce 100644 --- a/net-print/cups/cups-2.3.3_p2-r3.ebuild +++ b/net-print/cups/cups-2.3.3_p2-r3.ebuild @@ -19,7 +19,7 @@ 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 ~riscv ~s390 sparc x86" + KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86" fi fi diff --git a/net-print/cups/cups-2.4.1.ebuild b/net-print/cups/cups-2.4.1.ebuild new file mode 100644 index 000000000000..be3e3b15e512 --- /dev/null +++ b/net-print/cups/cups-2.4.1.ebuild @@ -0,0 +1,320 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 +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 + 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 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + fi +fi + +DESCRIPTION="The Common Unix Printing System" +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 usb X xinetd zeroconf" + +# upstream includes an interactive test which is a nono for gentoo +RESTRICT="test" + +BDEPEND=" + acct-group/lp + acct-group/lpadmin + virtual/pkgconfig +" +DEPEND=" + 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}] ) + 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}] ) + 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[dbus,${MULTILIB_USEDEP}] ) +" +RDEPEND="${DEPEND} + acct-group/lp + acct-group/lpadmin + selinux? ( sec-policy/selinux-cups ) +" +PDEPEND=">=net-print/cups-filters-1.0.43" + +PATCHES=( + "${FILESDIR}/${PN}-2.4.1-nostrip.patch" + "${FILESDIR}/${PN}-2.4.1-user-AR.patch" + + # Upstream patches applied by Fedora + # https://github.com/OpenPrinting/cups/pull/329 + "${FILESDIR}"/0001-cups-fix-uninit-value-jump.patch + # https://github.com/OpenPrinting/cups/issues/340 + "${FILESDIR}"/${PN}-2.4.1-resolve-uri.patch + # https://src.fedoraproject.org/rpms/cups/blob/rawhide/f/cups.spec#_79 + "${FILESDIR}"/0001-Footer-message-corrected.patch + "${FILESDIR}"/0001-Fix-some-web-interface-issues.patch + # https://bugzilla.redhat.com/show_bug.cgi?id=2073268 + "${FILESDIR}"/0001-cups-tls-gnutls.c-Use-always-GNUTLS_SHUT_WR.patch +) + +MULTILIB_CHOST_TOOLS=( + /usr/bin/cups-config +) + +S="${WORKDIR}/${MY_P}" + +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 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 + + # custom Makefiles + multilib_copy_sources +} + +multilib_src_configure() { + export DSOFLAGS="${LDFLAGS}" + + # explicitly specify compiler wrt bug 524340 + # + # need to override KRB5CONFIG for proper flags + # https://github.com/apple/cups/issues/4423 + local myeconfargs=( + CC="$(tc-getCC)" + CXX="$(tc-getCXX)" + 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-cups-user=lp + --with-cups-group=lp + --with-docdir="${EPREFIX}"/usr/share/cups/html + --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) + $(use_enable kerberos gssapi) + $(multilib_native_use_enable pam) + $(use_enable static-libs static) + $(use_with ssl tls gnutls) + $(use_with systemd ondemand systemd) + $(multilib_native_use_enable usb libusb) + $(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[@]}" + + 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 \ + -e "s:ICONDIR.*:ICONDIR = ${EPREFIX}/usr/share/icons:" \ + -e "s:INITDIR.*:INITDIR = ${EPREFIX}/etc:" \ + -e "s:DBUSDIR.*:DBUSDIR = ${EPREFIX}/etc/dbus-1:" \ + -e "s:MENUDIR.*:MENUDIR = ${EPREFIX}/usr/share/applications:" \ + -i 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 "${ED}"/etc/cups/cupsd.conf.default || die + + # clean out cups init scripts + rm -r "${ED}"/etc/{init.d/cups,rc*} || die + + # install our init script + local neededservices=( + $(usex zeroconf avahi-daemon '') + $(usex dbus dbus '') + ) + [[ -n ${neededservices[@]} ]] && neededservices="need ${neededservices[@]}" + 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 + rm "${ED}"/etc/pam.d/${PN} || die + pamd_mimic_system cups auth account + fi + + 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 + else + # always configure with --with-xinetd= and clean up later, + # bug #525604 + rm -r "${ED}"/etc/xinetd.d || die + fi + + 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 + 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 || die + rm -r "${ED}"/run || die + + keepdir /usr/libexec/cups/driver /usr/share/cups/{model,profiles} /var/log/cups /var/spool/cups/tmp +} + +pkg_postinst() { + xdg_pkg_postinst + local v + + for v in ${REPLACING_VERSIONS}; do + if ! ver_test ${v} -ge 2.2.2-r2 ; then + 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" + break + fi + done + + for v in ${REPLACING_VERSIONS}; do + elog + elog "For information about installing a printer and general cups setup" + elog "take a look at: https://wiki.gentoo.org/wiki/Printing" + break + done + + 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 +} diff --git a/net-print/cups/cups-2.4.2-r1.ebuild b/net-print/cups/cups-2.4.2-r1.ebuild new file mode 100644 index 000000000000..8583dd21407e --- /dev/null +++ b/net-print/cups/cups-2.4.2-r1.ebuild @@ -0,0 +1,314 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +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 + inherit git-r3 + EGIT_REPO_URI="https://github.com/OpenPrinting/cups.git" + [[ ${PV} != 9999 ]] && EGIT_BRANCH=branch-${PV/.9999} +else + 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 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + fi +fi + +DESCRIPTION="The Common Unix Printing System" +HOMEPAGE="https://www.cups.org/ https://github.com/OpenPrinting/cups" + +LICENSE="Apache-2.0" +SLOT="0" +IUSE="acl dbus debug kerberos openssl pam selinux +ssl static-libs systemd test usb X xinetd zeroconf" + +# 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 + acct-group/lpadmin + virtual/pkgconfig +" +DEPEND=" + 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}] ) + kerberos? ( >=virtual/krb5-0-r1[${MULTILIB_USEDEP}] ) + pam? ( sys-libs/pam ) + !pam? ( virtual/libcrypt:= ) + 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[dbus,${MULTILIB_USEDEP}] ) +" +RDEPEND="${DEPEND} + acct-group/lp + acct-group/lpadmin + selinux? ( sec-policy/selinux-cups ) +" +PDEPEND=">=net-print/cups-filters-1.0.43" + +PATCHES=( + "${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=( + /usr/bin/cups-config +) + +S="${WORKDIR}/${MY_P}" + +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 + 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 Makedefs.in || die + + AT_M4DIR="config-scripts" eautoreconf + + # Custom Makefiles + multilib_copy_sources +} + +multilib_src_configure() { + export DSOFLAGS="${LDFLAGS}" + + # Explicitly specify compiler wrt bug #524340 + # + # Need to override KRB5CONFIG for proper flags + # https://github.com/apple/cups/issues/4423 + local myeconfargs=( + CC="$(tc-getCC)" + CXX="$(tc-getCXX)" + 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-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) + $(use_enable kerberos gssapi) + $(multilib_native_use_enable pam) + $(use_enable static-libs static) + $(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_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[@]}" + + 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 \ + -e "s:ICONDIR.*:ICONDIR = ${EPREFIX}/usr/share/icons:" \ + -e "s:INITDIR.*:INITDIR = ${EPREFIX}/etc:" \ + -e "s:DBUSDIR.*:DBUSDIR = ${EPREFIX}/etc/dbus-1:" \ + -e "s:MENUDIR.*:MENUDIR = ${EPREFIX}/usr/share/applications:" \ + -i Makedefs || die +} + +multilib_src_compile() { + if multilib_is_native_abi; then + default + else + emake libs + fi +} + +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 +} + +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 "${ED}"/etc/cups/cupsd.conf.default || die + + # Clean out cups init scripts + rm -r "${ED}"/etc/{init.d/cups,rc*} || die + + # Install our init script + local neededservices=( + $(usex zeroconf avahi-daemon '') + $(usex dbus dbus '') + ) + [[ -n ${neededservices[@]} ]] && neededservices="need ${neededservices[@]}" + 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 + rm "${ED}"/etc/pam.d/${PN} || die + pamd_mimic_system cups auth account + fi + + 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 + else + # Always configure with --with-xinetd= and clean up later, + # bug #525604 + rm -r "${ED}"/etc/xinetd.d || die + fi + + 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 bug #266678 + echo "ServerName ${EPREFIX}/run/cups/cups.sock" >> "${ED}"/etc/cups/client.conf + + # 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 || die + rm -r "${ED}"/run || die + + keepdir /usr/libexec/cups/driver /usr/share/cups/{model,profiles} /var/log/cups /var/spool/cups/tmp +} + +pkg_postinst() { + xdg_pkg_postinst + local v + + for v in ${REPLACING_VERSIONS}; do + if ! ver_test ${v} -ge 2.2.2-r2 ; then + 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" + break + fi + done + + for v in ${REPLACING_VERSIONS}; do + elog + elog "For information about installing a printer and general cups setup" + elog "take a look at: https://wiki.gentoo.org/wiki/Printing" + break + done + + 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 +} 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 } diff --git a/net-print/cups/files/0001-Fix-some-web-interface-issues.patch b/net-print/cups/files/0001-Fix-some-web-interface-issues.patch new file mode 100644 index 000000000000..d2a8ec19429d --- /dev/null +++ b/net-print/cups/files/0001-Fix-some-web-interface-issues.patch @@ -0,0 +1,667 @@ +diff -up cups-2.4.1/doc/cups.css.css-issues cups-2.4.1/doc/cups.css +--- cups-2.4.1/doc/cups.css.css-issues 2022-01-27 12:11:42.000000000 +0100 ++++ cups-2.4.1/doc/cups.css 2022-03-08 13:55:16.075624812 +0100 +@@ -1,5 +1,5 @@ + /* Layout CSS */ +-.header { ++.cups-header { + background: rgba(46,46,46,.9); + box-shadow: 0 2px 5px rgba(0,0,0,0.25); + color: white; +@@ -11,7 +11,7 @@ + top: 0; + width: 100%; + } +-.header ul { ++.cups-header ul { + list-style: none; + margin: 0; + -webkit-margin-before: 0; +@@ -20,37 +20,37 @@ + -webkit-margin-end: 5px; + -webkit-padding-start: 0; + } +-.header ul li { ++.cups-header ul li { + float: left; + } +-.header a { ++.cups-header a { + display: block; + padding: 5px 10px !important; + } +-.header a:link, .header a:visited { ++.cups-header a:link, .cups-header a:visited { + color: white !important; + text-decoration: none !important; + } +-.header a:hover { ++.cups-header a:hover { + background: #cccccc !important; + color: #333333 !important; + text-decoration: none !important; + } +-.header a.active { ++.cups-header a.active { + background: white !important; + box-shadow: rgba(0,0,0,0.1) 0 0 10px 0 inset; + color: black !important; + text-decoration: none !important; + } + +-.body { ++.cups-body { + padding: 40px 20px; + } +-.row .body { ++.row .cups-body { + padding: 0; + } + +-.footer { ++.cups-footer { + background: rgba(46,46,46,.9); + bottom: 0; + box-shadow: 0 -2px 5px rgba(0,0,0,0.25); +@@ -62,7 +62,7 @@ + position: fixed; + width: 100%; + } +-.footer a:link, footer a:hover, .footer a:visited { ++.cups-footer a:link, footer a:hover, .cups-footer a:visited { + color: white !important; + text-decoration: none !important; + } +@@ -131,6 +131,7 @@ pre { + } + + blockquote { ++ background: rgba(191,191,191,0.1); + border-left: solid 2px #777; + margin: 1em 0; + padding: 10px; +@@ -207,7 +208,7 @@ table.page { + width: 100%; + } + +-td.body { ++td.cups-body { + height: 100%; + vertical-align: top; + } +@@ -365,7 +366,7 @@ h1.title { + display: none; + } + +-h2.title, h3.title, .row .body h2, .row .body h3 { ++h2.title, h3.title, .row .cups-body h2, .row .cups-body h3 { + border-bottom: solid 2pt black; + } + +@@ -451,8 +452,8 @@ div.sidebar p.l2 { + } + + table.inset { +- background: rgba(191,191,191,0.15); +- border: thin solid rgba(191,191,191,0.3); ++ background: #f4f4f4; ++ border: thin solid rgba(191,191,191,0.5); + margin-top: 1em; + padding: 0; + width: 100%; +@@ -471,7 +472,7 @@ table.inset caption { + } + + table.inset td { +- padding: 2px; ++ padding: 2px 5px; + } + + dt { +@@ -525,15 +526,15 @@ div.tab { + } + + /* API documentation styles... */ +-div.body h1 { ++div.cups-body h1 { + } +-div.body h2 { ++div.cups-body h2 { + } +-div.body h3 { ++div.cups-body h3 { + } +-div.body h4 { ++div.cups-body h4 { + } +-div.body h5 { ++div.cups-body h5 { + } + div.contents { + } +@@ -589,9 +590,14 @@ h1, h2, h3, h4, h5, h6 { + blockquote { + page-break-inside: avoid; + } +-p code, li code, p.code, pre, ul.code li { +- background: rgba(127,127,127,0.1); ++p.code, pre, ul.code li { + border-left: thin dotted gray; ++ background: rgba(191,191,191,0.1); ++} ++p code, li code { ++ background: rgba(191,191,191,0.3); ++} ++p code, li code, p.code, pre, ul.code li { + font-family: monospace; + hyphens: manual; + margin: 18pt 0; +@@ -644,19 +650,19 @@ ul.contents li ul.code, ul.contents li u + display: none; + } + +- .header { ++ .cups-header { + margin: 0; + position: relative; + } +- .header ul li { ++ .cups-header ul li { + float: none; + } + +- .body { ++ .cups-body { + padding: 0; + } + +- .footer { ++ .cups-footer { + font-size: 10px; + height: auto; + position: relative; +@@ -715,6 +721,12 @@ ul.contents li ul.code, ul.contents li u + hr { + color: #666; + } ++ table.inset { ++ background: #1d1d1d; ++ } ++ h2.title, h3.title, .row .cups-body h2, .row .cups-body h3 { ++ border-bottom: solid 2pt #ccc; ++ } + div.table table td, table.list th { + background: black; + } +diff -up cups-2.4.1/doc/da/index.html.in.css-issues cups-2.4.1/doc/da/index.html.in +--- cups-2.4.1/doc/da/index.html.in.css-issues 2022-01-27 12:11:42.000000000 +0100 ++++ cups-2.4.1/doc/da/index.html.in 2022-03-08 13:55:16.075624812 +0100 +@@ -10,7 +10,7 @@ + Hjem - CUPS @CUPS_VERSION@ + + +-
++
+ +
+-
++
+
+

CUPS @CUPS_VERSION@

+

CUPS er det standardbaseret, open source-udskrivningssystem som er udviklet af OpenPrinting til Linux® og andre UNIX®-lignende styresystemer. CUPS uses IPP Everywhere™ to support printing to local and network printers

+@@ -47,6 +47,6 @@ +
+
+
+- ++ + + +diff -up cups-2.4.1/doc/de/index.html.in.css-issues cups-2.4.1/doc/de/index.html.in +--- cups-2.4.1/doc/de/index.html.in.css-issues 2022-01-27 12:11:42.000000000 +0100 ++++ cups-2.4.1/doc/de/index.html.in 2022-03-08 13:55:16.075624812 +0100 +@@ -10,7 +10,7 @@ + Startseite - CUPS @CUPS_VERSION@ + + +-
++
+ +
+-
++
+
+

OpenPrinting CUPS @CUPS_VERSION@

+

CUPS basiert auf Standards, Open Source Drucksystem entwickelt durch OpenPrinting für Linux® und andere UNIX®-artige Betriebssysteme. CUPS benutzt IPP Everywhere™ zur Unterstützung lokaler und Netzwerkdrucker.

+@@ -47,6 +47,6 @@ +
+
+
+- ++ + + +diff -up cups-2.4.1/doc/es/index.html.in.css-issues cups-2.4.1/doc/es/index.html.in +--- cups-2.4.1/doc/es/index.html.in.css-issues 2022-01-27 12:11:42.000000000 +0100 ++++ cups-2.4.1/doc/es/index.html.in 2022-03-08 13:55:16.075624812 +0100 +@@ -10,7 +10,7 @@ + Inicio - CUPS @CUPS_VERSION@ + + +-
++
+ +
+-
++
+
+

CUPS @CUPS_VERSION@

+

CUPS es el sistema de impresión de código abierto basado en estándares desarrollado por OpenPrinting para macOS® y otros sistemas operativos tipo UNIX®. CUPS uses IPP Everywhere™ to support printing to local and network printers.

+@@ -47,6 +47,6 @@ +
+
+
+- ++ + + +diff -up cups-2.4.1/doc/fr/index.html.in.css-issues cups-2.4.1/doc/fr/index.html.in +--- cups-2.4.1/doc/fr/index.html.in.css-issues 2022-01-27 12:11:42.000000000 +0100 ++++ cups-2.4.1/doc/fr/index.html.in 2022-03-08 13:55:16.075624812 +0100 +@@ -10,7 +10,7 @@ + Home - CUPS @CUPS_VERSION@ + + +-
++
+ +
+-
++
+
+

OpenPrinting CUPS @CUPS_VERSION@

+

Le système d'impression open source basé sur des normes, développé par OpenPrinting for Linux® and other Unix®-like operating systems. CUPS uses IPP Everywhere™ pour prendre en charge l'impression vers des imprimantes locales et de réseau.

+@@ -47,6 +47,6 @@ +
+
+
+- ++ + + +diff -up cups-2.4.1/doc/index.html.in.css-issues cups-2.4.1/doc/index.html.in +--- cups-2.4.1/doc/index.html.in.css-issues 2022-01-27 12:11:42.000000000 +0100 ++++ cups-2.4.1/doc/index.html.in 2022-03-08 13:55:16.075624812 +0100 +@@ -10,7 +10,7 @@ + Home - CUPS @CUPS_VERSION@ + + +-
++
+ +
+-
++
+
+

OpenPrinting CUPS @CUPS_VERSION@

+

The standards-based, open source printing system developed by OpenPrinting for Linux® and other Unix®-like operating systems. CUPS uses IPP Everywhere™ to support printing to local and network printers.

+@@ -47,6 +47,6 @@ +
+
+
+- ++ + + +diff -up cups-2.4.1/doc/ja/index.html.in.css-issues cups-2.4.1/doc/ja/index.html.in +--- cups-2.4.1/doc/ja/index.html.in.css-issues 2022-01-27 12:11:42.000000000 +0100 ++++ cups-2.4.1/doc/ja/index.html.in 2022-03-08 13:55:16.075624812 +0100 +@@ -10,7 +10,7 @@ + ホーム - CUPS @CUPS_VERSION@ + + +-
++
+ +
+-
++
+
+

CUPS @CUPS_VERSION@

+

CUPS は、macOS® およびその他の UNIX ® 系 OS のために、Apple Inc. によって開発された標準ベースのオープンソース印刷システムです。

+@@ -47,6 +47,6 @@ +
+
+
+- ++ + + +diff -up cups-2.4.1/doc/pt_BR/index.html.in.css-issues cups-2.4.1/doc/pt_BR/index.html.in +--- cups-2.4.1/doc/pt_BR/index.html.in.css-issues 2022-01-27 12:11:42.000000000 +0100 ++++ cups-2.4.1/doc/pt_BR/index.html.in 2022-03-08 13:55:16.075624812 +0100 +@@ -10,7 +10,7 @@ + Início - CUPS @CUPS_VERSION@ + + +-
++
+ +
+-
++
+
+

CUPS @CUPS_VERSION@

+

CUPS é o sistema de impressão baseado em padrões e de código aberto desenvolvido pela OpenPrinting para Linux® e outros sistemas operacionais similares ao UNIX®. CUPS uses IPP Everywhere™ to support printing to local and network printers.

+@@ -47,6 +47,6 @@ +
+
+
+- ++ + + +diff -up cups-2.4.1/doc/ru/index.html.in.css-issues cups-2.4.1/doc/ru/index.html.in +--- cups-2.4.1/doc/ru/index.html.in.css-issues 2022-01-27 12:11:42.000000000 +0100 ++++ cups-2.4.1/doc/ru/index.html.in 2022-03-08 13:55:16.075624812 +0100 +@@ -10,7 +10,7 @@ + Home - CUPS @CUPS_VERSION@ + + +-
++
+ +
+-
++
+
+

OpenPrinting CUPS @CUPS_VERSION@

+

CUPS — поддерживающая большинство стандартов, свободная подсистема печати, разрабатываемая компанией OpenPrinting для операционной системы Linux® и других UNIX®-подобных операционных систем. CUPS uses IPP Everywhere™ to support printing to local and network printers

+@@ -47,6 +47,6 @@ +
+
+
+- ++ + + +diff -up cups-2.4.1/templates/da/header.tmpl.in.css-issues cups-2.4.1/templates/da/header.tmpl.in +--- cups-2.4.1/templates/da/header.tmpl.in.css-issues 2022-01-27 12:11:42.000000000 +0100 ++++ cups-2.4.1/templates/da/header.tmpl.in 2022-03-08 13:55:16.075624812 +0100 +@@ -27,7 +27,7 @@ + {title} - CUPS @CUPS_VERSION@ + + +-
++
+ +
+-
++
+
+

{title}

+diff -up cups-2.4.1/templates/da/trailer.tmpl.css-issues cups-2.4.1/templates/da/trailer.tmpl +--- cups-2.4.1/templates/da/trailer.tmpl.css-issues 2022-03-08 13:55:16.076624818 +0100 ++++ cups-2.4.1/templates/da/trailer.tmpl 2022-03-08 13:56:03.419892000 +0100 +@@ -1,5 +1,5 @@ +
+
+- ++ + + +diff -up cups-2.4.1/templates/de/header.tmpl.in.css-issues cups-2.4.1/templates/de/header.tmpl.in +--- cups-2.4.1/templates/de/header.tmpl.in.css-issues 2022-01-27 12:11:42.000000000 +0100 ++++ cups-2.4.1/templates/de/header.tmpl.in 2022-03-08 13:55:16.076624818 +0100 +@@ -27,7 +27,7 @@ + {title} - CUPS @CUPS_VERSION@ + + +-
++
+ +
+-
++
+
+

{title}

+diff -up cups-2.4.1/templates/de/trailer.tmpl.css-issues cups-2.4.1/templates/de/trailer.tmpl +--- cups-2.4.1/templates/de/trailer.tmpl.css-issues 2022-03-08 13:55:16.076624818 +0100 ++++ cups-2.4.1/templates/de/trailer.tmpl 2022-03-08 13:56:14.892956747 +0100 +@@ -1,5 +1,5 @@ +
+
+- ++ + + +diff -up cups-2.4.1/templates/es/header.tmpl.in.css-issues cups-2.4.1/templates/es/header.tmpl.in +--- cups-2.4.1/templates/es/header.tmpl.in.css-issues 2022-01-27 12:11:42.000000000 +0100 ++++ cups-2.4.1/templates/es/header.tmpl.in 2022-03-08 13:55:16.076624818 +0100 +@@ -27,7 +27,7 @@ + {title} - CUPS @CUPS_VERSION@ + + +-
++
+ +
+-
++
+
+

{title}

+diff -up cups-2.4.1/templates/es/trailer.tmpl.css-issues cups-2.4.1/templates/es/trailer.tmpl +--- cups-2.4.1/templates/es/trailer.tmpl.css-issues 2022-03-08 13:55:16.076624818 +0100 ++++ cups-2.4.1/templates/es/trailer.tmpl 2022-03-08 13:56:29.420038731 +0100 +@@ -1,5 +1,5 @@ +
+
+- ++ + + +diff -up cups-2.4.1/templates/fr/header.tmpl.in.css-issues cups-2.4.1/templates/fr/header.tmpl.in +--- cups-2.4.1/templates/fr/header.tmpl.in.css-issues 2022-01-27 12:11:42.000000000 +0100 ++++ cups-2.4.1/templates/fr/header.tmpl.in 2022-03-08 13:55:16.076624818 +0100 +@@ -27,7 +27,7 @@ + {title} - CUPS @CUPS_VERSION@ + + +-
++
+ +
+-
++
+
+

{title}

+diff -up cups-2.4.1/templates/fr/trailer.tmpl.css-issues cups-2.4.1/templates/fr/trailer.tmpl +--- cups-2.4.1/templates/fr/trailer.tmpl.css-issues 2022-03-08 13:55:16.076624818 +0100 ++++ cups-2.4.1/templates/fr/trailer.tmpl 2022-03-08 13:56:40.341100363 +0100 +@@ -1,5 +1,5 @@ +
+
+- ++ + + +diff -up cups-2.4.1/templates/header.tmpl.in.css-issues cups-2.4.1/templates/header.tmpl.in +--- cups-2.4.1/templates/header.tmpl.in.css-issues 2022-01-27 12:11:42.000000000 +0100 ++++ cups-2.4.1/templates/header.tmpl.in 2022-03-08 13:55:16.076624818 +0100 +@@ -27,7 +27,7 @@ + {title} - CUPS @CUPS_VERSION@ + + +-
++
+ +
+-
++
+
+

{title}

+diff -up cups-2.4.1/templates/ja/header.tmpl.in.css-issues cups-2.4.1/templates/ja/header.tmpl.in +--- cups-2.4.1/templates/ja/header.tmpl.in.css-issues 2022-01-27 12:11:42.000000000 +0100 ++++ cups-2.4.1/templates/ja/header.tmpl.in 2022-03-08 13:55:16.076624818 +0100 +@@ -19,7 +19,7 @@ + {title} - CUPS @CUPS_VERSION@ + + +-
++
+ +
+-
++
+
+

{title}

+diff -up cups-2.4.1/templates/ja/trailer.tmpl.css-issues cups-2.4.1/templates/ja/trailer.tmpl +--- cups-2.4.1/templates/ja/trailer.tmpl.css-issues 2022-03-08 13:55:16.077624823 +0100 ++++ cups-2.4.1/templates/ja/trailer.tmpl 2022-03-08 13:56:55.101183659 +0100 +@@ -1,5 +1,5 @@ +
+
+- ++ + + +diff -up cups-2.4.1/templates/pt_BR/header.tmpl.in.css-issues cups-2.4.1/templates/pt_BR/header.tmpl.in +--- cups-2.4.1/templates/pt_BR/header.tmpl.in.css-issues 2022-01-27 12:11:42.000000000 +0100 ++++ cups-2.4.1/templates/pt_BR/header.tmpl.in 2022-03-08 13:55:16.077624823 +0100 +@@ -27,7 +27,7 @@ + {title} - CUPS @CUPS_VERSION@ + + +-
++
+ +
+-
++
+
+

{title}

+diff -up cups-2.4.1/templates/pt_BR/trailer.tmpl.css-issues cups-2.4.1/templates/pt_BR/trailer.tmpl +--- cups-2.4.1/templates/pt_BR/trailer.tmpl.css-issues 2022-03-08 13:55:16.077624823 +0100 ++++ cups-2.4.1/templates/pt_BR/trailer.tmpl 2022-03-08 13:57:11.349275354 +0100 +@@ -1,5 +1,5 @@ +
+
+- ++ + + +diff -up cups-2.4.1/templates/ru/header.tmpl.in.css-issues cups-2.4.1/templates/ru/header.tmpl.in +--- cups-2.4.1/templates/ru/header.tmpl.in.css-issues 2022-01-27 12:11:42.000000000 +0100 ++++ cups-2.4.1/templates/ru/header.tmpl.in 2022-03-08 13:55:16.077624823 +0100 +@@ -27,7 +27,7 @@ + {title} - CUPS @CUPS_VERSION@ + + +-
++
+ +
+-
++
+
+

{title}

+diff -up cups-2.4.1/templates/ru/trailer.tmpl.css-issues cups-2.4.1/templates/ru/trailer.tmpl +--- cups-2.4.1/templates/ru/trailer.tmpl.css-issues 2022-03-08 13:55:16.077624823 +0100 ++++ cups-2.4.1/templates/ru/trailer.tmpl 2022-03-08 13:57:25.262353870 +0100 +@@ -1,5 +1,5 @@ +
+
+- ++ + + +diff -up cups-2.4.1/templates/trailer.tmpl.css-issues cups-2.4.1/templates/trailer.tmpl +--- cups-2.4.1/templates/trailer.tmpl.css-issues 2022-03-08 13:55:16.073624801 +0100 ++++ cups-2.4.1/templates/trailer.tmpl 2022-03-08 13:55:16.077624823 +0100 +@@ -1,5 +1,5 @@ +
+
+- ++ + + diff --git a/net-print/cups/files/0001-Footer-message-corrected.patch b/net-print/cups/files/0001-Footer-message-corrected.patch new file mode 100644 index 000000000000..b2a2074c70d1 --- /dev/null +++ b/net-print/cups/files/0001-Footer-message-corrected.patch @@ -0,0 +1,89 @@ +diff --git a/templates/da/trailer.tmpl b/templates/da/trailer.tmpl +index aede375..d448d7e 100644 +--- a/templates/da/trailer.tmpl ++++ b/templates/da/trailer.tmpl +@@ -1,5 +1,5 @@ +
+
+- ++ + + +diff --git a/templates/de/trailer.tmpl b/templates/de/trailer.tmpl +index c1f5d38..cf3caca 100644 +--- a/templates/de/trailer.tmpl ++++ b/templates/de/trailer.tmpl +@@ -1,5 +1,5 @@ +
+
+- ++ + + +diff --git a/templates/es/trailer.tmpl b/templates/es/trailer.tmpl +index c1cb58f..9b9047e 100644 +--- a/templates/es/trailer.tmpl ++++ b/templates/es/trailer.tmpl +@@ -1,5 +1,5 @@ +
+
+- ++ + + +diff --git a/templates/fr/trailer.tmpl b/templates/fr/trailer.tmpl +index 6e9b8b1..9628176 100644 +--- a/templates/fr/trailer.tmpl ++++ b/templates/fr/trailer.tmpl +@@ -1,5 +1,5 @@ +
+
+- ++ + + +diff --git a/templates/ja/trailer.tmpl b/templates/ja/trailer.tmpl +index a4f86b1..240c56b 100644 +--- a/templates/ja/trailer.tmpl ++++ b/templates/ja/trailer.tmpl +@@ -1,5 +1,5 @@ +
+
+- ++ + + +diff --git a/templates/pt_BR/trailer.tmpl b/templates/pt_BR/trailer.tmpl +index 673a555..774bc1d 100644 +--- a/templates/pt_BR/trailer.tmpl ++++ b/templates/pt_BR/trailer.tmpl +@@ -1,5 +1,5 @@ +
+
+- ++ + + +diff --git a/templates/ru/trailer.tmpl b/templates/ru/trailer.tmpl +index 260d0e9..c6ec6e4 100644 +--- a/templates/ru/trailer.tmpl ++++ b/templates/ru/trailer.tmpl +@@ -1,6 +1,5 @@ +
+
+- ++ + + +diff --git a/templates/trailer.tmpl b/templates/trailer.tmpl +index a4f86b1..240c56b 100644 +--- a/templates/trailer.tmpl ++++ b/templates/trailer.tmpl +@@ -1,5 +1,5 @@ +
+
+- ++ + + diff --git a/net-print/cups/files/0001-cups-fix-uninit-value-jump.patch b/net-print/cups/files/0001-cups-fix-uninit-value-jump.patch new file mode 100644 index 000000000000..79e462e1547d --- /dev/null +++ b/net-print/cups/files/0001-cups-fix-uninit-value-jump.patch @@ -0,0 +1,18 @@ +diff --git a/cups/ppd.c b/cups/ppd.c +index 525df3592..54368ac4c 100644 +--- a/cups/ppd.c ++++ b/cups/ppd.c +@@ -3430,12 +3430,12 @@ ppd_update_filters(ppd_file_t *ppd, /* I - PPD file */ + srctype[256], + dstsuper[16], /* Destination MIME media type */ + dsttype[256], +- program[1024], /* Command to run */ + *ptr, /* Pointer into command to run */ + buffer[1024], /* Re-written cupsFilter value */ + **filter; /* Current filter */ + int cost; /* Cost of filter */ + ++ char program[1024] = { 0 }; /* Command to run */ + + DEBUG_printf(("4ppd_update_filters(ppd=%p, cg=%p)", ppd, pg)); + diff --git a/net-print/cups/files/0001-cups-tls-gnutls.c-Use-always-GNUTLS_SHUT_WR.patch b/net-print/cups/files/0001-cups-tls-gnutls.c-Use-always-GNUTLS_SHUT_WR.patch new file mode 100644 index 000000000000..67e2edcfed67 --- /dev/null +++ b/net-print/cups/files/0001-cups-tls-gnutls.c-Use-always-GNUTLS_SHUT_WR.patch @@ -0,0 +1,55 @@ +From bdb1ca45454d90410031c4c2054005a995f76180 Mon Sep 17 00:00:00 2001 +From: Zdenek Dohnal +Date: Wed, 6 Apr 2022 15:04:45 +0200 +Subject: [PATCH] cups/tls-gnutls.c: Use always GNUTLS_SHUT_WR + +The current mode for `gnutls_bye()` in client use cases strictly +follows TLS v1.2 standard, which in this particular part says: + +``` +Unless some other fatal alert has been transmitted, each party is +required to send a close_notify alert before closing the write +side of the connection. The other party MUST respond with a +close_notify alert of its own and close down the connection immediately, +discarding any pending writes. It is not required for the initiator +of the close to wait for the responding close_notify alert before +closing the read side of the connection. +``` + +and waits for the other side of TLS connection to confirm the close. + +Unfortunately it can undesired for reasons: +- we support switching of TLS versions in CUPS, and this mode strictly + follows TLS v1.2 - so for older version this behavior is not expected + and can cause delays +- even some TLS v1.2 implementations (like Windows Server 2016) don't + comply TLS v1.2 behavior even if it says it does - in that case, + encrypted printing takes 30s till HTTP timeout is reached, because the + other side didn't send confirmation +- AFAIU openssl's SSL_shutdown() doesn't make this TLS v1.2 difference, + so we could end up with two TLS implementations in CUPS which will + behave differently + +Since the standard defines that waiting for confirmation is not required +and due the problems above, I would propose using GNUTLS_SHUT_WR mode +regardless of HTTP mode. +--- + cups/tls-gnutls.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/cups/tls-gnutls.c b/cups/tls-gnutls.c +index c55995b2b..f87b4f4df 100644 +--- a/cups/tls-gnutls.c ++++ b/cups/tls-gnutls.c +@@ -1667,7 +1667,7 @@ _httpTLSStop(http_t *http) /* I - Connection to server */ + int error; /* Error code */ + + +- error = gnutls_bye(http->tls, http->mode == _HTTP_MODE_CLIENT ? GNUTLS_SHUT_RDWR : GNUTLS_SHUT_WR); ++ error = gnutls_bye(http->tls, GNUTLS_SHUT_WR); + if (error != GNUTLS_E_SUCCESS) + _cupsSetError(IPP_STATUS_ERROR_INTERNAL, gnutls_strerror(errno), 0); + +-- +2.35.1 + diff --git a/net-print/cups/files/cups-2.4.1-nostrip.patch b/net-print/cups/files/cups-2.4.1-nostrip.patch new file mode 100644 index 000000000000..5862ce178255 --- /dev/null +++ b/net-print/cups/files/cups-2.4.1-nostrip.patch @@ -0,0 +1,11 @@ +--- a/config-scripts/cups-compiler.m4 2022-01-27 12:11:42.000000000 +0100 ++++ b/config-scripts/cups-compiler.m4 2022-05-01 11:24:58.855033882 +0200 +@@ -30,8 +30,6 @@ + dnl For debugging, keep symbols, otherwise strip them... + AS_IF([test x$enable_debug = xyes -a "x$OPTIM" = x], [ + OPTIM="-g" +-], [ +- INSTALL_STRIP="-s" + ]) + + dnl Debug printfs can slow things down, so provide a separate option for that diff --git a/net-print/cups/files/cups-2.4.1-resolve-uri.patch b/net-print/cups/files/cups-2.4.1-resolve-uri.patch new file mode 100644 index 000000000000..e138e20dec14 --- /dev/null +++ b/net-print/cups/files/cups-2.4.1-resolve-uri.patch @@ -0,0 +1,31 @@ +diff -up cups-2.4.1/scheduler/ipp.c.resolve-uri cups-2.4.1/scheduler/ipp.c +--- cups-2.4.1/scheduler/ipp.c.resolve-uri 2022-03-04 08:13:13.712346134 +0100 ++++ cups-2.4.1/scheduler/ipp.c 2022-03-04 08:17:17.486819820 +0100 +@@ -5271,6 +5271,7 @@ create_local_bg_thread( + userpass[256], /* User:pass */ + host[256], /* Hostname */ + resource[1024], /* Resource path */ ++ uri[1024], /* Resolved URI, if needed */ + line[1024]; /* Line from PPD */ + int port; /* Port number */ + http_encryption_t encryption; /* Type of encryption to use */ +@@ -5292,6 +5293,19 @@ create_local_bg_thread( + + cupsdLogMessage(CUPSD_LOG_DEBUG, "%s: Generating PPD file from \"%s\"...", printer->name, printer->device_uri); + ++ if (strstr(printer->device_uri, "._tcp")) ++ { ++ cupsdLogMessage(CUPSD_LOG_DEBUG2, "%s: Resolving mDNS URI \"%s\".", printer->name, printer->device_uri); ++ ++ if (!_httpResolveURI(printer->device_uri, uri, sizeof(uri), _HTTP_RESOLVE_DEFAULT, NULL, NULL)) ++ { ++ cupsdLogMessage(CUPSD_LOG_ERROR, "%s: Couldn't resolve mDNS URI \"%s\".", printer->name, printer->device_uri); ++ return (NULL); ++ } ++ ++ printer->device_uri = uri; ++ } ++ + if (httpSeparateURI(HTTP_URI_CODING_ALL, printer->device_uri, scheme, sizeof(scheme), userpass, sizeof(userpass), host, sizeof(host), &port, resource, sizeof(resource)) < HTTP_URI_STATUS_OK) + { + cupsdLogMessage(CUPSD_LOG_ERROR, "%s: Bad device URI \"%s\".", printer->name, printer->device_uri); diff --git a/net-print/cups/files/cups-2.4.1-user-AR.patch b/net-print/cups/files/cups-2.4.1-user-AR.patch new file mode 100644 index 000000000000..edbecd6ed9fa --- /dev/null +++ b/net-print/cups/files/cups-2.4.1-user-AR.patch @@ -0,0 +1,21 @@ +--- a/config-scripts/cups-common.m4 ++++ b/config-scripts/cups-common.m4 +@@ -39,15 +39,15 @@ + AC_PROG_CPP + AC_PROG_CXX + AC_PROG_RANLIB +-AC_PATH_PROG([AR], [ar]) ++AC_CHECK_TOOL([AR], [ar]) + AC_PATH_PROG([CHMOD], [chmod]) + AC_PATH_PROG([GZIPPROG], [gzip]) + AC_MSG_CHECKING([for install-sh script]) + INSTALL="`pwd`/install-sh" + AC_SUBST([INSTALL]) + AC_MSG_RESULT([using $INSTALL]) +-AC_PATH_PROG([LD], [ld]) +-AC_PATH_PROG([LN], [ln]) ++AC_CHECK_TOOL([LD], [ld]) ++AC_CHECK_TOOL([LN], [ln]) + AC_PATH_PROG([MKDIR], [mkdir]) + AC_PATH_PROG([MV], [mv]) + AC_PATH_PROG([RM], [rm]) diff --git a/net-print/cups/files/cups-2.4.2-no-fortify-override.patch b/net-print/cups/files/cups-2.4.2-no-fortify-override.patch new file mode 100644 index 000000000000..e9153ce2f082 --- /dev/null +++ b/net-print/cups/files/cups-2.4.2-no-fortify-override.patch @@ -0,0 +1,18 @@ +Gentoo already sets -D_FORTIFY_SOURCE=2 by default in GCC (patched in), so +we need to avoid doing this in packages to avoid redefinition errors if +we try to upgrade to e.g. =3. + +So, no effect on users, but important to stop issues w/ F_S=3. +--- a/config-scripts/cups-compiler.m4 ++++ b/config-scripts/cups-compiler.m4 +@@ -106,8 +106,8 @@ AS_IF([test -n "$GCC"], [ + ], [ + # Otherwise use the Fortify enhancements to catch any unbounded + # string operations... +- CFLAGS="$CFLAGS -D_FORTIFY_SOURCE=2" +- CXXFLAGS="$CXXFLAGS -D_FORTIFY_SOURCE=2" ++ CFLAGS="$CFLAGS" ++ CXXFLAGS="$CXXFLAGS" + ]) + + # Default optimization options... diff --git a/net-print/cups/files/cupsd.init.d-r3 b/net-print/cups/files/cupsd.init.d-r3 deleted file mode 100644 index 2f563e4c7698..000000000000 --- a/net-print/cups/files/cupsd.init.d-r3 +++ /dev/null @@ -1,22 +0,0 @@ -#!/sbin/openrc-run -# Copyright 1999-2017 Gentoo Foundation - -description="The Common Unix Printing System daemon" -command="/usr/sbin/cupsd" -command_args="-f -c /etc/cups/cupsd.conf -s /etc/cups/cups-files.conf" -pidfile="/var/run/cupsd.pid" -start_stop_daemon_args="-b -m --pidfile ${pidfile}" - -depend() { - use net - @neededservices@ - before nfs - after logger -} - -start_pre() { - checkpath -q -d -m 0775 -o root:lp /var/cache/cups - checkpath -q -d -m 0775 -o root:lp /var/cache/cups/rss - checkpath -q -d -m 0755 -o root:lp /run/cups - checkpath -q -d -m 0511 -o lp:lpadmin /run/cups/certs -} diff --git a/net-print/cups/metadata.xml b/net-print/cups/metadata.xml index ca1df84cc709..d4081ef99041 100644 --- a/net-print/cups/metadata.xml +++ b/net-print/cups/metadata.xml @@ -1,17 +1,15 @@ - - printing@gentoo.org - Gentoo Printing Project - - - - Do not install lp... binaries so cups and lprng can coexist. - - - - cpe:/a:apple:cups - apple/cups - + + printing@gentoo.org + Gentoo Printing Project + + + Use dev-libs/openssl instead of net-libs/gnutls for TLS support + + + cpe:/a:apple:cups + OpenPrinting/cups + -- cgit v1.2.3