From de49812990871e1705b64051c35161d5e6400269 Mon Sep 17 00:00:00 2001
From: V3n3RiX <venerix@redcorelinux.org>
Date: Mon, 24 Dec 2018 14:11:38 +0000
Subject: gentoo resync : 24.12.2018

---
 net-print/cups/Manifest                            |  10 +-
 net-print/cups/cups-2.2.10.ebuild                  | 337 +++++++++++++++++++++
 net-print/cups/cups-2.2.7.ebuild                   |   4 +-
 net-print/cups/cups-2.3_beta5-r1.ebuild            | 332 --------------------
 net-print/cups/cups-2.3_beta6.ebuild               | 332 ++++++++++++++++++++
 .../files/cups-2.3_beta5-validation_fixes.patch    |  69 -----
 .../files/cups-2.3_beta6-usage_argument_fix.patch  | 243 +++++++++++++++
 7 files changed, 920 insertions(+), 407 deletions(-)
 create mode 100644 net-print/cups/cups-2.2.10.ebuild
 delete mode 100644 net-print/cups/cups-2.3_beta5-r1.ebuild
 create mode 100644 net-print/cups/cups-2.3_beta6.ebuild
 delete mode 100644 net-print/cups/files/cups-2.3_beta5-validation_fixes.patch
 create mode 100644 net-print/cups/files/cups-2.3_beta6-usage_argument_fix.patch

(limited to 'net-print/cups')

diff --git a/net-print/cups/Manifest b/net-print/cups/Manifest
index 970d560bcc34..e6354877874c 100644
--- a/net-print/cups/Manifest
+++ b/net-print/cups/Manifest
@@ -4,16 +4,18 @@ AUX cups-2.0.2-rename-systemd-service-files.patch 2092 BLAKE2B c34d8d6c5295aea6e
 AUX cups-2.2.0-dont-compress-manpages.patch 319 BLAKE2B b03a0ab815751055d79475423242bbc407e934cdc00e4596ab05e3d7f87ca0feb7201f6696a8eef59fdb73630431364f12146f1d32743e272de054019acb8380 SHA512 0f4822e50f9376dc2e8c87b55f6526ab514f5f08f737071f5b15696e71b51416203df6c9219d78989544bbc135cd92be91ef351a377be7ab4052e98c25c0c4f5
 AUX cups-2.2.6-fix-install-perms.patch 660 BLAKE2B 85c42742762dc72c746550c36160c5fd13b10727fa4e40793b7072c88c3856c580e408180819acc1668da06024b30173fd71f725175981305c739aaa40b7ba65 SHA512 f64ed254bc79935ea3d9fce4c4cd8074445397c20ee1bc1e759e3bc7a336b30f73722357d2702219932e7a774f925abf9a450d3b30a12ca1f0c5f3c92b0b5fbf
 AUX cups-2.2.8-validation_fixes.patch 2606 BLAKE2B e585b0481db0f23f3a60453269c31e92f2fd27b2b9830d3ff93c726d62e9d0b12c3b7f3494daf89dc3c7533fba2ddb2709f9a43d42eff4ac0c5c3cb77c0e4d3b SHA512 58f633adacd380877c0241ceaacf8d13154245759d79f81912c93e5b2951b094653c58c3b01b6f76c10a910183f4064a713f43afe016d91e3cf6d5857f33f2f6
-AUX cups-2.3_beta5-validation_fixes.patch 2606 BLAKE2B e38c893e35eb6a4f6f334586e7b9b53c04561bcbd7e64ed9856bf19b75eb5f8550ea63c63dfb77394473a905ce2be3f2c3cd1200c26b67dca5350f898b5a63f7 SHA512 2c68ec2b0e41e798a0ce464dbd45cebd2554763f5f1e2b52b5b0b69f3067330fb994762f9c9db3b3b70e1c244f366cb628dea3c43984b60c1dc0282709883a54
+AUX cups-2.3_beta6-usage_argument_fix.patch 6888 BLAKE2B bdf5b245c02a5b1d078bf376e7801f818fda9aee019731a7c83a0c32c7a70625293cc824085e516bbfc33a0fe45f2ff0e645f112685daa62bba9a9bedccb5c95 SHA512 a4d9b27acfc795b365db0256540d6fbea61e9ebdeeafd9ecd386cc4d33fe0ce2b4eddfa227a66c8b3813f9ca3f7173f9ae013b93a9a80d84ae1341ef9632b028
 AUX cups-2.3_rc1-no_pam.patch 4704 BLAKE2B 99d9726f43ebc6ebb7fcaa608b99f435dccdeaa53f8fd6b47b4735c084dec8852ab5b34d06f07293299f13a4d975cf9b5bfc44950910c58c409fdcb71dfec6ea SHA512 f5f0f850a954a970aa5129d518f7b84e1e5fbb57c4bf16d42eb09eac01ebb5280514a580938433525514d5cd57acfcb363aa972d783d7b6b23e8f30e01d5e1b1
 AUX cupsd.init.d-r3 584 BLAKE2B f503663a59673209fc6c161aed3cc214cab2b3e68692078dc47c1a833fe141225f48f2d07dab65fc19ea68e54bb7c9a7c94f6db1dac443111d04b392fd7855a4 SHA512 ace66b46c17f99f8c6487188c14e8a1baf7acad602156b88cdae7fb4738c163a045240a1b28c6db4af86caa317723357186812eed81f9553a9ef3517c966c6b3
+DIST cups-2.2.10-source.tar.gz 10403568 BLAKE2B 42937088758893772545fff7bbfbf4610ae34764b1e962110b7ea88940ddcba92376e55f4665b9815278de566daec07190ad78e5f2b1e37f905447a7fd17bf4e SHA512 1393987a263ebf20089dd3008ae4ed770a27a1f289032604eb9e18f2e863bd0e4215a70118f5a6d3940875625278b6798fbc9070e791ec559179c6cf7dc7b05f
 DIST cups-2.2.7-source.tar.gz 10330296 BLAKE2B 015a64758ee8d2559f4259ff36bf702b93dc695a44e2170d4ecf71b80d5691b4d947decf0a84ff9433b43c6d47dc350a8769d1e230ceda276c13add67e5e8a20 SHA512 780a6a484f38967ff678456ec7b532aa8445a9562663e4e4f6f7a24aac6ec9e8eae36459ee3c025dff053d59ad1d9ecfb823e8a832bae9d384db3d1a10d8860e
 DIST cups-2.2.8-source.tar.gz 10374921 BLAKE2B 3fc4d5cae3848cbb7fb1263b377210254dfa08d70a1218c7f20d5a277d0536791e071c50bac282ab2049e1cffddfe91438216ceb37ec279d7cb0ec7b57a315da SHA512 6ed44c5e6f1c46c85b06691713ce476330c93834243720ad2c04fa983e20cde9f6ebfc2eb2ba8bb3700f11320471b99856d6402d3641038da690f89c49fbd261
 DIST cups-2.2.9-source.tar.gz 10402885 BLAKE2B 6736a2f5efa6ee8eadeea6620b5750e16e3be2e1c46d6f5821146d21078d10cda8e993b111ae326863db93d0c36e55c26d1c91140f8a518759111bafc9c93996 SHA512 423d2a215a115d5f78ce73118e8a2e566662e5d7f8acbffea39e1bfefb2f48f94841c8b85d731b0786b682dc579df8dfb5508570225b5205a182fbb2cd6dd2a5
-DIST cups-2.3b5-source.tar.gz 10176856 BLAKE2B beda07a64ef463371e4e1f25b397caa9487f7acdc982fcfa7edee736a41f6a6875747c772e4c59e2d2746c8c508a0cc87f8608227592f5e1d9c8c48d956ab97c SHA512 48d45f090637bf32bdcc83106272efb8462ff609f74fbe4e82add7f851dcb9173126a1df186848c087d02e8c1441f31a70859faf2714b6ddb1f3738ef8dba60d
-EBUILD cups-2.2.7.ebuild 9948 BLAKE2B 93f232963bb18833570171402bf98eb67a5dc4ab0a05fd224ce82dc71d12ec2698ea0d5e8ce5dd6030005d3392b053261bf22eee9943618146ba7bb3da8811fa SHA512 6bd4ff2b0c17db27ff65a93a5f3ecb61c2bc5c1e4a48621dbe14ba76dd7fb1fbdc9a4eb10a1f08aa9af57cf3afa0114217bbe84df9f5aca24b9cc47cb5625afd
+DIST cups-2.3b6-source.tar.gz 10240934 BLAKE2B 16b7381617d97d5c68e7bdf971b2cbc81c8f33208e408e051fce9770cffebed3a9337296d3e9f95a9f0a4e76cffe3201b99207f83169b8397d11455964178f4f SHA512 f9f79bbc694e4bb4f37906f6dffad7c5067d86e07878ca73953ebf519d2637c23fded18646bd086cbd397e49de6b629fe9323f57ccfb2c9bf912c3bfd20b345e
+EBUILD cups-2.2.10.ebuild 9894 BLAKE2B 4e70310a747b178a61bcaaaeb11422297876090c465bb3a94f18173a5dc82192fe4daf6b26fa891eb54203d7f8671f18942f43f8d25420551bde5ac7453f10e1 SHA512 7d2491a410d4904db8e4b3ac37b8caf9a01378c7ca0bc77d3f11d4c9c105dac14fe09c7165248de200aed4c784e8774155ca06eaa6bb47ff5b4c8bfe201f25a0
+EBUILD cups-2.2.7.ebuild 9944 BLAKE2B 8fd1425102b0ade58b8b70cbf3d9bb7df8910a8acaceff79cdc04a2b1f32a5d44272f819e74bd8459de371acf8e0356373c883eeac3e084447f21902e79a69f0 SHA512 51d41baeb24c3b84bde0b16a2f57b8822e4b460f4ab0f3ea19c075dbe871e9930924b4ce4772aaa04480bf2e1fe68f0ba223ace853455ca84acdd2cc5acb3e6c
 EBUILD cups-2.2.8-r1.ebuild 9948 BLAKE2B 7216a26222ee20e1839aa062a933755bf091c943a7e39f30d24d265ea3fcd5214291a02e8d531eb3b5b6c441e54e2cee4920c12b7b0d2ff97e76e2b09ba0b991 SHA512 f456adba3ce3b06e630999aa93cf77b47909e89391da6e1683aee5fcd7fc85797efef543ee6549ea9d1160b8178d745b688f220666b05384212aeb7619080de9
 EBUILD cups-2.2.9.ebuild 9894 BLAKE2B 4e70310a747b178a61bcaaaeb11422297876090c465bb3a94f18173a5dc82192fe4daf6b26fa891eb54203d7f8671f18942f43f8d25420551bde5ac7453f10e1 SHA512 7d2491a410d4904db8e4b3ac37b8caf9a01378c7ca0bc77d3f11d4c9c105dac14fe09c7165248de200aed4c784e8774155ca06eaa6bb47ff5b4c8bfe201f25a0
-EBUILD cups-2.3_beta5-r1.ebuild 9724 BLAKE2B eb56666649dc74027e9212796ffbd854eac81c59006d64085e9ea56933c9567c6b6ba59209c32c759182f9368b0e6602da545afa297acb6985503340cb2ae39f SHA512 3c081372d84e805425ad67c117965a84b6ee921ffcd651877858c9a5f17cb7b118eda83d28706e41e8f908f86806eaf122cb4fb34a6ebe9008fb5502c57b2fde
+EBUILD cups-2.3_beta6.ebuild 9715 BLAKE2B 71796fc8b417bdf7e4cef2699a95e4f4c36741c2feea5580a2ffe3874e58a7b03ffae28bcb088131fe576ec4ffcd4e0181df728a064a54580ae02b4bb35e8725 SHA512 2411ac3de4bde4ce49a1d4c32e79ca509f482ae0e661dddc87bc3061842098a58a2d98041afb70ea45ea06066efddc58dcaf6de177def817e904ae5382cbd128
 EBUILD cups-9999.ebuild 9673 BLAKE2B a4b10549bb1e045347580400611de0dc637d23dbab783ff6a6524bfab05a44ea5dc1d9f7f14349028f0843a20ea04ff98fe563c610ad6f5fff00d90110e83029 SHA512 b5024f8e94d6f8e251f54a5c988b512d622ac454a49f84893a900ad63e65dcb565007f95a93b52301e1c0a16ba8cfca06f78edc476fa5c631222fcfed0153bf8
 MISC metadata.xml 677 BLAKE2B ca19e7bd0d56a0a78771a30efcbd867cd0ab1eba7aaf3add8d384721ac70ed8809bc8a171df43887d772f81dcfd54f31bc13267a9a3a88da44b51322aff87c15 SHA512 f7ed769c4f662ea52ed9e24702b91948a376e7d5a59b305f6d89950d0ea40130e6d471cc0bee373a63338f590bce3b6df5a09e56a166ba7fdd960f82e7648717
diff --git a/net-print/cups/cups-2.2.10.ebuild b/net-print/cups/cups-2.2.10.ebuild
new file mode 100644
index 000000000000..b5fcaa92de95
--- /dev/null
+++ b/net-print/cups/cups-2.2.10.ebuild
@@ -0,0 +1,337 @@
+# Copyright 1999-2018 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit autotools eapi7-ver gnome2-utils flag-o-matic linux-info xdg-utils multilib multilib-minimal pam python-single-r1 user java-pkg-opt-2 systemd toolchain-funcs
+
+MY_P="${P/_rc/rc}"
+MY_P="${MY_P/_beta/b}"
+MY_PV="${PV/_rc/rc}"
+MY_PV="${MY_PV/_beta/b}"
+
+if [[ ${PV} == *9999 ]]; then
+	inherit git-r3
+	EGIT_REPO_URI="https://github.com/apple/cups.git"
+	if [[ ${PV} != 9999 ]]; then
+		EGIT_BRANCH=branch-${PV/.9999}
+	fi
+else
+	#SRC_URI="https://github.com/apple/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+	SRC_URI="https://github.com/apple/cups/releases/download/v${PV}/${P}-source.tar.gz"
+	KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~m68k-mint"
+fi
+
+DESCRIPTION="The Common Unix Printing System"
+HOMEPAGE="https://www.cups.org/"
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="acl dbus debug java kerberos lprng-compat pam python selinux +ssl static-libs systemd +threads usb X xinetd zeroconf"
+
+CDEPEND="
+	app-text/libpaper
+	sys-libs/zlib
+	acl? (
+		kernel_linux? (
+			sys-apps/acl
+			sys-apps/attr
+		)
+	)
+	dbus? ( >=sys-apps/dbus-1.6.18-r1[${MULTILIB_USEDEP}] )
+	java? ( >=virtual/jre-1.6:* )
+	kerberos? ( >=virtual/krb5-0-r1[${MULTILIB_USEDEP}] )
+	!lprng-compat? ( !net-print/lprng )
+	pam? ( virtual/pam )
+	python? ( ${PYTHON_DEPS} )
+	ssl? ( >=net-libs/gnutls-2.12.23-r6:0=[${MULTILIB_USEDEP}] )
+	systemd? ( sys-apps/systemd )
+	usb? ( virtual/libusb:1 )
+	X? ( x11-misc/xdg-utils )
+	xinetd? ( sys-apps/xinetd )
+	zeroconf? ( >=net-dns/avahi-0.6.31-r2[${MULTILIB_USEDEP}] )
+"
+
+DEPEND="${CDEPEND}
+	>=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}]
+"
+
+RDEPEND="${CDEPEND}
+	selinux? ( sec-policy/selinux-cups )
+"
+
+PDEPEND=">=net-print/cups-filters-1.0.43"
+
+REQUIRED_USE="
+	python? ( ${PYTHON_REQUIRED_USE} )
+	usb? ( threads )
+"
+
+# upstream includes an interactive test which is a nono for gentoo
+RESTRICT="test"
+
+# systemd-socket.patch from Fedora
+PATCHES=(
+	"${FILESDIR}/${PN}-2.2.0-dont-compress-manpages.patch"
+	"${FILESDIR}/${PN}-2.2.6-fix-install-perms.patch"
+	"${FILESDIR}/${PN}-1.4.4-nostrip.patch"
+	"${FILESDIR}/${PN}-2.0.2-rename-systemd-service-files.patch"
+	"${FILESDIR}/${PN}-2.0.1-xinetd-installation-fix.patch"
+)
+
+MULTILIB_CHOST_TOOLS=(
+	/usr/bin/cups-config
+)
+
+pkg_setup() {
+	enewgroup lp
+	enewuser lp -1 -1 -1 lp
+	enewgroup lpadmin 106
+
+	use python && python-single-r1_pkg_setup
+
+	if use kernel_linux; then
+		linux-info_pkg_setup
+		if  ! linux_config_exists; then
+			ewarn "Can't check the linux kernel configuration."
+			ewarn "You might have some incompatible options enabled."
+		else
+			# recheck that we don't have usblp to collide with libusb; this should now work in most cases (bug 501122)
+			if use usb; then
+				if linux_chkconfig_present USB_PRINTER; then
+					elog "Your USB printers will be managed via libusb. In case you run into problems, "
+					elog "please try disabling USB_PRINTER support in your kernel or blacklisting the"
+					elog "usblp kernel module."
+					elog "Alternatively, just disable the usb useflag for cups (your printer will still work)."
+				fi
+			else
+				#here we should warn user that he should enable it so he can print
+				if ! linux_chkconfig_present USB_PRINTER; then
+					ewarn "If you plan to use USB printers you should enable the USB_PRINTER"
+					ewarn "support in your kernel."
+					ewarn "Please enable it:"
+					ewarn "    CONFIG_USB_PRINTER=y"
+					ewarn "in /usr/src/linux/.config or"
+					ewarn "    Device Drivers --->"
+					ewarn "        USB support  --->"
+					ewarn "            [*] USB Printer support"
+					ewarn "Alternatively, enable the usb useflag for cups and use the libusb code."
+				fi
+			fi
+		fi
+	fi
+}
+
+src_prepare() {
+	default
+
+	# Remove ".SILENT" rule for verbose output (bug 524338).
+	sed 's#^.SILENT:##g' -i "${S}"/Makedefs.in || die "sed failed"
+
+	# Fix install-sh, posix sh does not have 'function'.
+	sed 's#function gzipcp#gzipcp()#g' -i "${S}/install-sh"
+
+	AT_M4DIR=config-scripts eaclocal
+	eautoconf
+
+	# custom Makefiles
+	multilib_copy_sources
+}
+
+multilib_src_configure() {
+	export DSOFLAGS="${LDFLAGS}"
+
+	einfo 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)
+		$(multilib_native_use_with java)
+		$(use_enable kerberos gssapi)
+		$(multilib_native_use_enable pam)
+		$(multilib_native_use_with python python "${PYTHON}")
+		$(use_enable static-libs static)
+		$(use_enable threads)
+		$(use_enable ssl gnutls)
+		$(use_enable systemd)
+		$(multilib_native_use_enable usb libusb)
+		$(use_enable zeroconf avahi)
+		--disable-dnssd
+		--without-perl
+		--without-php
+		$(multilib_is_native_abi && echo --enable-libpaper || echo --disable-libpaper)
+	)
+
+	if tc-is-static-only; then
+		myeconfargs+=(
+			--disable-shared
+		)
+	fi
+
+	econf "${myeconfargs[@]}"
+
+	# install in /usr/libexec always, instead of using /usr/lib/cups, as that
+	# makes more sense when facing multilib support.
+	sed -i -e "s:SERVERBIN.*:SERVERBIN = \"\$\(BUILDROOT\)${EPREFIX}/usr/libexec/cups\":" Makedefs || die
+	sed -i -e "s:#define CUPS_SERVERBIN.*:#define CUPS_SERVERBIN \"${EPREFIX}/usr/libexec/cups\":" config.h || die
+	sed -i -e "s:cups_serverbin=.*:cups_serverbin=\"${EPREFIX}/usr/libexec/cups\":" cups-config || die
+
+	# additional path corrections needed for prefix, see bug 597728
+	sed \
+		-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
+	use zeroconf && neededservices+=" avahi-daemon"
+	use dbus && neededservices+=" dbus"
+	[[ -n ${neededservices} ]] && neededservices="need${neededservices}"
+	cp "${FILESDIR}"/cupsd.init.d-r3 "${T}"/cupsd || die
+	sed -i \
+		-e "s/@neededservices@/${neededservices}/" \
+		"${T}"/cupsd || die
+	doinitd "${T}"/cupsd
+
+	# install our pam script
+	pamd_mimic_system cups auth account
+
+	if use xinetd ; then
+		# correct path
+		sed -i \
+			-e "s:server = .*:server = /usr/libexec/cups/daemon/cups-lpd:" \
+			"${ED%/}"/etc/xinetd.d/cups-lpd || die
+		# it is safer to disable this by default, bug #137130
+		grep -w 'disable' "${ED%/}"/etc/xinetd.d/cups-lpd || \
+			{ sed -i -e "s:}:\tdisable = yes\n}:" "${ED%/}"/etc/xinetd.d/cups-lpd || die ; }
+		# write permission for file owner (root), bug #296221
+		fperms u+w /etc/xinetd.d/cups-lpd || die "fperms failed"
+	else
+		# always configure with --with-xinetd= and clean up later,
+		# bug #525604
+		rm -rf "${ED%/}"/etc/xinetd.d
+	fi
+
+	keepdir /usr/libexec/cups/driver /usr/share/cups/{model,profiles} \
+		/var/log/cups /var/spool/cups/tmp
+
+	keepdir /etc/cups/{interfaces,ppd,ssl}
+
+	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() {
+	gnome2_icon_savelist
+}
+
+pkg_postinst() {
+	# Update desktop file database and gtk icon cache (bug 370059)
+	gnome2_icon_cache_update
+	xdg_desktop_database_update
+
+	local v
+
+	for v in ${REPLACING_VERSIONS}; do
+		if ! 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)
+	gnome2_icon_cache_update
+	xdg_desktop_database_update
+}
diff --git a/net-print/cups/cups-2.2.7.ebuild b/net-print/cups/cups-2.2.7.ebuild
index 600c940e5156..525aa68be5f6 100644
--- a/net-print/cups/cups-2.2.7.ebuild
+++ b/net-print/cups/cups-2.2.7.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2018 Gentoo Foundation
+# Copyright 1999-2018 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=6
@@ -23,7 +23,7 @@ if [[ ${PV} == *9999 ]]; then
 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${PV}/${P}-source.tar.gz"
-	KEYWORDS="alpha amd64 arm ~arm64 hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86 ~amd64-fbsd ~x86-fbsd ~m68k-mint"
+	KEYWORDS="alpha amd64 arm ~arm64 hppa ia64 ~mips ppc ppc64 s390 ~sh sparc x86 ~amd64-fbsd ~x86-fbsd ~m68k-mint"
 fi
 
 DESCRIPTION="The Common Unix Printing System"
diff --git a/net-print/cups/cups-2.3_beta5-r1.ebuild b/net-print/cups/cups-2.3_beta5-r1.ebuild
deleted file mode 100644
index f7c6d292faec..000000000000
--- a/net-print/cups/cups-2.3_beta5-r1.ebuild
+++ /dev/null
@@ -1,332 +0,0 @@
-# Copyright 1999-2018 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-PYTHON_COMPAT=( python2_7 )
-
-inherit autotools eapi7-ver gnome2-utils flag-o-matic linux-info xdg-utils multilib multilib-minimal pam user 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 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~m68k-mint"
-	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? ( virtual/pam )
-	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}
-	>=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}]
-"
-
-RDEPEND="${CDEPEND}
-	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.0-dont-compress-manpages.patch"
-	"${FILESDIR}/${PN}-2.2.6-fix-install-perms.patch"
-	"${FILESDIR}/${PN}-1.4.4-nostrip.patch"
-	"${FILESDIR}/${PN}-2.0.2-rename-systemd-service-files.patch"
-	"${FILESDIR}/${PN}-2.0.1-xinetd-installation-fix.patch"
-	"${FILESDIR}/${P}-validation_fixes.patch" #657526
-)
-
-MULTILIB_CHOST_TOOLS=(
-	/usr/bin/cups-config
-)
-
-S="${WORKDIR}/${MY_P}"
-
-pkg_setup() {
-	enewgroup lp
-	enewuser lp -1 -1 -1 lp
-	enewgroup lpadmin 106
-
-	if use kernel_linux; then
-		linux-info_pkg_setup
-		if  ! linux_config_exists; then
-			ewarn "Can't check the linux kernel configuration."
-			ewarn "You might have some incompatible options enabled."
-		else
-			# recheck that we don't have usblp to collide with libusb; this should now work in most cases (bug 501122)
-			if use usb; then
-				if linux_chkconfig_present USB_PRINTER; then
-					elog "Your USB printers will be managed via libusb. In case you run into problems, "
-					elog "please try disabling USB_PRINTER support in your kernel or blacklisting the"
-					elog "usblp kernel module."
-					elog "Alternatively, just disable the usb useflag for cups (your printer will still work)."
-				fi
-			else
-				#here we should warn user that he should enable it so he can print
-				if ! linux_chkconfig_present USB_PRINTER; then
-					ewarn "If you plan to use USB printers you should enable the USB_PRINTER"
-					ewarn "support in your kernel."
-					ewarn "Please enable it:"
-					ewarn "    CONFIG_USB_PRINTER=y"
-					ewarn "in /usr/src/linux/.config or"
-					ewarn "    Device Drivers --->"
-					ewarn "        USB support  --->"
-					ewarn "            [*] USB Printer support"
-					ewarn "Alternatively, enable the usb useflag for cups and use the libusb code."
-				fi
-			fi
-		fi
-	fi
-}
-
-src_prepare() {
-	default
-
-	# Remove ".SILENT" rule for verbose output (bug 524338).
-	sed 's#^.SILENT:##g' -i "${S}"/Makedefs.in || die "sed failed"
-
-	# Fix install-sh, posix sh does not have 'function'.
-	sed 's#function gzipcp#gzipcp()#g' -i "${S}/install-sh"
-
-	AT_M4DIR=config-scripts eaclocal
-	eautoconf
-
-	# custom Makefiles
-	multilib_copy_sources
-}
-
-multilib_src_configure() {
-	export DSOFLAGS="${LDFLAGS}"
-
-	einfo 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
-	use zeroconf && neededservices+=" avahi-daemon"
-	use dbus && neededservices+=" dbus"
-	[[ -n ${neededservices} ]] && neededservices="need${neededservices}"
-	cp "${FILESDIR}"/cupsd.init.d-r3 "${T}"/cupsd || die
-	sed -i \
-		-e "s/@neededservices@/${neededservices}/" \
-		"${T}"/cupsd || die
-	doinitd "${T}"/cupsd
-
-	# install our pam script
-	pamd_mimic_system cups auth account
-
-	if use xinetd ; then
-		# correct path
-		sed -i \
-			-e "s:server = .*:server = /usr/libexec/cups/daemon/cups-lpd:" \
-			"${ED%/}"/etc/xinetd.d/cups-lpd || die
-		# it is safer to disable this by default, bug #137130
-		grep -w 'disable' "${ED%/}"/etc/xinetd.d/cups-lpd || \
-			{ sed -i -e "s:}:\tdisable = yes\n}:" "${ED%/}"/etc/xinetd.d/cups-lpd || die ; }
-		# write permission for file owner (root), bug #296221
-		fperms u+w /etc/xinetd.d/cups-lpd || die "fperms failed"
-	else
-		# always configure with --with-xinetd= and clean up later,
-		# bug #525604
-		rm -rf "${ED%/}"/etc/xinetd.d
-	fi
-
-	keepdir /usr/libexec/cups/driver /usr/share/cups/{model,profiles} \
-		/var/log/cups /var/spool/cups/tmp
-
-	keepdir /etc/cups/{interfaces,ppd,ssl}
-
-	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() {
-	gnome2_icon_savelist
-}
-
-pkg_postinst() {
-	# Update desktop file database and gtk icon cache (bug 370059)
-	gnome2_icon_cache_update
-	xdg_desktop_database_update
-
-	local v
-
-	for v in ${REPLACING_VERSIONS}; do
-		if ! 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)
-	gnome2_icon_cache_update
-	xdg_desktop_database_update
-}
diff --git a/net-print/cups/cups-2.3_beta6.ebuild b/net-print/cups/cups-2.3_beta6.ebuild
new file mode 100644
index 000000000000..4801eaf8b9a0
--- /dev/null
+++ b/net-print/cups/cups-2.3_beta6.ebuild
@@ -0,0 +1,332 @@
+# Copyright 1999-2018 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit autotools eapi7-ver gnome2-utils flag-o-matic linux-info xdg-utils multilib multilib-minimal pam user 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 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~m68k-mint"
+	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? ( virtual/pam )
+	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}
+	>=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}]
+"
+
+RDEPEND="${CDEPEND}
+	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.0-dont-compress-manpages.patch"
+	"${FILESDIR}/${PN}-2.2.6-fix-install-perms.patch"
+	"${FILESDIR}/${PN}-1.4.4-nostrip.patch"
+	"${FILESDIR}/${PN}-2.0.2-rename-systemd-service-files.patch"
+	"${FILESDIR}/${PN}-2.0.1-xinetd-installation-fix.patch"
+	"${FILESDIR}/${P}-usage_argument_fix.patch"
+)
+
+MULTILIB_CHOST_TOOLS=(
+	/usr/bin/cups-config
+)
+
+S="${WORKDIR}/${MY_P}"
+
+pkg_setup() {
+	enewgroup lp
+	enewuser lp -1 -1 -1 lp
+	enewgroup lpadmin 106
+
+	if use kernel_linux; then
+		linux-info_pkg_setup
+		if  ! linux_config_exists; then
+			ewarn "Can't check the linux kernel configuration."
+			ewarn "You might have some incompatible options enabled."
+		else
+			# recheck that we don't have usblp to collide with libusb; this should now work in most cases (bug 501122)
+			if use usb; then
+				if linux_chkconfig_present USB_PRINTER; then
+					elog "Your USB printers will be managed via libusb. In case you run into problems, "
+					elog "please try disabling USB_PRINTER support in your kernel or blacklisting the"
+					elog "usblp kernel module."
+					elog "Alternatively, just disable the usb useflag for cups (your printer will still work)."
+				fi
+			else
+				#here we should warn user that he should enable it so he can print
+				if ! linux_chkconfig_present USB_PRINTER; then
+					ewarn "If you plan to use USB printers you should enable the USB_PRINTER"
+					ewarn "support in your kernel."
+					ewarn "Please enable it:"
+					ewarn "    CONFIG_USB_PRINTER=y"
+					ewarn "in /usr/src/linux/.config or"
+					ewarn "    Device Drivers --->"
+					ewarn "        USB support  --->"
+					ewarn "            [*] USB Printer support"
+					ewarn "Alternatively, enable the usb useflag for cups and use the libusb code."
+				fi
+			fi
+		fi
+	fi
+}
+
+src_prepare() {
+	default
+
+	# Remove ".SILENT" rule for verbose output (bug 524338).
+	sed 's#^.SILENT:##g' -i "${S}"/Makedefs.in || die "sed failed"
+
+	# Fix install-sh, posix sh does not have 'function'.
+	sed 's#function gzipcp#gzipcp()#g' -i "${S}/install-sh"
+
+	AT_M4DIR=config-scripts eaclocal
+	eautoconf
+
+	# custom Makefiles
+	multilib_copy_sources
+}
+
+multilib_src_configure() {
+	export DSOFLAGS="${LDFLAGS}"
+
+	einfo 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
+	use zeroconf && neededservices+=" avahi-daemon"
+	use dbus && neededservices+=" dbus"
+	[[ -n ${neededservices} ]] && neededservices="need${neededservices}"
+	cp "${FILESDIR}"/cupsd.init.d-r3 "${T}"/cupsd || die
+	sed -i \
+		-e "s/@neededservices@/${neededservices}/" \
+		"${T}"/cupsd || die
+	doinitd "${T}"/cupsd
+
+	# install our pam script
+	pamd_mimic_system cups auth account
+
+	if use xinetd ; then
+		# correct path
+		sed -i \
+			-e "s:server = .*:server = /usr/libexec/cups/daemon/cups-lpd:" \
+			"${ED%/}"/etc/xinetd.d/cups-lpd || die
+		# it is safer to disable this by default, bug #137130
+		grep -w 'disable' "${ED%/}"/etc/xinetd.d/cups-lpd || \
+			{ sed -i -e "s:}:\tdisable = yes\n}:" "${ED%/}"/etc/xinetd.d/cups-lpd || die ; }
+		# write permission for file owner (root), bug #296221
+		fperms u+w /etc/xinetd.d/cups-lpd || die "fperms failed"
+	else
+		# always configure with --with-xinetd= and clean up later,
+		# bug #525604
+		rm -rf "${ED%/}"/etc/xinetd.d
+	fi
+
+	keepdir /usr/libexec/cups/driver /usr/share/cups/{model,profiles} \
+		/var/log/cups /var/spool/cups/tmp
+
+	keepdir /etc/cups/{interfaces,ppd,ssl}
+
+	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() {
+	gnome2_icon_savelist
+}
+
+pkg_postinst() {
+	# Update desktop file database and gtk icon cache (bug 370059)
+	gnome2_icon_cache_update
+	xdg_desktop_database_update
+
+	local v
+
+	for v in ${REPLACING_VERSIONS}; do
+		if ! 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)
+	gnome2_icon_cache_update
+	xdg_desktop_database_update
+}
diff --git a/net-print/cups/files/cups-2.3_beta5-validation_fixes.patch b/net-print/cups/files/cups-2.3_beta5-validation_fixes.patch
deleted file mode 100644
index 29e2533eeb16..000000000000
--- a/net-print/cups/files/cups-2.3_beta5-validation_fixes.patch
+++ /dev/null
@@ -1,69 +0,0 @@
-From 1d677f11f1e3353524d46c2842188eccfcdcd5a2 Mon Sep 17 00:00:00 2001
-From: Michael R Sweet <michael.r.sweet@gmail.com>
-Date: Mon, 11 Jun 2018 09:37:34 -0400
-Subject: [PATCH] Fix regressions in ippValidateAttribute (Issue #5322, Issue
- #5330)
-
-diff --git a/cups/ipp.c b/cups/ipp.c
-index 95d53cc44..325de02b9 100644
---- a/cups/ipp.c
-+++ b/cups/ipp.c
-@@ -5033,16 +5033,19 @@ ippValidateAttribute(
- 	      break;
- 	  }
- 
--	  if (*ptr < ' ' || *ptr == 0x7f)
--	  {
--	    ipp_set_error(IPP_STATUS_ERROR_BAD_REQUEST, _("\"%s\": Bad text value \"%s\" - bad control character (PWG 5100.14 section 8.3)."), attr->name, attr->values[i].string.text);
--	    return (0);
--	  }
--	  else if (*ptr)
--	  {
--	    ipp_set_error(IPP_STATUS_ERROR_BAD_REQUEST, _("\"%s\": Bad text value \"%s\" - bad UTF-8 sequence (RFC 8011 section 5.1.2)."), attr->name, attr->values[i].string.text);
--	    return (0);
--	  }
-+          if (*ptr)
-+          {
-+	    if (*ptr < ' ' || *ptr == 0x7f)
-+	    {
-+	      ipp_set_error(IPP_STATUS_ERROR_BAD_REQUEST, _("\"%s\": Bad text value \"%s\" - bad control character (PWG 5100.14 section 8.3)."), attr->name, attr->values[i].string.text);
-+	      return (0);
-+	    }
-+	    else
-+	    {
-+	      ipp_set_error(IPP_STATUS_ERROR_BAD_REQUEST, _("\"%s\": Bad text value \"%s\" - bad UTF-8 sequence (RFC 8011 section 5.1.2)."), attr->name, attr->values[i].string.text);
-+	      return (0);
-+	    }
-+          }
- 
- 	  if ((ptr - attr->values[i].string.text) > (IPP_MAX_TEXT - 1))
- 	  {
-@@ -5091,16 +5094,19 @@ ippValidateAttribute(
- 	      break;
- 	  }
- 
--	  if (*ptr < ' ' || *ptr == 0x7f)
--	  {
--	    ipp_set_error(IPP_STATUS_ERROR_BAD_REQUEST, _("\"%s\": Bad name value \"%s\" - bad control character (PWG 5100.14 section 8.1)."), attr->name, attr->values[i].string.text);
--	    return (0);
--	  }
--	  else if (*ptr)
-+	  if (*ptr)
- 	  {
--	    ipp_set_error(IPP_STATUS_ERROR_BAD_REQUEST, _("\"%s\": Bad name value \"%s\" - bad UTF-8 sequence (RFC 8011 section 5.1.3)."), attr->name, attr->values[i].string.text);
--	    return (0);
--	  }
-+	    if (*ptr < ' ' || *ptr == 0x7f)
-+	    {
-+	      ipp_set_error(IPP_STATUS_ERROR_BAD_REQUEST, _("\"%s\": Bad name value \"%s\" - bad control character (PWG 5100.14 section 8.1)."), attr->name, attr->values[i].string.text);
-+	      return (0);
-+	    }
-+	    else
-+	    {
-+	      ipp_set_error(IPP_STATUS_ERROR_BAD_REQUEST, _("\"%s\": Bad name value \"%s\" - bad UTF-8 sequence (RFC 8011 section 5.1.3)."), attr->name, attr->values[i].string.text);
-+	      return (0);
-+	    }
-+          }
- 
- 	  if ((ptr - attr->values[i].string.text) > (IPP_MAX_NAME - 1))
- 	  {
diff --git a/net-print/cups/files/cups-2.3_beta6-usage_argument_fix.patch b/net-print/cups/files/cups-2.3_beta6-usage_argument_fix.patch
new file mode 100644
index 000000000000..d77a5bba28ea
--- /dev/null
+++ b/net-print/cups/files/cups-2.3_beta6-usage_argument_fix.patch
@@ -0,0 +1,243 @@
+From 065632e2095bcb32f15a370633e60d6a6a3dd78e Mon Sep 17 00:00:00 2001
+From: Michael R Sweet <michael.r.sweet@gmail.com>
+Date: Sat, 8 Dec 2018 08:12:52 -0500
+Subject: [PATCH] Fix compile errors - not sure why these didn't show up
+ before...
+
+---
+ cups/adminutil.c | 197 -----------------------------------------------
+ scheduler/main.c |   2 +-
+ 2 files changed, 1 insertion(+), 198 deletions(-)
+
+diff --git a/cups/adminutil.c b/cups/adminutil.c
+index 5ecada44c..1a5067f1b 100644
+--- a/cups/adminutil.c
++++ b/cups/adminutil.c
+@@ -32,12 +32,6 @@ static http_status_t	get_cupsd_conf(http_t *http, _cups_globals_t *cg,
+ 			               time_t last_update, char *name,
+ 				       size_t namelen, int *remote);
+ static void		invalidate_cupsd_cache(_cups_globals_t *cg);
+-static void		write_option(cups_file_t *dstfp, int order,
+-			             const char *name, const char *text,
+-				     const char *attrname,
+-		        	     ipp_attribute_t *suppattr,
+-				     ipp_attribute_t *defattr, int defval,
+-				     int valcount);
+ 
+ 
+ /*
+@@ -1330,88 +1324,6 @@ cupsAdminSetServerSettings(
+ }
+ 
+ 
+-/*
+- * 'do_samba_command()' - Do a SAMBA command.
+- */
+-
+-static int				/* O - Status of command */
+-do_samba_command(const char *command,	/* I - Command to run */
+-                 const char *address,	/* I - Address for command */
+-                 const char *subcmd,	/* I - Sub-command */
+-		 const char *authfile,	/* I - Samba authentication file */
+-		 FILE *logfile)		/* I - Optional log file */
+-{
+-#ifdef _WIN32
+-  return (1);				/* Always fail on Windows... */
+-
+-#else
+-  int		status;			/* Status of command */
+-  int		pid;			/* Process ID of child */
+-
+-
+-  if (logfile)
+-    _cupsLangPrintf(logfile,
+-                    _("Running command: %s %s -N -A %s -c \'%s\'"),
+-        	    command, address, authfile, subcmd);
+-
+-  if ((pid = fork()) == 0)
+-  {
+-   /*
+-    * Child goes here, redirect stdin/out/err and execute the command...
+-    */
+-
+-    int fd = open("/dev/null", O_RDONLY);
+-
+-    if (fd > 0)
+-    {
+-      dup2(fd, 0);
+-      close(fd);
+-    }
+-
+-    if (logfile)
+-      dup2(fileno(logfile), 1);
+-    else if ((fd = open("/dev/null", O_WRONLY)) > 1)
+-    {
+-      dup2(fd, 1);
+-      close(fd);
+-    }
+-
+-    dup2(1, 2);
+-
+-    execlp(command, command, address, "-N", "-A", authfile, "-c", subcmd,
+-           (char *)0);
+-    exit(errno);
+-  }
+-  else if (pid < 0)
+-  {
+-    status = -1;
+-
+-    if (logfile)
+-      _cupsLangPrintf(logfile, _("Unable to run \"%s\": %s"),
+-                      command, strerror(errno));
+-  }
+-  else
+-  {
+-   /*
+-    * Wait for the process to complete...
+-    */
+-
+-    while (wait(&status) != pid);
+-  }
+-
+-  if (logfile)
+-    _cupsLangPuts(logfile, "");
+-
+-  DEBUG_printf(("9do_samba_command: status=%d", status));
+-
+-  if (WIFEXITED(status))
+-    return (WEXITSTATUS(status));
+-  else
+-    return (-WTERMSIG(status));
+-#endif /* _WIN32 */
+-}
+-
+-
+ /*
+  * 'get_cupsd_conf()' - Get the current cupsd.conf file.
+  */
+@@ -1527,112 +1439,3 @@ invalidate_cupsd_cache(
+   cg->cupsd_num_settings = 0;
+   cg->cupsd_settings     = NULL;
+ }
+-
+-
+-/*
+- * 'write_option()' - Write a CUPS option to a PPD file.
+- */
+-
+-static void
+-write_option(cups_file_t     *dstfp,	/* I - PPD file */
+-             int             order,	/* I - Order dependency */
+-             const char      *name,	/* I - Option name */
+-	     const char      *text,	/* I - Option text */
+-             const char      *attrname,	/* I - Attribute name */
+-             ipp_attribute_t *suppattr,	/* I - IPP -supported attribute */
+-	     ipp_attribute_t *defattr,	/* I - IPP -default attribute */
+-	     int             defval,	/* I - Default value number */
+-	     int             valcount)	/* I - Number of values */
+-{
+-  int	i;				/* Looping var */
+-
+-
+-  cupsFilePrintf(dstfp, "*JCLOpenUI *%s/%s: PickOne\n"
+-                        "*OrderDependency: %d JCLSetup *%s\n",
+-                 name, text, order, name);
+-
+-  if (defattr->value_tag == IPP_TAG_INTEGER)
+-  {
+-   /*
+-    * Do numeric options with a range or list...
+-    */
+-
+-    cupsFilePrintf(dstfp, "*Default%s: %d\n", name,
+-                   defattr->values[defval].integer);
+-
+-    if (suppattr->value_tag == IPP_TAG_RANGE)
+-    {
+-     /*
+-      * List each number in the range...
+-      */
+-
+-      for (i = suppattr->values[0].range.lower;
+-           i <= suppattr->values[0].range.upper;
+-	   i ++)
+-      {
+-        cupsFilePrintf(dstfp, "*%s %d: \"", name, i);
+-
+-        if (valcount == 1)
+-	  cupsFilePrintf(dstfp, "%%cupsJobTicket: %s=%d\n\"\n*End\n",
+-	                 attrname, i);
+-        else if (defval == 0)
+-	  cupsFilePrintf(dstfp, "%%cupsJobTicket: %s=%d\"\n", attrname, i);
+-        else if (defval < (valcount - 1))
+-	  cupsFilePrintf(dstfp, ",%d\"\n", i);
+-        else
+-	  cupsFilePrintf(dstfp, ",%d\n\"\n*End\n", i);
+-      }
+-    }
+-    else
+-    {
+-     /*
+-      * List explicit numbers...
+-      */
+-
+-      for (i = 0; i < suppattr->num_values; i ++)
+-      {
+-        cupsFilePrintf(dstfp, "*%s %d: \"", name, suppattr->values[i].integer);
+-
+-        if (valcount == 1)
+-	  cupsFilePrintf(dstfp, "%%cupsJobTicket: %s=%d\n\"\n*End\n", attrname,
+-	          suppattr->values[i].integer);
+-        else if (defval == 0)
+-	  cupsFilePrintf(dstfp, "%%cupsJobTicket: %s=%d\"\n", attrname,
+-	          suppattr->values[i].integer);
+-        else if (defval < (valcount - 1))
+-	  cupsFilePrintf(dstfp, ",%d\"\n", suppattr->values[i].integer);
+-        else
+-	  cupsFilePrintf(dstfp, ",%d\n\"\n*End\n", suppattr->values[i].integer);
+-      }
+-    }
+-  }
+-  else
+-  {
+-   /*
+-    * Do text options with a list...
+-    */
+-
+-    cupsFilePrintf(dstfp, "*Default%s: %s\n", name,
+-                   defattr->values[defval].string.text);
+-
+-    for (i = 0; i < suppattr->num_values; i ++)
+-    {
+-      cupsFilePrintf(dstfp, "*%s %s: \"", name,
+-                     suppattr->values[i].string.text);
+-
+-      if (valcount == 1)
+-	cupsFilePrintf(dstfp, "%%cupsJobTicket: %s=%s\n\"\n*End\n", attrname,
+-	        suppattr->values[i].string.text);
+-      else if (defval == 0)
+-	cupsFilePrintf(dstfp, "%%cupsJobTicket: %s=%s\"\n", attrname,
+-	        suppattr->values[i].string.text);
+-      else if (defval < (valcount - 1))
+-	cupsFilePrintf(dstfp, ",%s\"\n", suppattr->values[i].string.text);
+-      else
+-	cupsFilePrintf(dstfp, ",%s\n\"\n*End\n",
+-	               suppattr->values[i].string.text);
+-    }
+-  }
+-
+-  cupsFilePrintf(dstfp, "*JCLCloseUI: *%s\n\n", name);
+-}
+diff --git a/scheduler/main.c b/scheduler/main.c
+index ce7df89c0..5b00efae2 100644
+--- a/scheduler/main.c
++++ b/scheduler/main.c
+@@ -155,7 +155,7 @@ main(int  argc,				/* I - Number of command-line args */
+   for (i = 1; i < argc; i ++)
+   {
+     if (!strcmp(argv[i], "--help"))
+-      usage();
++      usage(0);
+     else if (argv[i][0] == '-')
+     {
+       for (opt = argv[i] + 1; *opt != '\0'; opt ++)
-- 
cgit v1.2.3