From 223305bc13eb0aad4824fb632d288f621a835616 Mon Sep 17 00:00:00 2001 From: Pacho Ramos Date: Sun, 22 May 2022 14:33:00 +0200 Subject: net-print/cups: add 2.4.1 Closes: https://bugs.gentoo.org/829920 Closes: https://bugs.gentoo.org/833577 Signed-off-by: Pacho Ramos --- net-print/cups/Manifest | 1 + net-print/cups/cups-2.4.1.ebuild | 320 ++++++++++ .../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 + 9 files changed, 1213 insertions(+) create mode 100644 net-print/cups/cups-2.4.1.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 (limited to 'net-print') diff --git a/net-print/cups/Manifest b/net-print/cups/Manifest index f26affcecc5f..27494be3c394 100644 --- a/net-print/cups/Manifest +++ b/net-print/cups/Manifest @@ -1,2 +1,3 @@ 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 +DIST cups-2.4.1-source.tar.gz 8113914 BLAKE2B 690d9d92f9bc84c2bb360699191cd67e1489ffc3ab219376dfc1a8795379950c95bf58c2033a0dbd2918262c5d104e21e31c4585cb35d229b0fac6cf4967bfd7 SHA512 74e83728fcc3baf709176442b26711250fd4d4ede1e81e35b02a5607711067e28cd5a05d5bc3337953f6b2236c5a429b13f3a7f1218a08a2d3c30a8c9b0d96fd 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/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]) -- cgit v1.2.3-65-gdbad