Merge "Merge commit '931df15b06fdb32d1416e5780b2059e3f98ee531' into cros_sdk"
diff --git a/app-admin/sudo/OWNERS b/app-admin/sudo/OWNERS
new file mode 100644
index 0000000..0300dc1
--- /dev/null
+++ b/app-admin/sudo/OWNERS
@@ -0,0 +1 @@
+include chromiumos/overlays/chromiumos-overlay:/OWNERS.security
diff --git a/app-admin/sudo/sudo-1.9.5_p2-r1.ebuild b/app-admin/sudo/sudo-1.9.5_p2-r1.ebuild
new file mode 120000
index 0000000..6ff16fc
--- /dev/null
+++ b/app-admin/sudo/sudo-1.9.5_p2-r1.ebuild
@@ -0,0 +1 @@
+sudo-1.9.5_p2.ebuild
\ No newline at end of file
diff --git a/app-arch/brotli/Manifest b/app-arch/brotli/Manifest
index ea65e98..a717127 100644
--- a/app-arch/brotli/Manifest
+++ b/app-arch/brotli/Manifest
@@ -1 +1 @@
-DIST brotli-1.0.7.tar.gz 23827908 BLAKE2B b9fc554cd23c8387b648638b6f9bb2d29fa87035856d03cf284662f9281984f3bf8e40109e61155ece18673f4391bc0fff704f8ab800a2041d3ce1824478d2ae SHA512 a82362aa36d2f2094bca0b2808d9de0d57291fb3a4c29d7c0ca0a37e73087ec5ac4df299c8c363e61106fccf2fe7f58b5cf76eb97729e2696058ef43b1d3930a
+DIST brotli-1.0.9.tar.gz 486984 BLAKE2B 8b9939d5224396ef33b43e019250ba4bc8949903583615e8dc02c85340fc0a1e2d1632161e00b0ee7355d77f05529ac772f482e05d2089afd71a0bf71e803904 SHA512 b8e2df955e8796ac1f022eb4ebad29532cb7e3aa6a4b6aee91dbd2c7d637eee84d9a144d3e878895bb5e62800875c2c01c8f737a1261020c54feacf9f676b5f5
diff --git a/app-arch/brotli/brotli-1.0.7.ebuild b/app-arch/brotli/brotli-1.0.7.ebuild
deleted file mode 100644
index 9e560a8..0000000
--- a/app-arch/brotli/brotli-1.0.7.ebuild
+++ /dev/null
@@ -1,77 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python2_7 python3_{5,6,7} pypy )
-DISTUTILS_OPTIONAL="1"
-DISTUTILS_IN_SOURCE_BUILD="1"
-
-inherit cmake-multilib distutils-r1
-
-DESCRIPTION="Generic-purpose lossless compression algorithm"
-HOMEPAGE="https://github.com/google/brotli"
-
-SLOT="0/$(ver_cut 1)"
-
-RDEPEND="python? ( ${PYTHON_DEPS} )"
-DEPEND="${RDEPEND}"
-
-IUSE="python test"
-REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
-
-LICENSE="MIT python? ( Apache-2.0 )"
-
-DOCS=( README.md CONTRIBUTING.md )
-
-if [[ ${PV} == "9999" ]] ; then
-	SRC_URI=""
-	EGIT_REPO_URI="https://github.com/google/${PN}.git"
-	inherit git-r3
-else
-	KEYWORDS="*"
-	SRC_URI="https://github.com/google/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
-fi
-
-src_prepare() {
-	use python && distutils-r1_src_prepare
-	cmake-utils_src_prepare
-}
-
-multilib_src_configure() {
-	local mycmakeargs=(
-		-DBUILD_TESTING="$(usex test)"
-	)
-	cmake-utils_src_configure
-}
-src_configure() {
-	cmake-multilib_src_configure
-	use python && distutils-r1_src_configure
-}
-
-multilib_src_compile() {
-	cmake-utils_src_compile
-}
-src_compile() {
-	cmake-multilib_src_compile
-	use python && distutils-r1_src_compile
-}
-
-python_test(){
-	esetup.py test || die
-}
-
-multilib_src_test() {
-	cmake-utils_src_test
-}
-src_test() {
-	cmake-multilib_src_test
-	use python && distutils-r1_src_test
-}
-
-multilib_src_install() {
-	cmake-utils_src_install
-}
-multilib_src_install_all() {
-	use python && distutils-r1_src_install
-}
diff --git a/app-arch/brotli/brotli-1.0.9-r2.ebuild b/app-arch/brotli/brotli-1.0.9-r2.ebuild
new file mode 100644
index 0000000..55eed04
--- /dev/null
+++ b/app-arch/brotli/brotli-1.0.9-r2.ebuild
@@ -0,0 +1,85 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python3_{6,7,8,9} )
+DISTUTILS_OPTIONAL="1"
+DISTUTILS_IN_SOURCE_BUILD="1"
+
+inherit cmake-multilib distutils-r1
+
+DESCRIPTION="Generic-purpose lossless compression algorithm"
+HOMEPAGE="https://github.com/google/brotli"
+
+SLOT="0/$(ver_cut 1)"
+
+RDEPEND="python? ( ${PYTHON_DEPS} )"
+DEPEND="${RDEPEND}"
+
+IUSE="python static-libs test"
+REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
+
+LICENSE="MIT python? ( Apache-2.0 )"
+
+DOCS=( README.md CONTRIBUTING.md )
+
+if [[ ${PV} == "9999" ]] ; then
+	SRC_URI=""
+	EGIT_REPO_URI="https://github.com/google/${PN}.git"
+	inherit git-r3
+else
+	KEYWORDS="*"
+	SRC_URI="https://github.com/google/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+fi
+
+# tests are currently broken, see https://github.com/google/brotli/issues/850
+RESTRICT="test"
+
+PATCHES=(
+	"${FILESDIR}/${PV}-linker.patch"
+)
+
+src_prepare() {
+	use python && distutils-r1_src_prepare
+	cmake-utils_src_prepare
+}
+
+multilib_src_configure() {
+	local mycmakeargs=(
+		-DBUILD_TESTING="$(usex test)"
+	)
+	cmake-utils_src_configure
+}
+src_configure() {
+	cmake-multilib_src_configure
+	use python && distutils-r1_src_configure
+}
+
+multilib_src_compile() {
+	cmake-utils_src_compile
+}
+src_compile() {
+	cmake-multilib_src_compile
+	use python && distutils-r1_src_compile
+}
+
+python_test() {
+	esetup.py test || die
+}
+
+multilib_src_test() {
+	cmake-utils_src_test
+}
+src_test() {
+	cmake-multilib_src_test
+	use python && distutils-r1_src_test
+}
+
+multilib_src_install() {
+	cmake-utils_src_install
+	use static-libs || rm "${ED}"/usr/$(get_libdir)/*.a || die
+}
+multilib_src_install_all() {
+	use python && distutils-r1_src_install
+}
diff --git a/app-arch/brotli/files/1.0.9-linker.patch b/app-arch/brotli/files/1.0.9-linker.patch
new file mode 100644
index 0000000..8ecf2e4
--- /dev/null
+++ b/app-arch/brotli/files/1.0.9-linker.patch
@@ -0,0 +1,47 @@
+From 092446fafb4bfb81738853b7c7f76b293cd92a80 Mon Sep 17 00:00:00 2001
+From: Evgenii Kliuchnikov <eustas.ru@gmail.com>
+Date: Wed, 2 Sep 2020 10:49:49 +0200
+Subject: [PATCH] Revert "Add runtime linker path to pkg-config files (#740)"
+
+This reverts commit 31754d4ffce14153b5c2addf7a11019ec23f51c1.
+---
+ scripts/libbrotlicommon.pc.in | 2 +-
+ scripts/libbrotlidec.pc.in    | 2 +-
+ scripts/libbrotlienc.pc.in    | 2 +-
+ 3 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/scripts/libbrotlicommon.pc.in b/scripts/libbrotlicommon.pc.in
+index 10ca969e..2a8cf7a3 100644
+--- a/scripts/libbrotlicommon.pc.in
++++ b/scripts/libbrotlicommon.pc.in
+@@ -7,5 +7,5 @@ Name: libbrotlicommon
+ URL: https://github.com/google/brotli
+ Description: Brotli common dictionary library
+ Version: @PACKAGE_VERSION@
+-Libs: -L${libdir} -R${libdir} -lbrotlicommon
++Libs: -L${libdir} -lbrotlicommon
+ Cflags: -I${includedir}
+diff --git a/scripts/libbrotlidec.pc.in b/scripts/libbrotlidec.pc.in
+index e7c3124f..6f8ef2e4 100644
+--- a/scripts/libbrotlidec.pc.in
++++ b/scripts/libbrotlidec.pc.in
+@@ -7,6 +7,6 @@ Name: libbrotlidec
+ URL: https://github.com/google/brotli
+ Description: Brotli decoder library
+ Version: @PACKAGE_VERSION@
+-Libs: -L${libdir} -R${libdir} -lbrotlidec
++Libs: -L${libdir} -lbrotlidec
+ Requires.private: libbrotlicommon >= 1.0.2
+ Cflags: -I${includedir}
+diff --git a/scripts/libbrotlienc.pc.in b/scripts/libbrotlienc.pc.in
+index 4dd0811b..2098afe2 100644
+--- a/scripts/libbrotlienc.pc.in
++++ b/scripts/libbrotlienc.pc.in
+@@ -7,6 +7,6 @@ Name: libbrotlienc
+ URL: https://github.com/google/brotli
+ Description: Brotli encoder library
+ Version: @PACKAGE_VERSION@
+-Libs: -L${libdir} -R${libdir} -lbrotlienc
++Libs: -L${libdir} -lbrotlienc
+ Requires.private: libbrotlicommon >= 1.0.2
+ Cflags: -I${includedir}
diff --git a/app-arch/brotli/files/brotli-1.0.2-no-rpath.patch b/app-arch/brotli/files/brotli-1.0.2-no-rpath.patch
deleted file mode 100644
index 779b5e6..0000000
--- a/app-arch/brotli/files/brotli-1.0.2-no-rpath.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index ac55f6b3..2dc7232c 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -24,16 +24,6 @@ mark_as_advanced(BROTLI_BUNDLED_MODE)
- 
- include(GNUInstallDirs)
- 
--# When building shared libraries it is important to set the correct rpath.
--# See https://cmake.org/Wiki/CMake_RPATH_handling#Always_full_RPATH
--set(CMAKE_SKIP_BUILD_RPATH FALSE)
--set(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE)
--set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
--list(FIND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES "${CMAKE_INSTALL_LIBDIR}" isSystemDir)
--if ("${isSystemDir}" STREQUAL "-1")
--  set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_LIBDIR}")
--endif()
--
- # Parse version information from common/version.h. Normally we would
- # define these values here and write them out to configuration file(s)
- # (i.e., config.h), but in this case we parse them from
diff --git a/app-arch/bzip2/Manifest b/app-arch/bzip2/Manifest
index 4db66c1..a4b18f5 100644
--- a/app-arch/bzip2/Manifest
+++ b/app-arch/bzip2/Manifest
@@ -1 +1 @@
-DIST bzip2-1.0.6.tar.gz 782025 BLAKE2B b31533af7c71d715e6600874bb0a11b9b3aebbb08af0414a6d88bd5a2ad879a482ad408338159cb6c241815da8f48798d2ea7789ea971431d0be42ee827b0a7e SHA512 00ace5438cfa0c577e5f578d8a808613187eff5217c35164ffe044fbafdfec9e98f4192c02a7d67e01e5a5ccced630583ad1003c37697219b0f147343a3fdd12
+DIST bzip2-1.0.8.tar.gz 810029 BLAKE2B 22ab3acd84f4db8c3d6f59340c252faedfd4447cea00dafbd652e65b6cf8a20adf6835c22e58563004cfafdb15348c924996230b4b23cae42da5e25eeac4bdad SHA512 083f5e675d73f3233c7930ebe20425a533feedeaaa9d8cc86831312a6581cefbe6ed0d08d2fa89be81082f2a5abdabca8b3c080bf97218a1bd59dc118a30b9f3
diff --git a/app-arch/bzip2/bzip2-1.0.6-r11.ebuild b/app-arch/bzip2/bzip2-1.0.6-r11.ebuild
deleted file mode 100644
index 234a528..0000000
--- a/app-arch/bzip2/bzip2-1.0.6-r11.ebuild
+++ /dev/null
@@ -1,118 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-# XXX: atm, libbz2.a is always PIC :(, so it is always built quickly
-#      (since we're building shared libs) ...
-
-EAPI=6
-
-inherit toolchain-funcs multilib-minimal
-
-DESCRIPTION="A high-quality data compressor used extensively by Gentoo Linux"
-HOMEPAGE="https://sourceware.org/bzip2/"
-SRC_URI="mirror://gentoo/${P}.tar.gz"
-
-LICENSE="BZIP2"
-SLOT="0/1" # subslot = SONAME
-KEYWORDS="*"
-IUSE="static static-libs"
-
-PATCHES=(
-	"${FILESDIR}"/${PN}-1.0.4-makefile-CFLAGS.patch
-	"${FILESDIR}"/${PN}-1.0.6-saneso.patch
-	"${FILESDIR}"/${PN}-1.0.4-man-links.patch #172986
-	"${FILESDIR}"/${PN}-1.0.6-progress.patch
-	"${FILESDIR}"/${PN}-1.0.3-no-test.patch
-	"${FILESDIR}"/${PN}-1.0.4-POSIX-shell.patch #193365
-	"${FILESDIR}"/${PN}-1.0.6-mingw.patch #393573
-	"${FILESDIR}"/${PN}-1.0.6-out-of-tree-build.patch
-	"${FILESDIR}"/${PN}-1.0.6-CVE-2016-3189.patch #620466
-	"${FILESDIR}"/${PN}-1.0.6-ubsan-error.patch
-	"${FILESDIR}"/${PN}-1.0.6-nselectors-upper-bound-check.patch
-)
-
-DOCS=( CHANGES README{,.COMPILATION.PROBLEMS,.XML.STUFF} manual.pdf )
-HTML_DOCS=( manual.html )
-
-src_prepare() {
-	default
-
-	# - Use right man path
-	# - Generate symlinks instead of hardlinks
-	# - pass custom variables to control libdir
-	sed -i \
-		-e 's:\$(PREFIX)/man:\$(PREFIX)/share/man:g' \
-		-e 's:ln -s -f $(PREFIX)/bin/:ln -s -f :' \
-		-e 's:$(PREFIX)/lib:$(PREFIX)/$(LIBDIR):g' \
-		Makefile || die
-}
-
-bemake() {
-	emake \
-		VPATH="${S}" \
-		CC="$(tc-getCC)" \
-		AR="$(tc-getAR)" \
-		RANLIB="$(tc-getRANLIB)" \
-		"$@"
-}
-
-multilib_src_compile() {
-	bemake -f "${S}"/Makefile-libbz2_so all
-	# Make sure we link against the shared lib #504648
-	ln -s libbz2.so.${PV} libbz2.so || die
-	bemake -f "${S}"/Makefile all LDFLAGS="${LDFLAGS} $(usex static -static '')"
-}
-
-multilib_src_install() {
-	into /usr
-
-	# Install the shared lib manually.  We install:
-	#  .x.x.x - standard shared lib behavior
-	#  .x.x   - SONAME some distros use #338321
-	#  .x     - SONAME Gentoo uses
-	dolib.so libbz2.so.${PV}
-	local v
-	for v in libbz2.so{,.{${PV%%.*},${PV%.*}}} ; do
-		dosym libbz2.so.${PV} /usr/$(get_libdir)/${v}
-	done
-	use static-libs && dolib.a libbz2.a
-
-	if multilib_is_native_abi ; then
-		gen_usr_ldscript -a bz2
-
-		dobin bzip2recover
-		into /
-		dobin bzip2
-	fi
-}
-
-multilib_src_install_all() {
-	# `make install` doesn't cope with out-of-tree builds, nor with
-	# installing just non-binaries, so handle things ourselves.
-	insinto /usr/include
-	doins bzlib.h
-	into /usr
-	dobin bz{diff,grep,more}
-	doman *.1
-
-	dosym bzdiff /usr/bin/bzcmp
-	dosym bzdiff.1 /usr/share/man/man1/bzcmp.1
-
-	dosym bzmore /usr/bin/bzless
-	dosym bzmore.1 /usr/share/man/man1/bzless.1
-
-	local x
-	for x in bunzip2 bzcat bzip2recover ; do
-		dosym bzip2.1 /usr/share/man/man1/${x}.1
-	done
-	for x in bz{e,f}grep ; do
-		dosym bzgrep /usr/bin/${x}
-		dosym bzgrep.1 /usr/share/man/man1/${x}.1
-	done
-
-	einstalldocs
-
-	# move "important" bzip2 binaries to /bin and use the shared libbz2.so
-	dosym bzip2 /bin/bzcat
-	dosym bzip2 /bin/bunzip2
-}
diff --git a/app-arch/bzip2/bzip2-1.0.8-r1.ebuild b/app-arch/bzip2/bzip2-1.0.8-r1.ebuild
new file mode 100644
index 0000000..17ecfab
--- /dev/null
+++ b/app-arch/bzip2/bzip2-1.0.8-r1.ebuild
@@ -0,0 +1,122 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# XXX: atm, libbz2.a is always PIC :(, so it is always built quickly
+#      (since we're building shared libs) ...
+
+EAPI=7
+
+inherit toolchain-funcs multilib-minimal usr-ldscript
+
+DESCRIPTION="A high-quality data compressor used extensively by Gentoo Linux"
+HOMEPAGE="https://sourceware.org/bzip2/"
+SRC_URI="https://sourceware.org/pub/${PN}/${P}.tar.gz"
+
+LICENSE="BZIP2"
+SLOT="0/1" # subslot = SONAME
+KEYWORDS="*"
+IUSE="static static-libs"
+
+PATCHES=(
+	"${FILESDIR}"/${PN}-1.0.4-makefile-CFLAGS.patch
+	"${FILESDIR}"/${PN}-1.0.8-saneso.patch
+	"${FILESDIR}"/${PN}-1.0.4-man-links.patch #172986
+	"${FILESDIR}"/${PN}-1.0.6-progress.patch
+	"${FILESDIR}"/${PN}-1.0.3-no-test.patch
+	"${FILESDIR}"/${PN}-1.0.8-mingw.patch #393573
+	"${FILESDIR}"/${PN}-1.0.8-out-of-tree-build.patch
+)
+
+DOCS=( CHANGES README{,.COMPILATION.PROBLEMS,.XML.STUFF} manual.pdf )
+HTML_DOCS=( manual.html )
+
+src_prepare() {
+	default
+
+	# - Use right man path
+	# - Generate symlinks instead of hardlinks
+	# - pass custom variables to control libdir
+	sed -i \
+		-e 's:\$(PREFIX)/man:\$(PREFIX)/share/man:g' \
+		-e 's:ln -s -f $(PREFIX)/bin/:ln -s -f :' \
+		-e 's:$(PREFIX)/lib:$(PREFIX)/$(LIBDIR):g' \
+		Makefile || die
+}
+
+bemake() {
+	emake \
+		VPATH="${S}" \
+		CC="$(tc-getCC)" \
+		AR="$(tc-getAR)" \
+		RANLIB="$(tc-getRANLIB)" \
+		"$@"
+}
+
+multilib_src_compile() {
+	bemake -f "${S}"/Makefile-libbz2_so all
+	# Make sure we link against the shared lib #504648
+	ln -s libbz2.so.${PV} libbz2.so || die
+	bemake -f "${S}"/Makefile all LDFLAGS="${LDFLAGS} $(usex static -static '')"
+}
+
+multilib_src_install() {
+	into /usr
+
+	# Install the shared lib manually.  We install:
+	#  .x.x.x - standard shared lib behavior
+	#  .x.x   - SONAME some distros use #338321
+	#  .x     - SONAME Gentoo uses
+	dolib.so libbz2.so.${PV}
+	local v
+	for v in libbz2.so{,.{${PV%%.*},${PV%.*}}} ; do
+		dosym libbz2.so.${PV} /usr/$(get_libdir)/${v}
+	done
+
+	# Install libbz2.so.1.0 due to accidental soname change in 1.0.7.
+	# Reference: 98da0ad82192d21ad74ae52366ea8466e2acea24.
+	# OK to remove one year after 2020-04-11.
+	if [[ ! -L "${ED}/usr/$(get_libdir)/libbz2.so.1.0" ]]; then
+		dosym libbz2.so.${PV} "/usr/$(get_libdir)/libbz2.so.1.0"
+	fi
+
+	use static-libs && dolib.a libbz2.a
+
+	if multilib_is_native_abi ; then
+		gen_usr_ldscript -a bz2
+
+		dobin bzip2recover
+		into /
+		dobin bzip2
+	fi
+}
+
+multilib_src_install_all() {
+	# `make install` doesn't cope with out-of-tree builds, nor with
+	# installing just non-binaries, so handle things ourselves.
+	insinto /usr/include
+	doins bzlib.h
+	into /usr
+	dobin bz{diff,grep,more}
+	doman *.1
+
+	dosym bzdiff /usr/bin/bzcmp
+	dosym bzdiff.1 /usr/share/man/man1/bzcmp.1
+
+	dosym bzmore /usr/bin/bzless
+	dosym bzmore.1 /usr/share/man/man1/bzless.1
+
+	local x
+	for x in bunzip2 bzcat bzip2recover ; do
+		dosym bzip2.1 /usr/share/man/man1/${x}.1
+	done
+	for x in bz{e,f}grep ; do
+		dosym bzgrep /usr/bin/${x}
+		dosym bzgrep.1 /usr/share/man/man1/${x}.1
+	done
+
+	einstalldocs
+
+	# move "important" bzip2 binaries to /bin and use the shared libbz2.so
+	dosym bzip2 /bin/bzcat
+	dosym bzip2 /bin/bunzip2
+}
diff --git a/app-arch/bzip2/files/bzip2-1.0.4-POSIX-shell.patch b/app-arch/bzip2/files/bzip2-1.0.4-POSIX-shell.patch
deleted file mode 100644
index 74f8df0..0000000
--- a/app-arch/bzip2/files/bzip2-1.0.4-POSIX-shell.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-bzgrep uses !/bin/sh but then uses the bashism ${var//} so replace those
-with calls to sed so POSIX shells work
-
-http://bugs.gentoo.org/193365
-
---- a/bzgrep
-+++ b/bzgrep
-@@ -63,10 +63,9 @@
-     bzip2 -cdfq "$i" | $grep $opt "$pat"
-     r=$?
-   else
--    j=${i//\\/\\\\}
--    j=${j//|/\\|}
--    j=${j//&/\\&}
--    j=`printf "%s" "$j" | tr '\n' ' '`
-+    # the backslashes here are doubled up as we have to escape each one for the
-+    # shell and then escape each one for the sed expression
-+    j=`printf "%s" "${i}" | sed -e 's:\\\\:\\\\\\\\:g' -e 's:[|]:\\\\|:g' -e 's:[&]:\\\\&:g' | tr '\n' ' '`
-     bzip2 -cdfq "$i" | $grep $opt "$pat" | sed "s|^|${j}:|"
-     r=$?
-   fi
diff --git a/app-arch/bzip2/files/bzip2-1.0.6-CVE-2016-3189.patch b/app-arch/bzip2/files/bzip2-1.0.6-CVE-2016-3189.patch
deleted file mode 100644
index b031c80..0000000
--- a/app-arch/bzip2/files/bzip2-1.0.6-CVE-2016-3189.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-Upstream-Status: Backport
-https://bugzilla.suse.com/attachment.cgi?id=681334
-
-CVE: CVE-2016-3189
-Signed-off-by: Armin Kuster <akuster@mvista.com>
-
-Index: bzip2-1.0.6/bzip2recover.c
-===================================================================
---- a/bzip2recover.c
-+++ b/bzip2recover.c
-@@ -457,6 +457,7 @@ Int32 main ( Int32 argc, Char** argv )
-             bsPutUChar ( bsWr, 0x50 ); bsPutUChar ( bsWr, 0x90 );
-             bsPutUInt32 ( bsWr, blockCRC );
-             bsClose ( bsWr );
-+            outFile = NULL;
-          }
-          if (wrBlock >= rbCtr) break;
-          wrBlock++;
diff --git a/app-arch/bzip2/files/bzip2-1.0.6-mingw.patch b/app-arch/bzip2/files/bzip2-1.0.6-mingw.patch
deleted file mode 100644
index 51469ca..0000000
--- a/app-arch/bzip2/files/bzip2-1.0.6-mingw.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-make it build for mingw targets
-
-https://bugs.gentoo.org/393573
-
---- a/bzip2.c
-+++ b/bzip2.c
-@@ -129,7 +129,7 @@
- #if BZ_LCCWIN32
- #   include <io.h>
- #   include <fcntl.h>
--#   include <sys\stat.h>
-+#   include <sys/stat.h>
- 
- #   define NORETURN       /**/
- #   define PATH_SEP       '\\'
---- a/bzlib.h
-+++ b/bzlib.h
-@@ -81,6 +81,9 @@ typedef
-       /* windows.h define small to char */
- #      undef small
- #   endif
-+#   ifndef WINAPI
-+#   define WINAPI
-+#   endif
- #   ifdef BZ_EXPORT
- #   define BZ_API(func) WINAPI func
- #   define BZ_EXTERN extern
diff --git a/app-arch/bzip2/files/bzip2-1.0.6-nselectors-upper-bound-check.patch b/app-arch/bzip2/files/bzip2-1.0.6-nselectors-upper-bound-check.patch
deleted file mode 100644
index a7731f7..0000000
--- a/app-arch/bzip2/files/bzip2-1.0.6-nselectors-upper-bound-check.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 13ca8fee0c897121ae79ae644a212418398dfea7 Mon Sep 17 00:00:00 2001
-From: Amin Hassani <ahassani@chromium.org>
-Date: Fri, 8 Mar 2019 09:58:20 -0800
-Subject: [PATCH] Check for upper bounds of nselectors.
-
-Currently there is no check for the upper bounds of the
-nselectors. Hence, a corrupt input can cause a segfault.
-
-This issue was discovered by one of our fuzzers. The actual error was:
-
-../bzip2-1.0.6/decompress.c:299:10: runtime error: index 18002 out of bounds for type 'UChar [18002]'
----
- decompress.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/decompress.c b/decompress.c
-index 311f566..391552d 100644
---- a/decompress.c
-+++ b/decompress.c
-@@ -288,6 +288,7 @@ Int32 BZ2_decompress ( DState* s )
-       if (nGroups < 2 || nGroups > 6) RETURN(BZ_DATA_ERROR);
-       GET_BITS(BZ_X_SELECTOR_2, nSelectors, 15);
-       if (nSelectors < 1) RETURN(BZ_DATA_ERROR);
-+      if (nSelectors > BZ_MAX_SELECTORS) RETURN(BZ_DATA_ERROR);
-       for (i = 0; i < nSelectors; i++) {
-          j = 0;
-          while (True) {
--- 
-2.21.0.360.g471c308f928-goog
-
diff --git a/app-arch/bzip2/files/bzip2-1.0.6-out-of-tree-build.patch b/app-arch/bzip2/files/bzip2-1.0.6-out-of-tree-build.patch
deleted file mode 100644
index 806339e..0000000
--- a/app-arch/bzip2/files/bzip2-1.0.6-out-of-tree-build.patch
+++ /dev/null
@@ -1,79 +0,0 @@
---- a/Makefile
-+++ b/Makefile
-@@ -53,7 +53,6 @@ libbz2.a: $(OBJS)
- 
- check: test
- test: bzip2
--	@cat words1
- 	./bzip2 -1  < sample1.ref > sample1.rb2
- 	./bzip2 -2  < sample2.ref > sample2.rb2
- 	./bzip2 -3  < sample3.ref > sample3.rb2
-@@ -66,7 +65,6 @@ test: bzip2
- 	cmp sample1.tst sample1.ref
- 	cmp sample2.tst sample2.ref
- 	cmp sample3.tst sample3.ref
--	@cat words3
- 
- install: bzip2 bzip2recover
- 	if ( test ! -d $(PREFIX)/bin ) ; then mkdir -p $(PREFIX)/bin ; fi
-@@ -115,25 +113,8 @@ clean:
- 	sample1.rb2 sample2.rb2 sample3.rb2 \
- 	sample1.tst sample2.tst sample3.tst
- 
--blocksort.o: blocksort.c
--	@cat words0
--	$(CC) $(CFLAGS) -c blocksort.c
--huffman.o: huffman.c
--	$(CC) $(CFLAGS) -c huffman.c
--crctable.o: crctable.c
--	$(CC) $(CFLAGS) -c crctable.c
--randtable.o: randtable.c
--	$(CC) $(CFLAGS) -c randtable.c
--compress.o: compress.c
--	$(CC) $(CFLAGS) -c compress.c
--decompress.o: decompress.c
--	$(CC) $(CFLAGS) -c decompress.c
--bzlib.o: bzlib.c
--	$(CC) $(CFLAGS) -c bzlib.c
--bzip2.o: bzip2.c
--	$(CC) $(CFLAGS) -c bzip2.c
--bzip2recover.o: bzip2recover.c
--	$(CC) $(CFLAGS) -c bzip2recover.c
-+%.o: %.c
-+	$(CC) $(CFLAGS) -c $<
- 
- 
- distclean: clean
---- a/Makefile-libbz2_so
-+++ b/Makefile-libbz2_so
-@@ -36,9 +36,7 @@ OBJS= blocksort.o  \
- 
- all: $(OBJS)
- 	$(CC) $(LDFLAGS) -shared -Wl,-soname -Wl,libbz2.so.1 -o libbz2.so.1.0.6 $(OBJS)
--	$(CC) $(LDFLAGS) $(CFLAGS) -o bzip2-shared bzip2.c libbz2.so.1.0.6
--	rm -f libbz2.so.1.0
--	ln -s libbz2.so.1.0.6 libbz2.so.1.0
-+	ln -sf libbz2.so.1.0.6 libbz2.so.1.0
- 
- clean: 
- 	rm -f $(OBJS) bzip2.o libbz2.so.1.0.6 libbz2.so.1.0 bzip2-shared
-@@ -43,17 +43,5 @@ all: $(OBJS)
- clean: 
- 	rm -f $(OBJS) bzip2.o libbz2.so.1.0.6 libbz2.so.1.0 bzip2-shared
- 
--blocksort.o: blocksort.c
--	$(CC) $(CFLAGS) -c blocksort.c
--huffman.o: huffman.c
--	$(CC) $(CFLAGS) -c huffman.c
--crctable.o: crctable.c
--	$(CC) $(CFLAGS) -c crctable.c
--randtable.o: randtable.c
--	$(CC) $(CFLAGS) -c randtable.c
--compress.o: compress.c
--	$(CC) $(CFLAGS) -c compress.c
--decompress.o: decompress.c
--	$(CC) $(CFLAGS) -c decompress.c
--bzlib.o: bzlib.c
--	$(CC) $(CFLAGS) -c bzlib.c
-+%.o: %.c
-+	$(CC) $(CFLAGS) -c $<
diff --git a/app-arch/bzip2/files/bzip2-1.0.6-saneso.patch b/app-arch/bzip2/files/bzip2-1.0.6-saneso.patch
deleted file mode 100644
index 52ea791..0000000
--- a/app-arch/bzip2/files/bzip2-1.0.6-saneso.patch
+++ /dev/null
@@ -1,13 +0,0 @@
---- a/Makefile-libbz2_so
-+++ b/Makefile-libbz2_so
-@@ -35,8 +35,8 @@
-       bzlib.o
- 
- all: $(OBJS)
--	$(CC) -shared -Wl,-soname -Wl,libbz2.so.1.0 -o libbz2.so.1.0.6 $(OBJS)
--	$(CC) $(CFLAGS) -o bzip2-shared bzip2.c libbz2.so.1.0.6
-+	$(CC) $(LDFLAGS) -shared -Wl,-soname -Wl,libbz2.so.1 -o libbz2.so.1.0.6 $(OBJS)
-+	$(CC) $(LDFLAGS) $(CFLAGS) -o bzip2-shared bzip2.c libbz2.so.1.0.6
- 	rm -f libbz2.so.1.0
- 	ln -s libbz2.so.1.0.6 libbz2.so.1.0
- 
diff --git a/app-arch/bzip2/files/bzip2-1.0.6-ubsan-error.patch b/app-arch/bzip2/files/bzip2-1.0.6-ubsan-error.patch
deleted file mode 100644
index 84b8111..0000000
--- a/app-arch/bzip2/files/bzip2-1.0.6-ubsan-error.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-Author: Manoj Gupta <manojgupta@google.com>
-
-Use unsigned 1 for shifting instead of signed 1.
-
-This fixed an issue with shift caught by undefined behavior
-sanitizer in clang.
-bzip2-1.0.6/blocksort.c:255:7
-runtime error: left shift of 1 by 31 places cannot be represented in type 'int'
-
---- a/blocksort.c
-+++ b/blocksort.c
-@@ -202,9 +202,9 @@ void fallbackQSort3 ( UInt32* fmap,
-       bhtab [ 0 .. 2+(nblock/32) ] destroyed
- */
- 
--#define       SET_BH(zz)  bhtab[(zz) >> 5] |= (1 << ((zz) & 31))
--#define     CLEAR_BH(zz)  bhtab[(zz) >> 5] &= ~(1 << ((zz) & 31))
--#define     ISSET_BH(zz)  (bhtab[(zz) >> 5] & (1 << ((zz) & 31)))
-+#define       SET_BH(zz)  bhtab[(zz) >> 5] |= (1u << ((zz) & 31))
-+#define     CLEAR_BH(zz)  bhtab[(zz) >> 5] &= ~(1u << ((zz) & 31))
-+#define     ISSET_BH(zz)  (bhtab[(zz) >> 5] & (1u << ((zz) & 31)))
- #define      WORD_BH(zz)  bhtab[(zz) >> 5]
- #define UNALIGNED_BH(zz)  ((zz) & 0x01f)
- 
diff --git a/app-arch/bzip2/files/bzip2-1.0.8-mingw.patch b/app-arch/bzip2/files/bzip2-1.0.8-mingw.patch
new file mode 100644
index 0000000..b512a8f
--- /dev/null
+++ b/app-arch/bzip2/files/bzip2-1.0.8-mingw.patch
@@ -0,0 +1,16 @@
+make it build for mingw targets
+
+https://bugs.gentoo.org/393573
+
+--- a/bzlib.h
++++ b/bzlib.h
+@@ -81,6 +81,9 @@ typedef
+       /* windows.h define small to char */
+ #      undef small
+ #   endif
++#   ifndef WINAPI
++#   define WINAPI
++#   endif
+ #   ifdef BZ_EXPORT
+ #   define BZ_API(func) WINAPI func
+ #   define BZ_EXTERN extern
diff --git a/app-arch/bzip2/files/bzip2-1.0.8-out-of-tree-build.patch b/app-arch/bzip2/files/bzip2-1.0.8-out-of-tree-build.patch
new file mode 100644
index 0000000..0481826
--- /dev/null
+++ b/app-arch/bzip2/files/bzip2-1.0.8-out-of-tree-build.patch
@@ -0,0 +1,76 @@
+--- bzip2-1.0.8/Makefile
++++ bzip2-1.0.8/Makefile
+@@ -54,7 +54,6 @@
+ 
+ check: test
+ test: bzip2
+-	@cat words1
+ 	./bzip2 -1  < sample1.ref > sample1.rb2
+ 	./bzip2 -2  < sample2.ref > sample2.rb2
+ 	./bzip2 -3  < sample3.ref > sample3.rb2
+@@ -67,7 +66,6 @@
+ 	cmp sample1.tst sample1.ref
+ 	cmp sample2.tst sample2.ref
+ 	cmp sample3.tst sample3.ref
+-	@cat words3
+ 
+ install: bzip2 bzip2recover
+ 	if ( test ! -d $(PREFIX)/bin ) ; then mkdir -p $(PREFIX)/bin ; fi
+@@ -113,25 +111,8 @@
+ 	sample1.rb2 sample2.rb2 sample3.rb2 \
+ 	sample1.tst sample2.tst sample3.tst
+ 
+-blocksort.o: blocksort.c
+-	@cat words0
+-	$(CC) $(CFLAGS) -c blocksort.c
+-huffman.o: huffman.c
+-	$(CC) $(CFLAGS) -c huffman.c
+-crctable.o: crctable.c
+-	$(CC) $(CFLAGS) -c crctable.c
+-randtable.o: randtable.c
+-	$(CC) $(CFLAGS) -c randtable.c
+-compress.o: compress.c
+-	$(CC) $(CFLAGS) -c compress.c
+-decompress.o: decompress.c
+-	$(CC) $(CFLAGS) -c decompress.c
+-bzlib.o: bzlib.c
+-	$(CC) $(CFLAGS) -c bzlib.c
+-bzip2.o: bzip2.c
+-	$(CC) $(CFLAGS) -c bzip2.c
+-bzip2recover.o: bzip2recover.c
+-	$(CC) $(CFLAGS) -c bzip2recover.c
++%.o: %.c
++	$(CC) $(CFLAGS) -c $<
+ 
+ 
+ distclean: clean
+--- bzip2-1.0.8/Makefile-libbz2_so
++++ bzip2-1.0.8/Makefile-libbz2_so
+@@ -36,24 +36,10 @@
+ 
+ all: $(OBJS)
+ 	$(CC) $(LDFLAGS) -shared -Wl,-soname -Wl,libbz2.so.1 -o libbz2.so.1.0.8 $(OBJS)
+-	$(CC) $(LDFLAGS) $(CFLAGS) -o bzip2-shared bzip2.c libbz2.so.1.0.8
+-	rm -f libbz2.so.1.0
+-	ln -s libbz2.so.1.0.8 libbz2.so.1.0
++	ln -sf libbz2.so.1.0.8 libbz2.so.1.0
+ 
+ clean: 
+ 	rm -f $(OBJS) bzip2.o libbz2.so.1.0.8 libbz2.so.1.0 bzip2-shared
+ 
+-blocksort.o: blocksort.c
+-	$(CC) $(CFLAGS) -c blocksort.c
+-huffman.o: huffman.c
+-	$(CC) $(CFLAGS) -c huffman.c
+-crctable.o: crctable.c
+-	$(CC) $(CFLAGS) -c crctable.c
+-randtable.o: randtable.c
+-	$(CC) $(CFLAGS) -c randtable.c
+-compress.o: compress.c
+-	$(CC) $(CFLAGS) -c compress.c
+-decompress.o: decompress.c
+-	$(CC) $(CFLAGS) -c decompress.c
+-bzlib.o: bzlib.c
+-	$(CC) $(CFLAGS) -c bzlib.c
++%.o: %.c
++	$(CC) $(CFLAGS) -c $<
diff --git a/app-arch/bzip2/files/bzip2-1.0.8-saneso.patch b/app-arch/bzip2/files/bzip2-1.0.8-saneso.patch
new file mode 100644
index 0000000..63409f5
--- /dev/null
+++ b/app-arch/bzip2/files/bzip2-1.0.8-saneso.patch
@@ -0,0 +1,13 @@
+--- bzip2-1.0.8/Makefile-libbz2_so
++++ bzip2-1.0.8/Makefile-libbz2_so
+@@ -35,8 +35,8 @@
+       bzlib.o
+ 
+ all: $(OBJS)
+-	$(CC) -shared -Wl,-soname -Wl,libbz2.so.1.0 -o libbz2.so.1.0.8 $(OBJS)
+-	$(CC) $(CFLAGS) -o bzip2-shared bzip2.c libbz2.so.1.0.8
++	$(CC) $(LDFLAGS) -shared -Wl,-soname -Wl,libbz2.so.1 -o libbz2.so.1.0.8 $(OBJS)
++	$(CC) $(LDFLAGS) $(CFLAGS) -o bzip2-shared bzip2.c libbz2.so.1.0.8
+ 	rm -f libbz2.so.1.0
+ 	ln -s libbz2.so.1.0.8 libbz2.so.1.0
+ 
diff --git a/app-arch/cabextract/Manifest b/app-arch/cabextract/Manifest
index 61f11f2..17fd6ea 100644
--- a/app-arch/cabextract/Manifest
+++ b/app-arch/cabextract/Manifest
@@ -1 +1 @@
-DIST cabextract-1.6.tar.gz 241731 SHA256 cee661b56555350d26943c5e127fc75dd290b7f75689d5ebc1f04957c4af55fb SHA512 d1c71c0292e3d73d8edbff5f5230b3127c63028f5aba1d0cad968bc945202fb9c0773327affce3d28466068377f029c80735adbabe0929d29b2204dea73738f8 WHIRLPOOL 5816e3f6ee3a3caad574bbc3d8aeff55bb99383a4ce80a40332d59696a1d4fbaba6823e9a77023e7cbbc257a0693a35f7817d7ff20383b30898de5d4e50eb1f2
+DIST cabextract-1.9.1.tar.gz 469369 BLAKE2B 5bfc697b40cbf47b42ab7857804b703c9622d8dae1648aae1bb5c0ec7c7978bff01b7ca2526f1b6090f193d88c00e3f49ae111f348d03fec9f575bddbb4b4096 SHA512 c354a4b20a222b40813f01baf8311c9a76611da427f9f44e977a3fd09508e24a18b486e3eef889a9debdca459f1b0c28d5d25429ccd555d3a2e4ff92d91cec14
diff --git a/app-arch/cabextract/cabextract-1.6.ebuild b/app-arch/cabextract/cabextract-1.6.ebuild
deleted file mode 100644
index 7f0e808..0000000
--- a/app-arch/cabextract/cabextract-1.6.ebuild
+++ /dev/null
@@ -1,37 +0,0 @@
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-
-inherit toolchain-funcs
-
-DESCRIPTION="Extracts files from Microsoft cabinet archive files"
-HOMEPAGE="http://www.cabextract.org.uk/"
-SRC_URI="http://www.cabextract.org.uk/${P}.tar.gz"
-
-LICENSE="GPL-3"
-SLOT="0"
-KEYWORDS="*"
-IUSE="extras"
-
-RDEPEND="extras? ( dev-lang/perl )"
-
-src_prepare() {
-	# the code attempts to set up a fnmatch replacement, but then fails to code
-	# it properly leading to undefined references to rpl_fnmatch().  This may be
-	# removed in the future if building still works by setting "yes" to "no".
-	export ac_cv_func_fnmatch_works=yes
-}
-
-src_compile() {
-	emake AR="$(tc-getAR)"
-}
-
-src_install() {
-	default
-	dodoc AUTHORS ChangeLog INSTALL NEWS README TODO doc/magic
-	dohtml doc/wince_cab_format.html
-	if use extras; then
-		dobin src/{wince_info,wince_rename,cabinfo,cabsplit}
-	fi
-}
diff --git a/app-arch/cabextract/cabextract-1.9.1.ebuild b/app-arch/cabextract/cabextract-1.9.1.ebuild
new file mode 100644
index 0000000..82fad40
--- /dev/null
+++ b/app-arch/cabextract/cabextract-1.9.1.ebuild
@@ -0,0 +1,67 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="7"
+
+inherit autotools toolchain-funcs
+
+if [[ ${PV} == "9999" ]] ; then
+	EGIT_REPO_URI="https://github.com/kyz/libmspack.git"
+	inherit git-r3
+	MY_P="${PN}-9999"
+
+	LIBMSPACK_DEPEND="~dev-libs/libmspack-9999:="
+else
+	KEYWORDS="*"
+	MY_PV="${PV/_alpha/alpha}"
+	MY_P="${PN}-${MY_PV}"
+	SRC_URI="https://www.cabextract.org.uk/${P}.tar.gz"
+
+	LIBMSPACK_DEPEND=">=dev-libs/libmspack-0.8_alpha:="
+fi
+
+DESCRIPTION="Extracts files from Microsoft cabinet archive files"
+HOMEPAGE="https://www.cabextract.org.uk/"
+
+LICENSE="GPL-3"
+SLOT="0"
+IUSE="extras"
+
+DEPEND="${LIBMSPACK_DEPEND}
+	virtual/pkgconfig"
+RDEPEND="${LIBMSPACK_DEPEND}
+	extras? ( dev-lang/perl )"
+
+src_prepare() {
+	if [[ ${PV} == "9999" ]] ; then
+		# Re-create file layout from release tarball
+		pushd "${WORKDIR}" &>/dev/null || die
+		cp -aL "${S}"/${PN} "${WORKDIR}"/${PN}-source || die
+		rm -r "${S}" || die
+		mv "${WORKDIR}"/${PN}-source "${S}" || die
+		popd &>/dev/null || die
+	fi
+
+	default
+
+	eautoreconf
+}
+
+src_configure() {
+	econf \
+		--with-external-libmspack=yes
+}
+
+src_compile() {
+	emake AR="$(tc-getAR)"
+}
+
+src_install() {
+	local DOCS=( AUTHORS ChangeLog NEWS README TODO doc/magic )
+	default
+	docinto html
+	dodoc doc/wince_cab_format.html
+	if use extras; then
+		dobin src/{wince_info,wince_rename,cabinfo,cabsplit}
+	fi
+}
diff --git a/app-arch/cabextract/files/cabextract-1.9-fix-bigendian.patch b/app-arch/cabextract/files/cabextract-1.9-fix-bigendian.patch
new file mode 100644
index 0000000..760dd9d
--- /dev/null
+++ b/app-arch/cabextract/files/cabextract-1.9-fix-bigendian.patch
@@ -0,0 +1,17 @@
+https://github.com/kyz/libmspack/commit/c19e707936947b45cf05bc9aaee68517c6c2aca6
+
+---
+ configure.ac  | 1 +
+ 1 files changed, 1 insertions(+)
+
+diff --git a/configure.ac b/configure.ac
+--- a/configure.ac
++++ b/configure.ac
+@@ -30,6 +30,7 @@ AC_CHECK_HEADERS([inttypes.h])
+ # Checks for typedefs, structures, and compiler characteristics.
+ AC_C_CONST
+ AC_C_INLINE
++AC_C_BIGENDIAN
+ AC_TYPE_MODE_T
+ AC_TYPE_OFF_T
+ AC_TYPE_SIZE_T
diff --git a/app-arch/cabextract/files/cabextract-1.9-remove-spurious-test_files.patch b/app-arch/cabextract/files/cabextract-1.9-remove-spurious-test_files.patch
new file mode 100644
index 0000000..d80b870
--- /dev/null
+++ b/app-arch/cabextract/files/cabextract-1.9-remove-spurious-test_files.patch
@@ -0,0 +1,17 @@
+https://github.com/kyz/libmspack/commit/2f78851e3927b05931574b380ca6dccaf91e3807
+
+---
+ test/bugs.test | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/test/bugs.test
++++ b/test/bugs.test
+@@ -2,7 +2,7 @@
+ # test that known crash bugs remain fixed
+ . test/testcase
+ 
+-$cabextract -t $test_files/bugs/*.cab
++$cabextract -t bugs/*.cab
+ 
+ # fail if exit code indicates a crash (SIGBUS, SIGSEGV, etc.)
+ test $? -le 1
diff --git a/app-arch/gzip/Manifest b/app-arch/gzip/Manifest
index 4dabca3..223ecc3 100644
--- a/app-arch/gzip/Manifest
+++ b/app-arch/gzip/Manifest
@@ -1 +1 @@
-DIST gzip-1.9.tar.xz 762516 BLAKE2B 4001fc7a770634916d52b026dab1b621fc96275bfb61ec2df2d0e7d7ec1c81414270d3c866034e6ef758870f38e9d4396a25832abe558915a7ded1f1511eb4b0 SHA512 c0852e7f7662141e79d14bc36e50f1940dba3e804feff3b0b8fa084ffec720ac245352282d2f1db117fadc95758424dd418d192b94621dac4367834ccf101fad
+DIST gzip-1.10.tar.xz 775144 BLAKE2B 431dc0fd11061eabd9db86594777b86510b124b124fd74799eacd67334631af60f638be2638413bee0153a9da35528d0aecc5b5083152c395223705400c9103b SHA512 e6ba9e3906cdb6a6235b213515093d02afa1722686f73eddacbacae628542b586b449829783b6a1701e9b9e0c4d4dfa6845904d3b6b010f5cf21aec4997c9299
diff --git a/app-arch/gzip/files/gzip-1.9-gnulib-glibc-2.28.patch b/app-arch/gzip/files/gzip-1.9-gnulib-glibc-2.28.patch
deleted file mode 100644
index 20039b9..0000000
--- a/app-arch/gzip/files/gzip-1.9-gnulib-glibc-2.28.patch
+++ /dev/null
@@ -1,134 +0,0 @@
-fix build failure against glibc-2.28
-
-https://bugs.gentoo.org/663928
-
-Adopted gnulib's upstream patch:
-
-From 4af4a4a71827c0bc5e0ec67af23edef4f15cee8e Mon Sep 17 00:00:00 2001
-From: Paul Eggert <eggert@cs.ucla.edu>
-Date: Mon, 5 Mar 2018 10:56:29 -0800
-Subject: [PATCH] fflush: adjust to glibc 2.28 libio.h removal
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Problem reported by Daniel P. Berrangé in:
-https://lists.gnu.org/r/bug-gnulib/2018-03/msg00000.html
-* lib/fflush.c (clear_ungetc_buffer_preserving_position)
-(disable_seek_optimization, rpl_fflush):
-* lib/fpurge.c (fpurge):
-* lib/freadahead.c (freadahead):
-* lib/freading.c (freading):
-* lib/fseeko.c (fseeko):
-* lib/fseterr.c (fseterr):
-Check _IO_EOF_SEEN instead of _IO_ftrylockfile.
-* lib/stdio-impl.h (_IO_IN_BACKUP) [_IO_EOF_SEEN]:
-Define if not already defined.
----
- lib/fflush.c     |  6 +++---
- lib/fpurge.c     |  2 +-
- lib/freading.c   |  2 +-
- lib/fseeko.c     |  4 ++--
- lib/fseterr.c    |  2 +-
- lib/stdio-impl.h |  6 ++++++
-
---- a/lib/fflush.c
-+++ b/lib/fflush.c
-@@ -33,7 +33,7 @@
- #undef fflush
- 
- 
--#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
-+#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
- 
- /* Clear the stream's ungetc buffer, preserving the value of ftello (fp).  */
- static void
-@@ -72,7 +72,7 @@ clear_ungetc_buffer (FILE *fp)
- 
- #endif
- 
--#if ! (defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */)
-+#if ! (defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */)
- 
- # if (defined __sferror || defined __DragonFly__ || defined __ANDROID__) && defined __SNPT
- /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Minix 3, Android */
-@@ -148,7 +148,7 @@ rpl_fflush (FILE *stream)
-   if (stream == NULL || ! freading (stream))
-     return fflush (stream);
- 
--#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
-+#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
- 
-   clear_ungetc_buffer_preserving_position (stream);
- 
---- a/lib/fpurge.c
-+++ b/lib/fpurge.c
-@@ -62,7 +62,7 @@ fpurge (FILE *fp)
-   /* Most systems provide FILE as a struct and the necessary bitmask in
-      <stdio.h>, because they need it for implementing getc() and putc() as
-      fast macros.  */
--# if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
-+# if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
-   fp->_IO_read_end = fp->_IO_read_ptr;
-   fp->_IO_write_ptr = fp->_IO_write_base;
-   /* Avoid memory leak when there is an active ungetc buffer.  */
---- a/lib/freading.c
-+++ b/lib/freading.c
-@@ -31,7 +31,7 @@ freading (FILE *fp)
-   /* Most systems provide FILE as a struct and the necessary bitmask in
-      <stdio.h>, because they need it for implementing getc() and putc() as
-      fast macros.  */
--# if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
-+# if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
-   return ((fp->_flags & _IO_NO_WRITES) != 0
-           || ((fp->_flags & (_IO_NO_READS | _IO_CURRENTLY_PUTTING)) == 0
-               && fp->_IO_read_base != NULL));
---- a/lib/fseeko.c
-+++ b/lib/fseeko.c
-@@ -47,7 +47,7 @@ fseeko (FILE *fp, off_t offset, int whence)
- #endif
- 
-   /* These tests are based on fpurge.c.  */
--#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
-+#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
-   if (fp->_IO_read_end == fp->_IO_read_ptr
-       && fp->_IO_write_ptr == fp->_IO_write_base
-       && fp->_IO_save_base == NULL)
-@@ -123,7 +123,7 @@ fseeko (FILE *fp, off_t offset, int whence)
-           return -1;
-         }
- 
--#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
-+#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
-       fp->_flags &= ~_IO_EOF_SEEN;
-       fp->_offset = pos;
- #elif defined __sferror || defined __DragonFly__ || defined __ANDROID__
---- a/lib/fseterr.c
-+++ b/lib/fseterr.c
-@@ -29,7 +29,7 @@ fseterr (FILE *fp)
-   /* Most systems provide FILE as a struct and the necessary bitmask in
-      <stdio.h>, because they need it for implementing getc() and putc() as
-      fast macros.  */
--#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
-+#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
-   fp->_flags |= _IO_ERR_SEEN;
- #elif defined __sferror || defined __DragonFly__ || defined __ANDROID__
-   /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Minix 3, Android */
---- a/lib/stdio-impl.h
-+++ b/lib/stdio-impl.h
-@@ -18,6 +18,12 @@
-    the same implementation of stdio extension API, except that some fields
-    have different naming conventions, or their access requires some casts.  */
- 
-+/* Glibc 2.28 made _IO_IN_BACKUP private.  For now, work around this
-+   problem by defining it ourselves.  FIXME: Do not rely on glibc
-+   internals.  */
-+#if !defined _IO_IN_BACKUP && defined _IO_EOF_SEEN
-+# define _IO_IN_BACKUP 0x100
-+#endif
- 
- /* BSD stdio derived implementations.  */
- 
--- 
-2.19.1
-
diff --git a/app-arch/gzip/gzip-1.10.ebuild b/app-arch/gzip/gzip-1.10.ebuild
new file mode 100644
index 0000000..1aaa71d
--- /dev/null
+++ b/app-arch/gzip/gzip-1.10.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit flag-o-matic
+
+DESCRIPTION="Standard GNU compressor"
+HOMEPAGE="https://www.gnu.org/software/gzip/"
+SRC_URI="mirror://gnu/gzip/${P}.tar.xz
+	https://alpha.gnu.org/gnu/gzip/${P}.tar.xz
+	mirror://gentoo/${P}.tar.xz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="*"
+IUSE="pic static"
+
+PATCHES=(
+	"${FILESDIR}/${PN}-1.3.8-install-symlinks.patch"
+)
+
+src_configure() {
+	use static && append-flags -static
+	# avoid text relocation in gzip
+	use pic && export DEFS="NO_ASM"
+	econf --disable-gcc-warnings #663928
+}
+
+src_install() {
+	default
+	docinto txt
+	dodoc algorithm.doc gzip.doc
+
+	# keep most things in /usr, just the fun stuff in /
+	dodir /bin
+	mv "${ED}"/usr/bin/{gunzip,gzip,uncompress,zcat} "${ED}"/bin/ || die
+	sed -e "s:${EPREFIX}/usr:${EPREFIX}:" -i "${ED}"/bin/gunzip || die
+}
diff --git a/app-arch/gzip/gzip-1.9.ebuild b/app-arch/gzip/gzip-1.9.ebuild
deleted file mode 100644
index 6328e39..0000000
--- a/app-arch/gzip/gzip-1.9.ebuild
+++ /dev/null
@@ -1,40 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-inherit flag-o-matic
-
-DESCRIPTION="Standard GNU compressor"
-HOMEPAGE="https://www.gnu.org/software/gzip/"
-SRC_URI="mirror://gnu/gzip/${P}.tar.xz
-	mirror://gnu-alpha/gzip/${P}.tar.xz
-	mirror://gentoo/${P}.tar.xz"
-
-LICENSE="GPL-3"
-SLOT="0"
-KEYWORDS="*"
-IUSE="pic static"
-
-PATCHES=(
-	"${FILESDIR}/${PN}-1.3.8-install-symlinks.patch"
-	"${FILESDIR}/${PN}-1.9-gnulib-glibc-2.28.patch"
-)
-
-src_configure() {
-	use static && append-flags -static
-	# avoid text relocation in gzip
-	use pic && export DEFS="NO_ASM"
-	econf --disable-gcc-warnings #663928
-}
-
-src_install() {
-	default
-	docinto txt
-	dodoc algorithm.doc gzip.doc
-
-	# keep most things in /usr, just the fun stuff in /
-	dodir /bin
-	mv "${ED%/}"/usr/bin/{gunzip,gzip,uncompress,zcat} "${ED%/}"/bin/ || die
-	sed -e "s:${EPREFIX}/usr:${EPREFIX}:" -i "${ED%/}"/bin/gunzip || die
-}
diff --git a/app-arch/lbzip2/Manifest b/app-arch/lbzip2/Manifest
index 98b292c..37602fe 100644
--- a/app-arch/lbzip2/Manifest
+++ b/app-arch/lbzip2/Manifest
@@ -1 +1 @@
-DIST lbzip2-2.5.tar.gz 651399 SHA256 46c75ee93cc95eedc6005625442b2b8e59a2bef3ba80987d0491f055185650e9 SHA512 76e96cfa75b3ed515b2f891349dffc1403daab2dd0a2a614fa0c811cec6ca25faa395da08ad68a9b6ba4069332c4571f70fb7424f06ef3d800c3082c08d7d3d7 WHIRLPOOL b64e70239d89782499cd59731130258d0432dbd69f84d1bed2adb7f573f706ab635a80bd2e2331231f4aad0c92b51151a0c45f192f4fcea9579fb1eef2fa8708
+DIST lbzip2-2.5_p20181227.tar.gz 704920 BLAKE2B e5da0091c0e4fb73724c5ea472d757d76356cffbf1fc679bf4ee05e25690b7712dceaf17f355383bfd4eb525c4aea04c2e5312592df5bb99159e000769bcee2e SHA512 53b29721a106d280927f2c18f33247645bb7fb3e67d835885d73e037910bf02e473f1210d848df41a387be30f829213d98ac9387b2a9201b94d12117809fbcf5
diff --git a/app-arch/lbzip2/files/lbzip2-2.5_p20181227-fix-unaligned.patch b/app-arch/lbzip2/files/lbzip2-2.5_p20181227-fix-unaligned.patch
new file mode 100644
index 0000000..c23d1af
--- /dev/null
+++ b/app-arch/lbzip2/files/lbzip2-2.5_p20181227-fix-unaligned.patch
@@ -0,0 +1,33 @@
+https://github.com/kjn/lbzip2/pull/25
+
+From d570020ade2add591b97e61927545a005a2d4a6f Mon Sep 17 00:00:00 2001
+From: Matt Turner <mattst88@gmail.com>
+Date: Wed, 7 Aug 2019 11:47:04 -0700
+Subject: [PATCH] Align zero-length array to avoid unaligned accesses
+
+When make_tree() creates the left-justified base table (uint64_t *B)
+it does so with 64-bit stores:
+
+    B[k] = sofar;
+
+But B points to memory in the zero-length array "uint32_t tt[0]" at the
+end of struct decoder_state. Since tt's type is uint32_t, it is only
+aligned to a four byte boundary, and so the 64-bit store in make_tree()
+causes an unaligned trap on strict platforms like sparc.
+---
+ src/decode.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/decode.h b/src/decode.h
+index c9a9086..7c0ca3f 100644
+--- a/src/decode.h
++++ b/src/decode.h
+@@ -62,7 +62,7 @@ struct decoder_state {
+   uint8_t rle_char;             /* current character */
+   uint8_t rle_prev;             /* prevoius character */
+ 
+-  uint32_t tt[0];
++  uint32_t tt[0] __attribute__((aligned (8)));
+ };
+ 
+ 
diff --git a/app-arch/lbzip2/lbzip2-2.5.ebuild b/app-arch/lbzip2/lbzip2-2.5.ebuild
deleted file mode 100644
index 376acf5..0000000
--- a/app-arch/lbzip2/lbzip2-2.5.ebuild
+++ /dev/null
@@ -1,37 +0,0 @@
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-
-inherit autotools-utils
-
-DESCRIPTION="Parallel bzip2 utility"
-HOMEPAGE="https://github.com/kjn/lbzip2/"
-SRC_URI="http://archive.lbzip2.org/${P}.tar.gz"
-
-LICENSE="GPL-3"
-SLOT="0"
-KEYWORDS="*"
-IUSE="debug symlink"
-
-RDEPEND="symlink? ( !app-arch/pbzip2[symlink] )"
-DEPEND=""
-
-PATCHES=( "${FILESDIR}"/${PN}-2.3-s_isreg.patch )
-
-src_configure() {
-	local myeconfargs=(
-		--disable-silent-rules
-		$(use_enable debug tracing)
-	)
-	autotools-utils_src_configure
-}
-
-src_install() {
-	autotools-utils_src_install
-
-	if use symlink; then
-		dosym ${PN} /usr/bin/bzip2
-		dosym lbunzip2 /usr/bin/bunzip2
-	fi
-}
diff --git a/app-arch/lbzip2/lbzip2-2.5_p20181227-r1.ebuild b/app-arch/lbzip2/lbzip2-2.5_p20181227-r1.ebuild
new file mode 100644
index 0000000..07b2f52
--- /dev/null
+++ b/app-arch/lbzip2/lbzip2-2.5_p20181227-r1.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="7"
+
+inherit autotools flag-o-matic
+
+DESCRIPTION="Parallel bzip2 utility"
+HOMEPAGE="https://github.com/kjn/lbzip2/"
+SRC_URI="https://dev.gentoo.org/~whissi/dist/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="*"
+IUSE="debug static symlink"
+
+RDEPEND="symlink? ( !app-arch/pbzip2[symlink] )"
+DEPEND=""
+
+PATCHES=(
+	"${FILESDIR}"/${PN}-2.3-s_isreg.patch
+	"${FILESDIR}"/${P}-fix-unaligned.patch
+)
+
+src_prepare() {
+	default
+	eautoreconf
+}
+
+src_configure() {
+	use static && append-ldflags -static
+
+	local myeconfargs=(
+		$(use_enable debug tracing)
+	)
+	econf "${myeconfargs[@]}"
+}
+
+src_install() {
+	default
+
+	if use symlink; then
+		dosym ${PN} /usr/bin/bzip2
+		dosym lbunzip2 /usr/bin/bunzip2
+	fi
+}
diff --git a/app-arch/lbzip2/metadata.xml b/app-arch/lbzip2/metadata.xml
index b2cb179..f6621e0 100644
--- a/app-arch/lbzip2/metadata.xml
+++ b/app-arch/lbzip2/metadata.xml
@@ -1,16 +1,19 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
 <pkgmetadata>
-  <maintainer type="person">
-    <email>mattst88@gentoo.org</email>
-    <name>Matt Turner</name>
-  </maintainer>
-  <longdescription lang="en">
-	A multi-threaded bzip2/bunzip2 utility that employs multiple threads and an 
-	input-bound splitter even when decompressing .bz2 files created by standard 
-	bzip2
+	<maintainer type="person">
+		<email>mattst88@gentoo.org</email>
+		<name>Matt Turner</name>
+	</maintainer>
+	<longdescription lang="en">
+		A multi-threaded bzip2/bunzip2 utility that employs multiple threads and an
+		input-bound splitter even when decompressing .bz2 files created by standard
+		bzip2
 	</longdescription>
-  <upstream>
-    <remote-id type="github">kjn/lbzip2</remote-id>
-  </upstream>
+	<use>
+		<flag name="symlink">Install symlinks which override <pkg>app-arch/bzip2</pkg> implementation</flag>
+	</use>
+	<upstream>
+		<remote-id type="github">kjn/lbzip2</remote-id>
+	</upstream>
 </pkgmetadata>
diff --git a/app-arch/libarchive/Manifest b/app-arch/libarchive/Manifest
index dc4b48a..5a2008c 100644
--- a/app-arch/libarchive/Manifest
+++ b/app-arch/libarchive/Manifest
@@ -1 +1 @@
-DIST libarchive-3.4.2.tar.gz 6979481 BLAKE2B eea90e4751ae487cd1a9b0eecd16598d1b81ffff665ae97a160e3858c8ffe60b82003f081af644f3f32260d0e1d3f3077240125e8279bf8111a79d93c68ac25d SHA512 a8922e54f2e985889d205ee8a0594c1d30dad950438b602a5be6bb1b274a735ad20a48ed484efd458013a0810d26ee4ae76e3a6c820823243d24ea0593ed7021
+DIST libarchive-3.5.1.tar.gz 7008338 BLAKE2B 243dfda2bd4582bbc20679328b89aae0c530475c822dcf9ff25c65df2017b8f18bb616142d6ab016ccea4a5aa1b410d46b913c2ee0afefd2fdb1a41cf51585d9 SHA512 08ddd74bef4cef0981739da202879f36cf7ca33a8f6d438724588efe3ab8477f2f1d0cccf7b8ed0bedfc0c8d0cab16ee3ae5c0c6e83b6811bc650d7d7471a996
diff --git a/app-arch/libarchive/files/libarchive-3.3.3-libressl.patch b/app-arch/libarchive/files/libarchive-3.3.3-libressl.patch
deleted file mode 100644
index 4d7c0ec..0000000
--- a/app-arch/libarchive/files/libarchive-3.3.3-libressl.patch
+++ /dev/null
@@ -1,12 +0,0 @@
---- a/libarchive/archive_openssl_evp_private.h
-+++ b/libarchive/archive_openssl_evp_private.h
-@@ -28,7 +28,8 @@
- #include <openssl/evp.h>
- #include <openssl/opensslv.h>
-
--#if OPENSSL_VERSION_NUMBER < 0x10100000L
-+#if OPENSSL_VERSION_NUMBER < 0x10100000L || \
-+(defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x20700000L)
- #include <stdlib.h> /* malloc, free */
- #include <string.h> /* memset */
- static inline EVP_MD_CTX *EVP_MD_CTX_new(void)
diff --git a/app-arch/libarchive/files/libarchive-3.4.0-without_zlib_build_fix.patch b/app-arch/libarchive/files/libarchive-3.4.0-without_zlib_build_fix.patch
deleted file mode 100644
index e0a3167..0000000
--- a/app-arch/libarchive/files/libarchive-3.4.0-without_zlib_build_fix.patch
+++ /dev/null
@@ -1,160 +0,0 @@
-From 64333cef68d7bcc67bef6ecf177fbeaa549b9139 Mon Sep 17 00:00:00 2001
-From: Martin Matuska <martin@matuska.org>
-Date: Sat, 29 Jun 2019 00:20:58 +0200
-Subject: [PATCH] Unbreak compilation without zlib
-
-Fixes #1214
----
- libarchive/archive_read_support_filter_gzip.c | 54 ++++++++++++-------
- libarchive/test/test_read_format_raw.c        |  4 ++
- 2 files changed, 39 insertions(+), 19 deletions(-)
-
-diff --git a/libarchive/archive_read_support_filter_gzip.c b/libarchive/archive_read_support_filter_gzip.c
-index 458b6f729..9fa9e2b0d 100644
---- a/libarchive/archive_read_support_filter_gzip.c
-+++ b/libarchive/archive_read_support_filter_gzip.c
-@@ -131,12 +131,20 @@ archive_read_support_filter_gzip(struct archive *_a)
-  */
- static ssize_t
- peek_at_header(struct archive_read_filter *filter, int *pbits,
--	       struct private_data *state)
-+#ifdef HAVE_ZLIB_H
-+	       struct private_data *state
-+#else
-+	       void *state
-+#endif
-+	      )
- {
- 	const unsigned char *p;
- 	ssize_t avail, len;
- 	int bits = 0;
- 	int header_flags;
-+#ifndef HAVE_ZLIB_H
-+	(void)state; /* UNUSED */
-+#endif
- 
- 	/* Start by looking at the first ten bytes of the header, which
- 	 * is all fixed layout. */
-@@ -153,8 +161,10 @@ peek_at_header(struct archive_read_filter *filter, int *pbits,
- 	bits += 3;
- 	header_flags = p[3];
- 	/* Bytes 4-7 are mod time in little endian. */
-+#ifdef HAVE_ZLIB_H
- 	if (state)
- 		state->mtime = archive_le32dec(p + 4);
-+#endif
- 	/* Byte 8 is deflate flags. */
- 	/* XXXX TODO: return deflate flags back to consume_header for use
- 	   in initializing the decompressor. */
-@@ -171,7 +181,9 @@ peek_at_header(struct archive_read_filter *filter, int *pbits,
- 
- 	/* Null-terminated optional filename. */
- 	if (header_flags & 8) {
-+#ifdef HAVE_ZLIB_H
- 		ssize_t file_start = len;
-+#endif
- 		do {
- 			++len;
- 			if (avail < len)
-@@ -181,11 +193,13 @@ peek_at_header(struct archive_read_filter *filter, int *pbits,
- 				return (0);
- 		} while (p[len - 1] != 0);
- 
-+#ifdef HAVE_ZLIB_H
- 		if (state) {
- 			/* Reset the name in case of repeat header reads. */
- 			free(state->name);
- 			state->name = strdup((const char *)&p[file_start]);
- 		}
-+#endif
- 	}
- 
- 	/* Null-terminated optional comment. */
-@@ -236,24 +250,6 @@ gzip_bidder_bid(struct archive_read_filter_bidder *self,
- 	return (0);
- }
- 
--static int
--gzip_read_header(struct archive_read_filter *self, struct archive_entry *entry)
--{
--	struct private_data *state;
--
--	state = (struct private_data *)self->data;
--
--	/* A mtime of 0 is considered invalid/missing. */
--	if (state->mtime != 0)
--		archive_entry_set_mtime(entry, state->mtime, 0);
--
--	/* If the name is available, extract it. */
--	if (state->name)
--		archive_entry_set_pathname(entry, state->name);
--
--	return (ARCHIVE_OK);
--}
--
- #ifndef HAVE_ZLIB_H
- 
- /*
-@@ -277,6 +273,24 @@ gzip_bidder_init(struct archive_read_filter *self)
- 
- #else
- 
-+static int
-+gzip_read_header(struct archive_read_filter *self, struct archive_entry *entry)
-+{
-+	struct private_data *state;
-+
-+	state = (struct private_data *)self->data;
-+
-+	/* A mtime of 0 is considered invalid/missing. */
-+	if (state->mtime != 0)
-+		archive_entry_set_mtime(entry, state->mtime, 0);
-+
-+	/* If the name is available, extract it. */
-+	if (state->name)
-+		archive_entry_set_pathname(entry, state->name);
-+
-+	return (ARCHIVE_OK);
-+}
-+
- /*
-  * Initialize the filter object.
-  */
-@@ -306,7 +320,9 @@ gzip_bidder_init(struct archive_read_filter *self)
- 	self->read = gzip_filter_read;
- 	self->skip = NULL; /* not supported */
- 	self->close = gzip_filter_close;
-+#ifdef HAVE_ZLIB_H
- 	self->read_header = gzip_read_header;
-+#endif
- 
- 	state->in_stream = 0; /* We're not actually within a stream yet. */
- 
-diff --git a/libarchive/test/test_read_format_raw.c b/libarchive/test/test_read_format_raw.c
-index 0dac8bfba..3961723b4 100644
---- a/libarchive/test/test_read_format_raw.c
-+++ b/libarchive/test/test_read_format_raw.c
-@@ -36,7 +36,9 @@ DEFINE_TEST(test_read_format_raw)
- 	const char *reffile1 = "test_read_format_raw.data";
- 	const char *reffile2 = "test_read_format_raw.data.Z";
- 	const char *reffile3 = "test_read_format_raw.bufr";
-+#ifdef HAVE_ZLIB_H
- 	const char *reffile4 = "test_read_format_raw.data.gz";
-+#endif
- 
- 	/* First, try pulling data out of an uninterpretable file. */
- 	extract_reference_file(reffile1);
-@@ -119,6 +121,7 @@ DEFINE_TEST(test_read_format_raw)
- 	assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a));
- 	assertEqualInt(ARCHIVE_OK, archive_read_free(a));
- 
-+#ifdef HAVE_ZLIB_H
- 	/* Fourth, try with gzip which has metadata. */
- 	extract_reference_file(reffile4);
- 	assert((a = archive_read_new()) != NULL);
-@@ -144,4 +147,5 @@ DEFINE_TEST(test_read_format_raw)
- 	assertEqualIntA(a, ARCHIVE_EOF, archive_read_next_header(a, &ae));
- 	assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a));
- 	assertEqualInt(ARCHIVE_OK, archive_read_free(a));
-+#endif
- }
diff --git a/app-arch/libarchive/files/libarchive-3.5.0-darwin-strnlen.patch b/app-arch/libarchive/files/libarchive-3.5.0-darwin-strnlen.patch
new file mode 100644
index 0000000..8f540e4
--- /dev/null
+++ b/app-arch/libarchive/files/libarchive-3.5.0-darwin-strnlen.patch
@@ -0,0 +1,27 @@
+https://github.com/macports/macports-ports/blob/master/archivers/libarchive/files/patch-libarchive-3.5-strnlen.diff
+
+next release should have a fix for this
+
+--- a/libarchive/archive_read_support_format_mtree.c
++++ b/libarchive/archive_read_support_format_mtree.c
+@@ -65,6 +65,20 @@ __FBSDID("$FreeBSD: head/lib/libarchive/archive_read_support_format_mtree.c 2011
+ #define O_CLOEXEC	0
+ #endif
+ 
++#ifdef __APPLE__
++#if  __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ < 1070
++static size_t strnlen(const char *s, size_t maxlen) {
++  size_t l = 0;
++  while (l < maxlen && *s) {
++    l++;
++    s++;
++  }
++  return l;
++}
++#endif
++#endif
++
++
+ #define	MTREE_HAS_DEVICE	0x0001
+ #define	MTREE_HAS_FFLAGS	0x0002
+ #define	MTREE_HAS_GID		0x0004
diff --git a/app-arch/libarchive/libarchive-3.4.2.ebuild b/app-arch/libarchive/libarchive-3.4.2.ebuild
deleted file mode 100644
index 8f8dcf1..0000000
--- a/app-arch/libarchive/libarchive-3.4.2.ebuild
+++ /dev/null
@@ -1,134 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-inherit libtool multilib-minimal toolchain-funcs
-
-DESCRIPTION="Multi-format archive and compression library"
-HOMEPAGE="https://www.libarchive.org/"
-SRC_URI="https://www.libarchive.org/downloads/${P}.tar.gz"
-
-LICENSE="BSD BSD-2 BSD-4 public-domain"
-SLOT="0/13"
-KEYWORDS="*"
-IUSE="acl blake2 +bzip2 +e2fsprogs expat +iconv kernel_linux libressl lz4 +lzma lzo nettle static-libs +threads xattr +zlib zstd"
-
-RDEPEND="
-	acl? ( virtual/acl[${MULTILIB_USEDEP}] )
-	blake2? ( app-crypt/libb2[${MULTILIB_USEDEP}] )
-	bzip2? ( app-arch/bzip2[${MULTILIB_USEDEP}] )
-	expat? ( dev-libs/expat[${MULTILIB_USEDEP}] )
-	!expat? ( dev-libs/libxml2[${MULTILIB_USEDEP}] )
-	iconv? ( virtual/libiconv[${MULTILIB_USEDEP}] )
-	kernel_linux? (
-		xattr? ( sys-apps/attr[${MULTILIB_USEDEP}] )
-	)
-	!libressl? ( dev-libs/openssl:0=[${MULTILIB_USEDEP}] )
-	libressl? ( dev-libs/libressl:0=[${MULTILIB_USEDEP}] )
-	lz4? ( >=app-arch/lz4-0_p131:0=[${MULTILIB_USEDEP}] )
-	lzma? ( app-arch/xz-utils[threads=,${MULTILIB_USEDEP}] )
-	lzo? ( >=dev-libs/lzo-2[${MULTILIB_USEDEP}] )
-	nettle? ( dev-libs/nettle:0=[${MULTILIB_USEDEP}] )
-	zlib? ( sys-libs/zlib[${MULTILIB_USEDEP}] )
-	zstd? ( app-arch/zstd[${MULTILIB_USEDEP}] )"
-DEPEND="${RDEPEND}
-	kernel_linux? (
-		virtual/os-headers
-		e2fsprogs? ( sys-fs/e2fsprogs )
-	)"
-
-PATCHES=(
-	"${FILESDIR}"/${PN}-3.3.3-libressl.patch
-)
-
-# Various test problems, starting with the fact that sandbox
-# explodes on long paths. https://bugs.gentoo.org/598806
-RESTRICT="test"
-
-src_prepare() {
-	default
-	elibtoolize  # is required for Solaris sol2_ld linker fix
-}
-
-multilib_src_configure() {
-	export ac_cv_header_ext2fs_ext2_fs_h=$(usex e2fsprogs) #354923
-
-	local myconf=(
-		$(use_enable acl)
-		$(use_enable static-libs static)
-		$(use_enable xattr)
-		$(use_with blake2 libb2)
-		$(use_with bzip2 bz2lib)
-		$(use_with expat)
-		$(use_with !expat xml2)
-		$(use_with iconv)
-		$(use_with lz4)
-		$(use_with lzma)
-		$(use_with lzo lzo2)
-		$(use_with nettle)
-		$(use_with zlib)
-		$(use_with zstd)
-
-		# Windows-specific
-		--without-cng
-	)
-	if multilib_is_native_abi ; then
-		myconf+=(
-			--enable-bsdcat=$(tc-is-static-only && echo static || echo shared)
-			--enable-bsdcpio=$(tc-is-static-only && echo static || echo shared)
-			--enable-bsdtar=$(tc-is-static-only && echo static || echo shared)
-		)
-	else
-		myconf+=(
-			--disable-bsdcat
-			--disable-bsdcpio
-			--disable-bsdtar
-		)
-	fi
-
-	ECONF_SOURCE="${S}" econf "${myconf[@]}"
-}
-
-multilib_src_compile() {
-	if multilib_is_native_abi ; then
-		emake
-	else
-		emake libarchive.la
-	fi
-}
-
-multilib_src_test() {
-	# Replace the default src_test so that it builds tests in parallel
-	multilib_is_native_abi && emake check
-}
-
-multilib_src_install() {
-	if multilib_is_native_abi ; then
-		emake DESTDIR="${D}" install
-
-		# Create symlinks for FreeBSD
-		if ! use prefix && [[ ${CHOST} == *-freebsd* ]]; then
-			# Exclude cat for the time being #589876
-			for bin in cpio tar; do
-				dosym bsd${bin} /usr/bin/${bin}
-				echo '.so bsd${bin}.1' > "${T}"/${bin}.1
-				doman "${T}"/${bin}.1
-			done
-		fi
-	else
-		local install_targets=(
-			install-includeHEADERS
-			install-libLTLIBRARIES
-			install-pkgconfigDATA
-		)
-		emake DESTDIR="${D}" "${install_targets[@]}"
-	fi
-
-	# Libs.private: should be used from libarchive.pc instead
-	find "${ED}" -type f -name "*.la" -delete || die
-}
-
-multilib_src_install_all() {
-	cd "${S}" || die
-	einstalldocs
-}
diff --git a/app-arch/libarchive/libarchive-3.5.1.ebuild b/app-arch/libarchive/libarchive-3.5.1.ebuild
new file mode 100644
index 0000000..ec84407
--- /dev/null
+++ b/app-arch/libarchive/libarchive-3.5.1.ebuild
@@ -0,0 +1,141 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+inherit libtool multilib-minimal toolchain-funcs
+
+DESCRIPTION="Multi-format archive and compression library"
+HOMEPAGE="https://www.libarchive.org/"
+SRC_URI="https://www.libarchive.org/downloads/${P}.tar.gz"
+
+LICENSE="BSD BSD-2 BSD-4 public-domain"
+SLOT="0/13"
+KEYWORDS="*"
+IUSE="acl blake2 +bzip2 +e2fsprogs expat +iconv kernel_linux lz4 +lzma lzo nettle static-libs +threads xattr +zlib zstd"
+
+RDEPEND="
+	acl? ( virtual/acl[${MULTILIB_USEDEP}] )
+	blake2? ( app-crypt/libb2[${MULTILIB_USEDEP}] )
+	bzip2? ( app-arch/bzip2[${MULTILIB_USEDEP}] )
+	expat? ( dev-libs/expat[${MULTILIB_USEDEP}] )
+	!expat? ( dev-libs/libxml2[${MULTILIB_USEDEP}] )
+	iconv? ( virtual/libiconv[${MULTILIB_USEDEP}] )
+	kernel_linux? (
+		xattr? ( sys-apps/attr[${MULTILIB_USEDEP}] )
+	)
+	dev-libs/openssl:0=[${MULTILIB_USEDEP}]
+	lz4? ( >=app-arch/lz4-0_p131:0=[${MULTILIB_USEDEP}] )
+	lzma? ( app-arch/xz-utils[threads=,${MULTILIB_USEDEP}] )
+	lzo? ( >=dev-libs/lzo-2[${MULTILIB_USEDEP}] )
+	nettle? ( dev-libs/nettle:0=[${MULTILIB_USEDEP}] )
+	zlib? ( sys-libs/zlib[${MULTILIB_USEDEP}] )
+	zstd? ( app-arch/zstd[${MULTILIB_USEDEP}] )"
+DEPEND="${RDEPEND}
+	kernel_linux? (
+		virtual/os-headers
+		e2fsprogs? ( sys-fs/e2fsprogs )
+	)"
+
+PATCHES=(
+	"${FILESDIR}"/${PN}-3.5.0-darwin-strnlen.patch  # drop on next release
+)
+
+src_prepare() {
+	default
+	elibtoolize  # is required for Solaris sol2_ld linker fix
+}
+
+multilib_src_configure() {
+	export ac_cv_header_ext2fs_ext2_fs_h=$(usex e2fsprogs) #354923
+
+	local myconf=(
+		$(use_enable acl)
+		$(use_enable static-libs static)
+		$(use_enable xattr)
+		$(use_with blake2 libb2)
+		$(use_with bzip2 bz2lib)
+		$(use_with expat)
+		$(use_with !expat xml2)
+		$(use_with iconv)
+		$(use_with lz4)
+		$(use_with lzma)
+		$(use_with lzo lzo2)
+		$(use_with nettle)
+		$(use_with zlib)
+		$(use_with zstd)
+
+		# Windows-specific
+		--without-cng
+	)
+	if multilib_is_native_abi ; then
+		myconf+=(
+			--enable-bsdcat=$(tc-is-static-only && echo static || echo shared)
+			--enable-bsdcpio=$(tc-is-static-only && echo static || echo shared)
+			--enable-bsdtar=$(tc-is-static-only && echo static || echo shared)
+		)
+	else
+		myconf+=(
+			--disable-bsdcat
+			--disable-bsdcpio
+			--disable-bsdtar
+		)
+	fi
+
+	ECONF_SOURCE="${S}" econf "${myconf[@]}"
+}
+
+multilib_src_compile() {
+	if multilib_is_native_abi ; then
+		emake
+	else
+		emake libarchive.la
+	fi
+}
+
+src_test() {
+	mkdir -p "${T}"/bin || die
+	# tests fail when lbzip2[symlink] is used in place of ref bunzip2
+	ln -s "${BROOT}/bin/bunzip2" "${T}"/bin || die
+	local -x PATH=${T}/bin:${PATH}
+	multilib-minimal_src_test
+}
+
+multilib_src_test() {
+	# sandbox is breaking long symlink behavior
+	local -x SANDBOX_ON=0
+	local -x LD_PRELOAD=
+	# some locales trigger different output that breaks tests
+	local -x LC_ALL=C
+	emake check
+}
+
+multilib_src_install() {
+	if multilib_is_native_abi ; then
+		emake DESTDIR="${D}" install
+
+		# Create symlinks for FreeBSD
+		if ! use prefix && [[ ${CHOST} == *-freebsd* ]]; then
+			# Exclude cat for the time being #589876
+			for bin in cpio tar; do
+				dosym bsd${bin} /usr/bin/${bin}
+				echo '.so bsd${bin}.1' > "${T}"/${bin}.1
+				doman "${T}"/${bin}.1
+			done
+		fi
+	else
+		local install_targets=(
+			install-includeHEADERS
+			install-libLTLIBRARIES
+			install-pkgconfigDATA
+		)
+		emake DESTDIR="${D}" "${install_targets[@]}"
+	fi
+
+	# Libs.private: should be used from libarchive.pc instead
+	find "${ED}" -type f -name "*.la" -delete || die
+}
+
+multilib_src_install_all() {
+	cd "${S}" || die
+	einstalldocs
+}
diff --git a/app-arch/lz4/Manifest b/app-arch/lz4/Manifest
index cfa76df..c60a5c0 100644
--- a/app-arch/lz4/Manifest
+++ b/app-arch/lz4/Manifest
@@ -1 +1 @@
-DIST lz4-1.9.2.tar.gz 305796 BLAKE2B 0021487bee8657bc825fdd2b98a6dc8a6d10be3240fe0bebf6563e9c855a15bf5440a02d5cd6ee1f1e8502743348bcec1e866d3287b07e623887e9eb9da35eee SHA512 ae714c61ec8e33ed91359b63f2896cfa102d66b730dce112b74696ec5850e59d88bd5527173e01e354a70fbe8f036557a47c767ee0766bc5f9c257978116c3c1
+DIST lz4-1.9.3.tar.gz 320958 BLAKE2B 9a194bd18ff52f780aa03a8a53fe7fab7b58117d768f4ba8e5005830c935d16328d0f7cc54f9413b58faf245017c0ac85fb4e709a9db150cb150a0a2a3c21645 SHA512 c246b0bda881ee9399fa1be490fa39f43b291bb1d9db72dba8a85db1a50aad416a97e9b300eee3d2a4203c2bd88bda2762e81bc229c3aa409ad217eb306a454c
diff --git a/app-arch/lz4/lz4-1.9.2.ebuild b/app-arch/lz4/lz4-1.9.2.ebuild
deleted file mode 100644
index cb2f37b..0000000
--- a/app-arch/lz4/lz4-1.9.2.ebuild
+++ /dev/null
@@ -1,33 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit cmake-multilib
-
-if [[ ${PV} == 9999 ]]; then
-	inherit git-r3
-	EGIT_REPO_URI="https://github.com/lz4/lz4.git"
-	EGIT_BRANCH=dev
-else
-	SRC_URI="https://github.com/lz4/lz4/archive/v${PV}.tar.gz -> ${P}.tar.gz"
-	KEYWORDS="*"
-fi
-
-DESCRIPTION="Extremely Fast Compression algorithm"
-HOMEPAGE="https://github.com/lz4/lz4"
-
-LICENSE="BSD-2 GPL-2"
-# https://abi-laboratory.pro/tracker/timeline/lz4/
-SLOT="0/r132"
-IUSE="static-libs"
-
-CMAKE_USE_DIR=${S}/contrib/cmake_unofficial
-
-multilib_src_configure() {
-	local mycmakeargs=(
-		-DBUILD_STATIC_LIBS=$(usex static-libs)
-	)
-
-	cmake-utils_src_configure
-}
diff --git a/app-arch/lz4/lz4-1.9.3.ebuild b/app-arch/lz4/lz4-1.9.3.ebuild
new file mode 100644
index 0000000..1afce14
--- /dev/null
+++ b/app-arch/lz4/lz4-1.9.3.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+CMAKE_ECLASS=cmake
+inherit cmake-multilib
+
+DESCRIPTION="Extremely Fast Compression algorithm"
+HOMEPAGE="https://github.com/lz4/lz4"
+SRC_URI="https://github.com/lz4/lz4/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD-2 GPL-2"
+# https://abi-laboratory.pro/tracker/timeline/lz4/
+SLOT="0/r132"
+KEYWORDS="*"
+IUSE="static-libs"
+
+CMAKE_USE_DIR=${S}/build/cmake
+
+multilib_src_configure() {
+	local mycmakeargs=(
+		-DBUILD_STATIC_LIBS=$(usex static-libs)
+	)
+
+	cmake_src_configure
+}
diff --git a/app-arch/lz4/metadata.xml b/app-arch/lz4/metadata.xml
index 694c0de..26e7c6e 100644
--- a/app-arch/lz4/metadata.xml
+++ b/app-arch/lz4/metadata.xml
@@ -2,10 +2,6 @@
 <!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
 <pkgmetadata>
 	<maintainer type="person">
-		<email>ryao@gentoo.org</email>
-		<name>Richard Yao</name>
-	</maintainer>
-	<maintainer type="person">
 		<email>mgorny@gentoo.org</email>
 		<name>Michał Górny</name>
 	</maintainer>
@@ -14,7 +10,7 @@
 		<name>Guilherme Amadio</name>
 	</maintainer>
 	<upstream>
-		<remote-id type="github">Cyan4973/lz4</remote-id>
+		<remote-id type="github">lz4/lz4</remote-id>
 		<remote-id type="cpe">cpe:/a:lz4_project:lz4</remote-id>
 	</upstream>
 </pkgmetadata>
diff --git a/app-arch/lzop/Manifest b/app-arch/lzop/Manifest
index 18b535c..f21b8f4 100644
--- a/app-arch/lzop/Manifest
+++ b/app-arch/lzop/Manifest
@@ -1 +1 @@
-DIST lzop-1.03.tar.gz 370775 RMD160 306c454f52632b14740d6b00c1b315f0221fb45b SHA1 4ee0b49b2a6b0a13572ddca5785ee48ef4c8f80f SHA256 c1425b8c77d49f5a679d5a126c90ea6ad99585a55e335a613cae59e909dbb2c9
+DIST lzop-1.04.tar.gz 393483 BLAKE2B ebeceac9492ce45e6976cd5cde262d9755286e1649802e3e16bfae0abdd74714bf86b076816aa309542cadef5bb65971342208763e1b2761fce2332dc9daa38c SHA512 5829b4495ffefab549aa697a05c536ce593c572c9eee6004460583a0090abcd317c6074c4f981dfee6be61ac8d127f02dd37053b6cb782af64db41586a8bbb6e
diff --git a/app-arch/lzop/lzop-1.03.ebuild b/app-arch/lzop/lzop-1.03.ebuild
deleted file mode 100644
index 03663b5..0000000
--- a/app-arch/lzop/lzop-1.03.ebuild
+++ /dev/null
@@ -1,32 +0,0 @@
-# Copyright 1999-2011 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/app-arch/lzop/lzop-1.03.ebuild,v 1.9 2011/08/25 20:24:32 mattst88 Exp $
-
-EAPI=2
-
-DESCRIPTION="Utility for fast (even real-time) compression/decompression"
-HOMEPAGE="http://www.lzop.org/"
-SRC_URI="http://www.lzop.org/download/${P}.tar.gz"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="*"
-IUSE=""
-
-RDEPEND=">=dev-libs/lzo-2"
-DEPEND="${RDEPEND}"
-
-src_test() {
-	einfo "compressing config.status to test"
-	src/lzop config.status || die 'compression failed'
-	ls -la config.status{,.lzo}
-	src/lzop -t config.status.lzo || die 'lzo test failed'
-	src/lzop -dc config.status.lzo | diff config.status - || die 'decompression generated differences from original'
-}
-
-src_install() {
-	emake DESTDIR="${D}" install || die
-	dodoc AUTHORS ChangeLog NEWS README THANKS
-	dodoc doc/lzop.{txt,ps}
-	dohtml doc/*.html
-}
diff --git a/app-arch/lzop/lzop-1.04.ebuild b/app-arch/lzop/lzop-1.04.ebuild
new file mode 100644
index 0000000..3ab393b
--- /dev/null
+++ b/app-arch/lzop/lzop-1.04.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="6"
+
+DESCRIPTION="Utility for fast (even real-time) compression/decompression"
+HOMEPAGE="https://www.lzop.org/"
+SRC_URI="https://www.lzop.org/download/${P}.tar.gz"
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="*"
+IUSE=""
+
+RDEPEND=">=dev-libs/lzo-2"
+DEPEND="${RDEPEND}"
+
+src_test() {
+	einfo "compressing config.status to test"
+	src/lzop config.status || die 'compression failed'
+	ls -la config.status{,.lzo}
+	src/lzop -t config.status.lzo || die 'lzo test failed'
+	src/lzop -dc config.status.lzo | diff config.status - || die 'decompression generated differences from original'
+}
+
+src_install() {
+	# do not install COPYING or redundant conversions of manpage
+	emake DESTDIR="${D}" install \
+		dist_doc_DATA="AUTHORS NEWS README THANKS"
+}
diff --git a/app-arch/lzop/metadata.xml b/app-arch/lzop/metadata.xml
index caaa4ac..0319eec 100644
--- a/app-arch/lzop/metadata.xml
+++ b/app-arch/lzop/metadata.xml
@@ -1,9 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
 <pkgmetadata>
-<maintainer>
-    <email>binki@gentoo.org</email>
-    <name>Nathan Phillip Brink</name>
-</maintainer>
-<longdescription></longdescription>
+	<maintainer type="person">
+		<email>mgorny@gentoo.org</email>
+		<name>Michał Górny</name>
+	</maintainer>
 </pkgmetadata>
diff --git a/app-arch/makeself/Manifest b/app-arch/makeself/Manifest
index 67c47f6..ab06f79 100644
--- a/app-arch/makeself/Manifest
+++ b/app-arch/makeself/Manifest
@@ -1 +1 @@
-DIST release-2.2.0.tar.gz 21640 SHA256 9c9d003e097d9c198433a05926e64d9b7cd330c7f10cb4e6048877d0a87de341 SHA512 11cd536baed2d56405103f18a8318a202092755a74baf10730aa58dc57032e327697b1c7f76bf9bf438927093ba9ac467ffa0c4564c7f6b1d3b2b3936f34fa73 WHIRLPOOL ec9d7caa4ffed938e61e756636af04cf793158761c3a2b41e7ee4c18a415d6a41a4ed4499bd0b867dee930f281f901a80082bed75d9e9d7e237f3f85ad7ea590
+DIST makeself-2.4.4.tar.gz 38889 BLAKE2B eac74fa28ac39cbc6b18d11671bfa32d6c0b04b55b3603c6c928483dd64af38d416936ef242f55aa4840affd4bf7fb91c2987f87afab093816331e50f16379ab SHA512 3d4d03458f7f11a8df46340d1b489ca60d413d5ed857cc67bb8ef15335ce2848e4675e080791c26fdf29423f813d468b4b797438fe0876dad54e85c6346b9b8b
diff --git a/app-arch/makeself/files/makeself-2.2.0-help-header.patch b/app-arch/makeself/files/makeself-2.2.0-help-header.patch
deleted file mode 100644
index 5726bf5..0000000
--- a/app-arch/makeself/files/makeself-2.2.0-help-header.patch
+++ /dev/null
@@ -1,124 +0,0 @@
-From c9f605cb4a3903985f2c6f816c30c1edf728c1b5 Mon Sep 17 00:00:00 2001
-From: Jon Salz <jsalz@google.com>
-Date: Mon, 27 Jan 2014 16:04:33 +0800
-Subject: [PATCH] Add --help-header option to prepend a string to the archive's
- --help.
-
----
- makeself-header.sh |  3 ++-
- makeself.sh        | 71 ++++++++++++++++++++++++++++++------------------------
- 2 files changed, 41 insertions(+), 33 deletions(-)
-
-diff --git a/makeself-header.sh b/makeself-header.sh
-index e3f6c11..f97758c 100755
---- a/makeself-header.sh
-+++ b/makeself-header.sh
-@@ -13,6 +13,7 @@ label="$LABEL"
- script="$SCRIPT"
- scriptargs="$SCRIPTARGS"
- licensetxt="$LICENSE"
-+helpheader='$HELPHEADER'
- targetdir="$archdirname"
- filesizes="$filesizes"
- keep="$KEEP"
-@@ -119,7 +120,7 @@ MS_dd_Progress()
- MS_Help()
- {
-     cat << EOH >&2
--Makeself version $MS_VERSION
-+\${helpheader}Makeself version $MS_VERSION
-  1) Getting help or info about \$0 :
-   \$0 --help   Print this message
-   \$0 --info   Print embedded info : title, default target directory, embedded script ...
-diff --git a/makeself.sh b/makeself.sh
-index 361d710..cb2d6f2 100755
---- a/makeself.sh
-+++ b/makeself.sh
-@@ -88,38 +88,39 @@ MS_Usage()
- {
-     echo "Usage: $0 [params] archive_dir file_name label startup_script [args]"
-     echo "params can be one or more of the following :"
--    echo "    --version | -v  : Print out Makeself version number and exit"
--    echo "    --help | -h     : Print out this help message"
--    echo "    --quiet | -q    : Do not print any messages other than errors."
--    echo "    --gzip          : Compress using gzip (default if detected)"
--    echo "    --bzip2         : Compress using bzip2 instead of gzip"
--    echo "    --pbzip2        : Compress using pbzip2 instead of gzip"
--    echo "    --xz            : Compress using xz instead of gzip"
--    echo "    --compress      : Compress using the UNIX 'compress' command"
--    echo "    --complevel lvl : Compression level for gzip xz bzip2 and pbzip2 (default 9)"
--    echo "    --base64        : Instead of compressing, encode the data using base64"
--    echo "    --nocomp        : Do not compress the data"
--    echo "    --notemp        : The archive will create archive_dir in the"
--    echo "                      current directory and uncompress in ./archive_dir"
--    echo "    --copy          : Upon extraction, the archive will first copy itself to"
--    echo "                      a temporary directory"
--    echo "    --append        : Append more files to an existing Makeself archive"
--    echo "                      The label and startup scripts will then be ignored"
--    echo "    --target dir    : Extract directly to a target directory"
--    echo "                      directory path can be either absolute or relative"
--    echo "    --current       : Files will be extracted to the current directory"
--    echo "                      Both --current and --target imply --notemp"
--    echo "    --tar-extra opt : Append more options to the tar command line"
--    echo "    --nomd5         : Don't calculate an MD5 for archive"
--    echo "    --nocrc         : Don't calculate a CRC for archive"
--    echo "    --header file   : Specify location of the header script"
--    echo "    --follow        : Follow the symlinks in the archive"
--    echo "    --noprogress    : Do not show the progress during the decompression"
--    echo "    --nox11         : Disable automatic spawn of a xterm"
--    echo "    --nowait        : Do not wait for user input after executing embedded"
--    echo "                      program from an xterm"
--    echo "    --lsm file      : LSM file describing the package"
--    echo "    --license file  : Append a license file"
-+    echo "    --version | -v     : Print out Makeself version number and exit"
-+    echo "    --help | -h        : Print out this help message"
-+    echo "    --quiet | -q       : Do not print any messages other than errors."
-+    echo "    --gzip             : Compress using gzip (default if detected)"
-+    echo "    --bzip2            : Compress using bzip2 instead of gzip"
-+    echo "    --pbzip2           : Compress using pbzip2 instead of gzip"
-+    echo "    --xz               : Compress using xz instead of gzip"
-+    echo "    --compress         : Compress using the UNIX 'compress' command"
-+    echo "    --complevel lvl    : Compression level for gzip xz bzip2 and pbzip2 (default 9)"
-+    echo "    --base64           : Instead of compressing, encode the data using base64"
-+    echo "    --nocomp           : Do not compress the data"
-+    echo "    --notemp           : The archive will create archive_dir in the"
-+    echo "                         current directory and uncompress in ./archive_dir"
-+    echo "    --copy             : Upon extraction, the archive will first copy itself to"
-+    echo "                         a temporary directory"
-+    echo "    --append           : Append more files to an existing Makeself archive"
-+    echo "                         The label and startup scripts will then be ignored"
-+    echo "    --target dir       : Extract directly to a target directory"
-+    echo "                         directory path can be either absolute or relative"
-+    echo "    --current          : Files will be extracted to the current directory"
-+    echo "                         Both --current and --target imply --notemp"
-+    echo "    --tar-extra opt    : Append more options to the tar command line"
-+    echo "    --nomd5            : Don't calculate an MD5 for archive"
-+    echo "    --nocrc            : Don't calculate a CRC for archive"
-+    echo "    --header file      : Specify location of the header script"
-+    echo "    --follow           : Follow the symlinks in the archive"
-+    echo "    --noprogress       : Do not show the progress during the decompression"
-+    echo "    --nox11            : Disable automatic spawn of a xterm"
-+    echo "    --nowait           : Do not wait for user input after executing embedded"
-+    echo "                         program from an xterm"
-+    echo "    --lsm file         : LSM file describing the package"
-+    echo "    --license file     : Append a license file"
-+    echo "    --help-header file : Add a header to the archive's --help output"
-     echo
-     echo "Do not forget to give a fully qualified startup script name"
-     echo "(i.e. with a ./ prefix if inside the archive)."
-@@ -254,6 +255,12 @@ do
- 	LSM_CMD="cat \"$2\" >> \"\$archname\""
-     if ! shift 2; then MS_Help; exit 1; fi
- 	;;
-+    --help-header)
-+	HELPHEADER=`sed -e "s/'/'\\\\\''/g" $2`
-+    if ! shift 2; then MS_Help; exit 1; fi
-+	[ -n "$HELPHEADER" ] && HELPHEADER="$HELPHEADER
-+"
-+    ;;
-     -q | --quiet)
- 	QUIET=y
- 	shift
--- 
-1.8.5.5
-
diff --git a/app-arch/makeself/files/makeself-unpack b/app-arch/makeself/files/makeself-unpack
deleted file mode 100755
index d8f5e17..0000000
--- a/app-arch/makeself/files/makeself-unpack
+++ /dev/null
@@ -1,100 +0,0 @@
-#!/bin/bash
-
-# Glue to keep unpack_makeself() unchanged
-source /etc/init.d/functions.sh
-find_unpackable_file() { echo "$@"; }
-debug-print() { :; }
-emktemp() { mktemp "$@"; }
-die() { eerror "$*"; exit 1; }
-assert() { _pipestatus="${PIPESTATUS[*]}"; [[ "${_pipestatus// /}" -eq 0 ]] || die; }
-
-# Straight copied from unpacker.eclass ... should be kept in sync
-
-unpack_banner() {
-	echo ">>> Unpacking ${1##*/} to ${PWD}"
-}
-
-unpack_makeself() {
-	local src_input=${1:-${A}}
-	local src=$(find_unpackable_file "${src_input}")
-	local skip=$2
-	local exe=$3
-
-	[[ -z ${src} ]] && die "Could not locate source for '${src_input}'"
-
-	unpack_banner "${src}"
-
-	if [[ -z ${skip} ]] ; then
-		local ver=$(grep -m1 -a '#.*Makeself' "${src}" | awk '{print $NF}')
-		local skip=0
-		exe=tail
-		case ${ver} in
-			1.5.*|1.6.0-nv*)	# tested 1.5.{3,4,5} ... guessing 1.5.x series is same
-				skip=$(grep -a ^skip= "${src}" | cut -d= -f2)
-				;;
-			2.0|2.0.1)
-				skip=$(grep -a ^$'\t'tail "${src}" | awk '{print $2}' | cut -b2-)
-				;;
-			2.1.1)
-				skip=$(grep -a ^offset= "${src}" | awk '{print $2}' | cut -b2-)
-				(( skip++ ))
-				;;
-			2.1.2)
-				skip=$(grep -a ^offset= "${src}" | awk '{print $3}' | head -n 1)
-				(( skip++ ))
-				;;
-			2.1.3)
-				skip=`grep -a ^offset= "${src}" | awk '{print $3}'`
-				(( skip++ ))
-				;;
-			2.1.4|2.1.5|2.1.6|2.2.0)
-				skip=$(grep -a offset=.*head.*wc "${src}" | awk '{print $3}' | head -n 1)
-				skip=$(head -n ${skip} "${src}" | wc -c)
-				exe="dd"
-				;;
-			*)
-				eerror "I'm sorry, but I was unable to support the Makeself file."
-				eerror "The version I detected was '${ver}'."
-				eerror "Please file a bug about the file ${src##*/} at"
-				eerror "http://bugs.gentoo.org/ so that support can be added."
-				die "makeself version '${ver}' not supported"
-				;;
-		esac
-		debug-print "Detected Makeself version ${ver} ... using ${skip} as offset"
-	fi
-	case ${exe} in
-		tail)	exe="tail -n +${skip} '${src}'";;
-		dd)		exe="dd ibs=${skip} skip=1 if='${src}'";;
-		*)		die "makeself cant handle exe '${exe}'"
-	esac
-
-	# lets grab the first few bytes of the file to figure out what kind of archive it is
-	local filetype tmpfile=$(emktemp)
-	eval ${exe} 2>/dev/null | head -c 512 > "${tmpfile}"
-	filetype=$(file -b "${tmpfile}") || die
-	case ${filetype} in
-		*tar\ archive*)
-			eval ${exe} | tar --no-same-owner -xf -
-			;;
-		bzip2*)
-			eval ${exe} | bzip2 -dc | tar --no-same-owner -xf -
-			;;
-		gzip*)
-			eval ${exe} | tar --no-same-owner -xzf -
-			;;
-		compress*)
-			eval ${exe} | gunzip | tar --no-same-owner -xf -
-			;;
-		XZ*)
-			eval ${exe} | unxz | tar --no-same-owner -xf -
-			;;
-		*)
-			eerror "Unknown filetype \"${filetype}\" ?"
-			false
-			;;
-	esac
-	assert "failure unpacking (${filetype}) makeself ${src##*/} ('${ver}' +${skip})"
-	rm "${tmpfile}"
-}
-
-for x; do unpack_makeself "$x" ; done
diff --git a/app-arch/makeself/makeself-2.2.0.ebuild b/app-arch/makeself/makeself-2.2.0.ebuild
deleted file mode 100644
index 9a673da..0000000
--- a/app-arch/makeself/makeself-2.2.0.ebuild
+++ /dev/null
@@ -1,29 +0,0 @@
-# Copyright 1999-2014 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/app-arch/makeself/makeself-2.2.0.ebuild,v 1.1 2014/02/18 06:18:50 vapier Exp $
-
-EAPI="4"
-
-inherit unpacker eutils
-
-DESCRIPTION="shell script that generates a self-extractible tar.gz"
-HOMEPAGE="http://www.megastep.org/makeself/"
-SRC_URI="https://github.com/megastep/makeself/archive/release-${PV}.tar.gz"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="*"
-IUSE=""
-
-S="${WORKDIR}/${PN}-release-${PV}"
-
-src_prepare() {
-	epatch "${FILESDIR}"/${P}-help-header.patch
-}
-
-src_install() {
-	dobin makeself-header.sh makeself.sh "${FILESDIR}"/makeself-unpack
-	dosym makeself.sh /usr/bin/makeself
-	doman makeself.1
-	dodoc README.md makeself.lsm
-}
diff --git a/app-arch/makeself/makeself-2.4.4.ebuild b/app-arch/makeself/makeself-2.4.4.ebuild
new file mode 100644
index 0000000..dac3f96
--- /dev/null
+++ b/app-arch/makeself/makeself-2.4.4.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit optfeature
+
+DESCRIPTION="Shell script that generates a self-extractible tar.gz"
+HOMEPAGE="http://www.megastep.org/makeself/"
+SRC_URI="https://github.com/megastep/makeself/archive/refs/tags/release-${PV}.tar.gz -> ${P}.tar.gz"
+S="${WORKDIR}/${PN}-release-${PV}"
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="*"
+
+src_compile() { :; }
+
+src_install() {
+	dobin makeself-header.sh makeself.sh
+	dosym makeself.sh /usr/bin/makeself
+	doman makeself.1
+	dodoc README.md makeself.lsm
+}
+
+pkg_postinst() {
+	optfeature "lz4 support" app-arch/lz4
+	optfeature "lzop support" app-arch/lzop
+	optfeature "pbzip2 support" app-arch/pbzip2
+	optfeature "pigz support" app-arch/pigz
+	optfeature "zstd support" app-arch/zstd
+
+	# Also bzip2 and xz are supported but they are in @system.
+}
diff --git a/app-arch/makeself/metadata.xml b/app-arch/makeself/metadata.xml
index 91f4e72..3ded3c2 100644
--- a/app-arch/makeself/metadata.xml
+++ b/app-arch/makeself/metadata.xml
@@ -1,7 +1,16 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
 <pkgmetadata>
-	<maintainer>
-		<email>maintainer-needed@gentoo.org</email>
-	</maintainer>
+  <maintainer type="person" proxied="yes">
+    <email>matt@offtopica.uk</email>
+    <name>Matt Smith</name>
+  </maintainer>
+  <maintainer type="project" proxied="proxy">
+    <email>proxy-maint@gentoo.org</email>
+    <name>Proxy Maintainers</name>
+  </maintainer>
+  <stabilize-allarches/>
+  <upstream>
+    <remote-id type="github">megastep/makeself</remote-id>
+  </upstream>
 </pkgmetadata>
diff --git a/app-arch/p7zip/Manifest b/app-arch/p7zip/Manifest
index df39623..29b37f2 100644
--- a/app-arch/p7zip/Manifest
+++ b/app-arch/p7zip/Manifest
@@ -1 +1 @@
-DIST p7zip_16.02_src_all.tar.bz2 4239909 SHA256 5eb20ac0e2944f6cb9c2d51dd6c4518941c185347d4089ea89087ffdd6e2341f SHA512 d2c4d53817f96bb4c7683f42045198d4cd509cfc9c3e2cb85c8d9dc4ab6dfa7496449edeac4e300ecf986a9cbbc90bd8f8feef8156895d94617c04e507add55f WHIRLPOOL b22f4dce96505094ffdee0963fa7e5fd75e92f2c920f2e69e18eff60a2ad9d4757c3512c8d4e7c4848a36212f54637a963ff41fc5c00bb7381f43220662108b9
+DIST p7zip_16.02_src_all.tar.bz2 4239909 BLAKE2B 075356fba5284cbb124e30c36364a910ae5a7ac6bee8a8fb682c5a7ce2f1870ef83d3160c84f8dabad1d616c13d642cba1f19fb9384160d21590cf678dd8f1a6 SHA512 d2c4d53817f96bb4c7683f42045198d4cd509cfc9c3e2cb85c8d9dc4ab6dfa7496449edeac4e300ecf986a9cbbc90bd8f8feef8156895d94617c04e507add55f
diff --git a/app-arch/p7zip/files/CVE-2018-10115.patch b/app-arch/p7zip/files/CVE-2018-10115.patch
new file mode 100644
index 0000000..7d9c4bf
--- /dev/null
+++ b/app-arch/p7zip/files/CVE-2018-10115.patch
@@ -0,0 +1,311 @@
+From: Robert Luberda <robert@debian.org>
+Date: Tue, 29 May 2018 23:59:09 +0200
+Subject: Fix CVE-2018-10115
+
+Apply "patch" taken from https://landave.io/files/patch_7zip_CVE-2018-10115.txt
+
+
+Bugs-Debian: https://bugs.debian.org/897674
+---
+ CPP/7zip/Compress/Rar1Decoder.cpp | 16 +++++++++++-----
+ CPP/7zip/Compress/Rar1Decoder.h   |  3 ++-
+ CPP/7zip/Compress/Rar2Decoder.cpp | 17 +++++++++++++----
+ CPP/7zip/Compress/Rar2Decoder.h   |  3 ++-
+ CPP/7zip/Compress/Rar3Decoder.cpp | 19 +++++++++++++++----
+ CPP/7zip/Compress/Rar3Decoder.h   |  3 ++-
+ CPP/7zip/Compress/Rar5Decoder.cpp |  8 ++++++++
+ CPP/7zip/Compress/Rar5Decoder.h   |  1 +
+ 8 files changed, 54 insertions(+), 16 deletions(-)
+
+diff --git a/CPP/7zip/Compress/Rar1Decoder.cpp b/CPP/7zip/Compress/Rar1Decoder.cpp
+index 68030c7..8c890c8 100644
+--- a/CPP/7zip/Compress/Rar1Decoder.cpp
++++ b/CPP/7zip/Compress/Rar1Decoder.cpp
+@@ -29,7 +29,7 @@ public:
+ };
+ */
+ 
+-CDecoder::CDecoder(): m_IsSolid(false), _errorMode(false) { }
++CDecoder::CDecoder(): _isSolid(false), _solidAllowed(false), _errorMode(false) { }
+ 
+ void CDecoder::InitStructures()
+ {
+@@ -345,7 +345,7 @@ void CDecoder::GetFlagsBuf()
+ 
+ void CDecoder::InitData()
+ {
+-  if (!m_IsSolid)
++  if (!_isSolid)
+   {
+     AvrPlcB = AvrLn1 = AvrLn2 = AvrLn3 = NumHuf = Buf60 = 0;
+     AvrPlc = 0x3500;
+@@ -391,6 +391,11 @@ HRESULT CDecoder::CodeReal(ISequentialInStream *inStream, ISequentialOutStream *
+   if (inSize == NULL || outSize == NULL)
+     return E_INVALIDARG;
+ 
++  if (_isSolid && !_solidAllowed)
++    return S_FALSE;
++
++  _solidAllowed = false;
++
+   if (!m_OutWindowStream.Create(kHistorySize))
+     return E_OUTOFMEMORY;
+   if (!m_InBitStream.Create(1 << 20))
+@@ -398,13 +403,13 @@ HRESULT CDecoder::CodeReal(ISequentialInStream *inStream, ISequentialOutStream *
+ 
+   m_UnpackSize = (Int64)*outSize;
+   m_OutWindowStream.SetStream(outStream);
+-  m_OutWindowStream.Init(m_IsSolid);
++  m_OutWindowStream.Init(_isSolid);
+   m_InBitStream.SetStream(inStream);
+   m_InBitStream.Init();
+ 
+   // CCoderReleaser coderReleaser(this);
+   InitData();
+-  if (!m_IsSolid)
++  if (!_isSolid)
+   {
+     _errorMode = false;
+     InitStructures();
+@@ -475,6 +480,7 @@ HRESULT CDecoder::CodeReal(ISequentialInStream *inStream, ISequentialOutStream *
+   }
+   if (m_UnpackSize < 0)
+     return S_FALSE;
++  _solidAllowed = true;
+   return m_OutWindowStream.Flush();
+ }
+ 
+@@ -491,7 +497,7 @@ STDMETHODIMP CDecoder::SetDecoderProperties2(const Byte *data, UInt32 size)
+ {
+   if (size < 1)
+     return E_INVALIDARG;
+-  m_IsSolid = ((data[0] & 1) != 0);
++  _isSolid = ((data[0] & 1) != 0);
+   return S_OK;
+ }
+ 
+diff --git a/CPP/7zip/Compress/Rar1Decoder.h b/CPP/7zip/Compress/Rar1Decoder.h
+index 01b606b..8abb3a3 100644
+--- a/CPP/7zip/Compress/Rar1Decoder.h
++++ b/CPP/7zip/Compress/Rar1Decoder.h
+@@ -38,7 +38,8 @@ public:
+   UInt32 LastLength;
+ 
+   Int64 m_UnpackSize;
+-  bool m_IsSolid;
++  bool _isSolid;
++  bool _solidAllowed;
+   bool _errorMode;
+ 
+   UInt32 ReadBits(int numBits);
+diff --git a/CPP/7zip/Compress/Rar2Decoder.cpp b/CPP/7zip/Compress/Rar2Decoder.cpp
+index 0580c8d..be8d842 100644
+--- a/CPP/7zip/Compress/Rar2Decoder.cpp
++++ b/CPP/7zip/Compress/Rar2Decoder.cpp
+@@ -80,7 +80,8 @@ static const UInt32 kHistorySize = 1 << 20;
+ static const UInt32 kWindowReservSize = (1 << 22) + 256;
+ 
+ CDecoder::CDecoder():
+-  m_IsSolid(false),
++  _isSolid(false),
++  _solidAllowed(false),
+   m_TablesOK(false)
+ {
+ }
+@@ -320,6 +321,10 @@ HRESULT CDecoder::CodeReal(ISequentialInStream *inStream, ISequentialOutStream *
+   if (inSize == NULL || outSize == NULL)
+     return E_INVALIDARG;
+ 
++  if (_isSolid && !_solidAllowed)
++    return S_FALSE;
++  _solidAllowed = false;
++
+   if (!m_OutWindowStream.Create(kHistorySize))
+     return E_OUTOFMEMORY;
+   if (!m_InBitStream.Create(1 << 20))
+@@ -330,12 +335,12 @@ HRESULT CDecoder::CodeReal(ISequentialInStream *inStream, ISequentialOutStream *
+   UInt64 pos = 0, unPackSize = *outSize;
+   
+   m_OutWindowStream.SetStream(outStream);
+-  m_OutWindowStream.Init(m_IsSolid);
++  m_OutWindowStream.Init(_isSolid);
+   m_InBitStream.SetStream(inStream);
+   m_InBitStream.Init();
+ 
+   // CCoderReleaser coderReleaser(this);
+-  if (!m_IsSolid)
++  if (!_isSolid)
+   {
+     InitStructures();
+     if (unPackSize == 0)
+@@ -343,6 +348,7 @@ HRESULT CDecoder::CodeReal(ISequentialInStream *inStream, ISequentialOutStream *
+       if (m_InBitStream.GetProcessedSize() + 2 <= m_PackSize) // test it: probably incorrect;
+         if (!ReadTables())
+           return S_FALSE;
++      _solidAllowed = true;
+       return S_OK;
+     }
+     if (!ReadTables())
+@@ -386,6 +392,9 @@ HRESULT CDecoder::CodeReal(ISequentialInStream *inStream, ISequentialOutStream *
+ 
+   if (!ReadLastTables())
+     return S_FALSE;
++
++  _solidAllowed = true;
++
+   return m_OutWindowStream.Flush();
+ }
+ 
+@@ -402,7 +411,7 @@ STDMETHODIMP CDecoder::SetDecoderProperties2(const Byte *data, UInt32 size)
+ {
+   if (size < 1)
+     return E_INVALIDARG;
+-  m_IsSolid = ((data[0] & 1) != 0);
++  _isSolid = ((data[0] & 1) != 0);
+   return S_OK;
+ }
+ 
+diff --git a/CPP/7zip/Compress/Rar2Decoder.h b/CPP/7zip/Compress/Rar2Decoder.h
+index 0e9005f..370bce2 100644
+--- a/CPP/7zip/Compress/Rar2Decoder.h
++++ b/CPP/7zip/Compress/Rar2Decoder.h
+@@ -138,7 +138,8 @@ class CDecoder :
+   Byte m_LastLevels[kMaxTableSize];
+ 
+   UInt64 m_PackSize;
+-  bool m_IsSolid;
++  bool _isSolid;
++  bool _solidAllowed;
+   bool m_TablesOK;
+ 
+   void InitStructures();
+diff --git a/CPP/7zip/Compress/Rar3Decoder.cpp b/CPP/7zip/Compress/Rar3Decoder.cpp
+index 6cb8a6a..7b85833 100644
+--- a/CPP/7zip/Compress/Rar3Decoder.cpp
++++ b/CPP/7zip/Compress/Rar3Decoder.cpp
+@@ -92,7 +92,8 @@ CDecoder::CDecoder():
+   _writtenFileSize(0),
+   _vmData(0),
+   _vmCode(0),
+-  m_IsSolid(false),
++  _isSolid(false),
++  _solidAllowed(false),
+   _errorMode(false)
+ {
+   Ppmd7_Construct(&_ppmd);
+@@ -821,7 +822,7 @@ HRESULT CDecoder::CodeReal(ICompressProgressInfo *progress)
+ {
+   _writtenFileSize = 0;
+   _unsupportedFilter = false;
+-  if (!m_IsSolid)
++  if (!_isSolid)
+   {
+     _lzSize = 0;
+     _winPos = 0;
+@@ -840,12 +841,15 @@ HRESULT CDecoder::CodeReal(ICompressProgressInfo *progress)
+   if (_errorMode)
+     return S_FALSE;
+ 
+-  if (!m_IsSolid || !TablesRead)
++  if (!_isSolid || !TablesRead)
+   {
+     bool keepDecompressing;
+     RINOK(ReadTables(keepDecompressing));
+     if (!keepDecompressing)
++    {
++      _solidAllowed = true;
+       return S_OK;
++    }
+   }
+ 
+   for (;;)
+@@ -870,6 +874,9 @@ HRESULT CDecoder::CodeReal(ICompressProgressInfo *progress)
+     if (!keepDecompressing)
+       break;
+   }
++
++  _solidAllowed = true;
++
+   RINOK(WriteBuf());
+   UInt64 packSize = m_InBitStream.BitDecoder.GetProcessedSize();
+   RINOK(progress->SetRatioInfo(&packSize, &_writtenFileSize));
+@@ -890,6 +897,10 @@ STDMETHODIMP CDecoder::Code(ISequentialInStream *inStream, ISequentialOutStream
+     if (!inSize)
+       return E_INVALIDARG;
+ 
++    if (_isSolid && !_solidAllowed)
++      return S_FALSE;
++    _solidAllowed = false;
++
+     if (!_vmData)
+     {
+       _vmData = (Byte *)::MidAlloc(kVmDataSizeMax + kVmCodeSizeMax);
+@@ -928,7 +939,7 @@ STDMETHODIMP CDecoder::SetDecoderProperties2(const Byte *data, UInt32 size)
+ {
+   if (size < 1)
+     return E_INVALIDARG;
+-  m_IsSolid = ((data[0] & 1) != 0);
++  _isSolid = ((data[0] & 1) != 0);
+   return S_OK;
+ }
+ 
+diff --git a/CPP/7zip/Compress/Rar3Decoder.h b/CPP/7zip/Compress/Rar3Decoder.h
+index 2f72d7d..32c8943 100644
+--- a/CPP/7zip/Compress/Rar3Decoder.h
++++ b/CPP/7zip/Compress/Rar3Decoder.h
+@@ -191,7 +191,8 @@ class CDecoder:
+   CRecordVector<CTempFilter *>  _tempFilters;
+   UInt32 _lastFilter;
+ 
+-  bool m_IsSolid;
++  bool _isSolid;
++  bool _solidAllowed;
+   bool _errorMode;
+ 
+   bool _lzMode;
+diff --git a/CPP/7zip/Compress/Rar5Decoder.cpp b/CPP/7zip/Compress/Rar5Decoder.cpp
+index dc8830f..a826d5a 100644
+--- a/CPP/7zip/Compress/Rar5Decoder.cpp
++++ b/CPP/7zip/Compress/Rar5Decoder.cpp
+@@ -72,6 +72,7 @@ CDecoder::CDecoder():
+     _writtenFileSize(0),
+     _dictSizeLog(0),
+     _isSolid(false),
++    _solidAllowed(false),
+     _wasInit(false),
+     _inputBuf(NULL)
+ {
+@@ -801,7 +802,10 @@ HRESULT CDecoder::CodeReal()
+   */
+ 
+   if (res == S_OK)
++  {
++    _solidAllowed = true;
+     res = res2;
++  }
+      
+   if (res == S_OK && _unpackSize_Defined && _writtenFileSize != _unpackSize)
+     return S_FALSE;
+@@ -821,6 +825,10 @@ STDMETHODIMP CDecoder::Code(ISequentialInStream *inStream, ISequentialOutStream
+ {
+   try
+   {
++    if (_isSolid && !_solidAllowed)
++      return S_FALSE;
++    _solidAllowed = false;
++
+     if (_dictSizeLog >= sizeof(size_t) * 8)
+       return E_NOTIMPL;
+ 
+diff --git a/CPP/7zip/Compress/Rar5Decoder.h b/CPP/7zip/Compress/Rar5Decoder.h
+index b0a4dd1..3db5018 100644
+--- a/CPP/7zip/Compress/Rar5Decoder.h
++++ b/CPP/7zip/Compress/Rar5Decoder.h
+@@ -271,6 +271,7 @@ class CDecoder:
+   Byte _dictSizeLog;
+   bool _tableWasFilled;
+   bool _isSolid;
++  bool _solidAllowed;
+   bool _wasInit;
+ 
+   UInt32 _reps[kNumReps];
diff --git a/app-arch/p7zip/files/WimHandler.cpp.patch b/app-arch/p7zip/files/WimHandler.cpp.patch
new file mode 100644
index 0000000..db7d73a
--- /dev/null
+++ b/app-arch/p7zip/files/WimHandler.cpp.patch
@@ -0,0 +1,11 @@
+--- ./CPP/7zip/Archive/Wim/WimHandler.cpp	2016-06-11 11:08:06.000000000 +0300
++++ ./CPP/7zip/Archive/Wim/WimHandler.cpp.new	2020-01-22 09:36:59.671803569 +0300
+@@ -298,7 +298,7 @@ STDMETHODIMP CHandler::GetArchivePropert
+ 
+       AString res;
+ 
+-      bool numMethods = 0;
++      int numMethods = 0;
+       for (unsigned i = 0; i < ARRAY_SIZE(k_Methods); i++)
+       {
+         if (methodMask & ((UInt32)1 << i))
diff --git a/app-arch/p7zip/p7zip-16.02-r2.ebuild b/app-arch/p7zip/p7zip-16.02-r2.ebuild
deleted file mode 100644
index 5c68bd7..0000000
--- a/app-arch/p7zip/p7zip-16.02-r2.ebuild
+++ /dev/null
@@ -1,163 +0,0 @@
-# Copyright 1999-2018 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-WX_GTK_VER="3.0"
-
-inherit toolchain-funcs wxwidgets
-
-DESCRIPTION="Port of 7-Zip archiver for Unix"
-HOMEPAGE="http://p7zip.sourceforge.net/"
-SRC_URI="mirror://sourceforge/${PN}/${PN}_${PV}_src_all.tar.bz2"
-
-LICENSE="LGPL-2.1 rar? ( unRAR )"
-SLOT="0"
-KEYWORDS="*"
-IUSE="abi_x86_x32 doc kde +pch rar static wxwidgets"
-
-REQUIRED_USE="kde? ( wxwidgets )"
-
-RDEPEND="wxwidgets? ( x11-libs/wxGTK:${WX_GTK_VER}[X] )"
-DEPEND="${RDEPEND}
-	abi_x86_x32? ( >=dev-lang/yasm-1.2.0-r1 )
-	amd64? ( dev-lang/yasm )
-	x86? ( dev-lang/nasm )"
-
-S=${WORKDIR}/${PN}_${PV}
-
-DOCS=( ChangeLog README TODO )
-
-PATCHES=(
-	"${FILESDIR}"/${P}-darwin.patch
-	"${FILESDIR}"/CVE-2017-17969.patch
-	"${FILESDIR}"/CVE-2018-5996.patch
-)
-
-src_prepare() {
-	default
-
-	if ! use pch; then
-		sed "s:PRE_COMPILED_HEADER=StdAfx.h.gch:PRE_COMPILED_HEADER=:g" -i makefile.* || die
-	fi
-
-	sed \
-		-e 's:-m32 ::g' \
-		-e 's:-m64 ::g' \
-		-e 's:-pipe::g' \
-		-e '/ALLFLAGS/s:-s ::' \
-		-e "/OPTFLAGS=/s:=.*:=${CXXFLAGS}:" \
-		-i makefile* || die
-
-	# remove non-free RAR codec
-	if use rar; then
-		ewarn "Enabling nonfree RAR decompressor"
-	else
-		sed \
-			-e '/Rar/d' \
-			-e '/RAR/d' \
-			-i makefile* CPP/7zip/Bundles/Format7zFree/makefile || die
-		rm -rf CPP/7zip/Compress/Rar || die
-	fi
-
-	if use abi_x86_x32; then
-		sed -i -e "/^ASM=/s:amd64:x32:" makefile* || die
-		cp -f makefile.linux_amd64_asm makefile.machine || die
-	elif use amd64; then
-		cp -f makefile.linux_amd64_asm makefile.machine || die
-	elif use x86; then
-		cp -f makefile.linux_x86_asm_gcc_4.X makefile.machine || die
-	elif [[ ${CHOST} == *-darwin* ]] ; then
-		# Mac OS X needs this special makefile, because it has a non-GNU
-		# linker, it doesn't matter so much for bitwidth, for it doesn't
-		# do anything with it
-		cp -f makefile.macosx_llvm_64bits makefile.machine
-		# bundles have extension .bundle but don't die because USE=-rar
-		# removes the Rar directory
-		sed -i -e '/strcpy(name/s/\.so/.bundle/' \
-			CPP/Windows/DLL.cpp || die
-		sed -i -e '/^PROG=/s/\.so/.bundle/' \
-			CPP/7zip/Bundles/Format7zFree/makefile.list \
-			$(use rar && echo CPP/7zip/Compress/Rar/makefile.list) || die
-	elif use x86-fbsd; then
-		# FreeBSD needs this special makefile, because it hasn't -ldl
-		sed -e 's/-lc_r/-pthread/' makefile.freebsd > makefile.machine
-	fi
-
-	if use static; then
-		sed -i -e '/^LOCAL_LIBS=/s/LOCAL_LIBS=/&-static /' makefile.machine || die
-	fi
-
-	if use kde || use wxwidgets; then
-		need-wxwidgets unicode
-		einfo "Preparing dependency list"
-		emake depend
-	fi
-}
-
-src_compile() {
-	emake CC=$(tc-getCC) CXX=$(tc-getCXX) all3
-	if use kde || use wxwidgets; then
-		emake CC=$(tc-getCC) CXX=$(tc-getCXX) -- 7zG
-#		emake -- 7zFM
-	fi
-}
-
-src_test() {
-	emake test test_7z test_7zr
-}
-
-src_install() {
-	# this wrappers can not be symlinks, p7zip should be called with full path
-	make_wrapper 7zr "/usr/$(get_libdir)/${PN}/7zr"
-	make_wrapper 7za "/usr/$(get_libdir)/${PN}/7za"
-	make_wrapper 7z "/usr/$(get_libdir)/${PN}/7z"
-
-	if use kde || use wxwidgets; then
-		make_wrapper 7zG "/usr/$(get_libdir)/${PN}/7zG"
-#		make_wrapper 7zFM "/usr/$(get_libdir)/${PN}/7zFM"
-
-#		make_desktop_entry 7zFM "${PN} FM" ${PN} "GTK;Utility;Archiving;Compression"
-
-		dobin GUI/p7zipForFilemanager
-		exeinto /usr/$(get_libdir)/${PN}
-#		doexe bin/7z{G,FM}
-		doexe bin/7zG
-
-		insinto /usr/$(get_libdir)/${PN}
-		doins -r GUI/Lang
-		doins -r DOC/MANUAL
-
-		insinto /usr/share/icons/hicolor/16x16/apps/
-		newins GUI/p7zip_16_ok.png p7zip.png
-
-		if use kde; then
-			rm GUI/kde4/p7zip_compress.desktop || die
-			insinto /usr/share/kservices5/ServiceMenus
-			doins GUI/kde4/*.desktop
-			dodir /usr/share/kde4/services/ServiceMenus # drop these lines after konqueror:4/krusader:4 are gone
-			for item in "${ED}"usr/share/kservices5/ServiceMenus/*.desktop; do
-				item="$(basename ${item})"
-				dosym "/usr/share/kservices5/ServiceMenus/${item}" "/usr/share/kde4/services/ServiceMenus/${item}"
-			done
-		fi
-	fi
-
-	dobin contrib/gzip-like_CLI_wrapper_for_7z/p7zip
-	doman contrib/gzip-like_CLI_wrapper_for_7z/man1/p7zip.1
-
-	exeinto /usr/$(get_libdir)/${PN}
-	doexe bin/7z bin/7za bin/7zr bin/7zCon.sfx
-	doexe bin/*$(get_modname)
-	if use rar; then
-		exeinto /usr/$(get_libdir)/${PN}/Codecs/
-		doexe bin/Codecs/*$(get_modname)
-	fi
-
-	doman man1/7z.1 man1/7za.1 man1/7zr.1
-
-	if use doc; then
-		dodoc DOC/*.txt
-		dohtml -r DOC/MANUAL/*
-	fi
-}
diff --git a/app-arch/p7zip/p7zip-16.02-r8.ebuild b/app-arch/p7zip/p7zip-16.02-r8.ebuild
new file mode 100644
index 0000000..cd648a8
--- /dev/null
+++ b/app-arch/p7zip/p7zip-16.02-r8.ebuild
@@ -0,0 +1,154 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+WX_GTK_VER="3.0-gtk3"
+inherit multilib toolchain-funcs wrapper wxwidgets xdg
+
+DESCRIPTION="Port of 7-Zip archiver for Unix"
+HOMEPAGE="http://p7zip.sourceforge.net/"
+SRC_URI="mirror://sourceforge/${PN}/${PN}_${PV}_src_all.tar.bz2"
+S="${WORKDIR}/${PN}_${PV}"
+
+LICENSE="LGPL-2.1 rar? ( unRAR )"
+SLOT="0"
+KEYWORDS="*"
+IUSE="abi_x86_x32 doc kde +pch rar static wxwidgets"
+REQUIRED_USE="kde? ( wxwidgets )"
+
+RDEPEND="wxwidgets? ( x11-libs/wxGTK:${WX_GTK_VER}[X] )"
+DEPEND="${RDEPEND}"
+BDEPEND="
+	abi_x86_x32? ( >=dev-lang/yasm-1.2.0-r1 )
+	amd64? ( dev-lang/yasm )
+	x86? ( dev-lang/nasm )"
+
+PATCHES=(
+	"${FILESDIR}"/${P}-darwin.patch
+	"${FILESDIR}"/CVE-2016-9296.patch
+	"${FILESDIR}"/CVE-2017-17969.patch
+	"${FILESDIR}"/CVE-2018-5996.patch
+	"${FILESDIR}"/CVE-2018-10115.patch
+	"${FILESDIR}"/WimHandler.cpp.patch
+)
+
+src_prepare() {
+	default
+
+	if ! use pch; then
+		sed "s:PRE_COMPILED_HEADER=StdAfx.h.gch:PRE_COMPILED_HEADER=:g" -i makefile.* || die
+	fi
+
+	sed \
+		-e 's|-m32 ||g' \
+		-e 's|-m64 ||g' \
+		-e 's|-pipe||g' \
+		-e "/[ALL|OPT]FLAGS/s|-s||;/OPTIMIZE/s|-s||" \
+		-e "/CFLAGS=/s|=|+=|" \
+		-e "/CXXFLAGS=/s|=|+=|" \
+		-i makefile* || die
+
+	# remove non-free RAR codec
+	if use rar; then
+		ewarn "Enabling nonfree RAR decompressor"
+	else
+		sed \
+			-e '/Rar/d' \
+			-e '/RAR/d' \
+			-i makefile* CPP/7zip/Bundles/Format7zFree/makefile || die
+		rm -r CPP/7zip/Compress/Rar || die
+	fi
+
+	if use abi_x86_x32; then
+		sed -i -e "/^ASM=/s:amd64:x32:" makefile* || die
+		cp -f makefile.linux_amd64_asm makefile.machine || die
+	elif use amd64; then
+		cp -f makefile.linux_amd64_asm makefile.machine || die
+	elif use x86; then
+		cp -f makefile.linux_x86_asm_gcc_4.X makefile.machine || die
+	elif [[ ${CHOST} == *-darwin* ]] ; then
+		# Mac OS X needs this special makefile, because it has a non-GNU
+		# linker, it doesn't matter so much for bitwidth, for it doesn't
+		# do anything with it
+		cp -f makefile.macosx_llvm_64bits makefile.machine || die
+		# bundles have extension .bundle but don't die because USE=-rar
+		# removes the Rar directory
+		sed -i -e '/strcpy(name/s/\.so/.bundle/' \
+			CPP/Windows/DLL.cpp || die
+		sed -i -e '/^PROG=/s/\.so/.bundle/' \
+			CPP/7zip/Bundles/Format7zFree/makefile.list \
+			$(use rar && echo CPP/7zip/Compress/Rar/makefile.list) || die
+	elif use x86-fbsd; then
+		# FreeBSD needs this special makefile, because it hasn't -ldl
+		sed -e 's/-lc_r/-pthread/' makefile.freebsd > makefile.machine || die
+	fi
+
+	if use static; then
+		sed -i -e '/^LOCAL_LIBS=/s/LOCAL_LIBS=/&-static /' makefile.machine || die
+	fi
+
+	if use kde || use wxwidgets; then
+		setup-wxwidgets unicode
+		einfo "Preparing dependency list"
+		emake CC=$(tc-getCC) CXX=$(tc-getCXX) depend
+	fi
+}
+
+src_compile() {
+	emake CC=$(tc-getCC) CXX=$(tc-getCXX) all3
+	if use kde || use wxwidgets; then
+		emake CC=$(tc-getCC) CXX=$(tc-getCXX) -- 7zG
+	fi
+}
+
+src_test() {
+	emake test test_7z test_7zr
+}
+
+src_install() {
+	# these wrappers cannot be symlinks, p7zip should be called with full path
+	make_wrapper 7zr /usr/$(get_libdir)/p7zip/7zr
+	make_wrapper 7za /usr/$(get_libdir)/p7zip/7za
+	make_wrapper 7z /usr/$(get_libdir)/p7zip/7z
+
+	if use kde || use wxwidgets; then
+		make_wrapper 7zG /usr/$(get_libdir)/p7zip/7zG
+
+		dobin GUI/p7zipForFilemanager
+		exeinto /usr/$(get_libdir)/p7zip
+		doexe bin/7zG
+
+		insinto /usr/$(get_libdir)/p7zip
+		doins -r GUI/Lang
+
+		insinto /usr/share/icons/hicolor/16x16/apps/
+		newins GUI/p7zip_16_ok.png p7zip.png
+
+		if use kde; then
+			rm GUI/kde4/p7zip_compress.desktop || die
+			insinto /usr/share/kservices5/ServiceMenus
+			doins GUI/kde4/*.desktop
+		fi
+	fi
+
+	dobin contrib/gzip-like_CLI_wrapper_for_7z/p7zip
+	doman contrib/gzip-like_CLI_wrapper_for_7z/man1/p7zip.1
+
+	exeinto /usr/$(get_libdir)/p7zip
+	doexe bin/7z bin/7za bin/7zr bin/7zCon.sfx
+	doexe bin/*$(get_modname)
+	if use rar; then
+		exeinto /usr/$(get_libdir)/p7zip/Codecs
+		doexe bin/Codecs/*$(get_modname)
+	fi
+
+	doman man1/7z.1 man1/7za.1 man1/7zr.1
+
+	dodoc ChangeLog README TODO
+	if use doc; then
+		dodoc DOC/*.txt
+		docinto html
+		dodoc -r DOC/MANUAL/.
+	fi
+}
diff --git a/app-arch/pbzip2/Manifest b/app-arch/pbzip2/Manifest
index ceff5eb..c66c7c1 100644
--- a/app-arch/pbzip2/Manifest
+++ b/app-arch/pbzip2/Manifest
@@ -1 +1 @@
-DIST pbzip2-1.1.13.tar.gz 48015 SHA256 8fd13eaaa266f7ee91f85c1ea97c86d9c9cc985969db9059cdebcb1e1b7bdbe6 SHA512 a150e476a85b2ae71c244561380f8f113072ef712173afaa0bdace5845d5f81a15b135258cb01376156b69a5085b02b7ab866cfab5713aa773b251b203c087b8 WHIRLPOOL 113a73732e571ff3431d29a6b8c150a2199fe839ccf3282f6cc1adf4bbace649fce4d377e25401132fd8f1c1c3eb48840a0c00536960cdaa288958de51f28d99
+DIST pbzip2-1.1.13.tar.gz 48015 BLAKE2B 1bb410acadc728963c3a04d2665fb1b1f0c206a893ed90352a9c16512e9bd5f82c3f5f3b383b382134bbe904735a1c8a81615a8bc54de8c6bc91633d9ce72c57 SHA512 a150e476a85b2ae71c244561380f8f113072ef712173afaa0bdace5845d5f81a15b135258cb01376156b69a5085b02b7ab866cfab5713aa773b251b203c087b8
diff --git a/app-arch/pbzip2/pbzip2-1.1.13.ebuild b/app-arch/pbzip2/pbzip2-1.1.13.ebuild
index d3c34ce..74e8839 100644
--- a/app-arch/pbzip2/pbzip2-1.1.13.ebuild
+++ b/app-arch/pbzip2/pbzip2-1.1.13.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2015 Gentoo Foundation
+# Copyright 1999-2021 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
-EAPI=5
+EAPI="7"
 
-inherit flag-o-matic eutils
+inherit flag-o-matic toolchain-funcs
 
 DESCRIPTION="Parallel bzip2 (de)compressor using libbz2"
 HOMEPAGE="http://compression.ca/pbzip2/ https://launchpad.net/pbzip2"
@@ -21,10 +21,17 @@
 DEPEND="${RDEPEND}
 	static? ( ${LIB_DEPEND} )"
 
+PATCHES=(
+	"${FILESDIR}"/${PN}-1.1.10-makefile.patch
+)
+
 src_prepare() {
+	default
 	# https://bugs.launchpad.net/pbzip2/+bug/1746369
 	sed -i 's:"PRIuMAX":" PRIuMAX ":g' *.cpp || die
-	epatch "${FILESDIR}"/${PN}-1.1.10-makefile.patch
+}
+
+src_configure() {
 	tc-export CXX
 	use static && append-ldflags -static
 }
diff --git a/app-arch/pigz/Manifest b/app-arch/pigz/Manifest
index 059936d..33a88c5 100644
--- a/app-arch/pigz/Manifest
+++ b/app-arch/pigz/Manifest
@@ -1 +1 @@
-DIST pigz-2.3.1.tar.gz 86651 SHA256 629b0ce5422a3978f31742bf8275d0be2f84987140d18f390f1e3b4e46e0af54 SHA512 7cb00ab87802352c817d9b2f745948199a7e571181aec3ef161305c1d8b828790bc2fb0083d6068ba5aead5d8b8c7f53ec25ab641ae2e98eda9adf14f195dbc6 WHIRLPOOL 242e38d05215269c3c9b6602191cc6e02fd9e781b0425738c3907ccf60da9a4a36ebcda866c9c0e949ad5988dad6b468f97102352d2ed13adb7e890688c221f7
+DIST pigz-2.6.tar.gz 106840 BLAKE2B 8e1a8ca593896fc947a7d6ffaa71d9be69d347f7cf1ed2f635b8480aa05708f4679a4768cf3a18ac515ea94dd8352dd4158bd3c9d1b6fdebd82ad1b582d04cba SHA512 04d2e44bc7a7eb061c3c48100ce5b8fc79931aeac72340abd768fd2a4499ff1004e2bc009772fc2003a4c599f6e90f3abc8bef5c377d6397f1c8e9f7c49f95e2
diff --git a/app-arch/pigz/metadata.xml b/app-arch/pigz/metadata.xml
index 07909a4..1da600e 100644
--- a/app-arch/pigz/metadata.xml
+++ b/app-arch/pigz/metadata.xml
@@ -1,15 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
 <pkgmetadata>
-	<maintainer>
-		<email>radhermit@gentoo.org</email>
-		<name>Tim Harder</name>
+	<maintainer type="person">
+		<email>gyakovlev@gentoo.org</email>
+		<name>Georgy Yakovlev</name>
 	</maintainer>
 	<longdescription lang="en">
-		A parallel implementation of gzip for modern
-		multi-processor, multi-core machines.
+		pigz, which stands for parallel implementation of gzip,
+		is a fully functional replacement for gzip that exploits
+		multiple processors and multiple cores to the hilt when compressing data.
 	</longdescription>
+	<use>
+		<flag name="symlink">Install symlinks which override <pkg>app-arch/gzip</pkg> implementation</flag>
+	</use>
 	<upstream>
 		<remote-id type="cpe">cpe:/a:zlib:pigz</remote-id>
+		<remote-id type="github">madler/pigz</remote-id>
 	</upstream>
 </pkgmetadata>
diff --git a/app-arch/pigz/pigz-2.3.1.ebuild b/app-arch/pigz/pigz-2.3.1.ebuild
deleted file mode 100644
index 723f317..0000000
--- a/app-arch/pigz/pigz-2.3.1.ebuild
+++ /dev/null
@@ -1,39 +0,0 @@
-# Copyright 1999-2014 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/app-arch/pigz/pigz-2.3.1.ebuild,v 1.4 2014/01/18 01:43:34 vapier Exp $
-
-EAPI=5
-
-inherit toolchain-funcs flag-o-matic
-
-DESCRIPTION="A parallel implementation of gzip"
-HOMEPAGE="http://www.zlib.net/pigz/"
-SRC_URI="http://www.zlib.net/pigz/${P}.tar.gz"
-
-LICENSE="ZLIB"
-SLOT="0"
-KEYWORDS="*"
-IUSE="static symlink test"
-
-LIB_DEPEND="sys-libs/zlib[static-libs(+)]"
-RDEPEND="!static? ( ${LIB_DEPEND//\[static-libs(+)]} )"
-DEPEND="${RDEPEND}
-	static? ( ${LIB_DEPEND} )
-	test? ( app-arch/ncompress )"
-
-src_compile() {
-	use static && append-ldflags -static
-	emake CC="$(tc-getCC)" CFLAGS="${CFLAGS}"
-}
-
-src_install() {
-	dobin ${PN}
-	dosym ${PN} /usr/bin/un${PN}
-	dodoc README
-	doman ${PN}.1
-
-	if use symlink; then
-		dosym ${PN} /usr/bin/gzip
-		dosym un${PN} /usr/bin/gunzip
-	fi
-}
diff --git a/app-arch/pigz/pigz-2.6.ebuild b/app-arch/pigz/pigz-2.6.ebuild
new file mode 100644
index 0000000..c28f432
--- /dev/null
+++ b/app-arch/pigz/pigz-2.6.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit toolchain-funcs flag-o-matic
+
+DESCRIPTION="A parallel implementation of gzip"
+HOMEPAGE="https://www.zlib.net/pigz/"
+SRC_URI="https://www.zlib.net/pigz/${P}.tar.gz"
+
+LICENSE="ZLIB"
+SLOT="0"
+KEYWORDS="*"
+IUSE="static symlink test"
+RESTRICT="!test? ( test )"
+
+LIB_DEPEND="sys-libs/zlib[static-libs(+)]"
+RDEPEND="!static? ( ${LIB_DEPEND//\[static-libs(+)]} )"
+DEPEND="${RDEPEND}
+	static? ( ${LIB_DEPEND} )
+	test? ( app-arch/ncompress )"
+
+src_compile() {
+	use static && append-ldflags -static
+	emake CC="$(tc-getCC)" CFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}"
+}
+
+src_install() {
+	dobin ${PN}
+	dosym ${PN} /usr/bin/un${PN}
+	dodoc README
+	doman ${PN}.1
+
+	if use symlink; then
+		dosym ${PN} /usr/bin/gzip
+		dosym un${PN} /usr/bin/gunzip
+	fi
+}
diff --git a/app-arch/pixz/Manifest b/app-arch/pixz/Manifest
index 3fe12b2..e3e7105 100644
--- a/app-arch/pixz/Manifest
+++ b/app-arch/pixz/Manifest
@@ -1 +1 @@
-DIST pixz-1.0.6.tar.xz 119516 SHA256 02c50746b134fa1b1aae41fcc314d7c6f1919b3d48bcdea01bf11769f83f72e8 SHA512 361a8d8b736c350e4e3fd19b5d36777129a087eb81439d05edc08f9378938583bef8fc70e440ffd22efb6dad1f6494c6c3e532d7dd1ab12c9350b6078aa993d7 WHIRLPOOL cc5849746665a07e41e2f670410f00428a7ef9390e4dea83f1797efe51b1e73324002d68d74bf9c659affdcfc597ce45442da5f548d3326eb48af9fc6ce033c4
+DIST pixz-1.0.7.tar.xz 120876 BLAKE2B 23563837169611d54dc4540715537b2e16c66bd9682097e4f37957e7422b487f221603b11aa30a39fd05c77dbeddc1697ac9ffe208d984c1da885a67f79a180f SHA512 7f343cb74958b9582b60a2e916243e72421fad1ebecc5867c9e046c881e8a318da9bb885edd71da8fe6953fd5d5c2f5119133cd0bbbf4d0f9b35f8aecd61120d
diff --git a/app-arch/pixz/metadata.xml b/app-arch/pixz/metadata.xml
new file mode 100644
index 0000000..4256054
--- /dev/null
+++ b/app-arch/pixz/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+  <maintainer type="person">
+    <email>zerochaos@gentoo.org</email>
+    <name>Rick Farina</name>
+  </maintainer>
+  <upstream>
+    <remote-id type="github">vasi/pixz</remote-id>
+  </upstream>
+</pkgmetadata>
diff --git a/app-arch/pixz/pixz-1.0.6.ebuild b/app-arch/pixz/pixz-1.0.6.ebuild
deleted file mode 120000
index 4bcdc73..0000000
--- a/app-arch/pixz/pixz-1.0.6.ebuild
+++ /dev/null
@@ -1 +0,0 @@
-pixz-9999.ebuild
\ No newline at end of file
diff --git a/app-arch/pixz/pixz-1.0.7.ebuild b/app-arch/pixz/pixz-1.0.7.ebuild
new file mode 100644
index 0000000..8ad7b94
--- /dev/null
+++ b/app-arch/pixz/pixz-1.0.7.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit flag-o-matic
+
+if [[ ${PV} == "9999" ]] ; then
+	EGIT_REPO_URI="https://github.com/vasi/${PN}.git"
+	inherit git-r3 autotools
+else
+	SRC_URI="https://github.com/vasi/pixz/releases/download/v${PV}/${P}.tar.xz"
+	KEYWORDS="*"
+fi
+
+DESCRIPTION="Parallel Indexed XZ compressor"
+HOMEPAGE="https://github.com/vasi/pixz"
+
+LICENSE="BSD-2"
+SLOT="0"
+IUSE="static"
+
+LIB_DEPEND="
+	>=app-arch/libarchive-2.8:=[static-libs(+)]
+	>=app-arch/xz-utils-5[static-libs(+)]
+"
+RDEPEND="
+	!static? ( ${LIB_DEPEND//\[static-libs(+)]} )
+"
+DEPEND="${RDEPEND}
+	static? ( ${LIB_DEPEND} )
+"
+[[ ${PV} == "9999" ]] && BDEPEND+=" app-text/asciidoc"
+
+src_prepare() {
+	default
+	[[ ${PV} == "9999" ]] && eautoreconf
+}
+
+src_configure() {
+	use static && append-ldflags -static
+	append-flags -std=gnu99
+	# Workaround silly logic that breaks cross-compiles.
+	# https://github.com/vasi/pixz/issues/67
+	export ac_cv_file_src_pixz_1=$([[ -f src/pixz.1 ]] && echo yes || echo no)
+	econf
+}
+
+src_test() {
+	emake check
+}
diff --git a/app-arch/pixz/pixz-9999.ebuild b/app-arch/pixz/pixz-9999.ebuild
deleted file mode 100644
index 8e80105..0000000
--- a/app-arch/pixz/pixz-9999.ebuild
+++ /dev/null
@@ -1,42 +0,0 @@
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="5"
-
-inherit flag-o-matic
-
-if [[ ${PV} == "9999" ]] ; then
-	EGIT_REPO_URI="https://github.com/vasi/${PN}.git"
-	inherit git-r3 autotools
-else
-	SRC_URI="https://github.com/vasi/pixz/releases/download/v${PV}/${P}.tar.xz"
-	KEYWORDS="*"
-fi
-
-DESCRIPTION="Parallel Indexed XZ compressor"
-HOMEPAGE="https://github.com/vasi/pixz"
-
-LICENSE="BSD-2"
-SLOT="0"
-IUSE="static"
-
-LIB_DEPEND=">=app-arch/libarchive-2.8:=[static-libs(+)]
-	>=app-arch/xz-utils-5[static-libs(+)]"
-RDEPEND="!static? ( ${LIB_DEPEND//\[static-libs(+)]} )"
-DEPEND="${RDEPEND}
-	static? ( ${LIB_DEPEND} )"
-[[ ${PV} == "9999" ]] && DEPEND+=" app-text/asciidoc"
-
-src_prepare() {
-	default
-	[[ ${PV} == "9999" ]] && eautoreconf
-}
-
-src_configure() {
-	use static && append-ldflags -static
-	append-flags -std=gnu99
-	# Workaround silly logic that breaks cross-compiles.
-	# https://github.com/vasi/pixz/issues/67
-	export ac_cv_file_src_pixz_1=$([[ -f src/pixz.1 ]] && echo yes || echo no)
-	econf
-}
diff --git a/app-arch/rpm2targz/Manifest b/app-arch/rpm2targz/Manifest
index 6f6263d..e187af5 100644
--- a/app-arch/rpm2targz/Manifest
+++ b/app-arch/rpm2targz/Manifest
@@ -1 +1 @@
-DIST rpm2targz-9.0.0.5g.tar.xz 5740 SHA256 4327b7dd30bf55e473198444b920029624948e24af575edff9ce466dcd4075e0 SHA512 a595d23581bd396a3a00b6eae4cf6edca1c65b52510a02c7b162afc3d89f45026663a271279bb519741b4a35a0ee653fbfb124c5a7d6d921b466dc9236cbf549 WHIRLPOOL 24ef16afdd2c6fc1c803d849da9140bf53c10ecc041a1b3363459d233f5862a97f6199186932eaeb43e8100e4b2c015d3c0253a2e0d993b246f9fd0f692ab45b
+DIST rpm2targz-2021.03.16.tar.xz 6500 BLAKE2B fac1122fbfcab2b982ea6f5369b95b30814d438d0f853d846ef62a33ceaaf81d44b2a743bc20a3ef46defb63331bff06f9a268a5a805ecd899b11f86ec414bc2 SHA512 efd677642fbf73d4b8c90f338eea20452052f2bdc2b7a3a61c0e9215676575b5063aad733ec3ea4840baf281eb332db8f6fdeef600cc8a8aa7e208f2fa8ee599
diff --git a/app-arch/rpm2targz/metadata.xml b/app-arch/rpm2targz/metadata.xml
index 96a2d58..56c1244 100644
--- a/app-arch/rpm2targz/metadata.xml
+++ b/app-arch/rpm2targz/metadata.xml
@@ -1,5 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
 <pkgmetadata>
-<herd>base-system</herd>
+<maintainer type="project">
+	<email>base-system@gentoo.org</email>
+	<name>Gentoo Base System</name>
+</maintainer>
 </pkgmetadata>
diff --git a/app-arch/rpm2targz/rpm2targz-2021.03.16.ebuild b/app-arch/rpm2targz/rpm2targz-2021.03.16.ebuild
new file mode 100644
index 0000000..d55fa44
--- /dev/null
+++ b/app-arch/rpm2targz/rpm2targz-2021.03.16.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="7"
+
+inherit toolchain-funcs
+
+DESCRIPTION="Convert a .rpm file to a .tar.gz archive"
+HOMEPAGE="http://www.slackware.com/config/packages.php"
+SRC_URI="mirror://gentoo/${P}.tar.xz
+	https://dev.gentoo.org/~vapier/dist/${P}.tar.xz"
+
+LICENSE="BSD-1"
+SLOT="0"
+KEYWORDS="*"
+IUSE=""
+
+DEPEND=""
+RDEPEND="app-arch/cpio"
+
+src_configure() {
+	tc-export CC
+}
+
+src_install() {
+	emake DESTDIR="${D}" prefix="${EPREFIX}"/usr install
+	einstalldocs
+}
diff --git a/app-arch/rpm2targz/rpm2targz-9.0.0.5g.ebuild b/app-arch/rpm2targz/rpm2targz-9.0.0.5g.ebuild
deleted file mode 100644
index 41ef0a0..0000000
--- a/app-arch/rpm2targz/rpm2targz-9.0.0.5g.ebuild
+++ /dev/null
@@ -1,28 +0,0 @@
-# Copyright 1999-2014 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/app-arch/rpm2targz/rpm2targz-9.0.0.5g.ebuild,v 1.12 2014/01/18 01:18:10 vapier Exp $
-
-EAPI="4"
-
-inherit toolchain-funcs
-
-DESCRIPTION="Convert a .rpm file to a .tar.gz archive"
-HOMEPAGE="http://www.slackware.com/config/packages.php"
-SRC_URI="mirror://gentoo/${P}.tar.xz"
-
-LICENSE="BSD-1"
-SLOT="0"
-KEYWORDS="*"
-IUSE=""
-
-RDEPEND="app-arch/cpio"
-DEPEND="app-arch/xz-utils"
-
-src_compile() {
-	emake CC="$(tc-getCC)"
-}
-
-src_install() {
-	emake DESTDIR="${ED}" install # need explicit install line #397835
-	dodoc *.README*
-}
diff --git a/app-arch/sharutils/Manifest b/app-arch/sharutils/Manifest
index 90adbe3..b2a7522 100644
--- a/app-arch/sharutils/Manifest
+++ b/app-arch/sharutils/Manifest
@@ -1 +1 @@
-DIST sharutils-4.14.tar.xz 1089052 SHA256 eae388efcf52aba0b081f09053189e0a3ad238561d88716b880b5c0676c07a0c SHA512 c1b87bc87915f7aebc9e02dfc1e08321f5ed2e144509c063139cde23eb8f75cb6469aa8042e4c6ec801f55d805e595f4c1c674cf5f2b4580a1e4933fcd605614 WHIRLPOOL dc3f9f3e2caaf296fbf6317f4b8eb1d4d8b8cb5aef59ef570dd24483afcaf3dd55f46e07a70e1213b393390c77e631e60891adae52ff9693ad446692189db649
+DIST sharutils-4.15.2.tar.xz 1122476 BLAKE2B e2acae027679ebdf723ecae6f243608f501f5c24685a19223dd27580ccf76bc7d38905a9d202b30cf2633e5580d727821398f1162b170233f03c17f3da683917 SHA512 80d0b804a0617e11e5c23dc0d59b218bbf93e40aaf5e9a5401a18ef9cb700390aab711e2b2e2f26c8fd5b8ef99a91d3405e01d02cadabcba7639979314e59f8d
diff --git a/app-arch/sharutils/files/sharutils-4.14-popen-rb.patch b/app-arch/sharutils/files/sharutils-4.14-popen-rb.patch
deleted file mode 100644
index c502a62..0000000
--- a/app-arch/sharutils/files/sharutils-4.14-popen-rb.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-delete the run time test which dies on cross-compiles.
-we know the answer already, so hardcode it to true.
-
---- a/configure
-+++ b/configure
-@@ -30745,25 +30745,8 @@
-   CATALOGS="$new_CATALOGS"
- fi
- 
--if test "$cross_compiling" = yes; then :
--  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
--$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
--as_fn_error $? "cannot run test program while cross compiling
--See \`config.log' for more details" "$LINENO" 5; }
--else
--  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
--/* end confdefs.h.  */
--
--int
--main ()
--{
--    FILE * fp = popen ("date", "rb");
--    exit (fp == NULL);
--  ;
--  return 0;
--}
--_ACEOF
--if ac_fn_c_try_run "$LINENO"; then :
-+if false; then
-+if true; then
- 
- $as_echo "#define BINARY_MODE_POPEN 1" >>confdefs.h
- 
diff --git a/app-arch/sharutils/files/sharutils-4.15.2-CVE-2018-1000097.patch b/app-arch/sharutils/files/sharutils-4.15.2-CVE-2018-1000097.patch
new file mode 100644
index 0000000..f616620
--- /dev/null
+++ b/app-arch/sharutils/files/sharutils-4.15.2-CVE-2018-1000097.patch
@@ -0,0 +1,16 @@
+From: Petr Pisar
+Subject: Fix CVE-2018-1000097, heap buffer overflow in unshar
+Bug-Debian: https://bugs.debian.org/893525
+X-Debian-version: 1:4.15.2-3
+
+--- a/src/unshar.c
++++ b/src/unshar.c
+@@ -240,7 +240,7 @@
+       off_t position = ftello (file);
+ 
+       /* Read next line, fail if no more and no previous process.  */
+-      if (!fgets (rw_buffer, BUFSIZ, file))
++      if (!fgets (rw_buffer, rw_base_size, file))
+ 	{
+ 	  if (!start)
+ 	    error (0, 0, _("Found no shell commands in %s"), name);
diff --git a/app-arch/sharutils/files/sharutils-4.15.2-gcc-10.patch b/app-arch/sharutils/files/sharutils-4.15.2-gcc-10.patch
new file mode 100644
index 0000000..4a0c02f
--- /dev/null
+++ b/app-arch/sharutils/files/sharutils-4.15.2-gcc-10.patch
@@ -0,0 +1,48 @@
+https://bugs.gentoo.org/706256
+
+Fix build failure on gcc-10/-fno-common.
+
+--- a/src/shar-opts.h
++++ b/src/shar-opts.h
+@@ -352,7 +352,7 @@ extern "C" {
+  *  global exported definitions
+  */
+ #include "local.h"
+-char const * const program_name;
++extern char const * const program_name;
+ 
+ extern bool initialization_done;
+ extern int optidx;
+--- a/src/unshar-opts.h
++++ b/src/unshar-opts.h
+@@ -192,7 +192,7 @@ extern "C" {
+ extern size_t       separator_str_len;
+ 
+ #include "local.h"
+-char const * const program_name;
++extern char const * const program_name;
+ 
+ 
+ /* * * * * *
+--- a/src/uudecode-opts.h
++++ b/src/uudecode-opts.h
+@@ -170,7 +170,7 @@ extern "C" {
+  *  global exported definitions
+  */
+ #include "local.h"
+-char const * const program_name;
++extern char const * const program_name;
+ 
+ 
+ /* * * * * *
+--- a/src/uuencode-opts.h
++++ b/src/uuencode-opts.h
+@@ -166,7 +166,7 @@ extern "C" {
+  *  global exported definitions
+  */
+ #include "local.h"
+-char const * const program_name;
++extern char const * const program_name;
+ 
+ 
+ /* * * * * *
diff --git a/app-arch/sharutils/files/sharutils-4.15.2-glibc228.patch b/app-arch/sharutils/files/sharutils-4.15.2-glibc228.patch
new file mode 100644
index 0000000..15bd682
--- /dev/null
+++ b/app-arch/sharutils/files/sharutils-4.15.2-glibc228.patch
@@ -0,0 +1,95 @@
+From: Santiago Vila <sanvila@debian.org>
+Subject: Fix FTBFS with glibc 2.28
+Bug-Debian: https://bugs.debian.org/915173
+X-Debian-version: 1:4.15.2-4
+
+Based on this gnulib commit by Paul Eggert:
+
+https://lists.gnu.org/r/bug-gnulib/2018-03/msg00002.html
+
+--- a/lib/fflush.c
++++ b/lib/fflush.c
+@@ -33,7 +33,7 @@
+ #undef fflush
+ 
+ 
+-#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
++#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
+ 
+ /* Clear the stream's ungetc buffer, preserving the value of ftello (fp).  */
+ static void
+@@ -72,7 +72,7 @@
+ 
+ #endif
+ 
+-#if ! (defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */)
++#if ! (defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */)
+ 
+ # if (defined __sferror || defined __DragonFly__ || defined __ANDROID__) && defined __SNPT
+ /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Android */
+@@ -148,7 +148,7 @@
+   if (stream == NULL || ! freading (stream))
+     return fflush (stream);
+ 
+-#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
++#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
+ 
+   clear_ungetc_buffer_preserving_position (stream);
+ 
+--- a/lib/fpurge.c
++++ b/lib/fpurge.c
+@@ -62,7 +62,7 @@
+   /* Most systems provide FILE as a struct and the necessary bitmask in
+      <stdio.h>, because they need it for implementing getc() and putc() as
+      fast macros.  */
+-# if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
++# if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
+   fp->_IO_read_end = fp->_IO_read_ptr;
+   fp->_IO_write_ptr = fp->_IO_write_base;
+   /* Avoid memory leak when there is an active ungetc buffer.  */
+--- a/lib/freading.c
++++ b/lib/freading.c
+@@ -31,7 +31,7 @@
+   /* Most systems provide FILE as a struct and the necessary bitmask in
+      <stdio.h>, because they need it for implementing getc() and putc() as
+      fast macros.  */
+-# if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
++# if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
+   return ((fp->_flags & _IO_NO_WRITES) != 0
+           || ((fp->_flags & (_IO_NO_READS | _IO_CURRENTLY_PUTTING)) == 0
+               && fp->_IO_read_base != NULL));
+--- a/lib/fseeko.c
++++ b/lib/fseeko.c
+@@ -47,7 +47,7 @@
+ #endif
+ 
+   /* These tests are based on fpurge.c.  */
+-#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
++#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
+   if (fp->_IO_read_end == fp->_IO_read_ptr
+       && fp->_IO_write_ptr == fp->_IO_write_base
+       && fp->_IO_save_base == NULL)
+@@ -123,7 +123,7 @@
+           return -1;
+         }
+ 
+-#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
++#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
+       fp->_flags &= ~_IO_EOF_SEEN;
+       fp->_offset = pos;
+ #elif defined __sferror || defined __DragonFly__ || defined __ANDROID__
+--- a/lib/stdio-impl.h
++++ b/lib/stdio-impl.h
+@@ -18,6 +18,12 @@
+    the same implementation of stdio extension API, except that some fields
+    have different naming conventions, or their access requires some casts.  */
+ 
++/* Glibc 2.28 made _IO_IN_BACKUP private.  For now, work around this
++   problem by defining it ourselves.  FIXME: Do not rely on glibc
++   internals.  */
++#if !defined _IO_IN_BACKUP && defined _IO_EOF_SEEN
++# define _IO_IN_BACKUP 0x100
++#endif
+ 
+ /* BSD stdio derived implementations.  */
+ 
diff --git a/app-arch/sharutils/metadata.xml b/app-arch/sharutils/metadata.xml
index 801bcd0..92fa546 100644
--- a/app-arch/sharutils/metadata.xml
+++ b/app-arch/sharutils/metadata.xml
@@ -1,7 +1,10 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
 <pkgmetadata>
-<herd>base-system</herd>
+<maintainer type="project">
+  <email>base-system@gentoo.org</email>
+  <name>Gentoo Base System</name>
+</maintainer>
 <upstream>
   <remote-id type="cpe">cpe:/a:gnu:sharutils</remote-id>
 </upstream>
diff --git a/app-arch/sharutils/sharutils-4.14-r1.ebuild b/app-arch/sharutils/sharutils-4.14-r1.ebuild
deleted file mode 100644
index 5976676..0000000
--- a/app-arch/sharutils/sharutils-4.14-r1.ebuild
+++ /dev/null
@@ -1,32 +0,0 @@
-# Copyright 1999-2014 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/app-arch/sharutils/sharutils-4.14-r1.ebuild,v 1.10 2014/08/12 12:19:31 vapier Exp $
-
-EAPI="5"
-
-inherit eutils
-
-MY_P="${P/_/-}"
-DESCRIPTION="Tools to deal with shar archives"
-HOMEPAGE="http://www.gnu.org/software/sharutils/"
-SRC_URI="mirror://gnu/${PN}/${P}.tar.xz"
-
-LICENSE="GPL-3"
-SLOT="0"
-KEYWORDS="*"
-IUSE="nls"
-
-DEPEND="app-arch/xz-utils
-	sys-apps/texinfo
-	nls? ( >=sys-devel/gettext-0.10.35 )"
-
-S=${WORKDIR}/${MY_P}
-
-src_prepare() {
-	epatch "${FILESDIR}"/${PN}-4.14-popen-rb.patch
-}
-
-src_configure() {
-	strip-linguas -u po
-	econf $(use_enable nls)
-}
diff --git a/app-arch/sharutils/sharutils-4.15.2-r2.ebuild b/app-arch/sharutils/sharutils-4.15.2-r2.ebuild
new file mode 100644
index 0000000..010dbd4
--- /dev/null
+++ b/app-arch/sharutils/sharutils-4.15.2-r2.ebuild
@@ -0,0 +1,40 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="7"
+
+inherit flag-o-matic l10n
+
+MY_P="${P/_/-}"
+DESCRIPTION="Tools to deal with shar archives"
+HOMEPAGE="https://www.gnu.org/software/sharutils/"
+SRC_URI="mirror://gnu/${PN}/${P}.tar.xz"
+S="${WORKDIR}"/${MY_P}
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="*"
+IUSE="nls"
+
+DEPEND="app-arch/xz-utils
+	sys-apps/texinfo
+	nls? ( >=sys-devel/gettext-0.10.35 )"
+
+PATCHES=(
+	"${FILESDIR}"/${PN}-4.15.2-glibc228.patch
+	"${FILESDIR}"/${PN}-4.15.2-CVE-2018-1000097.patch
+	"${FILESDIR}"/${PN}-4.15.2-gcc-10.patch
+)
+
+src_prepare() {
+	default
+
+	# Upstream is aware but thinks this isn't a bug/problem in sharutils itself
+	# See http://lists.gnu.org/archive/html/bug-gnu-utils/2013-10/msg00011.html
+	append-cflags $(test-flags-CC -Wno-error=format-security)
+}
+
+src_configure() {
+	strip-linguas -u po
+	econf $(use_enable nls)
+}
diff --git a/app-arch/snappy/Manifest b/app-arch/snappy/Manifest
index 3870b8d..0995e29 100644
--- a/app-arch/snappy/Manifest
+++ b/app-arch/snappy/Manifest
@@ -1 +1 @@
-DIST snappy-1.1.7.tar.gz 1090550 SHA256 3dfa02e873ff51a11ee02b9ca391807f0c8ea0529a4924afa645fbf97163f9d4 SHA512 32046f532606ba545a4e4825c0c66a19be449f2ca2ff760a6fa170a3603731479a7deadb683546e5f8b5033414c50f4a9a29f6d23b7a41f047e566e69eca7caf WHIRLPOOL ed5dacdbdcbfbe88982b23d389d781548bf8780c1ecb9b99c8a09442821a97b6aca2fe5eec86b8db1c8e305e17b381391a595d5abacd24b9ace5048dc64cf232
+DIST snappy-1.1.8.tar.gz 1096137 BLAKE2B e21f2ea23727f118920b7f67981354194f12d1d61eaa18eb1cb2f4285fabafdd221b88cf1e3b3261634f65469a714d3efe6b218c0b1e9d41639cdeb21097d75e SHA512 efe18ff1b3edda1b4b6cefcbc6da8119c05d63afdbf7a784f3490353c74dced76baed7b5f1aa34b99899729192b9d657c33c76de4b507a51553fa8001ae75c1c
diff --git a/app-arch/snappy/files/snappy-1.1.7-0001-cmake-Add-missing-linking-to-GTEST_LIBRARIES.patch b/app-arch/snappy/files/snappy-1.1.7-0001-cmake-Add-missing-linking-to-GTEST_LIBRARIES.patch
index 3327b8b..f4fdd47 100644
--- a/app-arch/snappy/files/snappy-1.1.7-0001-cmake-Add-missing-linking-to-GTEST_LIBRARIES.patch
+++ b/app-arch/snappy/files/snappy-1.1.7-0001-cmake-Add-missing-linking-to-GTEST_LIBRARIES.patch
@@ -14,8 +14,7 @@
 index 3f534b1..3a44aa9 100644
 --- a/CMakeLists.txt
 +++ b/CMakeLists.txt
-@@ -118,7 +118,10 @@ if(SNAPPY_BUILD_TESTS)
-       "${PROJECT_SOURCE_DIR}/snappy-test.cc"
+@@ -119,6 +119,9 @@ if(SNAPPY_BUILD_TESTS)
    )
    target_compile_definitions(snappy_unittest PRIVATE -DHAVE_CONFIG_H)
 -  target_link_libraries(snappy_unittest snappy ${GFLAGS_LIBRARIES})
diff --git a/app-arch/snappy/metadata.xml b/app-arch/snappy/metadata.xml
index e5215ea..c149214 100644
--- a/app-arch/snappy/metadata.xml
+++ b/app-arch/snappy/metadata.xml
@@ -1,10 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
 <pkgmetadata>
-	<maintainer type='person'>
-		<email>mgorny@gentoo.org</email>
-		<name>Michał Górny</name>
-	</maintainer>
+	<!-- maintainer-needed -->
 	<longdescription lang="en">Snappy is a compression/decompression library. It does not aim for
 		maximum compression, or compatibility with any other compression
 		library; instead, it aims for very high speeds and reasonable
diff --git a/app-arch/snappy/snappy-1.1.7.ebuild b/app-arch/snappy/snappy-1.1.7.ebuild
deleted file mode 100644
index c015af9..0000000
--- a/app-arch/snappy/snappy-1.1.7.ebuild
+++ /dev/null
@@ -1,64 +0,0 @@
-# Copyright 1999-2018 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-inherit cmake-multilib
-
-DESCRIPTION="A high-speed compression/decompression library by Google"
-HOMEPAGE="https://github.com/google/snappy"
-SRC_URI="https://github.com/google/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
-
-LICENSE="BSD"
-SLOT="0/${PV%%.*}"
-KEYWORDS="*"
-IUSE="static-libs test"
-# upstream killed static lib support with build system update
-# (and we have packages depending on the flag)
-REQUIRED_USE="!static-libs"
-
-# all test dependencies are optional:
-# - gflags-2.2 is supposedly needed for command-line option parsing
-# but it's a huge hack and does not work,
-# - gtest probably gives nicer output,
-# - compression libraries are used for benchmarks which we do not run.
-DEPEND="test? ( dev-cpp/gtest )"
-
-# AUTHORS is useless, ChangeLog is stale
-DOCS=( format_description.txt framing_format.txt NEWS README.md )
-
-src_prepare() {
-	local PATCHES=(
-		"${FILESDIR}"/snappy-1.1.7-0001-cmake-Add-missing-linking-to-GTEST_LIBRARIES.patch
-	)
-
-	# command-line option parsing does not work at all, so just force
-	# it off
-	sed -i -e '/run_microbenchmarks/s:true:false:' snappy-test.cc || die
-
-	cmake-utils_src_prepare
-}
-
-multilib_src_configure() {
-	# TODO: would be nice to make unittest build conditional
-	# but it is not a priority right now
-	local mycmakeargs=(
-		-DBUILD_SHARED_LIBS=ON
-
-		# use gtest for tests only
-		-DCMAKE_DISABLE_FIND_PACKAGE_GTest=$(usex '!test')
-		# gflags does not work anyway
-		-DCMAKE_DISABLE_FIND_PACKAGE_Gflags=ON
-
-		# we do not want to run benchmarks, and those are only used
-		# for benchmarks
-		-DHAVE_LIBZ=NO
-		-DHAVE_LIBLZO2=NO
-	)
-	cmake-utils_src_configure
-}
-
-multilib_src_test() {
-	# run tests directly to get verbose output
-	cd "${S}" || die
-	"${BUILD_DIR}"/snappy_unittest || die
-}
diff --git a/app-arch/snappy/snappy-1.1.8.ebuild b/app-arch/snappy/snappy-1.1.8.ebuild
new file mode 100644
index 0000000..1aaa5e3
--- /dev/null
+++ b/app-arch/snappy/snappy-1.1.8.ebuild
@@ -0,0 +1,64 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+CMAKE_ECLASS=cmake
+inherit cmake-multilib
+
+DESCRIPTION="A high-speed compression/decompression library by Google"
+HOMEPAGE="https://github.com/google/snappy"
+SRC_URI="https://github.com/google/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0/${PV%%.*}"
+KEYWORDS="*"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+# all test dependencies are optional:
+# - gflags-2.2 is supposedly needed for command-line option parsing
+# but it's a huge hack and does not work,
+# - gtest probably gives nicer output,
+# - compression libraries are used for benchmarks which we do not run.
+DEPEND="test? ( dev-cpp/gtest )"
+
+# AUTHORS is useless, ChangeLog is stale
+DOCS=( format_description.txt framing_format.txt NEWS README.md )
+
+src_prepare() {
+	local PATCHES=(
+		"${FILESDIR}"/snappy-1.1.7-0001-cmake-Add-missing-linking-to-GTEST_LIBRARIES.patch
+	)
+
+	# command-line option parsing does not work at all, so just force
+	# it off
+	sed -i -e '/run_microbenchmarks/s:true:false:' snappy-test.cc || die
+
+	cmake_src_prepare
+}
+
+multilib_src_configure() {
+	# TODO: would be nice to make unittest build conditional
+	# but it is not a priority right now
+	local mycmakeargs=(
+		-DBUILD_SHARED_LIBS=ON
+
+		# use gtest for tests only
+		-DCMAKE_DISABLE_FIND_PACKAGE_GTest=$(usex '!test')
+		# gflags does not work anyway
+		-DCMAKE_DISABLE_FIND_PACKAGE_Gflags=ON
+
+		# we do not want to run benchmarks, and those are only used
+		# for benchmarks
+		-DHAVE_LIBZ=NO
+		-DHAVE_LIBLZO2=NO
+	)
+	cmake_src_configure
+}
+
+multilib_src_test() {
+	# run tests directly to get verbose output
+	cd "${S}" || die
+	"${BUILD_DIR}"/snappy_unittest || die
+}
diff --git a/app-arch/tar/Manifest b/app-arch/tar/Manifest
index 0ee31a3..6166b3a 100644
--- a/app-arch/tar/Manifest
+++ b/app-arch/tar/Manifest
@@ -1 +1,3 @@
+DIST tar-1.32.tar.bz2 2947264 BLAKE2B 4e380a9a2f84a2af5130464e1b298ae6acf02ee459cbca20dd0991c2859785e5aac789d57b87b32e8b45d89985b6414af9dd37161385da9568d6030c5aa42c0e SHA512 3139e87112123269ee0600243b3ea081687cc93667bef5832bfe3c785c1be622f520f00fcfbdf44ad1d3247866d0ecfe347a85bbfec38eb38fa1014baef566f6
+DIST tar-1.33.tar.xz 2224824 BLAKE2B 500bcf4b919881da13f7336c617b4d618b5f898e4d8606867c8917be165d4a3718783a2959896226df451d7acdd78ba2fd1d9fc774d7905fe0dbe2375e3329fb SHA512 d7c31147fafcd815bb54e3862c078dccc3f192a9fa149c2275bd89a21fcd54a4bdaa8343cacf4f76cadc2f57fd4ed955682c1b6f23d438add5a13cc35bd25260
 DIST tar-1.34.tar.xz 2226068 BLAKE2B 741a662457509a6775338ffe5d2d84872fcf38b93ace70c8b748a81055b9b62f65a48c4e541955d08ae99e6f528509e89eacd7c799a65bcc3d017a259110c115 SHA512 5e77c4a7b49983ad7d15238c2bce28be7a8aa437b4b1815fc00abd13096da308b6bba196cc6e3ed79d85e62823d520ae0d8fcda2d93873842cf84dc3369fc902
diff --git a/app-arch/unrar/Manifest b/app-arch/unrar/Manifest
index ad8ad1d..8d218b5 100644
--- a/app-arch/unrar/Manifest
+++ b/app-arch/unrar/Manifest
@@ -1 +1 @@
-DIST unrar-5.9.4.tar.gz 229921 BLAKE2B d87189a6b6b3566a0efac7f72e40732ff673cdcac6f4fdaa96b5a771025f02779d74e2822053681477b3490f45817196673aa5707846767c4061ca95718557a1 SHA512 4c026bc12c38314c7df6e1b2f296be681fffa4ba525e378809063519cb5d51889fe8d3cbce16e802023354f02b45b1bcc672b79a6fa81b4baa13a374ce22c8f1
+DIST unrar-6.0.6.tar.gz 232874 BLAKE2B dd32f09167a641d7a63a2dc4979f6eb4462b1a16529e92fd0fb1e0e27f4eeb22e7ee15b96e7aa9d852db4dddd09d73efb53f2bcb2426e12612afa244f06f0387 SHA512 cb50cdde120c02461bb6618e4b8773a221982c5ba81309669001b9713fc14bedc42bc5a601f30a62674be7ffd5c674d51be285c02a468d6e3fe0ebc02da8bd8f
diff --git a/app-arch/unrar/metadata.xml b/app-arch/unrar/metadata.xml
index 0889838..0a18fba 100644
--- a/app-arch/unrar/metadata.xml
+++ b/app-arch/unrar/metadata.xml
@@ -1,18 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
 <pkgmetadata>
-<maintainer type="person">
-  <email>whissi@gentoo.org</email>
-  <name>Thomas Deutschmann</name>
-</maintainer>
-<maintainer type="project">
-  <email>base-system@gentoo.org</email>
-  <name>Gentoo Base System</name>
-</maintainer>
-<slots>
-  <subslots>Reflect ABI of libunrar.so.</subslots>
-</slots>
-<upstream>
-  <remote-id type="cpe">cpe:/a:rarlab:unrar</remote-id>
-</upstream>
+	<maintainer type="person">
+		<email>whissi@gentoo.org</email>
+		<name>Thomas Deutschmann</name>
+	</maintainer>
+	<maintainer type="project">
+		<email>base-system@gentoo.org</email>
+		<name>Gentoo Base System</name>
+	</maintainer>
+	<slots>
+		<subslots>Reflect ABI of libunrar.so.</subslots>
+	</slots>
+	<upstream>
+		<remote-id type="cpe">cpe:/a:rarlab:unrar</remote-id>
+	</upstream>
 </pkgmetadata>
diff --git a/app-arch/unrar/unrar-5.9.4.ebuild b/app-arch/unrar/unrar-5.9.4.ebuild
deleted file mode 100644
index a24399d..0000000
--- a/app-arch/unrar/unrar-5.9.4.ebuild
+++ /dev/null
@@ -1,70 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit flag-o-matic multilib toolchain-funcs
-
-MY_PN="${PN}src"
-
-DESCRIPTION="Uncompress rar files"
-HOMEPAGE="https://www.rarlab.com/rar_add.htm"
-SRC_URI="https://www.rarlab.com/rar/${MY_PN}-${PV}.tar.gz -> ${P}.tar.gz"
-
-LICENSE="unRAR"
-# subslot = soname version
-SLOT="0/5"
-KEYWORDS="*"
-IUSE=""
-
-RDEPEND="!<=app-arch/unrar-gpl-0.0.1_p20080417"
-
-S="${WORKDIR}/unrar"
-
-PATCHES=(
-	"${FILESDIR}"/${PN}-5.9.3-build.patch
-	"${FILESDIR}"/${PN}-5.5.5-honor-flags.patch
-)
-
-src_prepare() {
-	default
-
-	local sed_args=( -e "/libunrar/s:.so:$(get_libname ${PV%.*.*}):" )
-	if [[ ${CHOST} == *-darwin* ]] ; then
-		sed_args+=( -e "s:-shared:-dynamiclib -install_name ${EPREFIX}/usr/$(get_libdir)/libunrar$(get_libname ${PV%.*.*}):" )
-	else
-		sed_args+=( -e "s:-shared:& -Wl,-soname -Wl,libunrar$(get_libname ${PV%.*.*}):" )
-	fi
-	sed -i "${sed_args[@]}" makefile || die
-}
-
-src_configure() {
-	mkdir -p build-{lib,bin}
-	printf 'VPATH = ..\ninclude ../makefile' > build-lib/Makefile || die
-	cp build-{lib,bin}/Makefile || die
-}
-
-src_compile() {
-	unrar_make() {
-		emake AR="$(tc-getAR)" CXX="$(tc-getCXX)" CXXFLAGS="${CXXFLAGS}" STRIP=true "$@"
-	}
-
-	unrar_make CXXFLAGS+=" -fPIC" -C build-lib lib
-	ln -s libunrar$(get_libname ${PV%.*.*}) build-lib/libunrar$(get_libname) || die
-	ln -s libunrar$(get_libname ${PV%.*.*}) build-lib/libunrar$(get_libname ${PV}) || die
-
-	unrar_make -C build-bin
-}
-
-src_install() {
-	dobin build-bin/unrar
-	dodoc readme.txt
-
-	dolib.so build-lib/libunrar*
-
-	insinto /usr/include/libunrar${PV%.*.*}
-	doins *.hpp
-	dosym libunrar${PV%.*.*} /usr/include/libunrar
-
-	find "${ED}" -type f -name "*.a" -delete || die
-}
diff --git a/app-arch/unrar/unrar-6.0.6.ebuild b/app-arch/unrar/unrar-6.0.6.ebuild
new file mode 100644
index 0000000..4ececf4
--- /dev/null
+++ b/app-arch/unrar/unrar-6.0.6.ebuild
@@ -0,0 +1,69 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit multilib toolchain-funcs
+
+MY_PN="${PN}src"
+
+DESCRIPTION="Uncompress rar files"
+HOMEPAGE="https://www.rarlab.com/rar_add.htm"
+SRC_URI="https://www.rarlab.com/rar/${MY_PN}-${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="unRAR"
+# subslot = soname version
+SLOT="0/6"
+KEYWORDS="*"
+
+RDEPEND="!<=app-arch/unrar-gpl-0.0.1_p20080417"
+
+S="${WORKDIR}/unrar"
+
+PATCHES=(
+	"${FILESDIR}"/${PN}-5.9.3-build.patch
+	"${FILESDIR}"/${PN}-5.5.5-honor-flags.patch
+)
+
+src_prepare() {
+	default
+
+	local sed_args=( -e "/libunrar/s:.so:$(get_libname ${PV%.*.*}):" )
+	if [[ ${CHOST} == *-darwin* ]] ; then
+		sed_args+=( -e "s:-shared:-dynamiclib -install_name ${EPREFIX}/usr/$(get_libdir)/libunrar$(get_libname ${PV%.*.*}):" )
+	else
+		sed_args+=( -e "s:-shared:& -Wl,-soname -Wl,libunrar$(get_libname ${PV%.*.*}):" )
+	fi
+	sed -i "${sed_args[@]}" makefile || die
+}
+
+src_configure() {
+	mkdir -p build-{lib,bin} || die
+	printf 'VPATH = ..\ninclude ../makefile' > build-lib/Makefile || die
+	cp build-{lib,bin}/Makefile || die
+}
+
+src_compile() {
+	unrar_make() {
+		emake AR="$(tc-getAR)" CXX="$(tc-getCXX)" CXXFLAGS="${CXXFLAGS}" STRIP=true "$@"
+	}
+
+	unrar_make CXXFLAGS+=" -fPIC" -C build-lib lib
+	ln -s libunrar$(get_libname ${PV%.*.*}) build-lib/libunrar$(get_libname) || die
+	ln -s libunrar$(get_libname ${PV%.*.*}) build-lib/libunrar$(get_libname ${PV}) || die
+
+	unrar_make -C build-bin
+}
+
+src_install() {
+	dobin build-bin/unrar
+	dodoc readme.txt
+
+	dolib.so build-lib/libunrar*
+
+	insinto /usr/include/libunrar${PV%.*.*}
+	doins *.hpp
+	dosym libunrar${PV%.*.*} /usr/include/libunrar
+
+	find "${ED}" -type f -name "*.a" -delete || die
+}
diff --git a/app-arch/unzip/Manifest b/app-arch/unzip/Manifest
index 6b82ac8..8f65ff0 100644
--- a/app-arch/unzip/Manifest
+++ b/app-arch/unzip/Manifest
@@ -1,2 +1,2 @@
-DIST unzip60.tar.gz 1376845 SHA256 036d96991646d0449ed0aa952e4fbe21b476ce994abc276e49d30e686708bd37 SHA512 0694e403ebc57b37218e00ec1a406cae5cc9c5b52b6798e0d4590840b6cdbf9ddc0d9471f67af783e960f8fa2e620394d51384257dca23d06bcd90224a80ce5d WHIRLPOOL eab32d6d0ab100d302b608658a3ae290d3dad4beddccebaf6cb6527102bb238f751ec6482dea68ae62474005de89f11f9e0cf1b1e12bee2ca5a2336a3c0c9808
-DIST unzip_6.0-21.debian.tar.xz 17740 SHA256 8accd9d214630a366476437a3ec1842f2e057fdce16042a7b19ee569c33490a3 SHA512 f7bce4156ac13c34da3f991df3ae88b0db99b0810c7f8904ea3ac666a4cb2788d7182056f2bbd82d7519d0e0ee31a10af47bee08f360ceb859e5fbfc6e15ef36 WHIRLPOOL ce4d74e27ff27183989c680ef022328915c8ade5c1f12b39bcc1ee905dbd2fd3974cbb22da9bed40d8dc7a59de9ba768bfc6bb61d3bdd1b6f571945d06bf19f6
+DIST unzip60.tar.gz 1376845 BLAKE2B 5016d300b4452018a391f4ebc03c6960c068df400a0407c0c60bd7bb5ec5012031f916d8b204a6149ba291c2c35beba40d9b43c76fc093026e79471329ab0e47 SHA512 0694e403ebc57b37218e00ec1a406cae5cc9c5b52b6798e0d4590840b6cdbf9ddc0d9471f67af783e960f8fa2e620394d51384257dca23d06bcd90224a80ce5d
+DIST unzip_6.0-26.debian.tar.xz 23708 BLAKE2B 7655396df2f8c4443bbd37a2fab590f1e66b3b8531871a6d95f281ac702e64a0e602f2412a58ff2addf4ce9cae8d146af650a18b02919d120c9db6c49df480b5 SHA512 9a56e400ad0984f87c7ee0548429349be549e35a3cae4c9acb88a8fb97a1d1fbd116cfa3292622ad8b2c67ffe79ae268861ddec1269993ba98f1a6a411b7611f
diff --git a/app-arch/unzip/files/unzip-6.0-fix-false-overlap-detection-on-32bit-systems.patch b/app-arch/unzip/files/unzip-6.0-fix-false-overlap-detection-on-32bit-systems.patch
new file mode 100644
index 0000000..ad6a157
--- /dev/null
+++ b/app-arch/unzip/files/unzip-6.0-fix-false-overlap-detection-on-32bit-systems.patch
@@ -0,0 +1,50 @@
+From 13f0260beae851f7d5dd96e9ef757d8d6d7daac1 Mon Sep 17 00:00:00 2001
+From: Mark Adler <madler@alumni.caltech.edu>
+Date: Sun, 9 Feb 2020 07:20:13 -0800
+Subject: [PATCH] Fix false overlapped components detection on 32-bit systems.
+
+32-bit systems with ZIP64_SUPPORT enabled could have different
+size types for zoff_t and zusz_t. That resulted in bad parameter
+passing to the bound tracking functions, itself due to the lack of
+use of C function prototypes in unzip. This commit assures that
+parameters are cast properly for those calls.
+
+This problem occurred only for ill-chosen make options, which give
+a 32-bit zoff_t. A proper build will result in a zoff_t of 64 bits,
+even on 32-bit systems.
+---
+ extract.c | 7 ++++---
+ 1 file changed, 4 insertions(+), 3 deletions(-)
+
+diff --git a/extract.c b/extract.c
+index 1b73cb0..d9866f9 100644
+--- a/extract.c
++++ b/extract.c
+@@ -329,7 +329,7 @@ static ZCONST char Far OverlappedComponents[] =
+ 
+ 
+ /* A growable list of spans. */
+-typedef zoff_t bound_t;
++typedef zusz_t bound_t;
+ typedef struct {
+     bound_t beg;        /* start of the span */
+     bound_t end;        /* one past the end of the span */
+@@ -518,7 +518,8 @@ int extract_or_test_files(__G)    /* return PK-type error code */
+         return PK_MEM;
+     }
+     if ((G.extra_bytes != 0 &&
+-         cover_add((cover_t *)G.cover, 0, G.extra_bytes) != 0) ||
++         cover_add((cover_t *)G.cover,
++                   (bound_t)0, (bound_t)G.extra_bytes) != 0) ||
+         (G.ecrec.have_ecr64 &&
+          cover_add((cover_t *)G.cover, G.ecrec.ec64_start,
+                    G.ecrec.ec64_end) != 0) ||
+@@ -1216,7 +1217,7 @@ static int extract_or_test_entrylist(__G__ numchunk,
+ 
+         /* seek_zipf(__G__ pInfo->offset);  */
+         request = G.pInfo->offset + G.extra_bytes;
+-        if (cover_within((cover_t *)G.cover, request)) {
++        if (cover_within((cover_t *)G.cover, (bound_t)request)) {
+             Info(slide, 0x401, ((char *)slide,
+               LoadFarString(OverlappedComponents)));
+             return PK_BOMB;
diff --git a/app-arch/unzip/metadata.xml b/app-arch/unzip/metadata.xml
index e0009bf..a151503 100644
--- a/app-arch/unzip/metadata.xml
+++ b/app-arch/unzip/metadata.xml
@@ -9,7 +9,8 @@
 		<flag name="natspec">Use <pkg>dev-libs/libnatspec</pkg> to correctly decode non-ascii file names archived in Windows.</flag>
 	</use>
 	<upstream>
-		<remote-id type="sourceforge">infozip</remote-id>
 		<remote-id type="cpe">cpe:/a:info-zip:unzip</remote-id>
+		<remote-id type="github">madler/unzip</remote-id>
+		<remote-id type="sourceforge">infozip</remote-id>
 	</upstream>
 </pkgmetadata>
diff --git a/app-arch/unzip/unzip-6.0_p21-r2.ebuild b/app-arch/unzip/unzip-6.0_p21-r2.ebuild
deleted file mode 100644
index 07de804..0000000
--- a/app-arch/unzip/unzip-6.0_p21-r2.ebuild
+++ /dev/null
@@ -1,86 +0,0 @@
-# Copyright 1999-2018 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="6"
-
-inherit eutils toolchain-funcs flag-o-matic
-
-MY_PV="${PV//.}"
-MY_PV="${MY_PV%_p*}"
-MY_P="${PN}${MY_PV}"
-
-DESCRIPTION="unzipper for pkzip-compressed files"
-HOMEPAGE="http://www.info-zip.org/"
-SRC_URI="mirror://sourceforge/infozip/${MY_P}.tar.gz
-	mirror://debian/pool/main/u/${PN}/${PN}_${PV/_p/-}.debian.tar.xz"
-
-LICENSE="Info-ZIP"
-SLOT="0"
-KEYWORDS="*"
-IUSE="bzip2 natspec unicode"
-
-DEPEND="bzip2? ( app-arch/bzip2 )
-	natspec? ( dev-libs/libnatspec )"
-RDEPEND="${DEPEND}"
-
-S="${WORKDIR}/${MY_P}"
-
-src_prepare() {
-	local deb="${WORKDIR}"/debian/patches
-	rm "${deb}"/02-this-is-debian-unzip.patch || die
-	eapply "${deb}"/*.patch
-
-	eapply "${FILESDIR}"/${PN}-6.0-no-exec-stack.patch
-	eapply "${FILESDIR}"/${PN}-6.0-format-security.patch
-	use natspec && eapply "${FILESDIR}/${PN}-6.0-natspec.patch" #275244
-	sed -i -r \
-		-e '/^CFLAGS/d' \
-		-e '/CFLAGS/s:-O[0-9]?:$(CFLAGS) $(CPPFLAGS):' \
-		-e '/^STRIP/s:=.*:=true:' \
-		-e "s:\<CC *= *\"?g?cc2?\"?\>:CC=\"$(tc-getCC)\":" \
-		-e "s:\<LD *= *\"?(g?cc2?|ld)\"?\>:LD=\"$(tc-getCC)\":" \
-		-e "s:\<AS *= *\"?(g?cc2?|as)\"?\>:AS=\"$(tc-getCC)\":" \
-		-e 's:LF2 = -s:LF2 = :' \
-		-e 's:LF = :LF = $(LDFLAGS) :' \
-		-e 's:SL = :SL = $(LDFLAGS) :' \
-		-e 's:FL = :FL = $(LDFLAGS) :' \
-		-e "/^#L_BZ2/s:^$(use bzip2 && echo .)::" \
-		-e 's:$(AS) :$(AS) $(ASFLAGS) :g' \
-		unix/Makefile \
-		|| die "sed unix/Makefile failed"
-
-	# Delete bundled code to make sure we don't use it.
-	rm -r bzip2 || die
-
-	eapply_user
-}
-
-src_configure() {
-	case ${CHOST} in
-	i?86*-*linux*)       TARGET="linux_asm" ;;
-	*linux*)             TARGET="linux_noasm" ;;
-	i?86*-*bsd* | \
-	i?86*-dragonfly*)    TARGET="freebsd" ;; # mislabelled bsd with x86 asm
-	*bsd* | *dragonfly*) TARGET="bsd" ;;
-	*-darwin*)           TARGET="macosx" ;;
-	*-cygwin*)           TARGET="cygwin" ;;
-	*) die "Unknown target; please update the ebuild to handle ${CHOST}	" ;;
-	esac
-
-	[[ ${CHOST} == *linux* ]] && append-cppflags -DNO_LCHMOD
-	use bzip2 && append-cppflags -DUSE_BZIP2
-	use unicode && append-cppflags -DUNICODE_SUPPORT -DUNICODE_WCHAR -DUTF8_MAYBE_NATIVE -DUSE_ICONV_MAPPING
-	append-cppflags -DLARGE_FILE_SUPPORT #281473
-}
-
-src_compile() {
-	ASFLAGS="${ASFLAGS} $(get_abi_var CFLAGS)" \
-	emake -f unix/Makefile ${TARGET}
-}
-
-src_install() {
-	dobin unzip funzip unzipsfx unix/zipgrep
-	dosym unzip /usr/bin/zipinfo
-	doman man/*.1
-	dodoc BUGS History* README ToDo WHERE
-}
diff --git a/app-arch/unzip/unzip-6.0_p26.ebuild b/app-arch/unzip/unzip-6.0_p26.ebuild
new file mode 100644
index 0000000..f0daed3
--- /dev/null
+++ b/app-arch/unzip/unzip-6.0_p26.ebuild
@@ -0,0 +1,88 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit toolchain-funcs flag-o-matic
+
+MY_PV="${PV//.}"
+MY_PV="${MY_PV%_p*}"
+MY_P="${PN}${MY_PV}"
+
+DESCRIPTION="unzipper for pkzip-compressed files"
+HOMEPAGE="http://www.info-zip.org/"
+SRC_URI="mirror://sourceforge/infozip/${MY_P}.tar.gz
+	mirror://debian/pool/main/u/${PN}/${PN}_${PV/_p/-}.debian.tar.xz"
+
+LICENSE="Info-ZIP"
+SLOT="0"
+KEYWORDS="*"
+IUSE="bzip2 natspec unicode"
+
+DEPEND="bzip2? ( app-arch/bzip2 )
+	natspec? ( dev-libs/libnatspec )"
+RDEPEND="${DEPEND}"
+
+S="${WORKDIR}/${MY_P}"
+
+src_prepare() {
+	local deb="${WORKDIR}"/debian/patches
+	rm "${deb}"/02-this-is-debian-unzip.patch || die
+	eapply "${deb}"/*.patch
+
+	eapply "${FILESDIR}"/${PN}-6.0-no-exec-stack.patch
+	eapply "${FILESDIR}"/${PN}-6.0-format-security.patch
+	eapply "${FILESDIR}"/${PN}-6.0-fix-false-overlap-detection-on-32bit-systems.patch
+	use natspec && eapply "${FILESDIR}/${PN}-6.0-natspec.patch" #275244
+	sed -i -r \
+		-e '/^CFLAGS/d' \
+		-e '/CFLAGS/s:-O[0-9]?:$(CFLAGS) $(CPPFLAGS):' \
+		-e '/^STRIP/s:=.*:=true:' \
+		-e "s:\<CC *= *\"?g?cc2?\"?\>:CC=\"$(tc-getCC)\":" \
+		-e "s:\<LD *= *\"?(g?cc2?|ld)\"?\>:LD=\"$(tc-getCC)\":" \
+		-e "s:\<AS *= *\"?(g?cc2?|as)\"?\>:AS=\"$(tc-getCC)\":" \
+		-e 's:LF2 = -s:LF2 = :' \
+		-e 's:LF = :LF = $(LDFLAGS) :' \
+		-e 's:SL = :SL = $(LDFLAGS) :' \
+		-e 's:FL = :FL = $(LDFLAGS) :' \
+		-e "/^#L_BZ2/s:^$(use bzip2 && echo .)::" \
+		-e 's:$(AS) :$(AS) $(ASFLAGS) :g' \
+		unix/Makefile \
+		|| die "sed unix/Makefile failed"
+
+	# Delete bundled code to make sure we don't use it.
+	rm -r bzip2 || die
+
+	eapply_user
+}
+
+src_configure() {
+	case ${CHOST} in
+		i?86*-*linux*)       TARGET="linux_asm" ;;
+		*linux*)             TARGET="linux_noasm" ;;
+		i?86*-*bsd* | \
+		i?86*-dragonfly*)    TARGET="freebsd" ;; # mislabelled bsd with x86 asm
+		*bsd* | *dragonfly*) TARGET="bsd" ;;
+		*-darwin*)           TARGET="macosx" ;;
+		*-solaris*)          TARGET="generic" ;;
+		*-cygwin*)           TARGET="generic" ;;
+		*) die "Unknown target; please update the ebuild to handle ${CHOST}	" ;;
+	esac
+
+	[[ ${CHOST} == *linux* ]] && append-cppflags -DNO_LCHMOD
+	use bzip2 && append-cppflags -DUSE_BZIP2
+	use unicode && append-cppflags -DUNICODE_SUPPORT -DUNICODE_WCHAR -DUTF8_MAYBE_NATIVE -DUSE_ICONV_MAPPING
+	append-cppflags -DLARGE_FILE_SUPPORT #281473
+}
+
+src_compile() {
+	ASFLAGS="${ASFLAGS} $(get_abi_var CFLAGS)" \
+		emake -f unix/Makefile ${TARGET}
+}
+
+src_install() {
+	dobin unzip funzip unzipsfx unix/zipgrep
+	dosym unzip /usr/bin/zipinfo
+	doman man/*.1
+	dodoc BUGS History* README ToDo WHERE
+}
diff --git a/app-arch/xz-utils/Manifest b/app-arch/xz-utils/Manifest
index 37aea0d..dc22299 100644
--- a/app-arch/xz-utils/Manifest
+++ b/app-arch/xz-utils/Manifest
@@ -1 +1 @@
-DIST xz-5.2.4.tar.gz 1572354 BLAKE2B 877242324afd3c7eb21d3a9414c53843f4d1bb089206e8e545e280b32ff5372f7fb4a1b0c27cb6fdf0d0a27a668e9772ecc3fffc181df95d081ca9c2e987b83b SHA512 e5bf6eb88365d2dbdc774db49261fb9fae0544ed297891fc20f1ed223f4072cb0357cbd98146ac35b6d29410a12b6739bbd111cd57d4a225bef255ed46988578
+DIST xz-5.2.5.tar.gz 1791345 BLAKE2B aded57324e129572c41646b3cc3b0b59a459452d9338d9245663b63dac2a463fb1f1b2b1d2d4ad3c09cb71fb8439df52cd94f24db99e782fc899b94a288a3043 SHA512 7443674247deda2935220fbc4dfc7665e5bb5a260be8ad858c8bd7d7b9f0f868f04ea45e62eb17c0a5e6a2de7c7500ad2d201e2d668c48ca29bd9eea5a73a3ce
diff --git a/app-arch/xz-utils/metadata.xml b/app-arch/xz-utils/metadata.xml
index 74270db..290b6fa 100644
--- a/app-arch/xz-utils/metadata.xml
+++ b/app-arch/xz-utils/metadata.xml
@@ -6,7 +6,7 @@
 	<name>Gentoo Base System</name>
 </maintainer>
 <use>
-	<flag name='extra-filters'>Build additional filters that are not
+	<flag name="extra-filters">Build additional filters that are not
 		used in any of the default xz presets. This includes delta
 		and BCJ coders, additional match finders and SHA256 checks.</flag>
 </use>
diff --git a/app-arch/xz-utils/xz-utils-5.2.4-r2.ebuild b/app-arch/xz-utils/xz-utils-5.2.4-r2.ebuild
deleted file mode 100644
index 8f26d57..0000000
--- a/app-arch/xz-utils/xz-utils-5.2.4-r2.ebuild
+++ /dev/null
@@ -1,94 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-# Remember: we cannot leverage autotools in this ebuild in order
-#           to avoid circular deps with autotools
-
-EAPI=6
-
-inherit multilib toolchain-funcs libtool multilib-minimal preserve-libs usr-ldscript
-
-if [[ ${PV} == "9999" ]] ; then
-	EGIT_REPO_URI="https://git.tukaani.org/xz.git"
-	inherit git-r3 autotools
-	SRC_URI=""
-	EXTRA_DEPEND="sys-devel/gettext dev-vcs/cvs >=sys-devel/libtool-2" #272880 286068
-else
-	MY_P="${PN/-utils}-${PV/_}"
-	SRC_URI="https://tukaani.org/xz/${MY_P}.tar.gz"
-	[[ "${PV}" == *_alpha* ]] || [[ "${PV}" == *_beta* ]] || \
-	KEYWORDS="*"
-	S="${WORKDIR}/${MY_P}"
-	EXTRA_DEPEND=
-fi
-
-DESCRIPTION="utils for managing LZMA compressed files"
-HOMEPAGE="https://tukaani.org/xz/"
-
-# See top-level COPYING file as it outlines the various pieces and their licenses.
-LICENSE="public-domain LGPL-2.1+ GPL-2+"
-SLOT="0"
-IUSE="elibc_FreeBSD +extra-filters nls static-libs +threads"
-
-RDEPEND="!<app-arch/lzma-4.63
-	!<app-arch/p7zip-4.57"
-DEPEND="${RDEPEND}
-	${EXTRA_DEPEND}"
-
-# Tests currently do not account for smaller feature set
-RESTRICT="!extra-filters? ( test )"
-
-src_prepare() {
-	default
-	if [[ ${PV} == "9999" ]] ; then
-		eautopoint
-		eautoreconf
-	else
-		elibtoolize  # to allow building shared libs on Solaris/x64
-	fi
-}
-
-multilib_src_configure() {
-	local myconf=(
-		$(use_enable nls)
-		$(use_enable threads)
-		$(use_enable static-libs static)
-	)
-	multilib_is_native_abi ||
-		myconf+=( --disable-{xz,xzdec,lzmadec,lzmainfo,lzma-links,scripts} )
-	if ! use extra-filters; then
-		myconf+=(
-			# LZMA1 + LZMA2 for standard .lzma & .xz files
-			--enable-encoders=lzma1,lzma2
-			--enable-decoders=lzma1,lzma2
-			# those are used by default, depending on preset
-			--enable-match-finders=hc3,hc4,bt4
-			# CRC64 is used by default, though some (old?) files use CRC32
-			--enable-checks=crc32,crc64
-		)
-	fi
-
-	use elibc_FreeBSD && export ac_cv_header_sha256_h=no #545714
-	ECONF_SOURCE="${S}" econf "${myconf[@]}"
-}
-
-multilib_src_install() {
-	default
-	gen_usr_ldscript -a lzma
-}
-
-multilib_src_install_all() {
-	find "${ED}" -name '*.la' -delete || die
-	if ! use static-libs ; then
-		find "${ED}" -name "*.a" -delete || die
-	fi
-	rm "${ED%/}"/usr/share/doc/${PF}/COPYING* || die
-}
-
-pkg_preinst() {
-	preserve_old_lib /usr/$(get_libdir)/liblzma$(get_libname 0)
-}
-
-pkg_postinst() {
-	preserve_old_lib_notify /usr/$(get_libdir)/liblzma$(get_libname 0)
-}
diff --git a/app-arch/xz-utils/xz-utils-5.2.5.ebuild b/app-arch/xz-utils/xz-utils-5.2.5.ebuild
new file mode 100644
index 0000000..4f769e1
--- /dev/null
+++ b/app-arch/xz-utils/xz-utils-5.2.5.ebuild
@@ -0,0 +1,96 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# Remember: we cannot leverage autotools in this ebuild in order
+#           to avoid circular deps with autotools
+
+EAPI=7
+
+inherit libtool multilib multilib-minimal preserve-libs usr-ldscript
+
+if [[ ${PV} == "9999" ]] ; then
+	EGIT_REPO_URI="https://git.tukaani.org/xz.git"
+	inherit git-r3 autotools
+	SRC_URI=""
+	BDEPEND="sys-devel/gettext dev-vcs/cvs >=sys-devel/libtool-2" #272880 286068
+else
+	MY_P="${PN/-utils}-${PV/_}"
+	SRC_URI="https://tukaani.org/xz/${MY_P}.tar.gz"
+	[[ "${PV}" == *_alpha* ]] || [[ "${PV}" == *_beta* ]] || \
+	KEYWORDS="*"
+	S="${WORKDIR}/${MY_P}"
+fi
+
+DESCRIPTION="utils for managing LZMA compressed files"
+HOMEPAGE="https://tukaani.org/xz/"
+
+# See top-level COPYING file as it outlines the various pieces and their licenses.
+LICENSE="public-domain LGPL-2.1+ GPL-2+"
+SLOT="0"
+IUSE="elibc_FreeBSD +extra-filters nls static-libs +threads"
+
+RDEPEND="!<app-arch/lzma-4.63
+	!<app-arch/p7zip-4.57
+	!<app-i18n/man-pages-de-2.16"
+DEPEND="${RDEPEND}"
+
+# Tests currently do not account for smaller feature set
+RESTRICT="!extra-filters? ( test )"
+
+src_prepare() {
+	default
+	if [[ ${PV} == "9999" ]] ; then
+		eautopoint
+		eautoreconf
+	else
+		elibtoolize  # to allow building shared libs on Solaris/x64
+	fi
+}
+
+multilib_src_configure() {
+	local myconf=(
+		$(use_enable nls)
+		$(use_enable threads)
+		$(use_enable static-libs static)
+	)
+	multilib_is_native_abi ||
+		myconf+=( --disable-{xz,xzdec,lzmadec,lzmainfo,lzma-links,scripts} )
+	if ! use extra-filters; then
+		myconf+=(
+			# LZMA1 + LZMA2 for standard .lzma & .xz files
+			--enable-encoders=lzma1,lzma2
+			--enable-decoders=lzma1,lzma2
+			# those are used by default, depending on preset
+			--enable-match-finders=hc3,hc4,bt4
+			# CRC64 is used by default, though some (old?) files use CRC32
+			--enable-checks=crc32,crc64
+		)
+	fi
+
+	if [[ ${CHOST} == *-solaris* ]] ; then
+		# undo Solaris-based defaults pointing to /usr/xpg5/bin
+		myconf+=( --disable-path-for-script )
+		export gl_cv_posix_shell=${EPREFIX}/bin/sh
+	fi
+
+	use elibc_FreeBSD && export ac_cv_header_sha256_h=no #545714
+	ECONF_SOURCE="${S}" econf "${myconf[@]}"
+}
+
+multilib_src_install() {
+	default
+	gen_usr_ldscript -a lzma
+}
+
+multilib_src_install_all() {
+	find "${ED}" -type f -name '*.la' -delete || die
+	rm "${ED}"/usr/share/doc/${PF}/COPYING* || die
+}
+
+pkg_preinst() {
+	preserve_old_lib /usr/$(get_libdir)/liblzma$(get_libname 0)
+}
+
+pkg_postinst() {
+	preserve_old_lib_notify /usr/$(get_libdir)/liblzma$(get_libname 0)
+}
diff --git a/app-arch/zip/Manifest b/app-arch/zip/Manifest
index bb4f745..37fcc7a 100644
--- a/app-arch/zip/Manifest
+++ b/app-arch/zip/Manifest
@@ -1 +1 @@
-DIST zip30.zip 1287223 SHA256 7061ceac0407682b6dc54bb480347205f680f4e56cf34fe1423df2309f18968a SHA512 642ea6768d79adc1499251a3fb7bfc7ddc8d708699cbf9e0cfe849deda94165cb93e21dc2606bea1166ae5d8531e1e2cb056a7246bf2ab86ea7587bd4712d8d8 WHIRLPOOL 9e25cd9bcc25645667438019ab3423056a43b62d137c176e7aabad4ed8b7f7ddf6a7ccdedd9ada848c22d33b7f50f442910c39c4b2a5a188ad872109519cae7f
+DIST zip30.zip 1287223 BLAKE2B d29a3e3ddbaa3ce50c80b2dd058b39c35791bf2079879b61dab0be4f011ccd3331d1768ebda5a69aa150c651713eb7a99b02833bb727eee75a3e0bbdc8504cbc SHA512 642ea6768d79adc1499251a3fb7bfc7ddc8d708699cbf9e0cfe849deda94165cb93e21dc2606bea1166ae5d8531e1e2cb056a7246bf2ab86ea7587bd4712d8d8
diff --git a/app-arch/zip/files/zip-2.3-unix_configure-pic.patch b/app-arch/zip/files/zip-2.3-unix_configure-pic.patch
deleted file mode 100644
index 45b137b..0000000
--- a/app-arch/zip/files/zip-2.3-unix_configure-pic.patch
+++ /dev/null
@@ -1,12 +0,0 @@
---- unix/configure.orig	2004-09-28 06:45:33.000000000 +0000
-+++ unix/configure	2004-09-28 06:54:53.000000000 +0000
-@@ -29,6 +29,9 @@
- 
- echo Check if we can use asm code
- OBJA=""
-+piclib="$(echo | $CPP -dM $CFLAGS - | grep -i __pic__)"
-+echo "Checking if compiler wants to create pic code"
-+[ "$piclib" == "" ] && \
- if eval "$CPP match.S > _match.s 2>/dev/null"; then
-   if test ! -s _match.s || grep error < _match.s > /dev/null; then
-     :
diff --git a/app-arch/zip/files/zip-2.31-exec-stack.patch b/app-arch/zip/files/zip-2.31-exec-stack.patch
deleted file mode 100644
index d3efbd9..0000000
--- a/app-arch/zip/files/zip-2.31-exec-stack.patch
+++ /dev/null
@@ -1,20 +0,0 @@
---- zip-2.31/crc_i386.S
-+++ zip-2.31/crc_i386.S
-@@ -238,3 +238,7 @@
- #endif /* i386 || _i386 || _I386 || __i386 */
- 
- #endif /* !USE_ZLIB */
-+
-+#ifdef __ELF__
-+.section .note.GNU-stack,"",@progbits
-+#endif
---- zip-2.31/match.S
-+++ zip-2.31/match.S
-@@ -405,3 +405,7 @@
- #endif /* i386 || _I386 || _i386 || __i386  */
- 
- #endif /* !USE_ZLIB */
-+
-+#ifdef __ELF__
-+.section .note.GNU-stack,"",@progbits
-+#endif
diff --git a/app-arch/zip/files/zip-2.32-build.patch b/app-arch/zip/files/zip-2.32-build.patch
deleted file mode 100644
index 61a2bae..0000000
--- a/app-arch/zip/files/zip-2.32-build.patch
+++ /dev/null
@@ -1,89 +0,0 @@
-respect build environment settings
-
---- zip/unix/Makefile
-+++ zip/unix/Makefile
-@@ -12,15 +12,15 @@
- 
- list:   all
- 
--MAKE = make -f unix/Makefile
-+MAKE := $(MAKE) -f unix/Makefile
- SHELL = /bin/sh
- LN = ln -s
- 
- # (to use the Gnu compiler, change cc to gcc in CC)
--CC = cc
-+CC ?= gcc
- BIND = $(CC)
- AS = $(CC) -c
--CPP = /lib/cpp
-+CPP ?= $(CC)
- EXE =
- 
- # probably can change this to 'install' if you have it
-@@ -47,7 +47,7 @@
- #   LFLAGS1   flags after output file spec, before obj file list
- #   LFLAGS2   flags after obj file list (libraries, etc)
- CFLAGS_NOOPT = -I. -DUNIX $(LOCAL_ZIP)
--CFLAGS = -O2 $(CFLAGS_NOOPT)
-+CFLAGS ?= -O2 $(CFLAGS_NOOPT)
- LFLAGS1 =
- LFLAGS2 = -s
- 
---- zip/unix/configure
-+++ zip/unix/configure
-@@ -13,52 +13,13 @@
- 
- CC=${1-cc}
--CFLAGS=${2-"-I. -DUNIX"}
--LFLAGS1=""
-+CFLAGS="${2--I. -DUNIX} ${CFLAGS} ${CPPFLAGS}"
-+LFLAGS1="${LDFLAGS}"
- LN="ln -s"
--echo "Check C compiler type (optimization option)"
--cat > conftest.c << _EOF_
--int main()
--{
--#ifndef __SUNPRO_C
--   bad code
--#endif
--   return 0;
--}
--_EOF_
--$CC $CFLAGS -c conftest.c > /dev/null 2>/dev/null
--if test $? -eq 0; then
--  echo '  Sun C (-xO3)'
--  CFLAGS="${CFLAGS} -xO3"
--else
--  cat > conftest.c << _EOF_
--int main()
--{
--#ifndef __DECC
--   bad code
--#endif
--   return 0;
--}
--_EOF_
--  $CC $CFLAGS -c conftest.c > /dev/null 2>/dev/null
--  if test $? -eq 0; then
--    echo '  DEC C (-O3)'
--    CFLAGS="${CFLAGS} -O3"
--  else
--    echo '  Other (gcc?) (-O2)'
--    CFLAGS="${CFLAGS} -O2"
--  fi
--fi
- 
- echo Check for the C preprocessor
- # on SVR4, cc -E does not produce correct assembler files. Need /lib/cpp.
- CPP="${CC} -E"
- # solaris as(1) needs -P, maybe others as well ?
--[ -f /usr/ccs/lib/cpp ] && CPP="/usr/ccs/lib/cpp -P"
--[ -f /usr/lib/cpp ] && CPP=/usr/lib/cpp
--[ -f /lib/cpp ] && CPP=/lib/cpp
--[ -f /usr/bin/cpp ] && CPP=/usr/bin/cpp
--[ -f /xenix ] && CPP="${CC} -E"
--[ -f /lynx.os ] && CPP="${CC} -E"
- 
- echo "#include <stdio.h>" > conftest.c
- $CPP conftest.c >/dev/null 2>/dev/null || CPP="${CC} -E"
diff --git a/app-arch/zip/files/zip-3.0-format-security.patch b/app-arch/zip/files/zip-3.0-format-security.patch
index 1edc2d6..63188b5 100644
--- a/app-arch/zip/files/zip-3.0-format-security.patch
+++ b/app-arch/zip/files/zip-3.0-format-security.patch
@@ -1,5 +1,5 @@
---- zip.c
-+++ zip.c
+--- a/zip.c
++++ b/zip.c
 @@ -1028,7 +1028,7 @@
  
    for (i = 0; i < sizeof(text)/sizeof(char *); i++)
diff --git a/app-arch/zip/files/zip-3.0-natspec.patch b/app-arch/zip/files/zip-3.0-natspec.patch
index 1dfce09..29ed482 100644
--- a/app-arch/zip/files/zip-3.0-natspec.patch
+++ b/app-arch/zip/files/zip-3.0-natspec.patch
@@ -14,8 +14,8 @@
 pva@gentoo.org
 
 === modified file 'fileio.c'
---- fileio.c	2010-12-22 13:02:43 +0000
-+++ fileio.c	2010-12-22 13:03:00 +0000
+--- a/fileio.c
++++ b/fileio.c
 @@ -929,7 +929,7 @@
    }
    if ((zname = in2ex(iname)) == NULL)
@@ -27,8 +27,8 @@
  #else
 
 === modified file 'globals.c'
---- globals.c	2010-12-22 13:02:43 +0000
-+++ globals.c	2010-12-22 13:03:00 +0000
+--- a/globals.c
++++ b/globals.c
 @@ -32,7 +32,7 @@
  int scanimage = 1;      /* 1=scan through image files */
  #endif
@@ -40,8 +40,8 @@
  int filesync = 0;       /* 1=file sync, delete entries not on file system */
 
 === modified file 'unix/Makefile'
---- unix/Makefile	2010-12-22 13:02:43 +0000
-+++ unix/Makefile	2010-12-22 15:43:40 +0000
+--- a/unix/Makefile
++++ b/unix/Makefile
 @@ -38,7 +38,7 @@
  MANFLAGS = 644
  
@@ -73,8 +73,8 @@
  zipsplit$E: $(OBJS)
 
 === modified file 'unix/osdep.h'
---- unix/osdep.h	2010-12-22 13:02:43 +0000
-+++ unix/osdep.h	2010-12-22 15:45:29 +0000
+--- a/unix/osdep.h
++++ b/unix/osdep.h
 @@ -78,3 +78,6 @@
  #if !defined(NO_EF_UT_TIME) && !defined(USE_EF_UT_TIME)
  #  define USE_EF_UT_TIME
@@ -84,8 +84,8 @@
 +#  define OS_CODE  0xb00
 
 === modified file 'unix/unix.c'
---- unix/unix.c	2010-12-22 13:02:43 +0000
-+++ unix/unix.c	2010-12-22 13:03:00 +0000
+--- a/unix/unix.c
++++ b/unix/unix.c
 @@ -14,6 +14,11 @@
  
  #include <time.h>
@@ -153,8 +153,8 @@
  #else
 
 === modified file 'zip.c'
---- zip.c	2010-12-22 13:02:43 +0000
-+++ zip.c	2010-12-22 13:03:00 +0000
+--- a/zip.c
++++ b/zip.c
 @@ -2025,6 +2025,7 @@
  #endif /* ?MACOS */
      {"J",  "junk-sfx",    o_NO_VALUE,       o_NOT_NEGATABLE, 'J',  "strip self extractor from archive"},
@@ -183,8 +183,8 @@
          case o_ll:
 
 === modified file 'zipnote.c'
---- zipnote.c	2010-12-22 13:02:43 +0000
-+++ zipnote.c	2010-12-22 15:42:45 +0000
+--- a/zipnote.c
++++ b/zipnote.c
 @@ -21,6 +21,11 @@
  #include "revision.h"
  #include <signal.h>
diff --git a/app-arch/zip/files/zip-3.0-no-crypt.patch b/app-arch/zip/files/zip-3.0-no-crypt.patch
index 2858b51..9a1302c 100644
--- a/app-arch/zip/files/zip-3.0-no-crypt.patch
+++ b/app-arch/zip/files/zip-3.0-no-crypt.patch
@@ -4,8 +4,8 @@
 
 http://bugs.gentoo.org/238398
 
---- zip.c
-+++ zip.c
+--- a/zip.c
++++ b/zip.c
 @@ -3452,6 +3452,9 @@ char **argv;            /* command line tokens */
  
    /* Key not yet specified.  If needed, get/verify it now. */
@@ -24,8 +24,8 @@
    }
    if (key) {
      /* if -P "" could get here */
---- zipcloak.c
-+++ zipcloak.c
+--- a/zipcloak.c
++++ b/zipcloak.c
 @@ -744,6 +744,28 @@ struct option_struct far options[] = {
  
  int main OF((void));
diff --git a/app-arch/zip/files/zip-3.0-pic.patch b/app-arch/zip/files/zip-3.0-pic.patch
index b4c53de..89a52e2 100644
--- a/app-arch/zip/files/zip-3.0-pic.patch
+++ b/app-arch/zip/files/zip-3.0-pic.patch
@@ -1,15 +1,15 @@
 if our toolchain generates PIC by default, then do not use the hand written
 assembly files as none of it is PIC friendly.
 
---- unix/configure
-+++ unix/configure
+--- a/unix/configure
++++ b/unix/configure
 @@ -29,6 +29,9 @@
  echo Check if we can use asm code
  OBJA=""
  OCRCU8=""
 +piclib="$(echo | $CPP -dM $CFLAGS - | grep -i __pic__)"
 +echo "Checking if compiler wants to create pic code"
-+[ "$piclib" == "" ] && \
++[ "$piclib" = "" ] && \
  if eval "$CPP match.S > _match.s 2>/dev/null"; then
    if test ! -s _match.s || grep error < _match.s > /dev/null; then
      :
diff --git a/app-arch/zip/files/zip-3.0-zipnote-freeze.patch b/app-arch/zip/files/zip-3.0-zipnote-freeze.patch
index cfe78f0..28f47d0 100644
--- a/app-arch/zip/files/zip-3.0-zipnote-freeze.patch
+++ b/app-arch/zip/files/zip-3.0-zipnote-freeze.patch
@@ -1,6 +1,6 @@
 diff -dupr zip30-old/fileio.c zip30/fileio.c
---- zip30-old/fileio.c	2008-05-28 20:13:24.000000000 +0200
-+++ zip30/fileio.c	2012-06-12 17:30:29.794547493 +0200
+--- a/fileio.c
++++ b/fileio.c
 @@ -3502,7 +3502,7 @@ zwchar *local_to_wide_string(local_strin
    if ((wc_string = (wchar_t *)malloc((wsize + 1) * sizeof(wchar_t))) == NULL) {
      ZIPERR(ZE_MEM, "local_to_wide_string");
@@ -11,9 +11,9 @@
  
    /* in case wchar_t is not zwchar */
 diff -dupr zip30-old/zipfile.c zip30/zipfile.c
---- zip30/zipfile.c	2008-07-01 00:15:30.000000000 +0200
-+++ zip30/zipfile.c	2012-06-10 01:59:42.571706181 +0200
-@@ -5406,6 +5406,8 @@ int putlocal(z, rewrite)
+--- a/zipfile.c
++++ b/zipfile.c
+@@ -5406,7 +5406,9 @@ int putlocal(z, rewrite)
      if (z->flg & UTF8_BIT) {
        /* If this flag is set, then restore UTF-8 as path name */
        use_uname = 1;
@@ -34,8 +34,8 @@
        add_Unicode_Path_cen_extra_field(z);
      }
 diff -dupr zip30/zipnote.c zip30/zipnote.c
---- zip30/zipnote.c	2008-05-08 04:17:08.000000000 +0200
-+++ zip30/zipnote.c	2012-06-10 02:33:36.372663528 +0200
+--- a/zipnote.c
++++ b/zipnote.c
 @@ -575,6 +575,13 @@ char **argv;            /* command line
        strcpy(z->iname, a+2);
  #endif
diff --git a/app-arch/zip/metadata.xml b/app-arch/zip/metadata.xml
index 71d5234..564fd76 100644
--- a/app-arch/zip/metadata.xml
+++ b/app-arch/zip/metadata.xml
@@ -5,7 +5,6 @@
 		<email>base-system@gentoo.org</email>
 		<name>Gentoo Base System</name>
 	</maintainer>
-	<longdescription>Application that supports the Info Zip series of encryption.</longdescription>
 	<use>
 		<flag name="natspec">Use <pkg>dev-libs/libnatspec</pkg> to correctly decode non-ascii file names archived in Windows.</flag>
 	</use>
diff --git a/app-arch/zip/zip-3.0-r3.ebuild b/app-arch/zip/zip-3.0-r3.ebuild
deleted file mode 100644
index b847edd..0000000
--- a/app-arch/zip/zip-3.0-r3.ebuild
+++ /dev/null
@@ -1,62 +0,0 @@
-# Copyright 1999-2015 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="4"
-inherit toolchain-funcs eutils flag-o-matic
-
-MY_P="${PN}${PV//.}"
-DESCRIPTION="Info ZIP (encryption support)"
-HOMEPAGE="http://www.info-zip.org/"
-SRC_URI="mirror://sourceforge/infozip/${MY_P}.zip"
-
-LICENSE="Info-ZIP"
-SLOT="0"
-KEYWORDS="*"
-IUSE="bzip2 crypt natspec unicode"
-
-RDEPEND="bzip2? ( app-arch/bzip2 )
-	natspec? ( dev-libs/libnatspec )"
-DEPEND="${RDEPEND}
-	app-arch/unzip"
-
-S=${WORKDIR}/${MY_P}
-
-src_prepare() {
-	epatch "${FILESDIR}"/${P}-no-crypt.patch #238398
-	epatch "${FILESDIR}"/${P}-pic.patch
-	epatch "${FILESDIR}"/${P}-exec-stack.patch #122849
-	epatch "${FILESDIR}"/${P}-build.patch #200995
-	epatch "${FILESDIR}"/${P}-zipnote-freeze.patch #322047
-	epatch "${FILESDIR}"/${P}-format-security.patch #512414
-	use natspec && epatch "${FILESDIR}"/${PN}-3.0-natspec.patch #275244
-}
-
-src_configure() {
-	append-cppflags \
-		-DLARGE_FILE_SUPPORT \
-		-DUIDGID_NOT_16BIT \
-		-D$(usex bzip2 '' NO)BZIP2_SUPPORT \
-		-D$(usex crypt '' NO)CRYPT \
-		-D$(usex unicode '' NO)UNICODE_SUPPORT
-	# Third arg disables bzip2 logic as we handle it ourselves above.
-	sh ./unix/configure "$(tc-getCC)" "-I. -DUNIX ${CFLAGS} ${CPPFLAGS}" "${T}" || die
-	if use bzip2 ; then
-		sed -i -e "s:LFLAGS2=:&'-lbz2 ':" flags || die
-	fi
-}
-
-src_compile() {
-	emake \
-		CPP="$(tc-getCPP)" \
-		-f unix/Makefile generic
-}
-
-src_install() {
-	dobin zip zipnote zipsplit
-	doman man/zip{,note,split}.1
-	if use crypt ; then
-		dobin zipcloak
-		doman man/zipcloak.1
-	fi
-	dodoc BUGS CHANGES README* TODO WHATSNEW WHERE proginfo/*.txt
-}
diff --git a/app-arch/zip/zip-3.0-r4.ebuild b/app-arch/zip/zip-3.0-r4.ebuild
new file mode 100644
index 0000000..9f1c833
--- /dev/null
+++ b/app-arch/zip/zip-3.0-r4.ebuild
@@ -0,0 +1,66 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+inherit toolchain-funcs flag-o-matic
+
+MY_P="${PN}${PV//.}"
+DESCRIPTION="Info ZIP (encryption support)"
+HOMEPAGE="http://www.info-zip.org/"
+SRC_URI="mirror://sourceforge/infozip/${MY_P}.zip"
+
+LICENSE="Info-ZIP"
+SLOT="0"
+KEYWORDS="*"
+IUSE="bzip2 crypt natspec unicode"
+
+DEPEND="${RDEPEND}"
+RDEPEND="bzip2? ( app-arch/bzip2 )
+	natspec? ( dev-libs/libnatspec )"
+BDEPEND="app-arch/unzip"
+
+S="${WORKDIR}/${MY_P}"
+
+PATCHES=(
+	"${FILESDIR}/${P}"-no-crypt.patch #238398
+	"${FILESDIR}/${P}"-pic.patch
+	"${FILESDIR}/${P}"-exec-stack.patch #122849
+	"${FILESDIR}/${P}"-build.patch #200995
+	"${FILESDIR}/${P}"-zipnote-freeze.patch #322047
+	"${FILESDIR}/${P}"-format-security.patch #512414
+)
+
+src_prepare() {
+	default
+	use natspec && eapply "${FILESDIR}/${PN}"-3.0-natspec.patch #275244
+}
+
+src_configure() {
+	append-cppflags \
+		-DLARGE_FILE_SUPPORT \
+		-DUIDGID_NOT_16BIT \
+		-D$(usex bzip2 '' NO)BZIP2_SUPPORT \
+		-D$(usex crypt '' NO)CRYPT \
+		-D$(usex unicode '' NO)UNICODE_SUPPORT
+	# Third arg disables bzip2 logic as we handle it ourselves above.
+	sh ./unix/configure "$(tc-getCC)" "-I. -DUNIX ${CFLAGS} ${CPPFLAGS}" "${T}" || die
+	if use bzip2 ; then
+		sed -i -e "s:LFLAGS2=:&'-lbz2 ':" flags || die
+	fi
+}
+
+src_compile() {
+	emake \
+		CPP="$(tc-getCPP)" \
+		-f unix/Makefile generic
+}
+
+src_install() {
+	dobin zip zipnote zipsplit
+	doman man/zip{,note,split}.1
+	if use crypt ; then
+		dobin zipcloak
+		doman man/zipcloak.1
+	fi
+	dodoc BUGS CHANGES README* TODO WHATSNEW WHERE proginfo/*.txt
+}
diff --git a/app-benchmarks/stress-ng/Manifest b/app-benchmarks/stress-ng/Manifest
index db5c9e0..284311c 100644
--- a/app-benchmarks/stress-ng/Manifest
+++ b/app-benchmarks/stress-ng/Manifest
@@ -1 +1 @@
-DIST stress-ng-0.11.17.tar.xz 467156 BLAKE2B fab734e0dcd7633e6a47a3b6a41111dd900a2dfb2e3666d8fbf439d2d40ea6b7f5f25763aba5d774cf20ce43598e0bce2229e321c2a9512d5f26d8a795d70ce8 SHA512 8320e10fb2a2f224b23efe72af7d84e6beb73bbd54eff0a6c04afee14de5cbbf6584e1a6d936f52651467138e9647dfb0ff092aa7e73a9f8304627a603546f79
+DIST stress-ng-0.12.09.tar.xz 545756 BLAKE2B 72c5b1acf3f82f8d609da8b213f6321486cda9b8e05fd7390b846bea541610bab70bceb99c3684fbff732805eade7c37840d77e4ce901cc81a53ded0968bc6a1 SHA512 510b210a920b540c25e9f4cc0597924f72a80a85e6cd647346f7e91335e127e776bfa1bdcf0e67f557b7c154d2e6f2b2ed5abe9612b2552f53a8d21c920dc6c1
diff --git a/app-benchmarks/stress-ng/files/stress-ng-0.11.17-makefile.patch b/app-benchmarks/stress-ng/files/stress-ng-0.11.17-makefile.patch
deleted file mode 100644
index d3c5e93..0000000
--- a/app-benchmarks/stress-ng/files/stress-ng-0.11.17-makefile.patch
+++ /dev/null
@@ -1,61 +0,0 @@
---- stress-ng-0.11.17.orig/Makefile	2020-07-27 13:38:23.000000000 +0200
-+++ stress-ng-0.11.17/Makefile	2020-08-09 13:43:30.919796477 +0200
-@@ -21,7 +21,7 @@
- # Codename "synthetic system strainer"
- #
- 
--CFLAGS += -Wall -Wextra -DVERSION='"$(VERSION)"' -O2 -std=gnu99
-+CFLAGS += -Wall -Wextra -DVERSION='"$(VERSION)"' -std=gnu99
- 
- #
- # Pedantic flags
-@@ -358,12 +358,10 @@
- .o: stress-ng.h Makefile
- 
- .c.o:
--	@echo "CC $<"
--	@$(CC) $(CFLAGS) -c -o $@ $<
-+	$(CC) $(CFLAGS) -c -o $@ $<
- 
- stress-ng: $(OBJS)
--	@echo "LD $@"
--	@$(CC) $(CPPFLAGS) $(CFLAGS) $(OBJS) -lm $(LDFLAGS) -o $@
-+	$(CC) $(CPPFLAGS) $(CFLAGS) $(OBJS) -lm $(LDFLAGS) -o $@
- 	@sync
- 
- makeconfig:
-@@ -384,7 +382,7 @@
- 		sed '$$ s/.$$//' >> apparmor-data.c
- 	@echo "};" >> apparmor-data.c
- 	@echo "const size_t g_apparmor_data_len = sizeof(g_apparmor_data);" >> apparmor-data.c
--	@echo "CC $<"
-+	echo "CC $<"
- 	@$(CC) -c apparmor-data.c -o apparmor-data.o
- 	@rm -rf apparmor-data.c apparmor-data.bin
- 
-@@ -401,12 +399,12 @@
- 	@$(CC) $(CFLAGS) -E core-perf-event.c | grep "PERF_COUNT" | \
- 	sed 's/,/ /' | sed s/'^ *//' | \
- 	awk {'print "#define _SNG_" $$1 " (1)"'} > core-perf-event.h
--	@echo CC $<
--	@$(CC) $(CFLAGS) -c -o $@ $<
-+	echo CC $<
-+	$(CC) $(CFLAGS) -c -o $@ $<
- 
- stress-vecmath.o: stress-vecmath.c
--	@echo CC $<
--	@$(CC) $(CFLAGS) -fno-builtin -c -o $@ $<
-+	echo CC $<
-+	$(CC) $(CFLAGS) -fno-builtin -c -o $@ $<
- 	@touch stress-ng.c
- 
- $(OBJS): stress-ng.h Makefile
-@@ -459,7 +457,7 @@
- 	mkdir -p ${DESTDIR}${BINDIR}
- 	cp stress-ng ${DESTDIR}${BINDIR}
- 	mkdir -p ${DESTDIR}${MANDIR}
--	cp stress-ng.1.gz ${DESTDIR}${MANDIR}
-+	cp stress-ng.1 ${DESTDIR}${MANDIR}
- 	mkdir -p ${DESTDIR}${JOBDIR}
- 	cp -rp example-jobs/*.job ${DESTDIR}${JOBDIR}
- 	mkdir -p ${DESTDIR}${BASHDIR}
diff --git a/app-benchmarks/stress-ng/stress-ng-0.11.17.ebuild b/app-benchmarks/stress-ng/stress-ng-0.11.17.ebuild
deleted file mode 100644
index 2a129f0..0000000
--- a/app-benchmarks/stress-ng/stress-ng-0.11.17.ebuild
+++ /dev/null
@@ -1,41 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit eutils toolchain-funcs
-
-DESCRIPTION="Stress test for a computer system with various selectable ways"
-HOMEPAGE="https://kernel.ubuntu.com/~cking/stress-ng/"
-SRC_URI="https://kernel.ubuntu.com/~cking/tarballs/${PN}/${P}.tar.xz"
-
-LICENSE="GPL-2+"
-SLOT="0"
-KEYWORDS="*"
-
-DEPEND="
-	dev-libs/libaio
-	dev-libs/libbsd
-	dev-libs/libgcrypt:0=
-	sys-apps/attr
-	sys-apps/keyutils:=
-	sys-libs/libcap
-	sys-libs/zlib
-"
-
-RDEPEND="${DEPEND}"
-
-DOCS=( "README" "README.Android" "TODO" "syscalls.txt" )
-
-PATCHES=( "${FILESDIR}/${PN}-0.11.17-makefile.patch" )
-
-src_compile() {
-	tc-export CC
-
-	default
-}
-
-pkg_postinst() {
-	optfeature "AppArmor support" sys-libs/libapparmor
-	optfeature "SCTP support" net-misc/lksctp-tools
-}
diff --git a/app-benchmarks/stress-ng/stress-ng-0.12.09.ebuild b/app-benchmarks/stress-ng/stress-ng-0.12.09.ebuild
new file mode 100644
index 0000000..09c9d88
--- /dev/null
+++ b/app-benchmarks/stress-ng/stress-ng-0.12.09.ebuild
@@ -0,0 +1,48 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit optfeature toolchain-funcs
+
+DESCRIPTION="Stress test for a computer system with various selectable ways"
+HOMEPAGE="https://kernel.ubuntu.com/~cking/stress-ng/"
+SRC_URI="https://kernel.ubuntu.com/~cking/tarballs/${PN}/${P}.tar.xz"
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="*"
+
+DEPEND="
+	dev-libs/libaio
+	dev-libs/libbsd
+	dev-libs/libgcrypt:0=
+	sys-apps/attr
+	sys-apps/keyutils:=
+	sys-libs/libcap
+	sys-libs/zlib
+"
+
+RDEPEND="${DEPEND}"
+
+DOCS=( "README" "README.Android" "TODO" "syscalls.txt" )
+
+src_prepare() {
+	default
+
+	# Don't reset build jobs to '-j0'
+	sed -e '/-f Makefile.config/s/-j//' -i Makefile || die
+}
+
+src_compile() {
+	export MAN_COMPRESS=0
+	export VERBOSE=1
+	tc-export CC
+
+	default
+}
+
+pkg_postinst() {
+	optfeature "AppArmor support" sys-libs/libapparmor
+	optfeature "SCTP support" net-misc/lksctp-tools
+}
diff --git a/app-crypt/efitools/Manifest b/app-crypt/efitools/Manifest
index aced0dc..f6d9e82 100644
--- a/app-crypt/efitools/Manifest
+++ b/app-crypt/efitools/Manifest
@@ -1 +1,2 @@
+DIST efitools-1.8.1.tar.gz 115319 BLAKE2B 3aad65defc203055122027cc3a48f50912d2f08b592841780fdc1bf337d75774116e698c4270865275ce7fe64988cd84105138ca979d81818f0065d7ae90f1d0 SHA512 114ef8e52160f5a5239ec306dbd587610849bce771ba8145ed092afd79e44f3ecee93cc1d97e2d5fdb880cc825bbbe928b3ef6701fd3b1fa444053894be1098a
 DIST efitools-1.9.2.tar.gz 116037 BLAKE2B b3540932eb112e362fd0eed47090360603807dcaec8c6a10058618f8252eeb5dcbbd703d313cb6fadae62c1312815080cf2c77fc86f9dfc9f9afca24ad97f584 SHA512 77e0ad7e865814ed388ff6daabe0f4b49ba51672bf2cbb98b7905e209cbd28f9ede2f73213ce45af8a978c1e67dba24ec88a1188661317cc22317b47e575cde8
diff --git a/app-crypt/efitools/efitools-1.9.2-r2.ebuild b/app-crypt/efitools/efitools-1.9.2-r2.ebuild
new file mode 100644
index 0000000..6180e8c
--- /dev/null
+++ b/app-crypt/efitools/efitools-1.9.2-r2.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit flag-o-matic toolchain-funcs
+
+DESCRIPTION="Tools for manipulating UEFI secure boot platforms"
+HOMEPAGE="https://git.kernel.org/cgit/linux/kernel/git/jejb/efitools.git"
+SRC_URI="https://git.kernel.org/pub/scm/linux/kernel/git/jejb/efitools.git/snapshot/${P}.tar.gz"
+
+LICENSE="GPL-2 LGPL-2.1"
+SLOT="0"
+KEYWORDS="*"
+IUSE="static"
+
+LIB_DEPEND="dev-libs/openssl:0=[static-libs(+)]"
+
+RDEPEND="!static? ( ${LIB_DEPEND//\[static-libs(+)]} )
+	sys-apps/util-linux"
+
+DEPEND="${RDEPEND}
+	app-crypt/sbsigntools
+	dev-perl/File-Slurp
+	static? ( ${LIB_DEPEND} )
+	sys-apps/help2man
+	sys-boot/gnu-efi
+	virtual/pkgconfig"
+
+PATCHES=(
+	"${FILESDIR}/1.7.0-Make.rules.patch"
+)
+
+src_prepare() {
+	if use static; then
+		append-ldflags -static
+		sed -i "s/-lcrypto\b/$($(tc-getPKG_CONFIG) --static --libs libcrypto)/g" \
+			Makefile || die
+	fi
+
+	if tc-is-clang; then
+		sed -i -e 's/-fno-toplevel-reorder//g' Make.rules || die
+	fi
+	# Respect users CFLAGS
+	sed -i -e 's/CFLAGS.*= -O2 -g/CFLAGS += /' Make.rules || die
+
+	# Respect users LDFLAGS
+	sed -i -e 's/LDFLAGS/LIBS/g' Make.rules || die
+	sed -i -e 's/\$(CC)/& $(LDFLAGS)/g' Makefile || die
+
+	# Run 'default', to apply user patches
+	default
+}
diff --git a/app-crypt/efitools/efitools-1.9.2.ebuild b/app-crypt/efitools/efitools-1.9.2.ebuild
deleted file mode 100644
index 32d11f0..0000000
--- a/app-crypt/efitools/efitools-1.9.2.ebuild
+++ /dev/null
@@ -1,52 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-inherit flag-o-matic toolchain-funcs
-
-DESCRIPTION="Tools for manipulating UEFI secure boot platforms"
-HOMEPAGE="https://git.kernel.org/cgit/linux/kernel/git/jejb/efitools.git"
-SRC_URI="https://git.kernel.org/pub/scm/linux/kernel/git/jejb/efitools.git/snapshot/${P}.tar.gz"
-
-LICENSE="GPL-2 LGPL-2.1"
-SLOT="0"
-KEYWORDS="*"
-IUSE="libressl static"
-
-LIB_DEPEND="!libressl? ( dev-libs/openssl:0=[static-libs(+)] )
-	libressl? ( dev-libs/libressl:0=[static-libs(+)] )"
-
-RDEPEND="!static? ( ${LIB_DEPEND//\[static-libs(+)]} )
-	sys-apps/util-linux"
-
-DEPEND="${RDEPEND}
-	app-crypt/sbsigntools
-	dev-perl/File-Slurp
-	static? ( ${LIB_DEPEND} )
-	sys-apps/help2man
-	sys-boot/gnu-efi
-	virtual/pkgconfig"
-
-PATCHES=(
-	"${FILESDIR}/1.7.0-Make.rules.patch"
-	"${FILESDIR}/${P}-libressl-compatibility.patch"
-)
-
-src_prepare() {
-	if use static; then
-		append-ldflags -static
-		sed -i "s/-lcrypto\b/$($(tc-getPKG_CONFIG) --static --libs libcrypto)/g" \
-			Makefile || die
-	fi
-
-	# Respect users CFLAGS
-	sed -i -e 's/CFLAGS.*= -O2 -g/CFLAGS += /' Make.rules || die
-
-	# Respect users LDFLAGS
-	sed -i -e 's/LDFLAGS/LIBS/g' Make.rules || die
-	sed -i -e 's/\$(CC)/& $(LDFLAGS)/g' Makefile || die
-
-	# Run 'default', to apply user patches
-	default
-}
diff --git a/app-crypt/efitools/files/efitools-1.9.2-libressl-compatibility.patch b/app-crypt/efitools/files/efitools-1.9.2-libressl-compatibility.patch
deleted file mode 100644
index 876baae..0000000
--- a/app-crypt/efitools/files/efitools-1.9.2-libressl-compatibility.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/cert-to-efi-hash-list.c	2018-04-21 20:59:24.814748503 +0200
-+++ b/cert-to-efi-hash-list.c	2018-04-21 20:59:51.868581307 +0200
-@@ -135,7 +135,7 @@
-         X509 *cert = PEM_read_bio_X509(cert_bio, NULL, NULL, NULL);
- 	unsigned char *cert_buf = NULL;
- 
--#if OPENSSL_VERSION_NUMBER < 0x10100000L
-+#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
- 	int cert_len = i2d_X509_CINF(cert->cert_info, &cert_buf);
- #else
- 	int cert_len = i2d_re_X509_tbs(cert, &cert_buf);
diff --git a/app-emulation/lxc/Manifest b/app-emulation/lxc/Manifest
deleted file mode 100644
index eda9ba0..0000000
--- a/app-emulation/lxc/Manifest
+++ /dev/null
@@ -1 +0,0 @@
-DIST lxc-2.0.8.tar.gz 1308705 SHA256 0d8e34b302cfe4c40c6c9ae5097096aa5cc2c1dfceea3f0f22e3e16c4a4e8494 SHA512 ed9fd47e92007f433695cffea659180866a5ac2778712f4eb13b6629bb18292589f5b674b734853ca196ba1f6d38bdbf3cc8a2bb28e25d3540b06b945fcf9096 WHIRLPOOL 10485c76f43c6358fc09a7843f13d16b178b1fbc1c3741d04293e170716bd253d1f7b4c3d6529829d135b381debf857263aea6070f2157d3c095d49209b7113e
diff --git a/app-emulation/lxc/files/lxc-2.0.5-omit-sysconfig.patch b/app-emulation/lxc/files/lxc-2.0.5-omit-sysconfig.patch
deleted file mode 100644
index 3ec8135..0000000
--- a/app-emulation/lxc/files/lxc-2.0.5-omit-sysconfig.patch
+++ /dev/null
@@ -1,5 +0,0 @@
---- /config/Makefile.am.orig	2016-05-19 02:56:11.891113982 +0000
-+++ /config/Makefile.am	2016-05-19 02:56:32.596115476 +0000
-@@ -1 +1 @@
--SUBDIRS = apparmor bash etc init selinux templates yum sysconfig
-+SUBDIRS = apparmor bash etc init selinux templates yum
diff --git a/app-emulation/lxc/files/lxc-2.0.6-bash-completion.patch b/app-emulation/lxc/files/lxc-2.0.6-bash-completion.patch
deleted file mode 100644
index 6033e36..0000000
--- a/app-emulation/lxc/files/lxc-2.0.6-bash-completion.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-diff --git a/config/bash/lxc.in b/config/bash/lxc.in
-index 7dcf302..5927fe2 100644
---- a/config/bash/lxc.in
-+++ b/config/bash/lxc.in
-@@ -1,4 +1,3 @@
--_have lxc-start && {
-     _lxc_names() {
-         COMPREPLY=( $( compgen -W "$( lxc-ls )" "$cur" ) )
-     }
-@@ -100,4 +99,3 @@ _have lxc-start && {
- 
-     complete -o default -F _lxc_generic_o lxc-copy
-     complete -o default -F _lxc_generic_o lxc-start-ephemeral
--}
-diff --git a/configure.ac b/configure.ac
-index 4640c0d..14ccdd3 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -478,7 +478,7 @@ AM_CONDITIONAL([ENABLE_BASH], [test "x$enable_bash" = "xyes"])
- AM_COND_IF([ENABLE_BASH],
- 	[AC_MSG_CHECKING([bash completion directory])
- 	PKG_CHECK_VAR(bashcompdir, [bash-completion], [completionsdir], ,
--		bashcompdir="${sysconfdir}/bash_completion.d")
-+		bashcompdir="$datadir/bash-completion/completions")
- 	AC_MSG_RESULT([$bashcompdir])
- 	AC_SUBST(bashcompdir)
- 	])
diff --git a/app-emulation/lxc/files/lxc.initd.5 b/app-emulation/lxc/files/lxc.initd.5
deleted file mode 100644
index b28d0bf..0000000
--- a/app-emulation/lxc/files/lxc.initd.5
+++ /dev/null
@@ -1,118 +0,0 @@
-#!/sbin/openrc-run
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-CONTAINER=${SVCNAME#*.}
-
-LXC_PATH=`lxc-config lxc.lxcpath`
-
-lxc_get_configfile() {
-	if [ -f "${LXC_PATH}/${CONTAINER}.conf" ]; then
-		echo "${LXC_PATH}/${CONTAINER}.conf"
-	elif [ -f "${LXC_PATH}/${CONTAINER}/config" ]; then
-		echo "${LXC_PATH}/${CONTAINER}/config"
-	else
-		eerror "Unable to find a suitable configuration file."
-		eerror "If you set up the container in a non-standard"
-		eerror "location, please set the CONFIGFILE variable."
-		return 1
-	fi
-}
-
-[ $CONTAINER != $SVCNAME ] && CONFIGFILE=${CONFIGFILE:-$(lxc_get_configfile)}
-
-lxc_get_var() {
-	awk 'BEGIN { FS="[ \t]*=[ \t]*" } $1 == "'$1'" { print $2; exit }' ${CONFIGFILE}
-}
-
-lxc_get_net_link_type() {
-	awk 'BEGIN { FS="[ \t]*=[ \t]*"; _link=""; _type="" }
-		$1 == "lxc.network.type" {_type=$2;}
-		$1 == "lxc.network.link" {_link=$2;}
-		{if(_link != "" && _type != ""){
-			printf("%s:%s\n", _link, _type );
-			_link=""; _type="";
-		}; }' <${CONFIGFILE}
-}
-
-checkconfig() {
-	if [ ${CONTAINER} = ${SVCNAME} ]; then
-		eerror "You have to create an init script for each container:"
-		eerror " ln -s lxc /etc/init.d/lxc.container"
-		return 1
-	fi
-
-	# no need to output anything, the function takes care of that.
-	[ -z "${CONFIGFILE}" ] && return 1
-
-	utsname=$(lxc_get_var lxc.utsname)
-	if [ ${CONTAINER} != ${utsname} ]; then
-	    eerror "You should use the same name for the service and the"
-	    eerror "container. Right now the container is called ${utsname}"
-	    return 1
-	fi
-}
-
-depend() {
-	# be quiet, since we have to run depend() also for the
-	# non-muxed init script, unfortunately.
-	checkconfig 2>/dev/null || return 0
-
-	config ${CONFIGFILE}
-	need localmount
-	use lxcfs
-
-	local _x _if
-	for _x in $(lxc_get_net_link_type); do
-		_if=${_x%:*}
-		case "${_x##*:}" in
-			# when the network type is set to phys, we can make use of a
-			# network service (for instance to set it up before we disable
-			# the net_admin capability), but we might also not set it up
-			# at all on the host and leave the net_admin capable service
-			# to take care of it.
-			phys)	use net.${_if} ;;
-			*)	need net.${_if} ;;
-		esac
-	done
-}
-
-start() {
-	checkconfig || return 1
-	rm -f /var/log/lxc/${CONTAINER}.log
-
-	rootpath=$(lxc_get_var lxc.rootfs)
-
-	# Check the format of our init and the chroot's init, to see
-	# if we have to use linux32 or linux64; always use setarch
-	# when required, as that makes it easier to deal with
-	# x32-based containers.
-	case $(scanelf -BF '%a#f' ${rootpath}/sbin/init) in
-		EM_X86_64)	setarch=linux64;;
-		EM_386)		setarch=linux32;;
-	esac
-
-	ebegin "Starting ${CONTAINER}"
-	env -i ${setarch} $(which lxc-start) -l WARN -n ${CONTAINER} -f ${CONFIGFILE} -d -o /var/log/lxc/${CONTAINER}.log
-	sleep 0.5
-
-	# lxc-start -d will _always_ report a correct startup, even if it
-	# failed, so rather than trust that, check that the cgroup exists.
-	[ -d /sys/fs/cgroup/cpuset/lxc/${CONTAINER} ]
-	eend $?
-}
-
-stop() {
-	checkconfig || return 1
-
-
-	if ! [ -d /sys/fs/cgroup/cpuset/lxc/${CONTAINER} ]; then
-	    ewarn "${CONTAINER} doesn't seem to be started."
-	    return 0
-	fi
-
-	# 10s should be enough to shut everything down
-	ebegin "Stopping ${CONTAINER}"
-	lxc-stop -t 10 -n ${CONTAINER}
-	eend $?
-}
diff --git a/app-emulation/lxc/files/lxc_at.service.4 b/app-emulation/lxc/files/lxc_at.service.4
deleted file mode 100644
index 64ae745..0000000
--- a/app-emulation/lxc/files/lxc_at.service.4
+++ /dev/null
@@ -1,14 +0,0 @@
-[Unit]
-Description=Linux Container %I
-After=network.target
-Wants=lxcfs.service
-
-[Service]
-Restart=always
-ExecStart=/usr/bin/lxc-start -n %i -F
-ExecReload=/usr/bin/lxc-restart -n %i
-ExecStop=/usr/bin/lxc-stop -n %i
-Delegate=yes
-
-[Install]
-WantedBy=multi-user.target
diff --git a/app-emulation/lxc/lxc-2.0.8.ebuild b/app-emulation/lxc/lxc-2.0.8.ebuild
deleted file mode 100644
index 0ce9e44..0000000
--- a/app-emulation/lxc/lxc-2.0.8.ebuild
+++ /dev/null
@@ -1,202 +0,0 @@
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-
-PYTHON_COMPAT=( python3_{4,5,6} )
-DISTUTILS_OPTIONAL=1
-
-inherit autotools bash-completion-r1 distutils-r1 linux-info versionator flag-o-matic systemd
-
-DESCRIPTION="LinuX Containers userspace utilities"
-HOMEPAGE="https://linuxcontainers.org/"
-SRC_URI="https://linuxcontainers.org/downloads/lxc/${P}.tar.gz"
-
-KEYWORDS="*"
-
-LICENSE="LGPL-3"
-SLOT="0"
-IUSE="cgmanager doc examples lua python seccomp selinux"
-
-RDEPEND="
-	net-libs/gnutls
-	sys-libs/libcap
-	cgmanager? ( app-admin/cgmanager )
-	lua? ( >=dev-lang/lua-5.1:= )
-	python? ( ${PYTHON_DEPS} )
-	seccomp? ( sys-libs/libseccomp )
-	selinux? ( sys-libs/libselinux )"
-
-DEPEND="${RDEPEND}
-	doc? ( app-text/docbook-sgml-utils )
-	>=sys-kernel/linux-headers-3.2"
-
-RDEPEND="${RDEPEND}
-	sys-process/criu[selinux=]
-	sys-apps/util-linux
-	app-misc/pax-utils
-	virtual/awk"
-
-CONFIG_CHECK="~CGROUPS ~CGROUP_DEVICE
-	~CPUSETS ~CGROUP_CPUACCT
-	~CGROUP_SCHED
-
-	~NAMESPACES
-	~IPC_NS ~USER_NS ~PID_NS
-
-	~NETLINK_DIAG ~PACKET_DIAG
-	~INET_UDP_DIAG ~INET_TCP_DIAG
-	~UNIX_DIAG ~CHECKPOINT_RESTORE
-
-	~CGROUP_FREEZER
-	~UTS_NS ~NET_NS
-	~VETH ~MACVLAN
-
-	~POSIX_MQUEUE
-	~!NETPRIO_CGROUP
-
-	~!GRKERNSEC_CHROOT_MOUNT
-	~!GRKERNSEC_CHROOT_DOUBLE
-	~!GRKERNSEC_CHROOT_PIVOT
-	~!GRKERNSEC_CHROOT_CHMOD
-	~!GRKERNSEC_CHROOT_CAPS
-	~!GRKERNSEC_PROC
-	~!GRKERNSEC_SYSFS_RESTRICT
-"
-
-ERROR_DEVPTS_MULTIPLE_INSTANCES="CONFIG_DEVPTS_MULTIPLE_INSTANCES:  needed for pts inside container"
-
-ERROR_CGROUP_FREEZER="CONFIG_CGROUP_FREEZER:  needed to freeze containers"
-
-ERROR_UTS_NS="CONFIG_UTS_NS:  needed to unshare hostnames and uname info"
-ERROR_NET_NS="CONFIG_NET_NS:  needed for unshared network"
-
-ERROR_VETH="CONFIG_VETH:  needed for internal (host-to-container) networking"
-ERROR_MACVLAN="CONFIG_MACVLAN:  needed for internal (inter-container) networking"
-
-ERROR_NETLINK_DIAG="CONFIG_NETLINK_DIAG:  needed for lxc-checkpoint"
-ERROR_PACKET_DIAG="CONFIG_PACKET_DIAG:  needed for lxc-checkpoint"
-ERROR_INET_UDP_DIAG="CONFIG_INET_UDP_DIAG:  needed for lxc-checkpoint"
-ERROR_INET_TCP_DIAG="CONFIG_INET_TCP_DIAG:  needed for lxc-checkpoint"
-ERROR_UNIX_DIAG="CONFIG_UNIX_DIAG:  needed for lxc-checkpoint"
-ERROR_CHECKPOINT_RESTORE="CONFIG_CHECKPOINT_RESTORE:  needed for lxc-checkpoint"
-
-ERROR_POSIX_MQUEUE="CONFIG_POSIX_MQUEUE:  needed for lxc-execute command"
-
-ERROR_NETPRIO_CGROUP="CONFIG_NETPRIO_CGROUP:  as of kernel 3.3 and lxc 0.8.0_rc1 this causes LXCs to fail booting."
-
-ERROR_GRKERNSEC_CHROOT_MOUNT="CONFIG_GRKERNSEC_CHROOT_MOUNT:  some GRSEC features make LXC unusable see postinst notes"
-ERROR_GRKERNSEC_CHROOT_DOUBLE="CONFIG_GRKERNSEC_CHROOT_DOUBLE:  some GRSEC features make LXC unusable see postinst notes"
-ERROR_GRKERNSEC_CHROOT_PIVOT="CONFIG_GRKERNSEC_CHROOT_PIVOT:  some GRSEC features make LXC unusable see postinst notes"
-ERROR_GRKERNSEC_CHROOT_CHMOD="CONFIG_GRKERNSEC_CHROOT_CHMOD:  some GRSEC features make LXC unusable see postinst notes"
-ERROR_GRKERNSEC_CHROOT_CAPS="CONFIG_GRKERNSEC_CHROOT_CAPS:  some GRSEC features make LXC unusable see postinst notes"
-ERROR_GRKERNSEC_PROC="CONFIG_GRKERNSEC_PROC:  this GRSEC feature is incompatible with unprivileged containers"
-ERROR_GRKERNSEC_SYSFS_RESTRICT="CONFIG_GRKERNSEC_SYSFS_RESTRICT:  this GRSEC feature is incompatible with unprivileged containers"
-
-DOCS=(AUTHORS CONTRIBUTING MAINTAINERS NEWS README doc/FAQ.txt)
-
-REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
-
-pkg_setup() {
-	kernel_is -lt 4 7 && CONFIG_CHECK="${CONFIG_CHECK} ~DEVPTS_MULTIPLE_INSTANCES"
-	linux-info_pkg_setup
-}
-
-src_prepare() {
-	epatch "${FILESDIR}"/${PN}-2.0.6-bash-completion.patch
-	#558854
-	epatch "${FILESDIR}"/${PN}-2.0.5-omit-sysconfig.patch
-	epatch_user
-	eautoreconf
-}
-
-src_configure() {
-	append-flags -fno-strict-aliasing
-
-	if use python; then
-		#541932
-		python_setup "python3*"
-		export PKG_CONFIG_PATH="${T}/${EPYTHON}/pkgconfig:${PKG_CONFIG_PATH}"
-	fi
-
-	# I am not sure about the --with-rootfs-path
-	# /var/lib/lxc is probably more appropriate than
-	# /usr/lib/lxc.
-	# Note by holgersson: Why is apparmor disabled?
-	econf \
-		--localstatedir=/var \
-		--bindir=/usr/bin \
-		--sbindir=/usr/bin \
-		--with-config-path=/var/lib/lxc	\
-		--with-rootfs-path=/var/lib/lxc/rootfs \
-		--with-distro=gentoo \
-		--with-runtime-path=/run \
-		--disable-apparmor \
-		--disable-werror \
-		$(use_enable cgmanager) \
-		$(use_enable doc) \
-		$(use_enable examples) \
-		$(use_enable lua) \
-		$(use_enable python) \
-		$(use_enable seccomp) \
-		$(use_enable selinux)
-}
-
-python_compile() {
-	distutils-r1_python_compile build_ext -I ../ -L ../${PN}
-}
-
-src_compile() {
-	default
-
-	if use python; then
-		pushd "${S}/src/python-${PN}" > /dev/null
-		distutils-r1_src_compile
-		popd > /dev/null
-	fi
-}
-
-src_install() {
-	default
-
-	mv "${ED}"/usr/share/bash-completion/completions/${PN} "${ED}"/$(get_bashcompdir)/${PN}-start || die
-	# start-ephemeral is no longer a command but removing it here
-	# generates QA warnings (still in upstream completion script)
-	bashcomp_alias ${PN}-start \
-		${PN}-{attach,cgroup,copy,console,create,destroy,device,execute,freeze,info,monitor,snapshot,start-ephemeral,stop,unfreeze,wait}
-
-	if use python; then
-		pushd "${S}/src/python-lxc" > /dev/null
-		# Unset DOCS. This has been handled by the default target
-		unset DOCS
-		distutils-r1_src_install
-		popd > /dev/null
-	fi
-
-	keepdir /etc/lxc /var/lib/lxc/rootfs /var/log/lxc
-
-	find "${D}" -name '*.la' -delete
-
-	# Gentoo-specific additions!
-	newinitd "${FILESDIR}/${PN}.initd.5" ${PN}
-
-	# Remember to compare our systemd unit file with the upstream one
-	# config/init/systemd/lxc.service.in
-	systemd_newunit "${FILESDIR}"/${PN}_at.service.4 "lxc@.service"
-}
-
-pkg_postinst() {
-	elog ""
-	elog "Starting from version ${PN}-1.1.0-r3, the default lxc path has been"
-	elog "moved from /etc/lxc to /var/lib/lxc. If you still want to use /etc/lxc"
-	elog "please add the following to your /etc/lxc/default.conf"
-	elog "lxc.lxcpath = /etc/lxc"
-	elog ""
-	elog "There is an init script provided with the package now; no documentation"
-	elog "is currently available though, so please check out /etc/init.d/lxc ."
-	elog "You _should_ only need to symlink it to /etc/init.d/lxc.configname"
-	elog "to start the container defined into /etc/lxc/configname.conf ."
-	elog "For further information about LXC development see"
-	elog "http://blog.flameeyes.eu/tag/lxc" # remove once proper doc is available
-	elog ""
-}
diff --git a/app-emulation/lxc/metadata.xml b/app-emulation/lxc/metadata.xml
deleted file mode 100644
index b0c9c68..0000000
--- a/app-emulation/lxc/metadata.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
-<pkgmetadata>
-  <herd>virtualization</herd>
-  <maintainer>
-    <email>flameeyes@gentoo.org</email>
-  </maintainer>
-  <maintainer>
-    <email>dev-zero@gentoo.org</email>
-  </maintainer>
-  <maintainer>
-    <email>hwoarang@gentoo.org</email>
-  </maintainer>
-  <use>
-    <flag name="seccomp">Use seccomp syscall filters using <pkg>sys-libs/libseccomp</pkg></flag>
-  </use>
-</pkgmetadata>
diff --git a/app-emulation/qemu/Manifest b/app-emulation/qemu/Manifest
index fa5828b..2157b27 100644
--- a/app-emulation/qemu/Manifest
+++ b/app-emulation/qemu/Manifest
@@ -1 +1 @@
-DIST qemu-5.0.0.tar.xz 62426192 BLAKE2B 785d02ef79c95b5c4f0556186054885f9893d4e8a9f4b4f2d6199a4e1ae9c31d7c79dd900305469217f85d61bbe74134b601d5c6c1b0eee2b74792d010f1fd63 SHA512 21ef0cbe107c468a40f0fa2635db2a40048c8790b629dfffca5cd62bb1b502ea8eb133bfc40df5ecf1489e2bffe87f6829aee041cb8a380ff04a8afa23b39fcf
+DIST qemu-5.2.0.tar.xz 106902800 BLAKE2B 4413d5591cbabf80faba5b0b7347ee7749ff0a71af44bdf7f64b1995e17ecf1f3df539fa8e63959e0d50cd0502a41a2921e60cc6d078ed8ab5b09ab4b86d4ed7 SHA512 bddd633ce111471ebc651e03080251515178808556b49a308a724909e55dac0be0cc0c79c536ac12d239678ae94c60100dc124be9b9d9538340c03a2f27177f3
diff --git a/app-emulation/qemu/files/65-kvm.rules-r2 b/app-emulation/qemu/files/65-kvm.rules-r2
new file mode 100644
index 0000000..15c89b2
--- /dev/null
+++ b/app-emulation/qemu/files/65-kvm.rules-r2
@@ -0,0 +1,3 @@
+KERNEL=="kvm", GROUP="kvm", MODE="0660"
+KERNEL=="vhost-net", GROUP="kvm", MODE="0660", OPTIONS+="static_node=vhost-net"
+KERNEL=="vhost-vsock", GROUP="kvm", MODE="0660", OPTIONS+="static_node=vhost-vsock"
diff --git a/app-emulation/qemu/files/qemu-4.0.0-mkdir_systemtap.patch b/app-emulation/qemu/files/qemu-4.0.0-mkdir_systemtap.patch
deleted file mode 100644
index 95ccdd7..0000000
--- a/app-emulation/qemu/files/qemu-4.0.0-mkdir_systemtap.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/Makefile b/Makefile
-index 04a0d450..e0013a59 100644
---- a/Makefile
-+++ b/Makefile
-@@ -803,6 +802,7 @@
- 	$(call install-prog,$(HELPERS-y),$(DESTDIR)$(libexecdir))
- endif
- ifdef CONFIG_TRACE_SYSTEMTAP
-+	mkdir -p $(DESTDIR)$(bindir)
- 	$(INSTALL_PROG) "scripts/qemu-trace-stap" $(DESTDIR)$(bindir)
- endif
- ifneq ($(BLOBS),)
diff --git a/app-emulation/qemu/files/qemu-4.2.0-cflags.patch b/app-emulation/qemu/files/qemu-4.2.0-cflags.patch
deleted file mode 100644
index 1019265..0000000
--- a/app-emulation/qemu/files/qemu-4.2.0-cflags.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-diff --git i/configure w/configure
-index a72a5def57..546d757603 100755
---- i/configure
-+++ w/configure
-@@ -6093,10 +6093,6 @@ write_c_skeleton
- if test "$gcov" = "yes" ; then
-   QEMU_CFLAGS="-fprofile-arcs -ftest-coverage -g $QEMU_CFLAGS"
-   QEMU_LDFLAGS="-fprofile-arcs -ftest-coverage $QEMU_LDFLAGS"
--elif test "$fortify_source" = "yes" ; then
--  CFLAGS="-O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 $CFLAGS"
--elif test "$debug" = "no"; then
--  CFLAGS="-O2 $CFLAGS"
- fi
- 
- if test "$have_asan" = "yes"; then
-
diff --git a/app-emulation/qemu/files/qemu-5.0.0-epoll-strace.patch b/app-emulation/qemu/files/qemu-5.0.0-epoll-strace.patch
deleted file mode 100644
index c0f9a2e..0000000
--- a/app-emulation/qemu/files/qemu-5.0.0-epoll-strace.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-https://lists.nongnu.org/archive/html/qemu-devel/2020-04/msg02643.html
-
-From 6bce23d8daf96a7faa9288e7414948cda31ddaa2 Mon Sep 17 00:00:00 2001
-From: Sergei Trofimovich <slyfox@gentoo.org>
-Date: Thu, 16 Apr 2020 18:55:49 +0100
-Subject: [PATCH] linux-user/strace.list: fix epoll_create{,1} -strace output
-
-Fix syscall name and parameters priinter.
-
-Before the change:
-
-```
-$ alpha-linux-user/qemu-alpha -strace -L /usr/alpha-unknown-linux-gnu/ /tmp/a
-...
-1274697 %s(%d)(2097152,274903156744,274903156760,274905840712,274877908880,274903235616) = 3
-1274697 exit_group(0)
-```
-
-After the change:
-
-```
-$ alpha-linux-user/qemu-alpha -strace -L /usr/alpha-unknown-linux-gnu/ /tmp/a
-...
-1273719 epoll_create1(2097152) = 3
-1273719 exit_group(0)
-```
-
-Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
----
- linux-user/strace.list | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
---- a/linux-user/strace.list
-+++ b/linux-user/strace.list
-@@ -125,10 +125,10 @@
- { TARGET_NR_dup3, "dup3" , "%s(%d,%d,%d)", NULL, NULL },
- #endif
- #ifdef TARGET_NR_epoll_create
--{ TARGET_NR_epoll_create, "%s(%d)", NULL, NULL, NULL },
-+{ TARGET_NR_epoll_create, "epoll_create", "%s(%d)", NULL, NULL },
- #endif
- #ifdef TARGET_NR_epoll_create1
--{ TARGET_NR_epoll_create1, "%s(%d)", NULL, NULL, NULL },
-+{ TARGET_NR_epoll_create1, "epoll_create1", "%s(%d)", NULL, NULL },
- #endif
- #ifdef TARGET_NR_epoll_ctl
- { TARGET_NR_epoll_ctl, "epoll_ctl" , NULL, NULL, NULL },
--- 
-2.26.2
-
diff --git a/app-emulation/qemu/files/qemu-5.0.0-os_find_datadir-search.patch b/app-emulation/qemu/files/qemu-5.0.0-os_find_datadir-search.patch
deleted file mode 100644
index 2e72d04..0000000
--- a/app-emulation/qemu/files/qemu-5.0.0-os_find_datadir-search.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From mboxrd@z Thu Jan  1 00:00:00 1970
-From: Joe Slater <joe.slater@windriver.com>
-Subject: [PATCH 1/1] os_find_datadir:  search as in version 4.2
-Date: Mon, 15 Jun 2020 15:58:27 -0700
-Message-ID: <20200615225827.183062-1-joe.slater@windriver.com>
-Archived-At: <https://lore.kernel.org/qemu-devel/20200615225827.183062-1-joe.slater@windriver.com/>
-
-Always look for ../share/qemu then ../pc-bios when looking for datadir.
-
-Signed-off-by: Joe Slater <joe.slater@windriver.com>
----
-See also: https://crbug.com/1114204
-
- os-posix.c | 9 ++++++++-
- 1 file changed, 8 insertions(+), 1 deletion(-)
-
-diff --git a/os-posix.c b/os-posix.c
-index 3cd52e1e70..f77da94bf6 100644
---- a/os-posix.c
-+++ b/os-posix.c
-@@ -82,8 +82,9 @@ void os_setup_signal_handling(void)
- 
- /*
-  * Find a likely location for support files using the location of the binary.
-+ * Typically, this would be "$bindir/../share/qemu".
-  * When running from the build tree this will be "$bindir/../pc-bios".
-- * Otherwise, this is CONFIG_QEMU_DATADIR.
-+ * Otherwise, this is CONFIG_QEMU_DATADIR as constructed by configure.
-  */
- char *os_find_datadir(void)
- {
-@@ -93,6 +94,12 @@ char *os_find_datadir(void)
-     exec_dir = qemu_get_exec_dir();
-     g_return_val_if_fail(exec_dir != NULL, NULL);
- 
-+    dir = g_build_filename(exec_dir, "..", "share", "qemu", NULL);
-+    if (g_file_test(dir, G_FILE_TEST_IS_DIR)) {
-+        return g_steal_pointer(&dir);
-+    }
-+    g_free(dir);  /* no autofree this time */
-+
-     dir = g_build_filename(exec_dir, "..", "pc-bios", NULL);
-     if (g_file_test(dir, G_FILE_TEST_IS_DIR)) {
-         return g_steal_pointer(&dir);
--- 
-2.17.1
-
diff --git a/app-emulation/qemu/files/qemu-5.2.0-cleaner-werror.patch b/app-emulation/qemu/files/qemu-5.2.0-cleaner-werror.patch
new file mode 100644
index 0000000..33115f1
--- /dev/null
+++ b/app-emulation/qemu/files/qemu-5.2.0-cleaner-werror.patch
@@ -0,0 +1,40 @@
+-Wall -Wextra compains about unused arguments,
+causes safe-stack to be mis-detected.
+--- a/configure
++++ b/configure
+@@ -2293,7 +2293,7 @@ fi
+ cat > $TMPC << EOF
+ #include <stdint.h>
+ #include <stdio.h>
+-int main(int argc, char *argv[]) {
++int main(void) {
+     return printf("%zu", SIZE_MAX);
+ }
+ EOF
+@@ -4911,7 +4911,7 @@ fi
+ 
+ if test "$safe_stack" = "yes"; then
+ cat > $TMPC << EOF
+-int main(int argc, char *argv[])
++int main(void)
+ {
+ #if ! __has_feature(safe_stack)
+ #error SafeStack Disabled
+@@ -4933,7 +4933,7 @@ EOF
+   fi
+ else
+ cat > $TMPC << EOF
+-int main(int argc, char *argv[])
++int main(void)
+ {
+ #if defined(__has_feature)
+ #if __has_feature(safe_stack)
+@@ -5283,7 +5283,7 @@ static const int Z = 1;
+ #define TAUT(X) ((X) == Z)
+ #define PAREN(X, Y) (X == Y)
+ #define ID(X) (X)
+-int main(int argc, char *argv[])
++int main(void)
+ {
+     int x = 0, y = 0;
+     x = ID(x);
diff --git a/app-emulation/qemu/files/qemu-5.2.0-dce-locks.patch b/app-emulation/qemu/files/qemu-5.2.0-dce-locks.patch
new file mode 100644
index 0000000..679a9f3
--- /dev/null
+++ b/app-emulation/qemu/files/qemu-5.2.0-dce-locks.patch
@@ -0,0 +1,18 @@
+Fix CFLAGS=-Og build break. -Og fails because gcc does not enable dead
+code elimination (but does set __OPTIMIZE__ define).
+
+The fix avoids DCE reliance downstream entirely.
+
+Reported-by: Luke-Jr
+Bug: https://bugs.gentoo.org/782364
+--- a/include/qemu/lockable.h
++++ b/include/qemu/lockable.h
+@@ -28,7 +28,7 @@ struct QemuLockable {
+  * to QEMU_MAKE_LOCKABLE.  For optimized builds, we can rely on dead-code elimination
+  * from the compiler, and give the errors already at link time.
+  */
+-#if defined(__OPTIMIZE__) && !defined(__SANITIZE_ADDRESS__)
++#if defined(__OPTIMIZE__) && !defined(__SANITIZE_ADDRESS__) && defined(VALIDATE_LOCKS_VIA_DCE)
+ void unknown_lock_type(void *);
+ #else
+ static inline void unknown_lock_type(void *unused)
diff --git a/app-emulation/qemu/files/qemu-5.2.0-disable-keymap.patch b/app-emulation/qemu/files/qemu-5.2.0-disable-keymap.patch
new file mode 100644
index 0000000..4b5676b
--- /dev/null
+++ b/app-emulation/qemu/files/qemu-5.2.0-disable-keymap.patch
@@ -0,0 +1,25 @@
+Do not use system's 'qemu-keymap' in native case.
+--- a/meson.build
++++ b/meson.build
+@@ -337,6 +337,8 @@ if 'CONFIG_LIBCAP_NG' in config_host
+ endif
+ if get_option('xkbcommon').auto() and not have_system and not have_tools
+   xkbcommon = not_found
++elif get_option('xkbcommon').disabled()
++  xkbcommon = not_found
+ else
+   xkbcommon = dependency('xkbcommon', required: get_option('xkbcommon'),
+                          method: 'pkg-config', static: enable_static)
+--- a/pc-bios/keymaps/meson.build
++++ b/pc-bios/keymaps/meson.build
+@@ -33,7 +33,9 @@ keymaps = {
+   'tr': '-l tr',
+ }
+ 
+-if meson.is_cross_build() or 'CONFIG_XKBCOMMON' not in config_host
++if meson.is_cross_build()
+   native_qemu_keymap = find_program('qemu-keymap', required: false, disabler: true)
++elif get_option('xkbcommon').disabled()
++  native_qemu_keymap = not_found
+ else
+   native_qemu_keymap = qemu_keymap
diff --git a/app-emulation/qemu/files/qemu-5.2.0-fix-firmware-path.patch b/app-emulation/qemu/files/qemu-5.2.0-fix-firmware-path.patch
new file mode 100644
index 0000000..5396983
--- /dev/null
+++ b/app-emulation/qemu/files/qemu-5.2.0-fix-firmware-path.patch
@@ -0,0 +1,16 @@
+Se absolute filename in files like
+    /usr/share/qemu/firmware/50-edk2-x86_64-secure.json
+
+Bug: https://bugs.gentoo.org/766743
+Patch-by: Jannik Glückert
+--- a/pc-bios/descriptors/meson.build
++++ b/pc-bios/descriptors/meson.build
+@@ -8,7 +8,7 @@ foreach f: [
+ ]
+   configure_file(input: files(f),
+                  output: f,
+-                 configuration: {'DATADIR': qemu_datadir},
++                 configuration: {'DATADIR': get_option('prefix') / qemu_datadir},
+                  install: get_option('install_blobs'),
+                  install_dir: qemu_datadir / 'firmware')
+ endforeach
diff --git a/app-emulation/qemu/files/qemu-5.2.0-no-pie-ld.patch b/app-emulation/qemu/files/qemu-5.2.0-no-pie-ld.patch
new file mode 100644
index 0000000..f47a587
--- /dev/null
+++ b/app-emulation/qemu/files/qemu-5.2.0-no-pie-ld.patch
@@ -0,0 +1,73 @@
+From bbd2d5a8120771ec59b86a80a1f51884e0a26e53 Mon Sep 17 00:00:00 2001
+From: Christian Ehrhardt <christian.ehrhardt@canonical.com>
+Date: Mon, 14 Dec 2020 16:09:38 +0100
+Subject: [PATCH] build: -no-pie is no functional linker flag
+
+Recent binutils changes dropping unsupported options [1] caused a build
+issue in regard to the optionroms.
+
+  ld -m elf_i386 -T /<<PKGBUILDDIR>>/pc-bios/optionrom//flat.lds -no-pie \
+    -s -o multiboot.img multiboot.o
+  ld.bfd: Error: unable to disambiguate: -no-pie (did you mean --no-pie ?)
+
+This isn't really a regression in ld.bfd, filing the bug upstream
+revealed that this never worked as a ld flag [2] - in fact it seems we
+were by accident setting --nmagic).
+
+Since it never had the wanted effect this usage of LDFLAGS_NOPIE, should be
+droppable without any effect. This also is the only use-case of LDFLAGS_NOPIE
+in .mak, therefore we can also remove it from being added there.
+
+[1]: https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=983d925d
+[2]: https://sourceware.org/bugzilla/show_bug.cgi?id=27050#c5
+
+Signed-off-by: Christian Ehrhardt <christian.ehrhardt@canonical.com>
+Message-Id: <20201214150938.1297512-1-christian.ehrhardt@canonical.com>
+Cc: qemu-stable@nongnu.org
+Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
+---
+ configure                  | 3 ---
+ pc-bios/optionrom/Makefile | 1 -
+ 2 files changed, 4 deletions(-)
+
+--- a/configure
++++ b/configure
+@@ -2137,7 +2137,6 @@ EOF
+ # Check we support --no-pie first; we will need this for building ROMs.
+ if compile_prog "-Werror -fno-pie" "-no-pie"; then
+   CFLAGS_NOPIE="-fno-pie"
+-  LDFLAGS_NOPIE="-no-pie"
+ fi
+ 
+ if test "$static" = "yes"; then
+@@ -2153,7 +2152,6 @@ if test "$static" = "yes"; then
+   fi
+ elif test "$pie" = "no"; then
+   CONFIGURE_CFLAGS="$CFLAGS_NOPIE $CONFIGURE_CFLAGS"
+-  CONFIGURE_LDFLAGS="$LDFLAGS_NOPIE $CONFIGURE_LDFLAGS"
+ elif compile_prog "-Werror -fPIE -DPIE" "-pie"; then
+   CONFIGURE_CFLAGS="-fPIE -DPIE $CONFIGURE_CFLAGS"
+   CONFIGURE_LDFLAGS="-pie $CONFIGURE_LDFLAGS"
+@@ -6714,7 +6712,6 @@ echo "QEMU_CXXFLAGS=$QEMU_CXXFLAGS" >> $config_host_mak
+ echo "GLIB_CFLAGS=$glib_cflags" >> $config_host_mak
+ echo "GLIB_LIBS=$glib_libs" >> $config_host_mak
+ echo "QEMU_LDFLAGS=$QEMU_LDFLAGS" >> $config_host_mak
+-echo "LDFLAGS_NOPIE=$LDFLAGS_NOPIE" >> $config_host_mak
+ echo "LD_I386_EMULATION=$ld_i386_emulation" >> $config_host_mak
+ echo "EXESUF=$EXESUF" >> $config_host_mak
+ echo "HOST_DSOSUF=$HOST_DSOSUF" >> $config_host_mak
+diff --git a/pc-bios/optionrom/Makefile b/pc-bios/optionrom/Makefile
+index 084fc10f05..30771f8d17 100644
+--- a/pc-bios/optionrom/Makefile
++++ b/pc-bios/optionrom/Makefile
+@@ -41,7 +41,6 @@ override CFLAGS += $(call cc-option, $(Wa)-32)
+ 
+ LD_I386_EMULATION ?= elf_i386
+ override LDFLAGS = -m $(LD_I386_EMULATION) -T $(SRC_DIR)/flat.lds
+-override LDFLAGS += $(LDFLAGS_NOPIE)
+ 
+ all: multiboot.bin linuxboot.bin linuxboot_dma.bin kvmvapic.bin pvh.bin
+ 
+-- 
+2.30.0
+
diff --git a/app-emulation/qemu/files/qemu-5.2.0-strings.patch b/app-emulation/qemu/files/qemu-5.2.0-strings.patch
new file mode 100644
index 0000000..0b3dcdc
--- /dev/null
+++ b/app-emulation/qemu/files/qemu-5.2.0-strings.patch
@@ -0,0 +1,23 @@
+https://bugs.gentoo.org/759310
+--- a/configure
++++ b/configure
+@@ -521,6 +521,7 @@ ld="${LD-${cross_prefix}ld}"
+ ranlib="${RANLIB-${cross_prefix}ranlib}"
+ nm="${NM-${cross_prefix}nm}"
+ strip="${STRIP-${cross_prefix}strip}"
++strings="${STRINGS-${cross_prefix}strings}"
+ windres="${WINDRES-${cross_prefix}windres}"
+ pkg_config_exe="${PKG_CONFIG-${cross_prefix}pkg-config}"
+ query_pkg_config() {
+@@ -2265,9 +2266,9 @@ int main(int argc, char *argv[]) {
+ EOF
+ 
+ if compile_object ; then
+-    if strings -a $TMPO | grep -q BiGeNdIaN ; then
++    if $strings -a $TMPO | grep -q BiGeNdIaN ; then
+         bigendian="yes"
+-    elif strings -a $TMPO | grep -q LiTtLeEnDiAn ; then
++    elif $strings -a $TMPO | grep -q LiTtLeEnDiAn ; then
+         bigendian="no"
+     else
+         echo big/little test failed
diff --git a/app-emulation/qemu/metadata.xml b/app-emulation/qemu/metadata.xml
index 0c30c45..ec3f45a 100644
--- a/app-emulation/qemu/metadata.xml
+++ b/app-emulation/qemu/metadata.xml
@@ -18,7 +18,7 @@
 		<flag name="aio">Enables support for Linux's Async IO</flag>
 		<flag name="alsa">Enable alsa output for sound emulation</flag>
 		<flag name="capstone">Enable disassembly support with <pkg>dev-libs/capstone</pkg></flag>
-		<flag name="curl">Support ISOs / -cdrom directives vis HTTP or HTTPS.</flag>
+		<flag name="curl">Support ISOs / -cdrom directives via HTTP or HTTPS.</flag>
 		<flag name="fdt">Enables firmware device tree support</flag>
 		<flag name="glusterfs">Enables GlusterFS cluster fileystem via
 			<pkg>sys-cluster/glusterfs</pkg></flag>
@@ -29,6 +29,8 @@
 		<pkg>net-libs/libiscsi</pkg> instead of indirectly via the Linux
 		block layer that <pkg>sys-block/open-iscsi</pkg> does.</flag>
 		<flag name="io-uring">Enable efficient I/O via <pkg>sys-libs/liburing</pkg>.</flag>
+		<flag name="multipath">Enable multipath persistent reservation passthrough via
+		<pkg>sys-fs/multipath-tools</pkg>.</flag>
 		<flag name="ncurses">Enable the ncurses-based console</flag>
 		<flag name="nfs">Enable NFS support</flag>
 		<flag name="numa">Enable NUMA support</flag>
@@ -40,12 +42,12 @@
 		<flag name="rbd">Enable rados block device backend support, see http://ceph.newdream.net/wiki/QEMU-RBD</flag>
 		<flag name="sdl">Enable the SDL-based console</flag>
 		<flag name="sdl-image">SDL Image support for icons</flag>
+		<flag name="slirp">Enable TCP/IP in hypervisor via <pkg>net-libs/libslirp</pkg></flag>
 		<flag name="spice">Enable Spice protocol support via <pkg>app-emulation/spice</pkg></flag>
 		<flag name="ssh">Enable SSH based block device support via <pkg>net-libs/libssh2</pkg></flag>
 		<flag name="static-user">Build the User targets as static binaries</flag>
 		<flag name="static">Build the User and Software MMU (system) targets as well as tools as static binaries</flag>
 		<flag name="systemtap">Enable SystemTAP/DTrace tracing</flag>
-		<flag name="tci">Enable the TCG Interpreter which can speed up or slowdown workloads depending on the host and guest CPUs being emulated. In the future it will be a runtime option but for now its compile time.</flag>
 		<flag name="jemalloc">Enable jemalloc allocator support</flag>
 		<flag name="jpeg">Enable jpeg image support for the VNC console server</flag>
 		<flag name="png">Enable png image support for the VNC console server</flag>
@@ -58,11 +60,9 @@
 		<flag name="virtfs">Enable VirtFS via virtio-9p-pci / fsdev. See http://wiki.qemu.org/Documentation/9psetup</flag>
 		<flag name="vte">Enable terminal support (<pkg>x11-libs/vte</pkg>) in the GTK+ interface</flag>
 		<flag name="xattr">Add support for getting and setting POSIX extended attributes, through
-		<pkg>sys-apps/attr</pkg>. Requisite for the virtfs backend.
-	</flag>
+		<pkg>sys-apps/attr</pkg>. Requisite for the virtfs backend.</flag>
 		<flag name="xen">Enables support for Xen backends</flag>
 		<flag name="xfs">Support xfsctl() notification and syncing for XFS backed
 		virtual disks.</flag>
-		<flag name="xkb">Depend on x11-libs/libxkbcommon to build qemu-keymap tool for converting xkb keymaps</flag>
 	</use>
 </pkgmetadata>
diff --git a/app-emulation/qemu/qemu-5.0.0.ebuild b/app-emulation/qemu/qemu-5.0.0.ebuild
deleted file mode 100644
index a4e4fe0..0000000
--- a/app-emulation/qemu/qemu-5.0.0.ebuild
+++ /dev/null
@@ -1,838 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="7"
-
-PYTHON_COMPAT=( python{3_6,3_7,3_8} )
-PYTHON_REQ_USE="ncurses,readline"
-
-PLOCALES="bg de_DE fr_FR hu it tr zh_CN"
-
-FIRMWARE_ABI_VERSION="4.0.0-r50"
-
-inherit eutils flag-o-matic linux-info toolchain-funcs multilib python-r1 \
-	udev fcaps readme.gentoo-r1 pax-utils l10n xdg-utils
-
-if [[ ${PV} = *9999* ]]; then
-	EGIT_REPO_URI="https://git.qemu.org/git/qemu.git"
-	EGIT_SUBMODULES=(
-		slirp
-		tests/fp/berkeley-{test,soft}float-3
-		ui/keycodemapdb
-	)
-	inherit git-r3
-	SRC_URI=""
-else
-	SRC_URI="https://download.qemu.org/${P}.tar.xz"
-	KEYWORDS="*"
-fi
-
-DESCRIPTION="QEMU + Kernel-based Virtual Machine userland tools"
-HOMEPAGE="http://www.qemu.org http://www.linux-kvm.org"
-
-LICENSE="GPL-2 LGPL-2 BSD-2"
-SLOT="0"
-
-IUSE="accessibility +aio alsa bzip2 capstone +caps +curl debug doc
-	+fdt glusterfs gnutls gtk infiniband iscsi io-uring
-	jemalloc +jpeg kernel_linux
-	kernel_FreeBSD lzo ncurses nfs nls numa opengl +oss +pin-upstream-blobs
-	plugins +png pulseaudio python rbd sasl +seccomp sdl sdl-image selinux
-	smartcard snappy spice ssh static static-user systemtap tci test usb
-	usbredir vde +vhost-net vhost-user-fs virgl virtfs +vnc vte xattr xen
-	xfs +xkb zstd"
-
-COMMON_TARGETS="aarch64 alpha arm cris hppa i386 m68k microblaze microblazeel
-	mips mips64 mips64el mipsel nios2 or1k ppc ppc64 riscv32 riscv64 s390x
-	sh4 sh4eb sparc sparc64 x86_64 xtensa xtensaeb"
-IUSE_SOFTMMU_TARGETS="${COMMON_TARGETS}
-	lm32 moxie rx tricore unicore32"
-IUSE_USER_TARGETS="${COMMON_TARGETS}
-	aarch64_be armeb mipsn32 mipsn32el ppc64abi32 ppc64le sparc32plus
-	tilegx"
-
-use_softmmu_targets=$(printf ' qemu_softmmu_targets_%s' ${IUSE_SOFTMMU_TARGETS})
-use_user_targets=$(printf ' qemu_user_targets_%s' ${IUSE_USER_TARGETS})
-IUSE+=" ${use_softmmu_targets} ${use_user_targets}"
-
-RESTRICT="!test? ( test )"
-# Allow no targets to be built so that people can get a tools-only build.
-# Block USE flag configurations known to not work.
-REQUIRED_USE="${PYTHON_REQUIRED_USE}
-	qemu_softmmu_targets_arm? ( fdt )
-	qemu_softmmu_targets_microblaze? ( fdt )
-	qemu_softmmu_targets_mips64el? ( fdt )
-	qemu_softmmu_targets_ppc64? ( fdt )
-	qemu_softmmu_targets_ppc? ( fdt )
-	qemu_softmmu_targets_riscv32? ( fdt )
-	qemu_softmmu_targets_riscv64? ( fdt )
-	static? ( static-user !alsa !gtk !opengl !pulseaudio !plugins !rbd !snappy )
-	static-user? ( !plugins )
-	virtfs? ( xattr )
-	vte? ( gtk )
-	plugins? ( !static !static-user )
-"
-
-# Dependencies required for qemu tools (qemu-nbd, qemu-img, qemu-io, ...)
-# and user/softmmu targets (qemu-*, qemu-system-*).
-#
-# Yep, you need both libcap and libcap-ng since virtfs only uses libcap.
-#
-# The attr lib isn't always linked in (although the USE flag is always
-# respected).  This is because qemu supports using the C library's API
-# when available rather than always using the external library.
-ALL_DEPEND="
-	>=dev-libs/glib-2.0[static-libs(+)]
-	sys-libs/zlib[static-libs(+)]
-	python? ( ${PYTHON_DEPS} )
-	systemtap? ( dev-util/systemtap )
-	xattr? ( sys-apps/attr[static-libs(+)] )"
-
-# Dependencies required for qemu tools (qemu-nbd, qemu-img, qemu-io, ...)
-# softmmu targets (qemu-system-*).
-SOFTMMU_TOOLS_DEPEND="
-	dev-libs/libxml2[static-libs(+)]
-	xkb? ( x11-libs/libxkbcommon[static-libs(+)] )
-	>=x11-libs/pixman-0.28.0[static-libs(+)]
-	accessibility? (
-		app-accessibility/brltty[api]
-		app-accessibility/brltty[static-libs(+)]
-	)
-	aio? ( dev-libs/libaio[static-libs(+)] )
-	alsa? ( >=media-libs/alsa-lib-1.0.13 )
-	bzip2? ( app-arch/bzip2[static-libs(+)] )
-	capstone? ( dev-libs/capstone:= )
-	caps? ( sys-libs/libcap-ng[static-libs(+)] )
-	curl? ( >=net-misc/curl-7.15.4[static-libs(+)] )
-	fdt? ( >=sys-apps/dtc-1.5.0[static-libs(+)] )
-	glusterfs? ( >=sys-cluster/glusterfs-3.4.0[static-libs(+)] )
-	gnutls? (
-		dev-libs/nettle:=[static-libs(+)]
-		>=net-libs/gnutls-3.0:=[static-libs(+)]
-	)
-	gtk? (
-		x11-libs/gtk+:3
-		vte? ( x11-libs/vte:2.91 )
-	)
-	infiniband? (
-		sys-fabric/libibumad:=[static-libs(+)]
-		sys-fabric/libibverbs:=[static-libs(+)]
-		sys-fabric/librdmacm:=[static-libs(+)]
-	)
-	iscsi? ( net-libs/libiscsi )
-	io-uring? ( sys-libs/liburing[static-libs(+)] )
-	jemalloc? ( dev-libs/jemalloc )
-	jpeg? ( virtual/jpeg:0=[static-libs(+)] )
-	lzo? ( dev-libs/lzo:2[static-libs(+)] )
-	ncurses? (
-		sys-libs/ncurses:0=[unicode]
-		sys-libs/ncurses:0=[static-libs(+)]
-	)
-	nfs? ( >=net-fs/libnfs-1.9.3:=[static-libs(+)] )
-	numa? ( sys-process/numactl[static-libs(+)] )
-	opengl? (
-		virtual/opengl
-		media-libs/libepoxy[static-libs(+)]
-		media-libs/mesa[static-libs(+)]
-		media-libs/mesa[egl,gbm]
-	)
-	png? ( media-libs/libpng:0=[static-libs(+)] )
-	pulseaudio? ( media-sound/pulseaudio )
-	rbd? ( sys-cluster/ceph )
-	sasl? ( dev-libs/cyrus-sasl[static-libs(+)] )
-	sdl? (
-		media-libs/libsdl2[video]
-		media-libs/libsdl2[static-libs(+)]
-	)
-	sdl-image? ( media-libs/sdl2-image[static-libs(+)] )
-	seccomp? ( >=sys-libs/libseccomp-2.1.0[static-libs(+)] )
-	smartcard? ( >=app-emulation/libcacard-2.5.0[static-libs(+)] )
-	snappy? ( app-arch/snappy:= )
-	spice? (
-		>=app-emulation/spice-protocol-0.12.3
-		>=app-emulation/spice-0.12.0[static-libs(+)]
-	)
-	ssh? ( >=net-libs/libssh-0.8.6[static-libs(+)] )
-	usb? ( >=virtual/libusb-1-r2[static-libs(+)] )
-	usbredir? ( >=sys-apps/usbredir-0.6[static-libs(+)] )
-	vde? ( net-misc/vde[static-libs(+)] )
-	virgl? ( media-libs/virglrenderer[static-libs(+)] )
-	virtfs? ( sys-libs/libcap )
-	xen? ( app-emulation/xen-tools:= )
-	xfs? ( sys-fs/xfsprogs[static-libs(+)] )
-	zstd? ( >=app-arch/zstd-1.4.0[static-libs(+)] )
-"
-
-X86_FIRMWARE_DEPEND="
-	pin-upstream-blobs? (
-		~sys-firmware/edk2-ovmf-201905[binary]
-		~sys-firmware/ipxe-1.0.0_p20190728[binary]
-		~sys-firmware/seabios-1.12.0[binary,seavgabios]
-		~sys-firmware/sgabios-0.1_pre8[binary]
-	)
-	!pin-upstream-blobs? (
-		sys-firmware/edk2-ovmf
-		sys-firmware/ipxe
-		>=sys-firmware/seabios-1.10.2[seavgabios]
-		sys-firmware/sgabios
-	)"
-PPC64_FIRMWARE_DEPEND="
-	pin-upstream-blobs? (
-		~sys-firmware/seabios-1.12.0[binary,seavgabios]
-	)
-	!pin-upstream-blobs? (
-		>=sys-firmware/seabios-1.10.2[seavgabios]
-	)
-"
-
-BDEPEND="
-	$(python_gen_impl_dep)
-	dev-lang/perl
-	sys-apps/texinfo
-	virtual/pkgconfig
-	doc? ( dev-python/sphinx )
-	gtk? ( nls? ( sys-devel/gettext ) )
-	test? (
-		dev-libs/glib[utils]
-		sys-devel/bc
-	)
-"
-CDEPEND="
-	!static? (
-		${ALL_DEPEND//\[static-libs(+)]}
-		${SOFTMMU_TOOLS_DEPEND//\[static-libs(+)]}
-	)
-	qemu_softmmu_targets_i386? ( ${X86_FIRMWARE_DEPEND} )
-	qemu_softmmu_targets_x86_64? ( ${X86_FIRMWARE_DEPEND} )
-	qemu_softmmu_targets_ppc64? ( ${PPC64_FIRMWARE_DEPEND} )
-"
-DEPEND="${CDEPEND}
-	kernel_linux? ( >=sys-kernel/linux-headers-2.6.35 )
-	static? (
-		${ALL_DEPEND}
-		${SOFTMMU_TOOLS_DEPEND}
-	)
-	static-user? ( ${ALL_DEPEND} )"
-RDEPEND="${CDEPEND}
-	acct-group/kvm
-	selinux? ( sec-policy/selinux-qemu )"
-
-PATCHES=(
-	"${FILESDIR}"/${PN}-2.11.1-capstone_include_path.patch
-	"${FILESDIR}"/${PN}-4.0.0-mkdir_systemtap.patch #684902
-	"${FILESDIR}"/${PN}-4.2.0-cflags.patch
-	"${FILESDIR}"/${PN}-5.0.0-epoll-strace.patch
-	"${FILESDIR}"/${PN}-5.0.0-os_find_datadir-search.patch
-)
-
-QA_PREBUILT="
-	usr/share/qemu/hppa-firmware.img
-	usr/share/qemu/openbios-ppc
-	usr/share/qemu/openbios-sparc64
-	usr/share/qemu/openbios-sparc32
-	usr/share/qemu/palcode-clipper
-	usr/share/qemu/s390-ccw.img
-	usr/share/qemu/s390-netboot.img
-	usr/share/qemu/u-boot.e500"
-
-QA_WX_LOAD="usr/bin/qemu-i386
-	usr/bin/qemu-x86_64
-	usr/bin/qemu-alpha
-	usr/bin/qemu-arm
-	usr/bin/qemu-cris
-	usr/bin/qemu-m68k
-	usr/bin/qemu-microblaze
-	usr/bin/qemu-microblazeel
-	usr/bin/qemu-mips
-	usr/bin/qemu-mipsel
-	usr/bin/qemu-or1k
-	usr/bin/qemu-ppc
-	usr/bin/qemu-ppc64
-	usr/bin/qemu-ppc64abi32
-	usr/bin/qemu-sh4
-	usr/bin/qemu-sh4eb
-	usr/bin/qemu-sparc
-	usr/bin/qemu-sparc64
-	usr/bin/qemu-armeb
-	usr/bin/qemu-sparc32plus
-	usr/bin/qemu-s390x
-	usr/bin/qemu-unicore32"
-
-DOC_CONTENTS="If you don't have kvm compiled into the kernel, make sure you have the
-kernel module loaded before running kvm. The easiest way to ensure that the
-kernel module is loaded is to load it on boot.
-	For AMD CPUs the module is called 'kvm-amd'.
-	For Intel CPUs the module is called 'kvm-intel'.
-Please review /etc/conf.d/modules for how to load these.
-
-Make sure your user is in the 'kvm' group. Just run
-	$ gpasswd -a <USER> kvm
-then have <USER> re-login.
-
-For brand new installs, the default permissions on /dev/kvm might not let
-you access it.  You can tell udev to reset ownership/perms:
-	$ udevadm trigger -c add /dev/kvm
-
-If you want to register binfmt handlers for qemu user targets:
-For openrc:
-	# rc-update add qemu-binfmt
-For systemd:
-	# ln -s /usr/share/qemu/binfmt.d/qemu.conf /etc/binfmt.d/qemu.conf"
-
-pkg_pretend() {
-	if use kernel_linux && kernel_is lt 2 6 25; then
-		eerror "This version of KVM requres a host kernel of 2.6.25 or higher."
-	elif use kernel_linux; then
-		if ! linux_config_exists; then
-			eerror "Unable to check your kernel for KVM support"
-		else
-			CONFIG_CHECK="~KVM ~TUN ~BRIDGE"
-			ERROR_KVM="You must enable KVM in your kernel to continue"
-			ERROR_KVM_AMD="If you have an AMD CPU, you must enable KVM_AMD in"
-			ERROR_KVM_AMD+=" your kernel configuration."
-			ERROR_KVM_INTEL="If you have an Intel CPU, you must enable"
-			ERROR_KVM_INTEL+=" KVM_INTEL in your kernel configuration."
-			ERROR_TUN="You will need the Universal TUN/TAP driver compiled"
-			ERROR_TUN+=" into your kernel or loaded as a module to use the"
-			ERROR_TUN+=" virtual network device if using -net tap."
-			ERROR_BRIDGE="You will also need support for 802.1d"
-			ERROR_BRIDGE+=" Ethernet Bridging for some network configurations."
-			use vhost-net && CONFIG_CHECK+=" ~VHOST_NET"
-			ERROR_VHOST_NET="You must enable VHOST_NET to have vhost-net"
-			ERROR_VHOST_NET+=" support"
-
-			if use amd64 || use x86 || use amd64-linux || use x86-linux; then
-				if grep -q AuthenticAMD /proc/cpuinfo; then
-					CONFIG_CHECK+=" ~KVM_AMD"
-				elif grep -q GenuineIntel /proc/cpuinfo; then
-					CONFIG_CHECK+=" ~KVM_INTEL"
-				fi
-			fi
-
-			use python && CONFIG_CHECK+=" ~DEBUG_FS"
-			ERROR_DEBUG_FS="debugFS support required for kvm_stat"
-
-			# Now do the actual checks setup above
-			check_extra_config
-		fi
-	fi
-
-	if grep -qs '/usr/bin/qemu-kvm' "${EROOT}"/etc/libvirt/qemu/*.xml; then
-		eerror "The kvm/qemu-kvm wrappers no longer exist, but your libvirt"
-		eerror "instances are still pointing to it.  Please update your"
-		eerror "configs in /etc/libvirt/qemu/ to use the -enable-kvm flag"
-		eerror "and the right system binary (e.g. qemu-system-x86_64)."
-		die "update your virt configs to not use qemu-kvm"
-	fi
-}
-
-# Sanity check to make sure target lists are kept up-to-date.
-check_targets() {
-	local var=$1 mak=$2
-	local detected sorted
-
-	pushd "${S}"/default-configs >/dev/null || die
-
-	# Force C locale until glibc is updated. #564936
-	detected=$(echo $(printf '%s\n' *-${mak}.mak | sed "s:-${mak}.mak::" | LC_COLLATE=C sort -u))
-	sorted=$(echo $(printf '%s\n' ${!var} | LC_COLLATE=C sort -u))
-	if [[ ${sorted} != "${detected}" ]] ; then
-		eerror "The ebuild needs to be kept in sync."
-		eerror "${var}: ${sorted}"
-		eerror "$(printf '%-*s' ${#var} configure): ${detected}"
-		die "sync ${var} to the list of targets"
-	fi
-
-	popd >/dev/null
-}
-
-handle_locales() {
-	# Make sure locale list is kept up-to-date.
-	local detected sorted
-	detected=$(echo $(cd po && printf '%s\n' *.po | grep -v messages.po | sed 's:.po$::' | sort -u))
-	sorted=$(echo $(printf '%s\n' ${PLOCALES} | sort -u))
-	if [[ ${sorted} != "${detected}" ]] ; then
-		eerror "The ebuild needs to be kept in sync."
-		eerror "PLOCALES: ${sorted}"
-		eerror " po/*.po: ${detected}"
-		die "sync PLOCALES"
-	fi
-
-	# Deal with selective install of locales.
-	if use nls ; then
-		# Delete locales the user does not want. #577814
-		rm_loc() { rm po/$1.po || die; }
-		l10n_for_each_disabled_locale_do rm_loc
-	else
-		# Cheap hack to disable gettext .mo generation.
-		rm -f po/*.po
-	fi
-}
-
-src_prepare() {
-	check_targets IUSE_SOFTMMU_TARGETS softmmu
-	check_targets IUSE_USER_TARGETS linux-user
-
-	default
-
-	# Use correct toolchain to fix cross-compiling
-	tc-export AR AS LD NM OBJCOPY PKG_CONFIG RANLIB
-	export WINDRES=${CHOST}-windres
-
-	# Verbose builds
-	MAKEOPTS+=" V=1"
-
-	# Run after we've applied all patches.
-	handle_locales
-
-	# Remove bundled copy of libfdt
-	rm -r dtc || die
-}
-
-##
-# configures qemu based on the build directory and the build type
-# we are using.
-#
-qemu_src_configure() {
-	debug-print-function ${FUNCNAME} "$@"
-
-	local buildtype=$1
-	local builddir="${S}/${buildtype}-build"
-
-	mkdir "${builddir}"
-
-	local conf_opts=(
-		--prefix=/usr
-		--sysconfdir=/etc
-		--bindir=/usr/bin
-		--libdir=/usr/$(get_libdir)
-		--datadir=/usr/share
-		--docdir=/usr/share/doc/${PF}/html
-		--mandir=/usr/share/man
-		--with-confsuffix=/qemu
-		--localstatedir=/var
-		--disable-bsd-user
-		--disable-guest-agent
-		--disable-strip
-		--disable-werror
-		# We support gnutls/nettle for crypto operations.  It is possible
-		# to use gcrypt when gnutls/nettle are disabled (but not when they
-		# are enabled), but it's not really worth the hassle.  Disable it
-		# all the time to avoid automatically detecting it. #568856
-		--disable-gcrypt
-		--python="${PYTHON}"
-		--cc="$(tc-getCC)"
-		--cxx="$(tc-getCXX)"
-		--host-cc="$(tc-getBUILD_CC)"
-		$(use_enable debug debug-info)
-		$(use_enable debug debug-tcg)
-		$(use_enable doc docs)
-		$(use_enable plugins)
-		$(use_enable tci tcg-interpreter)
-		$(use_enable xattr attr)
-	)
-
-	# Disable options not used by user targets. This simplifies building
-	# static user targets (USE=static-user) considerably.
-	conf_notuser() {
-		if [[ ${buildtype} == "user" ]] ; then
-			echo "--disable-${2:-$1}"
-		else
-			use_enable "$@"
-		fi
-	}
-	conf_opts+=(
-		$(conf_notuser accessibility brlapi)
-		$(conf_notuser aio linux-aio)
-		$(conf_notuser bzip2)
-		$(conf_notuser capstone)
-		$(conf_notuser caps cap-ng)
-		$(conf_notuser curl)
-		$(conf_notuser fdt)
-		$(conf_notuser glusterfs)
-		$(conf_notuser gnutls)
-		$(conf_notuser gnutls nettle)
-		$(conf_notuser gtk)
-		$(conf_notuser infiniband rdma)
-		$(conf_notuser iscsi libiscsi)
-		$(conf_notuser io-uring linux-io-uring)
-		$(conf_notuser jemalloc jemalloc)
-		$(conf_notuser jpeg vnc-jpeg)
-		$(conf_notuser kernel_linux kvm)
-		$(conf_notuser lzo)
-		$(conf_notuser ncurses curses)
-		$(conf_notuser nfs libnfs)
-		$(conf_notuser numa)
-		$(conf_notuser opengl)
-		$(conf_notuser png vnc-png)
-		$(conf_notuser rbd)
-		$(conf_notuser sasl vnc-sasl)
-		$(conf_notuser sdl)
-		$(conf_notuser sdl-image)
-		$(conf_notuser seccomp)
-		$(conf_notuser smartcard)
-		$(conf_notuser snappy)
-		$(conf_notuser spice)
-		$(conf_notuser ssh libssh)
-		$(conf_notuser usb libusb)
-		$(conf_notuser usbredir usb-redir)
-		$(conf_notuser vde)
-		$(conf_notuser vhost-net)
-		$(conf_notuser vhost-user-fs)
-		$(conf_notuser virgl virglrenderer)
-		$(conf_notuser virtfs)
-		$(conf_notuser vnc)
-		$(conf_notuser vte)
-		$(conf_notuser xen)
-		$(conf_notuser xen xen-pci-passthrough)
-		$(conf_notuser xfs xfsctl)
-		$(conf_notuser xkb xkbcommon)
-		$(conf_notuser zstd)
-	)
-
-	if [[ ${buildtype} == "user" ]] ; then
-		conf_opts+=( --disable-libxml2 )
-	else
-		conf_opts+=( --enable-libxml2 )
-	fi
-
-	if [[ ! ${buildtype} == "user" ]] ; then
-		# audio options
-		local audio_opts=(
-			# Note: backend order matters here: #716202
-			# We iterate from higher-level to lower level.
-			$(usex pulseaudio pa "")
-			$(usev sdl)
-			$(usev alsa)
-			$(usev oss)
-		)
-		conf_opts+=(
-			--audio-drv-list=$(printf "%s," "${audio_opts[@]}")
-		)
-	fi
-
-	case ${buildtype} in
-	user)
-		conf_opts+=(
-			--enable-linux-user
-			--disable-system
-			--disable-blobs
-			--disable-tools
-		)
-		local static_flag="static-user"
-		;;
-	softmmu)
-		conf_opts+=(
-			--disable-linux-user
-			--enable-system
-			--disable-tools
-		)
-		local static_flag="static"
-		;;
-	tools)
-		conf_opts+=(
-			--disable-linux-user
-			--disable-system
-			--disable-blobs
-			--enable-tools
-		)
-		local static_flag="static"
-		;;
-	esac
-
-	local targets="${buildtype}_targets"
-	[[ -n ${targets} ]] && conf_opts+=( --target-list="${!targets}" )
-
-	# Add support for SystemTAP
-	use systemtap && conf_opts+=( --enable-trace-backend=dtrace )
-
-	# We always want to attempt to build with PIE support as it results
-	# in a more secure binary. But it doesn't work with static or if
-	# the current GCC doesn't have PIE support.
-	if use ${static_flag}; then
-		conf_opts+=( --static --disable-pie )
-	else
-		tc-enables-pie && conf_opts+=( --enable-pie )
-	fi
-
-	echo "../configure ${conf_opts[*]}"
-	cd "${builddir}"
-	../configure "${conf_opts[@]}" || die "configure failed"
-
-	# FreeBSD's kernel does not support QEMU assigning/grabbing
-	# host USB devices yet
-	use kernel_FreeBSD && \
-		sed -i -E -e "s|^(HOST_USB=)bsd|\1stub|" "${S}"/config-host.mak
-}
-
-src_configure() {
-	local target
-
-	python_setup
-
-	softmmu_targets= softmmu_bins=()
-	user_targets= user_bins=()
-
-	for target in ${IUSE_SOFTMMU_TARGETS} ; do
-		if use "qemu_softmmu_targets_${target}"; then
-			softmmu_targets+=",${target}-softmmu"
-			softmmu_bins+=( "qemu-system-${target}" )
-		fi
-	done
-
-	for target in ${IUSE_USER_TARGETS} ; do
-		if use "qemu_user_targets_${target}"; then
-			user_targets+=",${target}-linux-user"
-			user_bins+=( "qemu-${target}" )
-		fi
-	done
-
-	softmmu_targets=${softmmu_targets#,}
-	user_targets=${user_targets#,}
-
-	[[ -n ${softmmu_targets} ]] && qemu_src_configure "softmmu"
-	[[ -n ${user_targets}    ]] && qemu_src_configure "user"
-	qemu_src_configure "tools"
-}
-
-src_compile() {
-	if [[ -n ${user_targets} ]]; then
-		cd "${S}/user-build"
-		default
-	fi
-
-	if [[ -n ${softmmu_targets} ]]; then
-		cd "${S}/softmmu-build"
-		default
-	fi
-
-	cd "${S}/tools-build"
-	default
-}
-
-src_test() {
-	if [[ -n ${softmmu_targets} ]]; then
-		cd "${S}/softmmu-build"
-		pax-mark m */qemu-system-* #515550
-		emake check
-	fi
-}
-
-qemu_python_install() {
-	python_domodule "${S}/python/qemu"
-
-	python_doscript "${S}/scripts/kvm/vmxcap"
-	python_doscript "${S}/scripts/qmp/qmp-shell"
-	python_doscript "${S}/scripts/qmp/qemu-ga-client"
-}
-
-# Generate binfmt support files.
-#   - /etc/init.d/qemu-binfmt script which registers the user handlers (openrc)
-#   - /usr/share/qemu/binfmt.d/qemu.conf (for use with systemd-binfmt)
-generate_initd() {
-	local out="${T}/qemu-binfmt"
-	local out_systemd="${T}/qemu.conf"
-	local d="${T}/binfmt.d"
-
-	einfo "Generating qemu binfmt scripts and configuration files"
-
-	# Generate the debian fragments first.
-	mkdir -p "${d}"
-	"${S}"/scripts/qemu-binfmt-conf.sh \
-		--debian \
-		--exportdir "${d}" \
-		--qemu-path "${EPREFIX}/usr/bin" \
-		|| die
-	# Then turn the fragments into a shell script we can source.
-	sed -E -i \
-		-e 's:^([^ ]+) (.*)$:\1="\2":' \
-		"${d}"/* || die
-
-	# Generate the init.d script by assembling the fragments from above.
-	local f qcpu package interpreter magic mask
-	cat "${FILESDIR}"/qemu-binfmt.initd.head >"${out}" || die
-	for f in "${d}"/qemu-* ; do
-		source "${f}"
-
-		# Normalize the cpu logic like we do in the init.d for the native cpu.
-		qcpu=${package#qemu-}
-		case ${qcpu} in
-		arm*)   qcpu="arm";;
-		mips*)  qcpu="mips";;
-		ppc*)   qcpu="ppc";;
-		s390*)  qcpu="s390";;
-		sh*)    qcpu="sh";;
-		sparc*) qcpu="sparc";;
-		esac
-
-		# we use 'printf' here to be portable across 'sh'
-		# implementations: #679168
-		cat <<EOF >>"${out}"
-	if [ "\${cpu}" != "${qcpu}" -a -x "${interpreter}" ] ; then
-		printf '%s\n' ':${package}:M::${magic}:${mask}:${interpreter}:'"\${QEMU_BINFMT_FLAGS}" >/proc/sys/fs/binfmt_misc/register
-	fi
-EOF
-
-		echo ":${package}:M::${magic}:${mask}:${interpreter}:OC" >>"${out_systemd}"
-
-	done
-	cat "${FILESDIR}"/qemu-binfmt.initd.tail >>"${out}" || die
-}
-
-src_install() {
-	if [[ -n ${user_targets} ]]; then
-		cd "${S}/user-build"
-		emake DESTDIR="${ED}" install
-
-		# Install binfmt handler init script for user targets.
-		generate_initd
-		doinitd "${T}/qemu-binfmt"
-
-		# Install binfmt/qemu.conf.
-		insinto "/usr/share/qemu/binfmt.d"
-		doins "${T}/qemu.conf"
-	fi
-
-	if [[ -n ${softmmu_targets} ]]; then
-		cd "${S}/softmmu-build"
-		emake DESTDIR="${ED}" install
-
-		# This might not exist if the test failed. #512010
-		[[ -e check-report.html ]] && dodoc check-report.html
-
-		if use kernel_linux; then
-			udev_newrules "${FILESDIR}"/65-kvm.rules-r1 65-kvm.rules
-		fi
-
-		if use python; then
-			python_foreach_impl qemu_python_install
-		fi
-	fi
-
-	cd "${S}/tools-build"
-	emake DESTDIR="${ED}" install
-
-	# Disable mprotect on the qemu binaries as they use JITs to be fast #459348
-	pushd "${ED}"/usr/bin >/dev/null
-	pax-mark mr "${softmmu_bins[@]}" "${user_bins[@]}" # bug 575594
-	popd >/dev/null
-
-	# Install config file example for qemu-bridge-helper
-	insinto "/etc/qemu"
-	doins "${FILESDIR}/bridge.conf"
-
-	cd "${S}"
-	dodoc Changelog MAINTAINERS docs/specs/pci-ids.txt
-	newdoc pc-bios/README README.pc-bios
-
-	# Disallow stripping of prebuilt firmware files.
-	dostrip -x ${QA_PREBUILT}
-
-	if [[ -n ${softmmu_targets} ]]; then
-		# Remove SeaBIOS since we're using the SeaBIOS packaged one
-		rm "${ED}/usr/share/qemu/bios.bin"
-		rm "${ED}/usr/share/qemu/bios-256k.bin"
-		if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
-			dosym ../seabios/bios.bin /usr/share/qemu/bios.bin
-			dosym ../seabios/bios-256k.bin /usr/share/qemu/bios-256k.bin
-		fi
-
-		# Remove vgabios since we're using the seavgabios packaged one
-		rm "${ED}/usr/share/qemu/vgabios.bin"
-		rm "${ED}/usr/share/qemu/vgabios-cirrus.bin"
-		rm "${ED}/usr/share/qemu/vgabios-qxl.bin"
-		rm "${ED}/usr/share/qemu/vgabios-stdvga.bin"
-		rm "${ED}/usr/share/qemu/vgabios-virtio.bin"
-		rm "${ED}/usr/share/qemu/vgabios-vmware.bin"
-		# PPC64 loads vgabios-stdvga
-		if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386 || use qemu_softmmu_targets_ppc64; then
-			dosym ../seavgabios/vgabios-isavga.bin /usr/share/qemu/vgabios.bin
-			dosym ../seavgabios/vgabios-cirrus.bin /usr/share/qemu/vgabios-cirrus.bin
-			dosym ../seavgabios/vgabios-qxl.bin /usr/share/qemu/vgabios-qxl.bin
-			dosym ../seavgabios/vgabios-stdvga.bin /usr/share/qemu/vgabios-stdvga.bin
-			dosym ../seavgabios/vgabios-virtio.bin /usr/share/qemu/vgabios-virtio.bin
-			dosym ../seavgabios/vgabios-vmware.bin /usr/share/qemu/vgabios-vmware.bin
-		fi
-
-		# Remove sgabios since we're using the sgabios packaged one
-		rm "${ED}/usr/share/qemu/sgabios.bin"
-		if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
-			dosym ../sgabios/sgabios.bin /usr/share/qemu/sgabios.bin
-		fi
-
-		# Remove iPXE since we're using the iPXE packaged one
-		rm "${ED}"/usr/share/qemu/pxe-*.rom
-		if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
-			dosym ../ipxe/8086100e.rom /usr/share/qemu/pxe-e1000.rom
-			dosym ../ipxe/80861209.rom /usr/share/qemu/pxe-eepro100.rom
-			dosym ../ipxe/10500940.rom /usr/share/qemu/pxe-ne2k_pci.rom
-			dosym ../ipxe/10222000.rom /usr/share/qemu/pxe-pcnet.rom
-			dosym ../ipxe/10ec8139.rom /usr/share/qemu/pxe-rtl8139.rom
-			dosym ../ipxe/1af41000.rom /usr/share/qemu/pxe-virtio.rom
-		fi
-	fi
-
-	DISABLE_AUTOFORMATTING=true
-	readme.gentoo_create_doc
-}
-
-firmware_abi_change() {
-	local pv
-	for pv in ${REPLACING_VERSIONS}; do
-		if ver_test $pv -lt ${FIRMWARE_ABI_VERSION}; then
-			return 0
-		fi
-	done
-	return 1
-}
-
-pkg_postinst() {
-	if [[ -n ${softmmu_targets} ]] && use kernel_linux; then
-		udev_reload
-	fi
-
-	xdg_icon_cache_update
-
-	[[ -z ${EPREFIX} ]] && [[ -f ${EROOT}/usr/libexec/qemu-bridge-helper ]] && \
-		fcaps cap_net_admin ${EROOT}/usr/libexec/qemu-bridge-helper
-
-	DISABLE_AUTOFORMATTING=true
-	readme.gentoo_print_elog
-
-	if use pin-upstream-blobs && firmware_abi_change; then
-		ewarn "This version of qemu pins new versions of firmware blobs:"
-		ewarn "	$(best_version sys-firmware/edk2-ovmf)"
-		ewarn "	$(best_version sys-firmware/ipxe)"
-		ewarn "	$(best_version sys-firmware/seabios)"
-		ewarn "	$(best_version sys-firmware/sgabios)"
-		ewarn "This might break resume of hibernated guests (started with a different"
-		ewarn "firmware version) and live migration to/from qemu versions with different"
-		ewarn "firmware. Please (cold) restart all running guests. For functional"
-		ewarn "guest migration ensure that all"
-		ewarn "hosts run at least"
-		ewarn "	app-emulation/qemu-${FIRMWARE_ABI_VERSION}."
-	fi
-}
-
-pkg_info() {
-	echo "Using:"
-	echo "  $(best_version app-emulation/spice-protocol)"
-	echo "  $(best_version sys-firmware/edk2-ovmf)"
-	if has_version 'sys-firmware/edk2-ovmf[binary]'; then
-		echo "    USE=binary"
-	else
-		echo "    USE=''"
-	fi
-	echo "  $(best_version sys-firmware/ipxe)"
-	echo "  $(best_version sys-firmware/seabios)"
-	if has_version 'sys-firmware/seabios[binary]'; then
-		echo "    USE=binary"
-	else
-		echo "    USE=''"
-	fi
-	echo "  $(best_version sys-firmware/sgabios)"
-}
-
-pkg_postrm() {
-	xdg_icon_cache_update
-}
diff --git a/app-emulation/qemu/qemu-5.2.0-r50.ebuild b/app-emulation/qemu/qemu-5.2.0-r50.ebuild
new file mode 100644
index 0000000..db31eb7
--- /dev/null
+++ b/app-emulation/qemu/qemu-5.2.0-r50.ebuild
@@ -0,0 +1,871 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="7"
+
+PYTHON_COMPAT=( python3_{6,7,8} )
+PYTHON_REQ_USE="ncurses,readline"
+
+FIRMWARE_ABI_VERSION="5.2.0-r50"
+
+inherit eutils linux-info toolchain-funcs multilib python-r1
+inherit udev fcaps readme.gentoo-r1 pax-utils l10n xdg-utils
+inherit flag-o-matic
+
+if [[ ${PV} = *9999* ]]; then
+	EGIT_REPO_URI="https://git.qemu.org/git/qemu.git"
+	EGIT_SUBMODULES=(
+		meson
+		tests/fp/berkeley-softfloat-3
+		tests/fp/berkeley-testfloat-3
+		ui/keycodemapdb
+	)
+	inherit git-r3
+	SRC_URI=""
+else
+	SRC_URI="https://download.qemu.org/${P}.tar.xz"
+	KEYWORDS="*"
+fi
+
+DESCRIPTION="QEMU + Kernel-based Virtual Machine userland tools"
+HOMEPAGE="http://www.qemu.org http://www.linux-kvm.org"
+
+LICENSE="GPL-2 LGPL-2 BSD-2"
+SLOT="0"
+
+IUSE="accessibility +aio alsa bzip2 capstone +caps +curl debug +doc
+	+fdt glusterfs gnutls gtk infiniband iscsi io-uring
+	jack jemalloc +jpeg kernel_linux
+	kernel_FreeBSD lzo multipath
+	ncurses nfs nls numa opengl +oss +pin-upstream-blobs
+	plugins +png pulseaudio python rbd sasl +seccomp sdl sdl-image selinux
+	+slirp
+	smartcard snappy spice ssh static static-user systemtap test udev usb
+	usbredir vde +vhost-net vhost-user-fs virgl virtfs +vnc vte xattr xen
+	xfs zstd"
+
+COMMON_TARGETS="aarch64 alpha arm cris hppa i386 m68k microblaze microblazeel
+	mips mips64 mips64el mipsel nios2 or1k ppc ppc64 riscv32 riscv64 s390x
+	sh4 sh4eb sparc sparc64 x86_64 xtensa xtensaeb"
+IUSE_SOFTMMU_TARGETS="${COMMON_TARGETS}
+	avr lm32 moxie rx tricore unicore32"
+IUSE_USER_TARGETS="${COMMON_TARGETS}
+	aarch64_be armeb mipsn32 mipsn32el ppc64abi32 ppc64le sparc32plus
+	tilegx"
+
+use_softmmu_targets=$(printf ' qemu_softmmu_targets_%s' ${IUSE_SOFTMMU_TARGETS})
+use_user_targets=$(printf ' qemu_user_targets_%s' ${IUSE_USER_TARGETS})
+IUSE+=" ${use_softmmu_targets} ${use_user_targets}"
+
+RESTRICT="!test? ( test )"
+# Allow no targets to be built so that people can get a tools-only build.
+# Block USE flag configurations known to not work.
+REQUIRED_USE="${PYTHON_REQUIRED_USE}
+	qemu_softmmu_targets_arm? ( fdt )
+	qemu_softmmu_targets_microblaze? ( fdt )
+	qemu_softmmu_targets_mips64el? ( fdt )
+	qemu_softmmu_targets_ppc64? ( fdt )
+	qemu_softmmu_targets_ppc? ( fdt )
+	qemu_softmmu_targets_riscv32? ( fdt )
+	qemu_softmmu_targets_riscv64? ( fdt )
+	static? ( static-user !alsa !gtk !jack !opengl !pulseaudio !plugins !rbd !snappy )
+	static-user? ( !plugins )
+	vhost-user-fs? ( caps seccomp )
+	virtfs? ( caps xattr )
+	vte? ( gtk )
+	multipath? ( udev )
+	plugins? ( !static !static-user )
+"
+
+# Dependencies required for qemu tools (qemu-nbd, qemu-img, qemu-io, ...)
+# and user/softmmu targets (qemu-*, qemu-system-*).
+#
+# Yep, you need both libcap and libcap-ng since virtfs only uses libcap.
+#
+# The attr lib isn't always linked in (although the USE flag is always
+# respected).  This is because qemu supports using the C library's API
+# when available rather than always using the external library.
+ALL_DEPEND="
+	>=dev-libs/glib-2.0[static-libs(+)]
+	sys-libs/zlib[static-libs(+)]
+	python? ( ${PYTHON_DEPS} )
+	systemtap? ( dev-util/systemtap )
+	xattr? ( sys-apps/attr[static-libs(+)] )"
+
+# Dependencies required for qemu tools (qemu-nbd, qemu-img, qemu-io, ...)
+# softmmu targets (qemu-system-*).
+SOFTMMU_TOOLS_DEPEND="
+	dev-libs/libxml2[static-libs(+)]
+	>=x11-libs/pixman-0.28.0[static-libs(+)]
+	accessibility? (
+		app-accessibility/brltty[api]
+		app-accessibility/brltty[static-libs(+)]
+	)
+	aio? ( dev-libs/libaio[static-libs(+)] )
+	alsa? ( >=media-libs/alsa-lib-1.0.13 )
+	bzip2? ( app-arch/bzip2[static-libs(+)] )
+	capstone? ( dev-libs/capstone:= )
+	caps? ( sys-libs/libcap-ng[static-libs(+)] )
+	curl? ( >=net-misc/curl-7.15.4[static-libs(+)] )
+	fdt? ( >=sys-apps/dtc-1.5.0[static-libs(+)] )
+	glusterfs? ( >=sys-cluster/glusterfs-3.4.0[static-libs(+)] )
+	gnutls? (
+		dev-libs/nettle:=[static-libs(+)]
+		>=net-libs/gnutls-3.0:=[static-libs(+)]
+	)
+	gtk? (
+		x11-libs/gtk+:3
+		vte? ( x11-libs/vte:2.91 )
+	)
+	infiniband? (
+		sys-fabric/libibumad:=[static-libs(+)]
+		sys-fabric/libibverbs:=[static-libs(+)]
+		sys-fabric/librdmacm:=[static-libs(+)]
+	)
+	iscsi? ( net-libs/libiscsi )
+	io-uring? ( sys-libs/liburing:=[static-libs(+)] )
+	jack? ( virtual/jack )
+	jemalloc? ( dev-libs/jemalloc )
+	jpeg? ( virtual/jpeg:0=[static-libs(+)] )
+	lzo? ( dev-libs/lzo:2[static-libs(+)] )
+	multipath? ( sys-fs/multipath-tools )
+	ncurses? (
+		sys-libs/ncurses:0=[unicode]
+		sys-libs/ncurses:0=[static-libs(+)]
+	)
+	nfs? ( >=net-fs/libnfs-1.9.3:=[static-libs(+)] )
+	numa? ( sys-process/numactl[static-libs(+)] )
+	opengl? (
+		virtual/opengl
+		media-libs/libepoxy[static-libs(+)]
+		media-libs/mesa[static-libs(+)]
+		media-libs/mesa[egl,gbm]
+	)
+	png? ( media-libs/libpng:0=[static-libs(+)] )
+	pulseaudio? ( media-sound/pulseaudio )
+	rbd? ( sys-cluster/ceph )
+	sasl? ( dev-libs/cyrus-sasl[static-libs(+)] )
+	sdl? (
+		media-libs/libsdl2[video]
+		media-libs/libsdl2[static-libs(+)]
+	)
+	sdl-image? ( media-libs/sdl2-image[static-libs(+)] )
+	seccomp? ( >=sys-libs/libseccomp-2.1.0[static-libs(+)] )
+	slirp? ( net-libs/libslirp[static-libs(+)] )
+	smartcard? ( >=app-emulation/libcacard-2.5.0[static-libs(+)] )
+	snappy? ( app-arch/snappy:= )
+	spice? (
+		>=app-emulation/spice-protocol-0.12.3
+		>=app-emulation/spice-0.12.0[static-libs(+)]
+	)
+	ssh? ( >=net-libs/libssh-0.8.6[static-libs(+)] )
+	udev? ( virtual/libudev[static-libs(+)] )
+	usb? ( >=virtual/libusb-1-r2[static-libs(+)] )
+	usbredir? ( >=sys-apps/usbredir-0.6[static-libs(+)] )
+	vde? ( net-misc/vde[static-libs(+)] )
+	virgl? ( media-libs/virglrenderer[static-libs(+)] )
+	virtfs? ( sys-libs/libcap )
+	xen? ( app-emulation/xen-tools:= )
+	xfs? ( sys-fs/xfsprogs[static-libs(+)] )
+	zstd? ( >=app-arch/zstd-1.4.0[static-libs(+)] )
+"
+
+SEABIOS_VERSION="1.14.0"
+
+X86_FIRMWARE_DEPEND="
+	pin-upstream-blobs? (
+		~sys-firmware/edk2-ovmf-202008[binary]
+		~sys-firmware/ipxe-1.21.1[binary,qemu]
+		~sys-firmware/seabios-${SEABIOS_VERSION}[binary,seavgabios]
+		~sys-firmware/sgabios-0.1_pre10[binary]
+	)
+	!pin-upstream-blobs? (
+		sys-firmware/edk2-ovmf
+		sys-firmware/ipxe[qemu]
+		>=sys-firmware/seabios-${SEABIOS_VERSION}[seavgabios]
+		sys-firmware/sgabios
+	)"
+PPC_FIRMWARE_DEPEND="
+	pin-upstream-blobs? (
+		~sys-firmware/seabios-${SEABIOS_VERSION}[binary,seavgabios]
+	)
+	!pin-upstream-blobs? (
+		>=sys-firmware/seabios-${SEABIOS_VERSION}[seavgabios]
+	)
+"
+
+BDEPEND="
+	$(python_gen_impl_dep)
+	dev-lang/perl
+	sys-apps/texinfo
+	virtual/pkgconfig
+	doc? ( dev-python/sphinx )
+	gtk? ( nls? ( sys-devel/gettext ) )
+	test? (
+		dev-libs/glib[utils]
+		sys-devel/bc
+	)
+"
+CDEPEND="
+	!static? (
+		${ALL_DEPEND//\[static-libs(+)]}
+		${SOFTMMU_TOOLS_DEPEND//\[static-libs(+)]}
+	)
+	qemu_softmmu_targets_i386? ( ${X86_FIRMWARE_DEPEND} )
+	qemu_softmmu_targets_x86_64? ( ${X86_FIRMWARE_DEPEND} )
+	qemu_softmmu_targets_ppc? ( ${PPC_FIRMWARE_DEPEND} )
+	qemu_softmmu_targets_ppc64? ( ${PPC_FIRMWARE_DEPEND} )
+"
+DEPEND="${CDEPEND}
+	kernel_linux? ( >=sys-kernel/linux-headers-2.6.35 )
+	static? (
+		${ALL_DEPEND}
+		${SOFTMMU_TOOLS_DEPEND}
+	)
+	static-user? ( ${ALL_DEPEND} )"
+RDEPEND="${CDEPEND}
+	acct-group/kvm
+	selinux? ( sec-policy/selinux-qemu )"
+
+PATCHES=(
+	"${FILESDIR}"/${PN}-2.11.1-capstone_include_path.patch
+	"${FILESDIR}"/${PN}-5.2.0-cleaner-werror.patch
+	"${FILESDIR}"/${PN}-5.2.0-disable-keymap.patch
+	"${FILESDIR}"/${PN}-5.2.0-strings.patch
+	"${FILESDIR}"/${PN}-5.2.0-fix-firmware-path.patch
+	"${FILESDIR}"/${PN}-5.2.0-no-pie-ld.patch
+	"${FILESDIR}"/${PN}-5.2.0-dce-locks.patch
+)
+
+QA_PREBUILT="
+	usr/share/qemu/hppa-firmware.img
+	usr/share/qemu/openbios-ppc
+	usr/share/qemu/openbios-sparc64
+	usr/share/qemu/openbios-sparc32
+	usr/share/qemu/opensbi-riscv64-generic-fw_dynamic.elf
+	usr/share/qemu/opensbi-riscv32-generic-fw_dynamic.elf
+	usr/share/qemu/palcode-clipper
+	usr/share/qemu/s390-ccw.img
+	usr/share/qemu/s390-netboot.img
+	usr/share/qemu/u-boot.e500
+"
+
+QA_WX_LOAD="usr/bin/qemu-i386
+	usr/bin/qemu-x86_64
+	usr/bin/qemu-alpha
+	usr/bin/qemu-arm
+	usr/bin/qemu-cris
+	usr/bin/qemu-m68k
+	usr/bin/qemu-microblaze
+	usr/bin/qemu-microblazeel
+	usr/bin/qemu-mips
+	usr/bin/qemu-mipsel
+	usr/bin/qemu-or1k
+	usr/bin/qemu-ppc
+	usr/bin/qemu-ppc64
+	usr/bin/qemu-ppc64abi32
+	usr/bin/qemu-sh4
+	usr/bin/qemu-sh4eb
+	usr/bin/qemu-sparc
+	usr/bin/qemu-sparc64
+	usr/bin/qemu-armeb
+	usr/bin/qemu-sparc32plus
+	usr/bin/qemu-s390x
+	usr/bin/qemu-unicore32
+"
+
+DOC_CONTENTS="If you don't have kvm compiled into the kernel, make sure you have the
+kernel module loaded before running kvm. The easiest way to ensure that the
+kernel module is loaded is to load it on boot.
+	For AMD CPUs the module is called 'kvm-amd'.
+	For Intel CPUs the module is called 'kvm-intel'.
+Please review /etc/conf.d/modules for how to load these.
+
+Make sure your user is in the 'kvm' group. Just run
+	$ gpasswd -a <USER> kvm
+then have <USER> re-login.
+
+For brand new installs, the default permissions on /dev/kvm might not let
+you access it.  You can tell udev to reset ownership/perms:
+	$ udevadm trigger -c add /dev/kvm
+
+If you want to register binfmt handlers for qemu user targets:
+For openrc:
+	# rc-update add qemu-binfmt
+For systemd:
+	# ln -s /usr/share/qemu/binfmt.d/qemu.conf /etc/binfmt.d/qemu.conf"
+
+pkg_pretend() {
+	if use kernel_linux && kernel_is lt 2 6 25; then
+		eerror "This version of KVM requires a host kernel of 2.6.25 or higher."
+	elif use kernel_linux; then
+		if ! linux_config_exists; then
+			eerror "Unable to check your kernel for KVM support"
+		else
+			CONFIG_CHECK="~KVM ~TUN ~BRIDGE"
+			ERROR_KVM="You must enable KVM in your kernel to continue"
+			ERROR_KVM_AMD="If you have an AMD CPU, you must enable KVM_AMD in"
+			ERROR_KVM_AMD+=" your kernel configuration."
+			ERROR_KVM_INTEL="If you have an Intel CPU, you must enable"
+			ERROR_KVM_INTEL+=" KVM_INTEL in your kernel configuration."
+			ERROR_TUN="You will need the Universal TUN/TAP driver compiled"
+			ERROR_TUN+=" into your kernel or loaded as a module to use the"
+			ERROR_TUN+=" virtual network device if using -net tap."
+			ERROR_BRIDGE="You will also need support for 802.1d"
+			ERROR_BRIDGE+=" Ethernet Bridging for some network configurations."
+			use vhost-net && CONFIG_CHECK+=" ~VHOST_NET"
+			ERROR_VHOST_NET="You must enable VHOST_NET to have vhost-net"
+			ERROR_VHOST_NET+=" support"
+
+			if use amd64 || use x86 || use amd64-linux || use x86-linux; then
+				if grep -q AuthenticAMD /proc/cpuinfo; then
+					CONFIG_CHECK+=" ~KVM_AMD"
+				elif grep -q GenuineIntel /proc/cpuinfo; then
+					CONFIG_CHECK+=" ~KVM_INTEL"
+				fi
+			fi
+
+			use python && CONFIG_CHECK+=" ~DEBUG_FS"
+			ERROR_DEBUG_FS="debugFS support required for kvm_stat"
+
+			# Now do the actual checks setup above
+			check_extra_config
+		fi
+	fi
+
+	if grep -qs '/usr/bin/qemu-kvm' "${EROOT}"/etc/libvirt/qemu/*.xml; then
+		eerror "The kvm/qemu-kvm wrappers no longer exist, but your libvirt"
+		eerror "instances are still pointing to it.  Please update your"
+		eerror "configs in /etc/libvirt/qemu/ to use the -enable-kvm flag"
+		eerror "and the right system binary (e.g. qemu-system-x86_64)."
+		die "update your virt configs to not use qemu-kvm"
+	fi
+}
+
+# Sanity check to make sure target lists are kept up-to-date.
+check_targets() {
+	local var=$1 mak=$2
+	local detected sorted
+
+	pushd "${S}"/default-configs/targets/ >/dev/null || die
+
+	# Force C locale until glibc is updated. #564936
+	detected=$(echo $(printf '%s\n' *-${mak}.mak | sed "s:-${mak}.mak::" | LC_COLLATE=C sort -u))
+	sorted=$(echo $(printf '%s\n' ${!var} | LC_COLLATE=C sort -u))
+	if [[ ${sorted} != "${detected}" ]] ; then
+		eerror "The ebuild needs to be kept in sync."
+		eerror "${var}: ${sorted}"
+		eerror "$(printf '%-*s' ${#var} configure): ${detected}"
+		die "sync ${var} to the list of targets"
+	fi
+
+	popd >/dev/null
+}
+
+src_prepare() {
+	# workaround -fcommon breakage: bug #726560
+	[[ ${PV} == 5.2.0 ]] || die "Check if -fcommon hack is needed"
+	filter-flags -fcommon
+
+	check_targets IUSE_SOFTMMU_TARGETS softmmu
+	check_targets IUSE_USER_TARGETS linux-user
+
+	default
+
+	# Use correct toolchain to fix cross-compiling
+	tc-export AR AS LD NM OBJCOPY PKG_CONFIG RANLIB STRINGS
+	export WINDRES=${CHOST}-windres
+
+	# Verbose builds
+	MAKEOPTS+=" V=1"
+
+	# Remove bundled copy of libfdt
+	rm -r dtc || die
+}
+
+##
+# configures qemu based on the build directory and the build type
+# we are using.
+#
+qemu_src_configure() {
+	debug-print-function ${FUNCNAME} "$@"
+
+	local buildtype=$1
+	local builddir="${S}/${buildtype}-build"
+
+	mkdir "${builddir}"
+
+	local conf_opts=(
+		--prefix=/usr
+		--sysconfdir=/etc
+		--bindir=/usr/bin
+		--libdir=/usr/$(get_libdir)
+		--datadir=/usr/share
+		--docdir=/usr/share/doc/${PF}/html
+		--mandir=/usr/share/man
+		--localstatedir=/var
+		--disable-bsd-user
+		--disable-containers # bug #732972
+		--disable-guest-agent
+		--disable-strip
+
+		# bug #746752: TCG interpreter has a few limitations:
+		# - it does not support FPU
+		# - it's generally slower on non-self-modifying code
+		# It's advantage is support for host architectures
+		# where native codegeneration is not implemented.
+		# Gentoo has qemu keyworded only on targets with
+		# native code generation available. Avoid the interpreter.
+		--disable-tcg-interpreter
+
+		--disable-werror
+		# We support gnutls/nettle for crypto operations.  It is possible
+		# to use gcrypt when gnutls/nettle are disabled (but not when they
+		# are enabled), but it's not really worth the hassle.  Disable it
+		# all the time to avoid automatically detecting it. #568856
+		--disable-gcrypt
+		--python="${PYTHON}"
+		--cc="$(tc-getCC)"
+		--cxx="$(tc-getCXX)"
+		--host-cc="$(tc-getBUILD_CC)"
+		$(use_enable debug debug-info)
+		$(use_enable debug debug-tcg)
+		$(use_enable doc docs)
+		$(use_enable nls gettext)
+		$(use_enable plugins)
+		$(use_enable xattr attr)
+	)
+
+	# Disable options not used by user targets. This simplifies building
+	# static user targets (USE=static-user) considerably.
+	conf_notuser() {
+		if [[ ${buildtype} == "user" ]] ; then
+			echo "--disable-${2:-$1}"
+		else
+			use_enable "$@"
+		fi
+	}
+	# Enable option only for softmmu build, but not 'user' or 'tools'
+	conf_softmmu() {
+		if [[ ${buildtype} == "softmmu" ]] ; then
+			use_enable "$@"
+		else
+			echo "--disable-${2:-$1}"
+		fi
+	}
+	# Enable option only for tools build, but not 'user' or 'softmmu'
+	conf_tools() {
+		if [[ ${buildtype} == "tools" ]] ; then
+			use_enable "$@"
+		else
+			echo "--disable-${2:-$1}"
+		fi
+	}
+	conf_opts+=(
+		$(conf_notuser accessibility brlapi)
+		$(conf_notuser aio linux-aio)
+		$(conf_notuser bzip2)
+		$(conf_notuser capstone)
+		$(conf_notuser caps cap-ng)
+		$(conf_notuser curl)
+		$(conf_notuser fdt)
+		$(conf_notuser glusterfs)
+		$(conf_notuser gnutls)
+		$(conf_notuser gnutls nettle)
+		$(conf_notuser gtk)
+		$(conf_notuser infiniband rdma)
+		$(conf_notuser iscsi libiscsi)
+		$(conf_notuser io-uring linux-io-uring)
+		$(conf_notuser jemalloc jemalloc)
+		$(conf_notuser jpeg vnc-jpeg)
+		$(conf_notuser kernel_linux kvm)
+		$(conf_notuser lzo)
+		$(conf_notuser multipath mpath)
+		$(conf_notuser ncurses curses)
+		$(conf_notuser nfs libnfs)
+		$(conf_notuser numa)
+		$(conf_notuser opengl)
+		$(conf_notuser png vnc-png)
+		$(conf_notuser rbd)
+		$(conf_notuser sasl vnc-sasl)
+		$(conf_notuser sdl)
+		$(conf_softmmu sdl-image)
+		$(conf_notuser seccomp)
+		$(conf_notuser slirp slirp system)
+		$(conf_notuser smartcard)
+		$(conf_notuser snappy)
+		$(conf_notuser spice)
+		$(conf_notuser ssh libssh)
+		$(conf_notuser udev libudev)
+		$(conf_notuser usb libusb)
+		$(conf_notuser usbredir usb-redir)
+		$(conf_notuser vde)
+		$(conf_notuser vhost-net)
+		$(conf_notuser vhost-user-fs)
+		$(conf_tools vhost-user-fs virtiofsd)
+		$(conf_notuser virgl virglrenderer)
+		$(conf_notuser virtfs)
+		$(conf_notuser vnc)
+		$(conf_notuser vte)
+		$(conf_notuser xen)
+		$(conf_notuser xen xen-pci-passthrough)
+		$(conf_notuser xfs xfsctl)
+		# use prebuilt keymaps, bug #759604
+		--disable-xkbcommon
+		$(conf_notuser zstd)
+	)
+
+	if [[ ${buildtype} == "user" ]] ; then
+		conf_opts+=( --disable-libxml2 )
+	else
+		conf_opts+=( --enable-libxml2 )
+	fi
+
+	if [[ ! ${buildtype} == "user" ]] ; then
+		# audio options
+		local audio_opts=(
+			# Note: backend order matters here: #716202
+			# We iterate from higher-level to lower level.
+			$(usex pulseaudio pa "")
+			$(usev jack)
+			$(usev sdl)
+			$(usev alsa)
+			$(usev oss)
+		)
+		conf_opts+=(
+			--audio-drv-list=$(printf "%s," "${audio_opts[@]}")
+		)
+	fi
+
+	case ${buildtype} in
+	user)
+		conf_opts+=(
+			--enable-linux-user
+			--disable-system
+			--disable-blobs
+			--disable-tools
+		)
+		local static_flag="static-user"
+		;;
+	softmmu)
+		conf_opts+=(
+			--disable-linux-user
+			--enable-system
+			--disable-tools
+		)
+		local static_flag="static"
+		;;
+	tools)
+		conf_opts+=(
+			--disable-linux-user
+			--disable-system
+			--disable-blobs
+			--enable-tools
+		)
+		local static_flag="static"
+		;;
+	esac
+
+	local targets="${buildtype}_targets"
+	[[ -n ${targets} ]] && conf_opts+=( --target-list="${!targets}" )
+
+	# Add support for SystemTAP
+	use systemtap && conf_opts+=( --enable-trace-backend=dtrace )
+
+	# We always want to attempt to build with PIE support as it results
+	# in a more secure binary. But it doesn't work with static or if
+	# the current GCC doesn't have PIE support.
+	if use ${static_flag}; then
+		conf_opts+=( --static --disable-pie )
+	else
+		tc-enables-pie && conf_opts+=( --enable-pie )
+	fi
+
+	# Meson will not use a cross-file unless cross_prefix is set.
+	tc-is-cross-compiler && conf_opts+=( --cross-prefix="${CHOST}-" )
+
+	# Plumb through equivalent of EXTRA_ECONF to allow experiments
+	# like bug #747928.
+	conf_opts+=( ${EXTRA_CONF_QEMU} )
+
+	echo "../configure ${conf_opts[*]}"
+	cd "${builddir}"
+	../configure "${conf_opts[@]}" || die "configure failed"
+
+	# FreeBSD's kernel does not support QEMU assigning/grabbing
+	# host USB devices yet
+	use kernel_FreeBSD && \
+		sed -i -E -e "s|^(HOST_USB=)bsd|\1stub|" "${S}"/config-host.mak
+}
+
+src_configure() {
+	local target
+
+	python_setup
+
+	softmmu_targets= softmmu_bins=()
+	user_targets= user_bins=()
+
+	for target in ${IUSE_SOFTMMU_TARGETS} ; do
+		if use "qemu_softmmu_targets_${target}"; then
+			softmmu_targets+=",${target}-softmmu"
+			softmmu_bins+=( "qemu-system-${target}" )
+		fi
+	done
+
+	for target in ${IUSE_USER_TARGETS} ; do
+		if use "qemu_user_targets_${target}"; then
+			user_targets+=",${target}-linux-user"
+			user_bins+=( "qemu-${target}" )
+		fi
+	done
+
+	softmmu_targets=${softmmu_targets#,}
+	user_targets=${user_targets#,}
+
+	[[ -n ${softmmu_targets} ]] && qemu_src_configure "softmmu"
+	[[ -n ${user_targets}    ]] && qemu_src_configure "user"
+	qemu_src_configure "tools"
+}
+
+src_compile() {
+	if [[ -n ${user_targets} ]]; then
+		cd "${S}/user-build"
+		default
+	fi
+
+	if [[ -n ${softmmu_targets} ]]; then
+		cd "${S}/softmmu-build"
+		default
+	fi
+
+	cd "${S}/tools-build"
+	default
+}
+
+src_test() {
+	if [[ -n ${softmmu_targets} ]]; then
+		cd "${S}/softmmu-build"
+		pax-mark m */qemu-system-* #515550
+		emake check
+	fi
+}
+
+qemu_python_install() {
+	python_domodule "${S}/python/qemu"
+
+	python_doscript "${S}/scripts/kvm/vmxcap"
+	python_doscript "${S}/scripts/qmp/qmp-shell"
+	python_doscript "${S}/scripts/qmp/qemu-ga-client"
+}
+
+# Generate binfmt support files.
+#   - /etc/init.d/qemu-binfmt script which registers the user handlers (openrc)
+#   - /usr/share/qemu/binfmt.d/qemu.conf (for use with systemd-binfmt)
+generate_initd() {
+	local out="${T}/qemu-binfmt"
+	local out_systemd="${T}/qemu.conf"
+	local d="${T}/binfmt.d"
+
+	einfo "Generating qemu binfmt scripts and configuration files"
+
+	# Generate the debian fragments first.
+	mkdir -p "${d}"
+	"${S}"/scripts/qemu-binfmt-conf.sh \
+		--debian \
+		--exportdir "${d}" \
+		--qemu-path "${EPREFIX}/usr/bin" \
+		|| die
+	# Then turn the fragments into a shell script we can source.
+	sed -E -i \
+		-e 's:^([^ ]+) (.*)$:\1="\2":' \
+		"${d}"/* || die
+
+	# Generate the init.d script by assembling the fragments from above.
+	local f qcpu package interpreter magic mask
+	cat "${FILESDIR}"/qemu-binfmt.initd.head >"${out}" || die
+	for f in "${d}"/qemu-* ; do
+		source "${f}"
+
+		# Normalize the cpu logic like we do in the init.d for the native cpu.
+		qcpu=${package#qemu-}
+		case ${qcpu} in
+		arm*)   qcpu="arm";;
+		mips*)  qcpu="mips";;
+		ppc*)   qcpu="ppc";;
+		s390*)  qcpu="s390";;
+		sh*)    qcpu="sh";;
+		sparc*) qcpu="sparc";;
+		esac
+
+		# we use 'printf' here to be portable across 'sh'
+		# implementations: #679168
+		cat <<EOF >>"${out}"
+	if [ "\${cpu}" != "${qcpu}" -a -x "${interpreter}" ] ; then
+		printf '%s\n' ':${package}:M::${magic}:${mask}:${interpreter}:'"\${QEMU_BINFMT_FLAGS}" >/proc/sys/fs/binfmt_misc/register
+	fi
+EOF
+
+		echo ":${package}:M::${magic}:${mask}:${interpreter}:OC" >>"${out_systemd}"
+
+	done
+	cat "${FILESDIR}"/qemu-binfmt.initd.tail >>"${out}" || die
+}
+
+src_install() {
+	if [[ -n ${user_targets} ]]; then
+		cd "${S}/user-build"
+		emake DESTDIR="${ED}" install
+
+		# Install binfmt handler init script for user targets.
+		generate_initd
+		doinitd "${T}/qemu-binfmt"
+
+		# Install binfmt/qemu.conf.
+		insinto "/usr/share/qemu/binfmt.d"
+		doins "${T}/qemu.conf"
+	fi
+
+	if [[ -n ${softmmu_targets} ]]; then
+		cd "${S}/softmmu-build"
+		emake DESTDIR="${ED}" install
+
+		# This might not exist if the test failed. #512010
+		[[ -e check-report.html ]] && dodoc check-report.html
+
+		if use kernel_linux; then
+			udev_newrules "${FILESDIR}"/65-kvm.rules-r2 65-kvm.rules
+		fi
+
+		if use python; then
+			python_foreach_impl qemu_python_install
+		fi
+	fi
+
+	cd "${S}/tools-build"
+	emake DESTDIR="${ED}" install
+
+	# Disable mprotect on the qemu binaries as they use JITs to be fast #459348
+	pushd "${ED}"/usr/bin >/dev/null
+	pax-mark mr "${softmmu_bins[@]}" "${user_bins[@]}" # bug 575594
+	popd >/dev/null
+
+	# Install config file example for qemu-bridge-helper
+	insinto "/etc/qemu"
+	doins "${FILESDIR}/bridge.conf"
+
+	cd "${S}"
+	dodoc MAINTAINERS docs/specs/pci-ids.txt
+	newdoc pc-bios/README README.pc-bios
+
+	# Disallow stripping of prebuilt firmware files.
+	dostrip -x ${QA_PREBUILT}
+
+	if [[ -n ${softmmu_targets} ]]; then
+		# Remove SeaBIOS since we're using the SeaBIOS packaged one
+		rm "${ED}/usr/share/qemu/bios.bin"
+		rm "${ED}/usr/share/qemu/bios-256k.bin"
+		if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
+			dosym ../seabios/bios.bin /usr/share/qemu/bios.bin
+			dosym ../seabios/bios-256k.bin /usr/share/qemu/bios-256k.bin
+		fi
+
+		# Remove vgabios since we're using the seavgabios packaged one
+		rm "${ED}/usr/share/qemu/vgabios.bin"
+		rm "${ED}/usr/share/qemu/vgabios-cirrus.bin"
+		rm "${ED}/usr/share/qemu/vgabios-qxl.bin"
+		rm "${ED}/usr/share/qemu/vgabios-stdvga.bin"
+		rm "${ED}/usr/share/qemu/vgabios-virtio.bin"
+		rm "${ED}/usr/share/qemu/vgabios-vmware.bin"
+		# PPC/PPC64 loads vgabios-stdvga
+		if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386 || use qemu_softmmu_targets_ppc || use qemu_softmmu_targets_ppc64; then
+			dosym ../seavgabios/vgabios-isavga.bin /usr/share/qemu/vgabios.bin
+			dosym ../seavgabios/vgabios-cirrus.bin /usr/share/qemu/vgabios-cirrus.bin
+			dosym ../seavgabios/vgabios-qxl.bin /usr/share/qemu/vgabios-qxl.bin
+			dosym ../seavgabios/vgabios-stdvga.bin /usr/share/qemu/vgabios-stdvga.bin
+			dosym ../seavgabios/vgabios-virtio.bin /usr/share/qemu/vgabios-virtio.bin
+			dosym ../seavgabios/vgabios-vmware.bin /usr/share/qemu/vgabios-vmware.bin
+		fi
+
+		# Remove sgabios since we're using the sgabios packaged one
+		rm "${ED}/usr/share/qemu/sgabios.bin"
+		if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
+			dosym ../sgabios/sgabios.bin /usr/share/qemu/sgabios.bin
+		fi
+
+		# Remove iPXE since we're using the iPXE packaged one
+		rm "${ED}"/usr/share/qemu/pxe-*.rom
+		if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
+			dosym ../ipxe/8086100e.rom /usr/share/qemu/pxe-e1000.rom
+			dosym ../ipxe/80861209.rom /usr/share/qemu/pxe-eepro100.rom
+			dosym ../ipxe/10500940.rom /usr/share/qemu/pxe-ne2k_pci.rom
+			dosym ../ipxe/10222000.rom /usr/share/qemu/pxe-pcnet.rom
+			dosym ../ipxe/10ec8139.rom /usr/share/qemu/pxe-rtl8139.rom
+			dosym ../ipxe/1af41000.rom /usr/share/qemu/pxe-virtio.rom
+		fi
+	fi
+
+	DISABLE_AUTOFORMATTING=true
+	readme.gentoo_create_doc
+}
+
+firmware_abi_change() {
+	local pv
+	for pv in ${REPLACING_VERSIONS}; do
+		if ver_test $pv -lt ${FIRMWARE_ABI_VERSION}; then
+			return 0
+		fi
+	done
+	return 1
+}
+
+pkg_postinst() {
+	if [[ -n ${softmmu_targets} ]] && use kernel_linux; then
+		udev_reload
+	fi
+
+	xdg_icon_cache_update
+
+	[[ -z ${EPREFIX} ]] && [[ -f ${EROOT}/usr/libexec/qemu-bridge-helper ]] && \
+		fcaps cap_net_admin ${EROOT}/usr/libexec/qemu-bridge-helper
+
+	DISABLE_AUTOFORMATTING=true
+	readme.gentoo_print_elog
+
+	if use pin-upstream-blobs && firmware_abi_change; then
+		ewarn "This version of qemu pins new versions of firmware blobs:"
+		ewarn "	$(best_version sys-firmware/edk2-ovmf)"
+		ewarn "	$(best_version sys-firmware/ipxe)"
+		ewarn "	$(best_version sys-firmware/seabios)"
+		ewarn "	$(best_version sys-firmware/sgabios)"
+		ewarn "This might break resume of hibernated guests (started with a different"
+		ewarn "firmware version) and live migration to/from qemu versions with different"
+		ewarn "firmware. Please (cold) restart all running guests. For functional"
+		ewarn "guest migration ensure that all"
+		ewarn "hosts run at least"
+		ewarn "	app-emulation/qemu-${FIRMWARE_ABI_VERSION}."
+	fi
+}
+
+pkg_info() {
+	echo "Using:"
+	echo "  $(best_version app-emulation/spice-protocol)"
+	echo "  $(best_version sys-firmware/edk2-ovmf)"
+	if has_version 'sys-firmware/edk2-ovmf[binary]'; then
+		echo "    USE=binary"
+	else
+		echo "    USE=''"
+	fi
+	echo "  $(best_version sys-firmware/ipxe)"
+	echo "  $(best_version sys-firmware/seabios)"
+	if has_version 'sys-firmware/seabios[binary]'; then
+		echo "    USE=binary"
+	else
+		echo "    USE=''"
+	fi
+	echo "  $(best_version sys-firmware/sgabios)"
+}
+
+pkg_postrm() {
+	xdg_icon_cache_update
+}
diff --git a/app-misc/ckermit/Manifest b/app-misc/ckermit/Manifest
index 2a5442b..06e5efc 100644
--- a/app-misc/ckermit/Manifest
+++ b/app-misc/ckermit/Manifest
@@ -1 +1 @@
-DIST cku211.tar.gz 2878523 SHA256 39e7cd4892502344a635952843487d9b4bfa98e59d1e1acad5ef8aa969abba93 SHA512 470bf56d5b5f30721d0030ff89a5cd845f365dba81d097942524cc04dd620070678d278d1009fb67bae3cb875715808cbbfc7c0358b9671f30c65ce1d9bd35ad WHIRLPOOL 160aee04d5f5c425ebb2011b71923257deb154cf1ca7070208cd8a2253189ff5529940c3b1deb7fc5280f5d9ff8f699dff8ebab3881584439b96da251b0c9435
+DIST cku302.tar.gz 3122219 BLAKE2B 9f63261da2dc2b0fceb0af0fa81da63c87e68b7bf713037cf8675abeb81716fd0dd4cd1f84324562698d9b9126f26b8a651dc79deec37a056fa1047af2d9966e SHA512 2cfc264e5262d29618fdf218fd3407fd9049b16110972cdddb03d114703b7a0ea13c4b0a354f50c2a9f70d4727732fe4d1920b5c656f969bc56c1eb9dc3c43fa
diff --git a/app-misc/ckermit/ckermit-8.0.211-r4.ebuild b/app-misc/ckermit/ckermit-8.0.211-r4.ebuild
deleted file mode 100644
index 317dc61..0000000
--- a/app-misc/ckermit/ckermit-8.0.211-r4.ebuild
+++ /dev/null
@@ -1,77 +0,0 @@
-# Copyright 1999-2013 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/app-misc/ckermit/ckermit-8.0.211-r4.ebuild,v 1.5 2013/06/10 17:42:53 vapier Exp $
-
-EAPI="4"
-
-inherit versionator eutils flag-o-matic toolchain-funcs
-
-# Columbia University only uses the third component, e.g. cku211.tar.gz for
-# what we would call 8.0.211.
-MY_P="cku$( get_version_component_range 3 ${PV} )"
-
-DESCRIPTION="combined serial and network communication software package"
-SRC_URI="ftp://kermit.columbia.edu/kermit/archives/${MY_P}.tar.gz"
-HOMEPAGE="http://www.kermit-project.org/"
-
-LICENSE="Kermit"
-SLOT="0"
-KEYWORDS="*"
-IUSE="ncurses"
-
-DEPEND="ncurses? ( >=sys-libs/ncurses-5.2 )"
-RDEPEND="${DEPEND}
-	net-dialup/lrzsz"
-
-S=${WORKDIR}
-
-src_prepare() {
-	epatch "${FILESDIR}"/${P}-cleanup.patch
-	epatch "${FILESDIR}"/${P}-build-wart.patch
-	tc-export_build_env BUILD_CC
-	sed -i -r \
-		-e 's:"(CC2?) = gcc":"\1=$(CC)":g' \
-		-e 's:"CFLAGS = -O:"CFLAGS = $(CFLAGS):' \
-		makefile || die
-}
-
-src_compile() {
-	# we don't enable any of the telnet/ftp authentication stuff
-	# since there are other packages which do these things better
-	# USE="kerberos pam shadow ssl zlib"
-	append-cppflags -DNO_AUTHENTICATION -DNOLOGIN -DNOFTP
-
-	if use ncurses; then
-		append-cppflags "-DCK_NCURSES"
-		append-cppflags "$($(tc-getPKG_CONFIG) --cflags ncurses)"
-		append-libs "$($(tc-getPKG_CONFIG) --libs ncurses)"
-	fi
-
-	append-cppflags -DHAVE_PTMX -D_XOPEN_SOURCE -D_BSD_SOURCE #202840
-	append-cppflags -DHAVE_CRYPT_H
-	emake \
-		CC="$(tc-getCC)" \
-		KFLAGS="${CPPFLAGS}" \
-		LIBS="-lcrypt -lresolv ${LIBS}" \
-		LNKFLAGS="${LDFLAGS}" \
-		linuxa
-}
-
-src_install() {
-	dodir /usr/bin /usr/share/man/man1
-	emake \
-		DESTDIR="${ED}" \
-		BINDIR=/usr/bin \
-		MANDIR="${ED}"/usr/share/man/man1 \
-		MANEXT=1 \
-		install
-	dodoc *.txt
-
-	# make the correct symlink
-	rm "${ED}"/usr/bin/kermit-sshsub || die
-	dosym /usr/bin/kermit /usr/bin/kermit-sshsub
-
-	# the ckermit.ini script is calling the wrong kermit binary --
-	# the one from ${D}
-	sed -i "s:${D}::g" "${ED}"/usr/bin/ckermit.ini
-}
diff --git a/app-misc/ckermit/ckermit-9.0.302.ebuild b/app-misc/ckermit/ckermit-9.0.302.ebuild
new file mode 100644
index 0000000..bbfa37c
--- /dev/null
+++ b/app-misc/ckermit/ckermit-9.0.302.ebuild
@@ -0,0 +1,76 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="7"
+
+inherit flag-o-matic toolchain-funcs
+
+# Columbia University only uses the third component, e.g. cku211.tar.gz for
+# what we would call 8.0.211.
+MY_P="cku$(ver_cut 3)"
+
+DESCRIPTION="combined serial and network communication software package"
+SRC_URI="ftp://kermit.columbia.edu/kermit/archives/${MY_P}.tar.gz"
+HOMEPAGE="http://www.kermitproject.org/"
+
+LICENSE="Kermit"
+SLOT="0"
+KEYWORDS="*"
+IUSE="ncurses"
+
+DEPEND="ncurses? ( >=sys-libs/ncurses-5.2:= )"
+RDEPEND="${DEPEND}
+	net-dialup/lrzsz"
+
+S=${WORKDIR}
+
+PATCHES=(
+	"${FILESDIR}"/${P}-cleanup.patch
+	"${FILESDIR}"/${PN}-8.0.211-build-wart.patch
+)
+
+src_prepare() {
+	default
+
+	tc-export_build_env BUILD_CC
+	sed -i -r \
+		-e 's:"(CC2?) = gcc":"\1=$(CC)":g' \
+		-e 's:"CFLAGS = -O:"CFLAGS = $(CFLAGS):' \
+		makefile || die
+}
+
+src_compile() {
+	# we don't enable any of the telnet/ftp authentication stuff
+	# since there are other packages which do these things better
+	# USE="kerberos pam shadow ssl zlib"
+	append-cppflags -DNO_AUTHENTICATION -DNOLOGIN -DNOFTP
+
+	if use ncurses; then
+		append-cppflags "-DCK_NCURSES"
+		append-cppflags "$($(tc-getPKG_CONFIG) --cflags ncurses)"
+		append-libs "$($(tc-getPKG_CONFIG) --libs ncurses)"
+	fi
+
+	append-cppflags -DHAVE_PTMX -D_XOPEN_SOURCE -D_BSD_SOURCE -D_DEFAULT_SOURCE #202840
+	append-cppflags -DHAVE_CRYPT_H -DHAVE_OPENPTY
+	append-cppflags -DNOARROWKEYS # bug #669332
+	emake \
+		CC="$(tc-getCC)" \
+		KFLAGS="${CPPFLAGS}" \
+		LIBS="-lcrypt -lresolv -lutil ${LIBS}" \
+		LNKFLAGS="${LDFLAGS}" \
+		linuxa
+}
+
+src_install() {
+	emake DESTDIR="${ED}" prefix=/usr manroot=/usr/share install
+	dodoc *.txt
+
+	# make the correct symlink
+	rm "${ED}"/usr/bin/kermit-sshsub || die
+	dosym kermit /usr/bin/kermit-sshsub
+
+	# the ckermit.ini script is calling the wrong kermit binary --
+	# the one from ${D}
+	sed -i "s:${D}::g" "${ED}"/usr/bin/ckermit.ini
+}
diff --git a/app-misc/ckermit/files/ckermit-9.0.302-cleanup.patch b/app-misc/ckermit/files/ckermit-9.0.302-cleanup.patch
new file mode 100644
index 0000000..c645e75
--- /dev/null
+++ b/app-misc/ckermit/files/ckermit-9.0.302-cleanup.patch
@@ -0,0 +1,94 @@
+Various clean-ups and fix makefile dir creation.
+
+--- cku302/ckcmai.c
++++ cku302/ckcmai.c
+@@ -561,6 +561,8 @@
+ #include "ckntap.h"
+ #endif /* NT */
+ 
++#include <time.h>
++
+ #ifndef NOSERVER
+ /* Text message definitions.. each should be 256 chars long, or less. */
+ #ifdef MINIX
+--- cku302/ckuus5.c
++++ cku302/ckuus5.c
+@@ -7853,7 +7853,7 @@
+           printf(" --bannerfile=%s\n",bannerfile ? bannerfile : "(null)");
+           printf(" --cdfile:%s\n",cdmsgstr ? cdmsgstr : "(null)");
+           printf(" --cdmessage:%d\n",srvcdmsg);
+-          printf(" --helpfile:%d\n",helpfile);
++          printf(" --helpfile:%s\n",helpfile ? helpfile : "(null)");
+           if (inserver) {
+               printf("\n");
+               break;
+--- cku302/ckuusx.c
++++ cku302/ckuusx.c
+@@ -57,7 +57,6 @@
+ #include <termcap.h>
+ #endif /* NOHTERMCAP */
+ #endif /* BSD44 */
+-#else  /* !BSD44 */
+ #ifdef linux
+ #include <term.h>
+ #endif /* linux */
+--- cku302/makefile
++++ cku302/makefile
+@@ -1047,7 +1047,7 @@
+ 		else\
+ 			echo "Creating $(DESTDIR)...";\
+ 			DESTDIR=`echo $(DESTDIR) | sed 's!/*$$!!'`;\
+-			mkdir $$DESTDIR  || exit 1;\
++			mkdir -p $$DESTDIR  || exit 1;\
+ 		fi;\
+ 		chmod 755 $(DESTDIR) || exit 1;\
+ 	fi;\
+@@ -1066,7 +1066,7 @@
+ 		echo  "$(DESTDIR)$(BINDIR) exists...";\
+ 	else\
+ 		echo "Creating $(DESTDIR)$(BINDIR)/...";\
+-		mkdir     $(DESTDIR)$(BINDIR) || exit 1;\
++		mkdir -p  $(DESTDIR)$(BINDIR) || exit 1;\
+ 		chmod 755 $(DESTDIR)$(BINDIR);\
+ 	fi;\
+ 	rm -f $(DESTDIR)$(BINDIR)/kermit;\
+@@ -1104,9 +1104,9 @@
+ 		if test -d $(DESTDIR)$(MANDIR); then\
+ 			echo  "$(DESTDIR)$(MANDIR) exists...";\
+ 		else\
+-			echo "Creating $(MANDIR)...";\
+-			mkdir $(MANDIR) || exit 1;\
+-			chmod 755 $(MANDIR) || exit 1;\
++			echo "Creating $(DESTDIR)$(MANDIR)...";\
++			mkdir -p $(DESTDIR)$(MANDIR) || exit 1;\
++			chmod 755 $(DESTDIR)$(MANDIR) || exit 1;\
+ 		fi;\
+ 		rm -f $(DESTDIR)$(MANDIR)/kermit.$(MANEXT);\
+ 		cp ckuker.nr $(DESTDIR)$(MANDIR)/kermit.$(MANEXT) || exit 1;\
+@@ -1125,7 +1125,7 @@
+ 				echo  "$(CERTDIR) exists...";\
+ 			else\
+ 				echo "Creating $(CERTDIR)...";\
+-				mkdir $(CERTDIR) || exit 1;\
++				mkdir -p $(CERTDIR) || exit 1;\
+ 				chmod 755 $(CERTDIR) || exit 1;\
+ 			fi;\
+ 			echo "Installing certificates file...";\
+@@ -1146,7 +1146,7 @@
+ 			echo  "$(DESTDIR)$(SRCDIR) exists...";\
+ 		else\
+ 			echo "Creating $(DESTDIR)$(SRCDIR)/...";\
+-			mkdir     $(DESTDIR)$(SRCDIR) || exit 1;\
++			mkdir -p  $(DESTDIR)$(SRCDIR) || exit 1;\
+ 			chmod 755 $(DESTDIR)$(SRCDIR);\
+ 		fi;\
+ 		echo "Copying source files to $(DESTDIR)$(SRCDIR)...";\
+@@ -1168,7 +1168,7 @@
+ 			echo  "$(DESTDIR)$(INFODIR) exists...";\
+ 		else\
+ 			echo "Creating $(DESTDIR)$(INFODIR)/...";\
+-			mkdir     $(DESTDIR)$(INFODIR) || exit 1;\
++			mkdir -p  $(DESTDIR)$(INFODIR) || exit 1;\
+ 			chmod 755 $(DESTDIR)$(INFODIR);\
+ 		fi;\
+ 		echo "Copying text files to $(DESTDIR)$(INFODIR)...";\
diff --git a/app-misc/ckermit/metadata.xml b/app-misc/ckermit/metadata.xml
index 59e2b8f..e248196 100644
--- a/app-misc/ckermit/metadata.xml
+++ b/app-misc/ckermit/metadata.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
 <pkgmetadata>
-	<maintainer>
-		<email>maintainer-needed@gentoo.org</email>
-		<name>Default assignee for orphaned packages</name>
+	<maintainer type="project">
+		<email>embedded@gentoo.org</email>
+		<name>Embedded Gentoo</name>
 	</maintainer>
 </pkgmetadata>
diff --git a/app-shells/bash/Manifest b/app-shells/bash/Manifest
index 45fc7b9..dda9bbe 100644
--- a/app-shells/bash/Manifest
+++ b/app-shells/bash/Manifest
@@ -1,49 +1,24 @@
-DIST bash-4.3.tar.gz 7955839 SHA256 afc687a28e0e24dc21b988fa159ff9dbcf6b7caa92ade8645cc6d5605cd024d4 SHA512 a852b8e46ee55568dce9d23a30a9dbd1c770c2d2a4bc91e1c3177d723b31b32c5d69d19704a93f165891b409b9dd2cc65723372044e2bd0ee49ed59a11512651 WHIRLPOOL d82eb296b1bdee517b20e40d2231697dc41e2040d34e2da24c4fa40755c723d732929805ebef6f6923cd8ffecfb0db7063ec1dc3ab4e695a93916f2d872e236f
-DIST bash43-001 1617 SHA256 ecb3dff2648667513e31554b3ad054ccd89fce38e33367c9459ac3a285153742 SHA512 a1011392652180a28f9837af4a341a80beb929c1458e2384e282f0007713c5fe8d0b315abf1340b3707748d3caed322135dee87b59eeb7612ee5130f87d79888 WHIRLPOOL 94d34b6ae2496b4007bf9b3af69847828179dfa90528d7fc2f9a91facc451535e2fa46120cc3ea22156974c92f2633f91423f2d43b4733f8960cde69dfff81b9
-DIST bash43-002 1594 SHA256 eee7cd7062ab29a9e4f02924d9c367264dcb8b162703f74ff6eb8f175a91502b SHA512 e3178c85f553522d5d1c5fd39e76f015b680a8ccc84836a5e10283b2aed6e5b7cc3d23af0e67a270b7622dce0abf35dd8a95afa9bb6f89b73a9439f7435175a4 WHIRLPOOL 2d1b6679a1263f7a4325b692c3edac9f5daaa72e3f06dfa88958e70ad64c1fc74b92d8325becfff2c21dd28c002470bdaad50f57037c2676352078291bf0b0bc
-DIST bash43-003 1465 SHA256 000e6eac50cd9053ce0630db01239dcdead04a2c2c351c47e2b51dac1ac1087d SHA512 dc2c5fad8d357d1301e419afd959dfaf015a63172857080c11f77ab1bb7d1d737f411eb0e70a861f98a36bed1b19edb7217a4fa9f4773e21706b62dc56ec3464 WHIRLPOOL 1ef78321cfe3ca6e9f690ae3dd6a7c06bc72d2e6590bfdaa8543b0ac3ff84eae998e4a2aa44531423cab1137c974b09ac30baf5fa2746e2e5a2006cde03a2b32
-DIST bash43-004 1534 SHA256 5ea0a42c6506720d26e6d3c5c358e9a0d49f6f189d69a8ed34d5935964821338 SHA512 6a5177d5f4205ca9d3824601052dc6d0cd768638cdfc125501c5643dd51d537f5d075cbd11a10356caf4205e47a0287c72636065789ecce264129fc92fbda420 WHIRLPOOL 90c2f4f7752cf84a67b1f648137b6c25b8a6f5212fc5dde26d6f0fb6f316e923bec916368ba9ebc6b608bfa0fd82f86b6ac7ec6db32d06b83c3d22730788cfa1
-DIST bash43-005 2636 SHA256 1ac83044032b9f5f11aeca8a344ae3c524ec2156185d3adbb8ad3e7a165aa3fa SHA512 e201aa8ef0ce0d74fa5ee42e8171bbb5ba633d831d863a8e8afc5d5157581bb055d16c52b316cc945979a852b0eae7921244a24b89818acfb7c96572ed04d1f8 WHIRLPOOL fd4c6b03fb8b4344cc3833beb0310738af9826c56d2b0cf7c5262f3d2a99e83f700485dafe0e726e84a2dffcb1b907efcc860a685160ff22c99e40c8a2b659b0
-DIST bash43-006 1445 SHA256 a0648ee72d15e4a90c8b77a5c6b19f8d89e28c1bc881657d22fe26825f040213 SHA512 d1da3c9d3781482d87cdcbfd69ab3958ed4950f2a00e9d15228ecb4ad5ca8ae253eff378010b4908d04df2ecf658e08f7c2efc97d6a0b8dd2317552c1895d7b2 WHIRLPOOL 55e3c5e7be01f5928247a7677482dde1f0c89a0344ca23c947e9f84bf93d43ce1d7f621b39d74e09f0dd2de85ef304c5d34e68eb0af35cdf61c611e649dcbf68
-DIST bash43-007 1331 SHA256 1113e321c59cf6a8648a36245bbe4217cf8acf948d71e67886dad7d486f8f3a3 SHA512 c445b5cdd486d06991c78d4c88e2e44e49f74d1fc07b8e4bc9492cccfc4ff4045587bed6b24d745974c6339340e45b9756c27723fdb79e7591e7d6c5d350a86e WHIRLPOOL 0537006403347466536de5843d62725be75b6f5b4e6d9228c9f5671201de6a473ba04d8fcfa29894584b51f3ee35718bb46c2acc5c014713e03ee24828f10d43
-DIST bash43-008 4575 SHA256 9941a98a4987192cc5ce3d45afe879983cad2f0bec96d441a4edd9033767f95e SHA512 53bae88cd3341a4ef8c60d6a294c09402103d1b20f485cf85775e6730a3d2eec8e6ebe15aa6dd95336e4a1f540f21db394823b9d04b416e5af071a7a6c618900 WHIRLPOOL 94a3e9f004729490f70cb3a33de0605fc11f498b6bde2dc37bc08578283e47a3b625619de9d823b2796ce6fbd4982871fa2d428e94c892c863fc448ef2711482
-DIST bash43-009 2413 SHA256 c0226d6728946b2f53cdebf090bcd1c01627f01fee03295768605caa80bb40a5 SHA512 8d06fe612cd32cb414fdcdc34d4420b8991b268dd3ddd2dd47b3d01679954debd78e21f697a7f495d2340f0dcc8acdc3ad6809b8870bf5fd300afb1439788776 WHIRLPOOL 66e13efba99362a361e9e7d317773d51862f4c474f5c213654eba875a86b6d83b531b246bbd22c53e8a81fa7b67cb564c2de264ce28063967426fcf586ddda4d
-DIST bash43-010 5357 SHA256 ce05799c0137314c70c7b6ea0477c90e1ac1d52e113344be8e32fa5a55c9f0b7 SHA512 e36e550d749f52bab01256ed5f8f1b48fe53190c1a0a0a15c545328261c1f50b85f574b44188855858de1f2d045945770c4940bdecadd8381ea2cf174bde2fee WHIRLPOOL 830e7c82afd2650cbb00818928d22be0e0518aec2752736ff7a5085c5628bc8852c6c409f21684beec0c675d79898917efafb3f8dc1bc6bfcea41e1a8521d4fb
-DIST bash43-011 1533 SHA256 7c63402cdbc004a210f6c1c527b63b13d8bb9ec9c5a43d5c464a9010ff6f7f3b SHA512 678bbcd92b927c86631cd42d6d3ab7596a3ffd20b640f471a9783a7972f05d2d4fb15970c12e7645e90d407c5a2d2aadcad698113211724b0ef8d89eccd2cd66 WHIRLPOOL 1d0b84ff75d19db1bfbd60b37551978825902be2187b6407471a8810ebeb9136b2846e6c76505fec0c828a3e83ba8d4dd0950c5e6020b649da7ae530f7d5bf05
-DIST bash43-012 1365 SHA256 3e1379030b35fbcf314e9e7954538cf4b43be1507142b29efae39eef997b8c12 SHA512 169453248edb55baf761b0c9c7b296ed2c24543b80fcf4756b8dd398054b6317da285c5e9cd68828f2620b05874f21a08773844ee32416daef76b88d0ef3ee6d WHIRLPOOL 52b6c6d6c374b307ac562c1dfda730dc3ba322d3d6e9c7acb3f2a40461bb61ad5cb54dd65e2e4b72e492b55b436c323cae95ed63948df3b06bcd64a3487b3374
-DIST bash43-013 2151 SHA256 bfa8ca5336ab1f5ef988434a4bdedf71604aa8a3659636afa2ce7c7446c42c79 SHA512 536bbf0c9b23eb824579955e7fce892cfc1e1d9fbcfc66810353ac4ff238e9e57361c0a46b3f3573ca8ca563331070ce55442ffea38e2a632840b6a318db1c88 WHIRLPOOL 15fe2e97ac2a07a1d4c0f9946adc63e64b9141a3837391206fd5c934853f7e9ad9ede3baeecdd7a0dbb73e2bf007db8a5b57f0f8e2d03d693de09502dff32636
-DIST bash43-014 3533 SHA256 5a4d6fa2365b6eb725a9d4966248b5edf7630a4aeb3fa8d526b877972658ac13 SHA512 79fb50f62dbdca5e45a1359570e6d2173d442b3d4ddd4eb44809ed45ac022de4fe3f0aadd7672b4c8d9739405d51762486ee0c677b56f9c7d60e6224be84b87a WHIRLPOOL 10b6a2b7a7e5e6dfb3dd730b9ccc2ce3152bda1983a78745aa7367e9f5671695577d45070ad800158a36ffeb7db176e29f6b48d139075770ec773a478adfa1b2
-DIST bash43-015 1894 SHA256 13293e8a24e003a44d7fe928c6b1e07b444511bed2d9406407e006df28355e8d SHA512 38a7af22f13f1f45705ceadf3abb52be75f3239959c2b1d57f333d137f25f14ed92c4d209b35417d449b1ec4291bbd984bb5fd11ad40375b22d2668b33fb8efb WHIRLPOOL c06aa4977f891ec606f107157a0295d5025fbd24a620644547ee3f3a79582aae1ea4cd4be4254f92c6d2aee9322934839f01cc118148cea85af700e6f83c21cc
-DIST bash43-016 3674 SHA256 92d60bcf49f61bd7f1ccb9602bead6f2c9946d79dea0e5ec0589bb3bfa5e0773 SHA512 52ab2966ccd42554c8bd76041e07921388220b46c93c34190197cdda38a085fd499d71e2e0a10daea130e6782ada556f35b1a37d06d023e83c4c4d665d07cd3f WHIRLPOOL 9b7eb252291680d5db2596700774fddcab7e5c6c14ed5b1da7f8e23e1eaae85a927cf69d7662807b99c63fa083d2267f7e70076d4d4927a8bd4cb9273c416b4c
-DIST bash43-017 1565 SHA256 1267c25c6b5ba57042a7bb6c569a6de02ffd0d29530489a16666c3b8a23e7780 SHA512 88b11f324a780823b459b1e8a0904348c56079b4103cb86025d34dbba02543b0b7fbc2397bf043c24c1363f30539a6fe9b9f9fc717be9798f466071d1d420bb9 WHIRLPOOL 1aa1160771b98d393a2fb341e9025c2169aa43123f682bbe7648038e555b4f70eb1dbdba90492edb514c9621468f5005c2cf5fff82921e941ad3ca42534e7b1d
-DIST bash43-018 1315 SHA256 7aa8b40a9e973931719d8cc72284a8fb3292b71b522db57a5a79052f021a3d58 SHA512 f83d8e1d6d8fa8adf1715b8d4130730a13f5cd626f75e9e4b8c63244645a45a3f1fbac03081bb9d1e46864919d1b3189a9bb6d7a5e7a8854e6270ab3269c771f WHIRLPOOL 14a216257c3d1d3501dfc23d72ad8c085a216cdac83d5d909922d51b502ce83fb454c7e64a8d44e91a87a1a09237d965272fb563ae945c5d81688e9f0686264e
-DIST bash43-019 2610 SHA256 a7a91475228015d676cafa86d2d7aa9c5d2139aa51485b6bbdebfdfbcf0d2d23 SHA512 77e6dac3079d9282f6f85940a762b0da2473ac0d35e9bad2ebc2862bf0f3c4376a6220c746c1c37de0b4d492251ec9531a62c8a042a1be5e485f8f5ae6fa0704 WHIRLPOOL 5acde269ea62e2074ca5eb30750dbd67512b69658908f532165a90873f54de7705b0d41515ac6278e942f8ea66e0abe67c13b842e404a41cd7684ec0683928ef
-DIST bash43-020 2777 SHA256 ca5e86d87f178128641fe91f2f094875b8c1eb2de9e0d2e9154f5d5cc0336c98 SHA512 fa06563eb46609115750ffa88098b07c608cc8b13fc31356f33e1428a4da4d2610e122e0241356afcfadfecc5ccee5db4b7cf07f74005e7f30240ada4a81b5f7 WHIRLPOOL 9f05ce5028f20e7cbc11c1995d99a47274f782f228faa752919e0444afe1df748adb7837c0a3affa20633c63ad0175780327b9a02a39f5ada494736f0fd694dd
-DIST bash43-021 1623 SHA256 41439f06883e6bd11c591d9d5e9ae08afbc2abd4b935e1d244b08100076520a9 SHA512 90dc85302d9bc60e68fa8cce472b7e022d8a6ccee361f97aad4cbe5f1585b4870ab9997a3e6fac420aaf84c3dce9757716eb08f4fa6b38e14bac4f2d5d503731 WHIRLPOOL e7930992f6e2a1f5a07458eee74ed118fe93152ceb78fbdb41a4a3d799c5f9aa71fac52bc3cd43c321b983c5a4309e9884d37cac1facb54a2f38383527c8e765
-DIST bash43-022 1782 SHA256 fd4d47bb95c65863f634c4706c65e1e3bae4ee8460c72045c0a0618689061a88 SHA512 721b772349f9e0cc65975e419fabe4acdb23c77796a5d8fde01f110687ea1cb7d23fb706fc0452fb3c2082958a81c95b82f277e1f8f722b1156913efd59afc30 WHIRLPOOL 7387429460d85bffb9f7ce9cbd524f4b2c21b116beff30424db2cb66d48ec81707c7cb9479d5d72bcf36879248963a405dcdf87515fc0f5b6642568d9d236df2
-DIST bash43-023 3414 SHA256 9ac250c7397a8f53dbc84dfe790d2a418fbf1fe090bcece39b4a5c84a2d300d4 SHA512 d45b5f5dc4682c7260c8b6ef6faa99c929d2159cc34534931790f71f76e7324376e4a5d4a2a3bc21c16c25a8206554580943e7a3f672ec5a4af16cbccd216819 WHIRLPOOL 4cee4cdbe8525aff748a42a19d1d7cbc659cc8fe99b0bca3b2875ddfe5b8325f504cfdf09fb6edc70b1040f00eae3a4ab5fcda64cfa93ce96ce1e8d8c902b78f
-DIST bash43-024 1909 SHA256 3b505882a0a6090667d75824fc919524cd44cc3bd89dd08b7c4e622d3f960f6c SHA512 eada2b4839b81f28f63a874e08c72dfee9708c0982d2447347c17770a29c8fbb3d3f8c58c8a22b0d46a9d10abbd79dec11b5815257fb39af06420ef3602f8499 WHIRLPOOL 06059921dccb590aa7847ff5212bcb3e6a177aa96749eb19012d633ebf86badb83aad3b75ba8b304c620380d08395c0e37da4e2934a833ef1c0e1daf0f42ca72
-DIST bash43-025 3940 SHA256 1e5186f5c4a619bb134a1177d9e9de879f3bb85d9c5726832b03a762a2499251 SHA512 b4ea28ea0a24c8609d5c3a10114c5fec87ab978ec60700c36992d093e7afd976dbaee4a0d62c6e41e8ed6674c356fc26589f4c5168642dec8df8d727d7127822 WHIRLPOOL b3385e49dfbbf156bea9ebbd10f18dcb88c1d489c61c5bd6c16d1caac8a2ebf1ce057ec350d661ebd0307330a61f8c1088bef1cb133368919ccd0b5e81c3e7e3
-DIST bash43-026 1575 SHA256 2ecc12201b3ba4273b63af4e9aad2305168cf9babf6d11152796db08724c214d SHA512 d55620c86ab4835eaf53c18033a939e00ebbef7045d1429bd6fb212be6da167c368b4c03aec6c00ba60a1363b9cf8a4828e85c8108c5476b4a342e6c57f03897 WHIRLPOOL 3c21e3b21f1967d85b49386c05945859ee0fab2bbe0062052319876bbe3283bf3a7b50a9e160e36e9ee96fbe79ac13c90d86ffb4157ef0cb0641acd9dafb917e
-DIST bash43-027 6889 SHA256 1eb76ad28561d27f7403ff3c76a36e932928a4b58a01b868d663c165f076dabe SHA512 6941156db9a6ab35b2d6ddc63eec064e03da779e29f47e33b467711e3405c9adb58ad33be3ad3c77aea1e84a314d5404c8e1a8475408991f5f719b93c5a276b3 WHIRLPOOL 241a77807f142765fac71490987bd62a93bbd57c6ad2f83fbc645bf0618286fbfc3cd269eadf99e7f973a9e88ac08c5065868f8ad38727c17bb6056cedc83888
-DIST bash43-028 69606 SHA256 e8b0dbed4724fa7b9bd8ff77d12c7f03da0fbfc5f8251ef5cb8511eb082b469d SHA512 4317380539e3a93167f195eddd0acf0c75a5d86d5ef243cb7f7dca43e745badc3ebbc081b099678ac17dc03d9a3ed4a3ff3c6636bb1887e73e94b8ff9ced7c88 WHIRLPOOL f01e8fe2c09a7bdefacd7114cc8377f7ccd65de6c3bafac05595f1400f330ba0ba63ce97fe7b9b49957639c75438bb5ceb853890094cb0c4e43fadc1795b89b6
-DIST bash43-029 1824 SHA256 4cc4a397fe6bc63ecb97d030a4e44258ef2d4e076d0e90c77782968cc43d6292 SHA512 e25783c7557c1cda8344ba779d59f83e26b90b0aca393b5f7ee389e0583ccf81eba394589e992b33eb6c969083a8a4ff7fc8ce52059cab3b71289d085d381f07 WHIRLPOOL 857275184a8a449461b5aebba12d8231e1e33a2119693fa2c865ead18d4c462dea8151cfc3e0d121c2e5569d9984856ba69820aaa54399ddc77bb849ea9de890
-DIST bash43-030 63206 SHA256 85434f8a2f379d0c49a3ff6d9ffa12c8b157188dd739e556d638217d2a58385b SHA512 ae41a9a5326ceb8e7105e359be097e14876160f6357bfa7c5cd3c4a495a629be762c3db671754c2cffc6abb34998aad91dde4a449ba16a0c6da844bac53feca4 WHIRLPOOL 2184fa715fb90de89f18ba2b27dca612b684a85e9228d58ccf2d62a96a2e575929b3e1a47fbb5809e4c231a6657084be4a076271cfdd5b8b7dde493f2cb40a01
-DIST bash43-031 3689 SHA256 cd529f59dd0f2fdd49d619fe34691da6f0affedf87cc37cd460a9f3fe812a61d SHA512 3178b4ab48860ed284bb64ac9b36b6d4d1681c0d4bc37ceeb93e73c9dd140bd0a71e86a86ae595aab43babedae79d75a4b11c57e6ad6800f43ab5f7647f6c4c9 WHIRLPOOL 1e21f10a8ade1317e6672fc76e7b0e988d7c02feed3b1e553c60e4717df0b6036ce0822e9f9bf603abaf5b9b248ffa63421601a7f5c2dfcc9c60a98fe77b23dc
-DIST bash43-032 1734 SHA256 889357d29a6005b2c3308ca5b6286cb223b5e9c083219e5db3156282dd554f4a SHA512 47afc6308bd4bed20661a87761330854508a745a1c2a7f2d661fbe0d95b00d2d5707cc04f510fcd027b3fdb065d9414697715bff33c707a56955e27341d1bfd0 WHIRLPOOL 4b7ef4ac84269a292fa4527d2796508f4da16f9579726d90664305bbd3c2a3fa9002db6c0d60b022a54e756590a196f5dfcb86492a6d776476189546edb488c7
-DIST bash43-033 7038 SHA256 fb2a7787a13fbe027a7335aca6eb3c21cdbd813e9edc221274b6a9d8692eaa16 SHA512 3eed328960d77317e1742a9b53ccf40b304657cd535d7f283bdc24219c65ebdcb7aca3019fc8fd9e7152f42dc411625acb1b529f80e4a6c5b750b8f7cbd2e4d0 WHIRLPOOL bdfa9cd681ff499daa14b2c28e294b929f4c8526f11d555046158f035cc2c7a9c48f49aa0837c3ea80cdbc6d960119f40260da4a664944d7e599e40d6227254e
-DIST bash43-034 2392 SHA256 f1694f04f110defe1330a851cc2768e7e57ddd2dfdb0e3e350ca0e3c214ff889 SHA512 95d09b843287dc18845b75ac6657a2bd7bd71c31a62f922e7177368678ddf13c0f20498bc17bdf4cd5c1c34d40838174791d1e464ceca168957c68e789e34d06 WHIRLPOOL b9919bf7aabb11e6cc4dd17dd9433775320bc025a22e23b40edbc649e54dfae3e86a3670e30af4863ff8612ade43c91906d15acdb652ac2c37f84f731fba3279
-DIST bash43-035 1800 SHA256 370d85e51780036f2386dc18c5efe996eba8e652fc1973f0f4f2ab55a993c1e3 SHA512 1ea68e7ffb15356fdcf5eed08dd7fe0e16aea2928a4510fcfafe79e926d7ac25f013641bf547bfff0401bbb7e1476a802208e4f1ccb8b02ed20c094f99e450d2 WHIRLPOOL a5818ea98353c191210e8d66af0ea998c0b831e6af73035112405c228e18afc8ff243bdc2f3263728fc1d8aa2e7be43ae559cb02662b277478081e127b4fc37a
-DIST bash43-036 1539 SHA256 ac5f82445b36efdb543dbfae64afed63f586d7574b833e9aa9cd5170bc5fd27c SHA512 089a05879b8b65c9f11c55127364a3281b651e71cbedfad6221e31dc88eca15d813986f999a22921726873db9590b7b50afcd6162027fe516c2a94e8734e3ee7 WHIRLPOOL 3468783b0c10ae74c548e0d0cca3694c21775e6ea83ea1a071ae27b24542b67ffc785e17d6bc849c8030c667c7f531ba1a2de8e808f7820b19e88576e12e098c
-DIST bash43-037 1284 SHA256 33f170dd7400ab3418d749c55c6391b1d161ef2de7aced1873451b3a3fca5813 SHA512 7977c0fb9142cdea259b06322092aab3231b9773cc397519bedb6f731aea02a46441c67615b31fd19c886678eb1985687d07357d15fc7f08e946404efc564966 WHIRLPOOL fc3e010f065aa3087ac4e22352459dc2cdd5a232653749250dfebf17023a405ed78e0b2dd8ad66727aaa2645173dc14be111e32e8fb71a13786f4fe6ac6875ac
-DIST bash43-038 2354 SHA256 adbeaa500ca7a82535f0e88d673661963f8a5fcdc7ad63445e68bf5b49786367 SHA512 2ef2557b17867b5820a9e5619daa1cddb3fadcff7470504c148828a3007217767da4bf540dc835cf263f9c943b2c1aa909c845f8410f69e2d04c8b3d659efee3 WHIRLPOOL 66a2878b850cce96e532625cdcd88d0402c775dc585419c946ddebb206fbf8bee91846cbdce7a88b9caef09e1b02c144e3e71734c918c1b2c09cec67c68fa8d0
-DIST bash43-039 1531 SHA256 ab94dced2215541097691f60c3eb323cc28ef2549463e6a5334bbcc1e61e74ec SHA512 f9745a05bfbbe39f8e5af3865de3a32391d7ff291289977e23340c79a3783b4fad15bdcf8ce62478916b43fe18501c4d7c65cd54d3c20e8bb889919df48a9a19 WHIRLPOOL 3ee69bc81a25afe4998f76d43c9c2f4f6aca61f545a7304156fceda0f8a99c86379b673967bc7f72c26f5bde01248f77d7aee6372164c2e3b94c7781c7f6bd08
-DIST bash43-040 1532 SHA256 84bb396b9262992ca5424feab6ed3ec39f193ef5c76dfe4a62b551bd8dd9d76b SHA512 25a0696f1f0e78cb971afa404e0b7fe634b70d49d6a5a9d6ff5506c42063968e8ede83ad80bd0b79601363676fe3abfedc3b76984f6f9ad2e7798790682e21d0 WHIRLPOOL a435f25ae432161f676b4965cc20cc096fa18af8a191dca7cb311a41e3504e5d27c668fb3430fece1de45e0eed9cb34357dc887e83ace9819f24d585eddf6720
-DIST bash43-041 2362 SHA256 4ec432966e4198524a7e0cd685fe222e96043769c9613e66742ac475db132c1a SHA512 d75cdd6a1fb8aeb1a4e88f046cfea3ec493b994b96f60f27d5577b59408422bb7c51cc4525cadab821fd8c57f44fb07f811b087d077359242caff3b54cfc6819 WHIRLPOOL c88e754d694b69bcb3ce390ab3e29932b30a74f8f15b75b570cc46699c072b0f872824766c45bc2a98627529896bdf5aaf6493a493ffd33932d9ed6a362defb3
-DIST bash43-042 1535 SHA256 ac219322db2791da87a496ee6e8e5544846494bdaaea2626270c2f73c1044919 SHA512 01a6601029c0a55c9bf1a4ace3f387f9d094a9b9ee3511e2113c000123d85b1d5813c369e62d5a6dd329f515ef0d67d11394a6c0e4516956387556c13d13009a WHIRLPOOL 790b15282a81f5717fb675ea4ae752382ddb1b101766e32c68deb1ec1d64fcf8841b3da556b87ac685e18b528a1de31bc4b94900369f6386f8e3991ed76232c1
-DIST bash43-043 1942 SHA256 47a8a3c005b46e25821f4d8f5ccb04c1d653b1c829cb40568d553dc44f7a6180 SHA512 eb05e537fac08587d0755ad59218bb5a51685aefc1476d6e3feaf72acd1e08cbda512988d8c157425e7939863b313d1e36f51b32f8a8497655c6b0710a24b738 WHIRLPOOL 3c9a466b68ea5d94b5ad9d1868ad1ace80df6608a9bd1b77c1cd06f7edb588090061f7f4e2639dd7190763864511d573dec33aad77be722516a1300e8a45ce31
-DIST bash43-044 1658 SHA256 9338820630bf67373b44d8ea68409f65162ea7a47b9b29ace06a0aed12567f99 SHA512 2937ef80c99e93094e4aaa6a93d077efc3e433a4712c17e30590a0abeb5488293365cb8aa19e37d25b7d5c38d3ad26cdea12b904e5ffb2cdb16f18ab12f422fd WHIRLPOOL 488f567b900e49a9de9b92e9a8e29a92a087d390e9f24c3986bf1d89524878c88c7a3c2cae959844427fb20e6858a7b8eae112aac640f3d97ba1f79888f9f25d
-DIST bash43-045 1312 SHA256 ba6ec3978e9eaa1eb3fabdaf3cc6fdf8c4606ac1c599faaeb4e2d69864150023 SHA512 7b79dacff44e5358da736334d2277a2879ca1389e22e9dac50e139f30dab623bc89a56930d89e74efc468a00d051f6747ccaffcd1a30d7c737d49780b9830e3d WHIRLPOOL f361e523879ff1898574ac5eca480661bd787dc278fff204e7f27da89e85439b4e9d36a5f556046b760f3beb115302e745b5196bfa081b402d3f76fb44463558
-DIST bash43-046 1494 SHA256 b3b456a6b690cd293353f17e22d92a202b3c8bce587ae5f2667c20c9ab6f688f SHA512 c036b659fa681f8129110356bec33fad00fb8e469f3b4bcefd0b7ddf5e20030977716adf5c65f58f3ff68cd7af0bdd42392ee077100bc7f45ee123749d082f7d WHIRLPOOL d58384a2ca77f9a80a69a117221da51a701539cf5497d8e0fc634cd1cc0cb0024e02675bea810a0f42b873b557d479ba1b7aee6e6f73bd1422df2dbb29396477
-DIST bash43-047 4437 SHA256 c69248de7e78ba6b92f118fe1ef47bc86479d5040fe0b1f908ace1c9e3c67c4a SHA512 9332d680ac226491cf8e5986a3261eb76b53ef4b0b2a43405564b088afc0e8658077812c9177bdab7900e05394e69f3047d82ddb59553fc01ef721acfa9d5553 WHIRLPOOL 719fa31d0fb09a75d5abbb63ee5a485802c5eadd06720d6074c2282d117aa6e234f5f75cabd340643710bd14e99260047183386bd1df278c9715aed7b98232d7
-DIST bash43-048 1612 SHA256 5b8215451c5d096ca1e115307ffe6613553551a70369525a0778f216c3a4dfa2 SHA512 7c3963bfbc730b4592668460e86c166e727e9897c1a9235a6860a01bc90d365ef0707f0fac7ed62780dcc84e80dbe8484ec59e9e948def22f44ae03e8a169780 WHIRLPOOL e1a435c3b9fbc0deca80dd89bfd3adcbff1d5a3af50884d2aef54635b8ba1063903e2d99a5a23bd1c64c19c5e9c19de6b479ac777cecdb812555dc5683b8cf71
+DIST bash-4.4.tar.gz 9377313 BLAKE2B ac0e481dd4f2d5b91eea4f0156f1fc398ef8bd1ccd941366aa9b041be576114c51e1ff1431ec871e96fb72257c2a05a0ebcbd88c43c221610fef7dfdb2502fc0 SHA512 73de3b425faaac55e45456b0f6f6d8077b5dfa7bb76e0d1894a19361b4a2b6bd4fbbe182117ddbfe9b07b4d898fba03537c261badc9533dd3c0da891764c7f29
+DIST bash44-001 1896 BLAKE2B 1ff23656f2904385f34aa94c48bec2a8cd145223c74c4138bb857a6ef79ec6e5985521661170c46c5bd603ea4fb7c1d8058770b4da0165366aab7b2bbaf4709b SHA512 fa7a1b277eb3bad6ae7d2c7a2887cbf2c0eb75b7fee8ed03ec1e9d45879a2fb4b8c7cb16d6b029987493b01a461214bd9a24454a6837e7cfe180b1bc56f61caa
+DIST bash44-002 1946 BLAKE2B 2b7798375a629ba957c139ded809e53a43ab03258557669304441c04433693069d1fc1af03fe5516140097e5c71c07870bf8cda2309a8fd7ade4b169a8256739 SHA512 526f986057810f89080e283ff95b3a8fd24d37e4ad2f18c39f36d3a2d57956a6441d16220082157735e3c5ccf770d5016e761aa5f309129898e39277d576e6b5
+DIST bash44-003 1593 BLAKE2B f47eeb4d32108d6e889436ad72920c1749e13fb17439dffb8df72f334f570fcccc7956bd616ef1beec5c07c1479d9113047f8aaa21c19af3e4db21f00783dcbd SHA512 e61db89bdd1a7ae15013fe258046a343c9ea41e5a1c6d2c810947500a617fce7536b8d51194e14bb42499fe0de6d70cc9b2c81da0afdcb5a2278459f4f76d748
+DIST bash44-004 2350 BLAKE2B 245c88f4f7f7e0a4a571956c1a6363b8ba86b883897bd8c92297605811e418748709f9ffaa148173c9669b4dc8b71482fce9eb3b177920fd8d34b260465c72fd SHA512 7570cf15518f79230cfe91b3e58c795c16c7fb6ba6418d967355b36fb7982e7919a9eaaef9177fb605c7fb7d7efb8a8335e725c1bacffff69a098433f5adc9c7
+DIST bash44-005 1439 BLAKE2B 4d563b1a0b2d858a904b98fb52b38c8c806942b6c879b3a02480774b0806468f51a91ef0a26a4a9c5bc8f2a3242cd206afe786d0754449cb11adeed4ae97a90d SHA512 7546a6c90c8e8508567dde713722291477ca87c1116905b46432514a4fc632840a855b84f102591914cd4c44d5bf2eb7400866e26366fc94525fb401ea844a8f
+DIST bash44-006 1805 BLAKE2B aa187e52bc12dc5c34e52d6b487a0f260e3c54970ebb022c54293f409903baeb239417d671d85b16d30b327c6353ffa666dc7adb5c872ec500266339d8a9de0e SHA512 5edcd76cf97bfe289f71924ba279ff48a1167eb3cc36f811cbcc23732746f5c821d1d39d4b137b7d99d57809a4b7270a54f4a41176fcfde0708bf92ddc68b77f
+DIST bash44-007 4640 BLAKE2B 3b803e553ac117129db686818835ce6deb7574b38171f4c9262448e01e097933645311de003593ef3949a7ba5925172577a758b2edd281c4446f3bca62beadb8 SHA512 386c019debee414697abc648d9a77894e842bb0b7a2a71709e8b3398582f25065e68963405fa22fb77439c6b431ee94a2ecbb16734c2436af3dfb4d1b5f06fcf
+DIST bash44-008 2223 BLAKE2B 09c01c2821404ca8a89d9644cd7d55d2994ba4cdc15b928c1156e2a91c083b528340c27909bdd312a78f677cc94ded5888ec4eaff0d0070d575fbdde3bb326a0 SHA512 d9a8924f1c9263deab89153bb688a87f211913ebd72c8077e607db6fdddc7e5af05042dd22a9a2df593e518ea74b54ca79d20afc796e47d871827a2556e233d0
+DIST bash44-009 3117 BLAKE2B 1921a30e1f7c6d37cac048772f89322e2cfe6e77f3ec48d4a6bb3d7e82452b7471bef2e1fa31094a62d9a29589a8438dc875211dbab8ba204939e16810eca13b SHA512 3b01c080cf4a54658679b36c282a69a9ac48b900b19ceb42dbaf084abd395d50e5ff14db90a7fdf0c9856dad150897dca561160686c931634765782447fc076e
+DIST bash44-010 1670 BLAKE2B 6e0cab685ae2393a9ae7eeb91767f8ce3086e3921f2d69614e729e9bc26603b363a69083c57a43aa53669491deba663bd8c9de91571833312cc23efb05c43222 SHA512 54ff556b62fd88381e7a495db50957b016474973b3a566661c65b649a40960f2d3355221b3a71fb292128aad92a45d73d9816d63833bc416b4d15acdef391b98
+DIST bash44-011 1603 BLAKE2B 6bd978408140620c2d63277757c15bfe55d6b0ff5706b7b884b234308efb6cfa771888306840ce5cfd4ece5912924dbb6a321d823fa106c99ba573f47dbbb9ae SHA512 6b5b068b74978fc691749ccff5e094c768047f702430e97114f5bf342f078696f7d7616d0642d4061b062e9112dfe00a1c2309c65de4147e0e98fb52c593d844
+DIST bash44-012 5768 BLAKE2B 63c6f5ff2cf52a35e1bd7f0028d7cce5c2c87e65ca600d8d85bf9b197ac8dee16bed5dc1dba6b354ef560309022cfd427a08180b76effe4107b9dda2ed99b20e SHA512 4661c4c132f2ea7c9a70368301041c482d5820d8389334a7e3ae44c36fc16c171b20db2f194b7663c84d6c3dcef81aa90f050a48e205218fc7bd3395d09c6a51
+DIST bash44-013 1255 BLAKE2B f19be55c986bc60c395d24044c7edc67cd180d86047af59d173c1507de32534b2eed546f16164d799283d66c0d0460ff4771da6bc327bc87ebc4f01cb284f9eb SHA512 eac0a9abf59b65a59a0028d2f3c0a7dc8a0b3c04e2d2db642b69aa7c13a2dfa190f3c63f7d8a7c9400f01701e9ef84212ce668c4c44d0ccfd02cd1f8e723d831
+DIST bash44-014 2834 BLAKE2B 3a211d9916e16a996d709034523dc0f3775520736f481bdff8c737e1969da1719602bf0379befc685822e4931586482a30bbec69be4233da4f912c5b6333886e SHA512 11e16896aa66a1eafb12cdcea00515132789690e914c8894caefd8c80ed98c8e732428348ddbfb53495164ce4044596f5cdbc03e146dce364fc497f362a1859b
+DIST bash44-015 1233 BLAKE2B 5504d4a64f938ccfbb12f43455c11c6dc6a38397e5692da874a1b5de1865d19677c6f683073dbf9843869df67f96a87a6a60d2381338294d6750f2aba1580c55 SHA512 94d6fed30d4a376c29f8986d15f1b3fd65a04ee0f3d1844d010f3e51a2f9f875cd294a68fb6f0e1ffa481fb09f02055b21f2f298ebd9d88eb2f76d6c1f15de34
+DIST bash44-016 2069 BLAKE2B 5ac613c450d018edff4f82740655ed0e460e49b57ce1a817f0b7b0a101b9f1ab095c48904fc17789203d6bdcc1beb01dde23b4a097f36441eda5e11ab638e9bd SHA512 5acc704df3fe63b5b8055ba7bc14ae70cc23d15aefee8db6991e6c11cc8b0e10fcc67d516bc2d2fde84be26ed5c88dbf266fa164756218b60eccc2bfb4eed7d9
+DIST bash44-017 1143 BLAKE2B 64da515637109cd87b95e5f55857f25c2758b4a5c2620cd21250287e00767d5ca7a14fe331603cdef1ba02f622d97ee120bc0bfba463bccb113f16ebee56159f SHA512 c1d50aee953427ba0b95e48c10d2324e7413f3354ff65b9c3c1dfd14eedec55e619fcd12353e7b99b6e280f510e04d1c971b309c1a4efb97d48ddb30d69f14ac
+DIST bash44-018 1319 BLAKE2B abfd87f2cb5e9aeb0352bb0efbfd3ad95cbb26445e09edaa762cf1ea1fa01a00ab57c96d912ae5eaf653b66169bc54bba39fdf1d62ad45301c6599d21979ff14 SHA512 008ff44dbf916414d691c29cee29e7f636bbe79170463d76ef16ca63ecdc24a84ff4476078c28fb8788d9b1fb0572612a7e8cb30fceb55ad650f293db8361ad1
+DIST bash44-019 1671 BLAKE2B 3d917b1c2618b92d7a79d64a8282cda84098d7d83b8ab3e62c49ab259d6976ef953ab1bde98b9d2cd925cfbdff94b5fd5910876e8de85d40466cf5f3ceb377c4 SHA512 59984e221a7a6dbf72bf893b1b7c4a63fea34d6af1208a19f0e9e6cd59a09e4cf51890cb2d31c1502e2a2f644f584417bb59cf02c308d3250d2a98d41b63e893
+DIST bash44-020 5156 BLAKE2B 6f2bba1fe03eb49401af3925420ff5c090d0e7d83010c34e086f5da48fc2078ef649d775b45e3368e73fc1ebdd6f1860b33bf7021898cae158d478aa1dd18bca SHA512 e200fddd717fa33d2c56eb6713031d34891e5ebcd489a65a43ccfebf9728c1609b758ca3dffb1eed4abd3c62c6d7163ce88d8a1bb73b6d07bee99e0409365978
+DIST bash44-021 1810 BLAKE2B ce3f98e31aaa7db402cf2a2e571a72b9b91fad4571b35a5e8f59678485a631acf3885a19ee09ebdc6f79b39dbdafe72cc2cd91bf3c3b31ad7d3a65b5bc4bd9b3 SHA512 43a82d06a17bc30c2579a0944cb68f60bd9e3cddb9fff4a760fbf1f2f5104a99bb69c400cf63231b242c03a4684701455e603d96c9b588f2c69da02570042fec
+DIST bash44-022 1818 BLAKE2B 66c6e5fd33f0649ff886d1fd944cb10a06de06f0724c0cb7343c3afd50034821f1a4eeccbe9bc5c6815ce9bcdfacf5e6a83098fbd3712efc15e870928b3aa80e SHA512 385a0d1bbdff0dffec2a08021a84a5ac3695e44e1a90b0080b82737fc4a9ea924ee59b47fd5e288b69a540f4c976bf9da0db08ee2d20e170c868f802f75785fb
+DIST bash44-023 1557 BLAKE2B 95a21ade7e4be68d66f3862f26b574c5897055822471c8d2801b8e1f866d1d11ddd4000e967b567c3ef7949af8a88ca918ea066d52a67fc5fd4b266135f0dbbb SHA512 442efa78d365a728555ade77cc2f8501aed09f37ae10e1ac647d35299829b63caefbc5c30436d622bfef9300e9d929d7f4fafe85a59df15089881bc987fa12fd
diff --git a/app-shells/bash/bash-4.3_p48-r1.ebuild b/app-shells/bash/bash-4.3_p48-r1.ebuild
deleted file mode 100644
index 8d3f40e..0000000
--- a/app-shells/bash/bash-4.3_p48-r1.ebuild
+++ /dev/null
@@ -1,252 +0,0 @@
-# Copyright 1999-2018 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="5"
-
-inherit eutils flag-o-matic toolchain-funcs multilib
-
-# Official patchlevel
-# See ftp://ftp.cwru.edu/pub/bash/bash-4.3-patches/
-PLEVEL=${PV##*_p}
-MY_PV=${PV/_p*}
-MY_PV=${MY_PV/_/-}
-MY_P=${PN}-${MY_PV}
-[[ ${PV} != *_p* ]] && PLEVEL=0
-patches() {
-	local opt=$1 plevel=${2:-${PLEVEL}} pn=${3:-${PN}} pv=${4:-${MY_PV}}
-	[[ ${plevel} -eq 0 ]] && return 1
-	eval set -- {1..${plevel}}
-	set -- $(printf "${pn}${pv/\.}-%03d " "$@")
-	if [[ ${opt} == -s ]] ; then
-		echo "${@/#/${DISTDIR}/}"
-	else
-		local u
-		for u in ftp://ftp.cwru.edu/pub/bash mirror://gnu/${pn} ; do
-			printf "${u}/${pn}-${pv}-patches/%s " "$@"
-		done
-	fi
-}
-
-# The version of readline this bash normally ships with.
-READLINE_VER="6.3"
-
-DESCRIPTION="The standard GNU Bourne again shell"
-HOMEPAGE="http://tiswww.case.edu/php/chet/bash/bashtop.html"
-SRC_URI="mirror://gnu/bash/${MY_P}.tar.gz $(patches)"
-[[ ${PV} == *_rc* ]] && SRC_URI+=" ftp://ftp.cwru.edu/pub/bash/${MY_P}.tar.gz"
-
-LICENSE="GPL-3"
-SLOT="0"
-KEYWORDS="*"
-IUSE="afs bashlogger examples mem-scramble +net nls plugins +readline"
-
-DEPEND=">=sys-libs/ncurses-5.2-r2:0=
-	readline? ( >=sys-libs/readline-${READLINE_VER}:0= )
-	nls? ( virtual/libintl )"
-RDEPEND="${DEPEND}
-	!<sys-apps/portage-2.1.6.7_p1
-	!<sys-apps/paludis-0.26.0_alpha5"
-# we only need yacc when the .y files get patched (bash42-005)
-DEPEND+=" virtual/yacc"
-
-PATCHES=(
-	"${FILESDIR}"/${PN}-4.3-mapfile-improper-array-name-validation.patch
-	"${FILESDIR}"/${PN}-4.3-arrayfunc.patch
-	"${FILESDIR}"/${PN}-4.3-protos.patch
-	"${FILESDIR}"/${PN}-4.4-popd-offset-overflow.patch #600174
-)
-
-S=${WORKDIR}/${MY_P}
-
-pkg_setup() {
-	if is-flag -malign-double ; then #7332
-		eerror "Detected bad CFLAGS '-malign-double'.  Do not use this"
-		eerror "as it breaks LFS (struct stat64) on x86."
-		die "remove -malign-double from your CFLAGS mr ricer"
-	fi
-	if use bashlogger ; then
-		ewarn "The logging patch should ONLY be used in restricted (i.e. honeypot) envs."
-		ewarn "This will log ALL output you enter into the shell, you have been warned."
-	fi
-}
-
-src_unpack() {
-	unpack ${MY_P}.tar.gz
-}
-
-src_prepare() {
-	# Include official patches
-	[[ ${PLEVEL} -gt 0 ]] && epatch $(patches -s)
-
-	# Clean out local libs so we know we use system ones w/releases.
-	if [[ ${PV} != *_rc* ]] ; then
-		rm -rf lib/{readline,termcap}/*
-		touch lib/{readline,termcap}/Makefile.in # for config.status
-		sed -ri -e 's:\$[(](RL|HIST)_LIBSRC[)]/[[:alpha:]]*.h::g' Makefile.in || die
-	fi
-
-	# Avoid regenerating docs after patches #407985
-	sed -i -r '/^(HS|RL)USER/s:=.*:=:' doc/Makefile.in || die
-	touch -r . doc/*
-
-	epatch "${PATCHES[@]}"
-
-	epatch_user
-}
-
-src_configure() {
-	local myconf=()
-
-	# For descriptions of these, see config-top.h
-	# bashrc/#26952 bash_logout/#90488 ssh/#24762 mktemp/#574426
-	append-cppflags \
-		-DDEFAULT_PATH_VALUE=\'\"${EPREFIX}/usr/local/sbin:${EPREFIX}/usr/local/bin:${EPREFIX}/usr/sbin:${EPREFIX}/usr/bin:${EPREFIX}/sbin:${EPREFIX}/bin\"\' \
-		-DSTANDARD_UTILS_PATH=\'\"${EPREFIX}/bin:${EPREFIX}/usr/bin:${EPREFIX}/sbin:${EPREFIX}/usr/sbin\"\' \
-		-DSYS_BASHRC=\'\"${EPREFIX}/etc/bash/bashrc\"\' \
-		-DSYS_BASH_LOGOUT=\'\"${EPREFIX}/etc/bash/bash_logout\"\' \
-		-DNON_INTERACTIVE_LOGIN_SHELLS \
-		-DSSH_SOURCE_BASHRC \
-		-DUSE_MKTEMP -DUSE_MKSTEMP \
-		$(use bashlogger && echo -DSYSLOG_HISTORY)
-
-	# Don't even think about building this statically without
-	# reading Bug 7714 first.  If you still build it statically,
-	# don't come crying to us with bugs ;).
-	#use static && export LDFLAGS="${LDFLAGS} -static"
-	use nls || myconf+=( --disable-nls )
-
-	# Historically, we always used the builtin readline, but since
-	# our handling of SONAME upgrades has gotten much more stable
-	# in the PM (and the readline ebuild itself preserves the old
-	# libs during upgrades), linking against the system copy should
-	# be safe.
-	# Exact cached version here doesn't really matter as long as it
-	# is at least what's in the DEPEND up above.
-	export ac_cv_rl_version=${READLINE_VER}
-
-	# Force linking with system curses ... the bundled termcap lib
-	# sucks bad compared to ncurses.  For the most part, ncurses
-	# is here because readline needs it.  But bash itself calls
-	# ncurses in one or two small places :(.
-
-	if [[ ${PV} != *_rc* ]] ; then
-		# Use system readline only with released versions.
-		myconf+=( --with-installed-readline=. )
-	fi
-
-	if use plugins; then
-		append-ldflags -Wl,-rpath,/usr/$(get_libdir)/bash
-	else
-		# Disable the plugins logic by hand since bash doesn't
-		# provide a way of doing it.
-		export ac_cv_func_dl{close,open,sym}=no \
-			ac_cv_lib_dl_dlopen=no ac_cv_header_dlfcn_h=no
-		sed -i \
-			-e '/LOCAL_LDFLAGS=/s:-rdynamic::' \
-			configure || die
-	fi
-	tc-export AR #444070
-	econf \
-		--docdir='$(datarootdir)'/doc/${PF} \
-		--htmldir='$(docdir)/html' \
-		--with-curses \
-		$(use_with afs) \
-		$(use_enable net net-redirections) \
-		--disable-profiling \
-		$(use_enable mem-scramble) \
-		$(use_with mem-scramble bash-malloc) \
-		$(use_enable readline) \
-		$(use_enable readline history) \
-		$(use_enable readline bang-history) \
-		"${myconf[@]}"
-}
-
-src_compile() {
-	emake
-
-	if use plugins ; then
-		emake -C examples/loadables all others
-	fi
-}
-
-src_install() {
-	local d f
-
-	default
-
-	dodir /bin
-	mv "${ED}"/usr/bin/bash "${ED}"/bin/ || die
-	dosym bash /bin/rbash
-
-	insinto /etc/bash
-	doins "${FILESDIR}"/bash_logout
-	doins "${FILESDIR}"/bashrc
-	keepdir /etc/bash/bashrc.d
-	insinto /etc/skel
-	for f in bash{_logout,_profile,rc} ; do
-		newins "${FILESDIR}"/dot-${f} .${f}
-	done
-
-	local sed_args=(
-		-e "s:#${USERLAND}#@::"
-		-e '/#@/d'
-	)
-	if ! use readline ; then
-		sed_args+=( #432338
-			-e '/^shopt -s histappend/s:^:#:'
-			-e 's:use_color=true:use_color=false:'
-		)
-	fi
-	sed -i \
-		"${sed_args[@]}" \
-		"${ED}"/etc/skel/.bashrc \
-		"${ED}"/etc/bash/bashrc || die
-
-	if use plugins ; then
-		exeinto /usr/$(get_libdir)/bash
-		doexe $(echo examples/loadables/*.o | sed 's:\.o::g')
-		insinto /usr/include/bash-plugins
-		doins *.h builtins/*.h include/*.h lib/{glob/glob.h,tilde/tilde.h}
-	fi
-
-	if use examples ; then
-		for d in examples/{functions,misc,scripts,startup-files} ; do
-			exeinto /usr/share/doc/${PF}/${d}
-			insinto /usr/share/doc/${PF}/${d}
-			for f in ${d}/* ; do
-				if [[ ${f##*/} != PERMISSION ]] && [[ ${f##*/} != *README ]] ; then
-					doexe ${f}
-				else
-					doins ${f}
-				fi
-			done
-		done
-	fi
-
-	doman doc/*.1
-	newdoc CWRU/changelog ChangeLog
-	dosym bash.info /usr/share/info/bashref.info
-}
-
-pkg_preinst() {
-	if [[ -e ${EROOT}/etc/bashrc ]] && [[ ! -d ${EROOT}/etc/bash ]] ; then
-		mkdir -p "${EROOT}"/etc/bash
-		mv -f "${EROOT}"/etc/bashrc "${EROOT}"/etc/bash/
-	fi
-
-	if [[ -L ${EROOT}/bin/sh ]] ; then
-		# rewrite the symlink to ensure that its mtime changes. having /bin/sh
-		# missing even temporarily causes a fatal error with paludis.
-		local target=$(readlink "${EROOT}"/bin/sh)
-		local tmp=$(emktemp "${EROOT}"/bin)
-		ln -sf "${target}" "${tmp}"
-		mv -f "${tmp}" "${EROOT}"/bin/sh
-	fi
-}
-
-pkg_postinst() {
-	# If /bin/sh does not exist, provide it
-	if [[ ! -e ${EROOT}/bin/sh ]] ; then
-		ln -sf bash "${EROOT}"/bin/sh
-	fi
-}
diff --git a/app-shells/bash/bash-4.3_p48-r4.ebuild b/app-shells/bash/bash-4.3_p48-r4.ebuild
deleted file mode 120000
index 72030ae..0000000
--- a/app-shells/bash/bash-4.3_p48-r4.ebuild
+++ /dev/null
@@ -1 +0,0 @@
-bash-4.3_p48-r1.ebuild
\ No newline at end of file
diff --git a/app-shells/bash/bash-4.4_p23-r1.ebuild b/app-shells/bash/bash-4.4_p23-r1.ebuild
new file mode 100644
index 0000000..291c9fb
--- /dev/null
+++ b/app-shells/bash/bash-4.4_p23-r1.ebuild
@@ -0,0 +1,257 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit eutils flag-o-matic toolchain-funcs multilib prefix
+
+# Official patchlevel
+# See ftp://ftp.cwru.edu/pub/bash/bash-4.4-patches/
+PLEVEL=${PV##*_p}
+MY_PV=${PV/_p*}
+MY_PV=${MY_PV/_/-}
+MY_P=${PN}-${MY_PV}
+is_release() {
+	case ${PV} in
+	*_alpha*|*_beta*|*_rc*) return 1 ;;
+	*) return 0 ;;
+	esac
+}
+[[ ${PV} != *_p* ]] && PLEVEL=0
+patches() {
+	local opt=$1 plevel=${2:-${PLEVEL}} pn=${3:-${PN}} pv=${4:-${MY_PV}}
+	[[ ${plevel} -eq 0 ]] && return 1
+	eval set -- {1..${plevel}}
+	set -- $(printf "${pn}${pv/\.}-%03d " "$@")
+	if [[ ${opt} == -s ]] ; then
+		echo "${@/#/${DISTDIR}/}"
+	else
+		local u
+		for u in ftp://ftp.cwru.edu/pub/bash mirror://gnu/${pn} ; do
+			printf "${u}/${pn}-${pv}-patches/%s " "$@"
+		done
+	fi
+}
+
+# The version of readline this bash normally ships with.
+READLINE_VER="7.0"
+
+DESCRIPTION="The standard GNU Bourne again shell"
+HOMEPAGE="http://tiswww.case.edu/php/chet/bash/bashtop.html"
+if is_release ; then
+	SRC_URI="mirror://gnu/bash/${MY_P}.tar.gz $(patches)"
+else
+	SRC_URI="ftp://ftp.cwru.edu/pub/bash/${MY_P}.tar.gz"
+fi
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="*"
+IUSE="afs bashlogger examples mem-scramble +net nls plugins +readline"
+
+DEPEND="
+	>=sys-libs/ncurses-5.2-r2:0=
+	readline? ( >=sys-libs/readline-${READLINE_VER}:0= )
+	nls? ( virtual/libintl )
+"
+RDEPEND="
+	${DEPEND}
+"
+# we only need yacc when the .y files get patched (bash42-005)
+#DEPEND+=" virtual/yacc"
+
+S="${WORKDIR}/${MY_P}"
+
+pkg_setup() {
+	if is-flag -malign-double ; then #7332
+		eerror "Detected bad CFLAGS '-malign-double'.  Do not use this"
+		eerror "as it breaks LFS (struct stat64) on x86."
+		die "remove -malign-double from your CFLAGS mr ricer"
+	fi
+	if use bashlogger ; then
+		ewarn "The logging patch should ONLY be used in restricted (i.e. honeypot) envs."
+		ewarn "This will log ALL output you enter into the shell, you have been warned."
+	fi
+}
+
+src_unpack() {
+	unpack ${MY_P}.tar.gz
+}
+
+src_prepare() {
+	# Include official patches
+	[[ ${PLEVEL} -gt 0 ]] && eapply -p0 $(patches -s)
+
+	eapply "${FILESDIR}/${PN}-4.4-jobs_overflow.patch" #644720
+	eapply "${FILESDIR}/${PN}-4.4-set-SHOBJ_STATUS.patch" #644720
+
+	# Clean out local libs so we know we use system ones w/releases.
+	if is_release ; then
+		rm -rf lib/{readline,termcap}/*
+		touch lib/{readline,termcap}/Makefile.in # for config.status
+		sed -ri -e 's:\$[(](RL|HIST)_LIBSRC[)]/[[:alpha:]]*.h::g' Makefile.in || die
+	fi
+
+	# Prefixify hardcoded path names. No-op for non-prefix.
+	hprefixify pathnames.h.in
+
+	# Avoid regenerating docs after patches #407985
+	sed -i -r '/^(HS|RL)USER/s:=.*:=:' doc/Makefile.in || die
+	touch -r . doc/*
+
+	eapply_user
+}
+
+src_configure() {
+	local myconf=(
+		--disable-profiling
+		--with-curses
+		$(use_enable mem-scramble)
+		$(use_enable net net-redirections)
+		$(use_enable readline)
+		$(use_enable readline bang-history)
+		$(use_enable readline history)
+		$(use_with afs)
+		$(use_with mem-scramble bash-malloc)
+	)
+
+	# For descriptions of these, see config-top.h
+	# bashrc/#26952 bash_logout/#90488 ssh/#24762 mktemp/#574426
+	append-cppflags \
+		-DDEFAULT_PATH_VALUE=\'\"${EPREFIX}/usr/local/sbin:${EPREFIX}/usr/local/bin:${EPREFIX}/usr/sbin:${EPREFIX}/usr/bin:${EPREFIX}/sbin:${EPREFIX}/bin\"\' \
+		-DSTANDARD_UTILS_PATH=\'\"${EPREFIX}/bin:${EPREFIX}/usr/bin:${EPREFIX}/sbin:${EPREFIX}/usr/sbin\"\' \
+		-DSYS_BASHRC=\'\"${EPREFIX}/etc/bash/bashrc\"\' \
+		-DSYS_BASH_LOGOUT=\'\"${EPREFIX}/etc/bash/bash_logout\"\' \
+		-DNON_INTERACTIVE_LOGIN_SHELLS \
+		-DSSH_SOURCE_BASHRC \
+		$(use bashlogger && echo -DSYSLOG_HISTORY)
+
+	# Don't even think about building this statically without
+	# reading Bug 7714 first.  If you still build it statically,
+	# don't come crying to us with bugs ;).
+	#use static && export LDFLAGS="${LDFLAGS} -static"
+	use nls || myconf+=( --disable-nls )
+
+	# Historically, we always used the builtin readline, but since
+	# our handling of SONAME upgrades has gotten much more stable
+	# in the PM (and the readline ebuild itself preserves the old
+	# libs during upgrades), linking against the system copy should
+	# be safe.
+	# Exact cached version here doesn't really matter as long as it
+	# is at least what's in the DEPEND up above.
+	export ac_cv_rl_version=${READLINE_VER%%_*}
+
+	# Force linking with system curses ... the bundled termcap lib
+	# sucks bad compared to ncurses.  For the most part, ncurses
+	# is here because readline needs it.  But bash itself calls
+	# ncurses in one or two small places :(.
+
+	if is_release ; then
+		# Use system readline only with released versions.
+		myconf+=( --with-installed-readline=. )
+	fi
+
+	if use plugins; then
+		append-ldflags -Wl,-rpath,/usr/$(get_libdir)/bash
+	else
+		# Disable the plugins logic by hand since bash doesn't
+		# provide a way of doing it.
+		export ac_cv_func_dl{close,open,sym}=no \
+			ac_cv_lib_dl_dlopen=no ac_cv_header_dlfcn_h=no
+		sed -i \
+			-e '/LOCAL_LDFLAGS=/s:-rdynamic::' \
+			configure || die
+	fi
+	tc-export AR #444070
+	econf "${myconf[@]}"
+}
+
+src_compile() {
+	emake
+
+	if use plugins ; then
+		emake -C examples/loadables all others
+	fi
+}
+
+src_install() {
+	local d f
+
+	default
+
+	dodir /bin
+	mv "${ED%/}"/usr/bin/bash "${ED%/}"/bin/ || die
+	dosym bash /bin/rbash
+
+	insinto /etc/bash
+	doins "${FILESDIR}"/bash_logout
+	doins "$(prefixify_ro "${FILESDIR}"/bashrc)"
+	keepdir /etc/bash/bashrc.d
+	insinto /etc/skel
+	for f in bash{_logout,_profile,rc} ; do
+		newins "${FILESDIR}"/dot-${f} .${f}
+	done
+
+	local sed_args=(
+		-e "s:#${USERLAND}#@::"
+		-e '/#@/d'
+	)
+	if ! use readline ; then
+		sed_args+=( #432338
+			-e '/^shopt -s histappend/s:^:#:'
+			-e 's:use_color=true:use_color=false:'
+		)
+	fi
+	sed -i \
+		"${sed_args[@]}" \
+		"${ED%/}"/etc/skel/.bashrc \
+		"${ED%/}"/etc/bash/bashrc || die
+
+	if use plugins ; then
+		exeinto /usr/$(get_libdir)/bash
+		doexe $(echo examples/loadables/*.o | sed 's:\.o::g')
+		insinto /usr/include/bash-plugins
+		doins *.h builtins/*.h include/*.h lib/{glob/glob.h,tilde/tilde.h}
+	fi
+
+	if use examples ; then
+		for d in examples/{functions,misc,scripts,startup-files} ; do
+			exeinto /usr/share/doc/${PF}/${d}
+			docinto ${d}
+			for f in ${d}/* ; do
+				if [[ ${f##*/} != PERMISSION ]] && [[ ${f##*/} != *README ]] ; then
+					doexe ${f}
+				else
+					dodoc ${f}
+				fi
+			done
+		done
+	fi
+
+	doman doc/*.1
+	newdoc CWRU/changelog ChangeLog
+	dosym bash.info /usr/share/info/bashref.info
+}
+
+pkg_preinst() {
+	if [[ -e ${EROOT}/etc/bashrc ]] && [[ ! -d ${EROOT}/etc/bash ]] ; then
+		mkdir -p "${EROOT}"/etc/bash
+		mv -f "${EROOT}"/etc/bashrc "${EROOT}"/etc/bash/
+	fi
+
+	if [[ -L ${EROOT}/bin/sh ]] ; then
+		# rewrite the symlink to ensure that its mtime changes. having /bin/sh
+		# missing even temporarily causes a fatal error with paludis.
+		local target=$(readlink "${EROOT}"/bin/sh)
+		local tmp=$(emktemp "${EROOT}"/bin)
+		ln -sf "${target}" "${tmp}"
+		mv -f "${tmp}" "${EROOT}"/bin/sh
+	fi
+}
+
+pkg_postinst() {
+	# If /bin/sh does not exist, provide it
+	if [[ ! -e ${EROOT}/bin/sh ]] ; then
+		ln -sf bash "${EROOT}"/bin/sh
+	fi
+}
diff --git a/app-shells/bash/files/bash-4.3-arrayfunc.patch b/app-shells/bash/files/bash-4.3-arrayfunc.patch
deleted file mode 100644
index f44d184..0000000
--- a/app-shells/bash/files/bash-4.3-arrayfunc.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-http://lists.gnu.org/archive/html/bug-bash/2014-11/msg00178.html
-
-diff --git a/arrayfunc.c b/arrayfunc.c
-index 804e6da..0f900aa 100644
---- a/arrayfunc.c
-+++ b/arrayfunc.c
-@@ -498,7 +498,7 @@ assign_compound_array_list (var, nlist, flags)
- 
-   for (list = nlist; list; list = list->next)
-     {
--      iflags = flags;
-+      iflags = (flags & ~ASS_APPEND);
-       w = list->word->word;
- 
-       /* We have a word of the form [ind]=value */
diff --git a/app-shells/bash/files/bash-4.3-mapfile-improper-array-name-validation.patch b/app-shells/bash/files/bash-4.3-mapfile-improper-array-name-validation.patch
deleted file mode 100644
index 20bf340..0000000
--- a/app-shells/bash/files/bash-4.3-mapfile-improper-array-name-validation.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-http://lists.gnu.org/archive/html/bug-bash/2014-11/msg00097.html
-
---- bash-4.3/builtins/mapfile.def
-+++ bash-4.3/builtins/mapfile.def
-@@ -339,7 +339,7 @@
-   else
-     array_name = list->word->word;
-   
--  if (legal_identifier (array_name) == 0 && valid_array_reference (array_name) == 0)
-+  if (legal_identifier (array_name) == 0)
-     {
-       sh_invalidid (array_name);
-       return (EXECUTION_FAILURE);
diff --git a/app-shells/bash/files/bash-4.3-protos.patch b/app-shells/bash/files/bash-4.3-protos.patch
deleted file mode 100644
index 7af84ff..0000000
--- a/app-shells/bash/files/bash-4.3-protos.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/redir.c
-+++ b/redir.c
-@@ -31,6 +31,7 @@
- #endif
- #include "filecntl.h"
- #include "posixstat.h"
-+#include "trap.h"
- 
- #if defined (HAVE_UNISTD_H)
- #  include <unistd.h>
diff --git a/app-shells/bash/files/bash-4.4-jobs_overflow.patch b/app-shells/bash/files/bash-4.4-jobs_overflow.patch
new file mode 100644
index 0000000..8753d62
--- /dev/null
+++ b/app-shells/bash/files/bash-4.4-jobs_overflow.patch
@@ -0,0 +1,14 @@
+https://lists.gnu.org/archive/html/bug-bash/2017-12/msg00025.html
+https://bugs.gentoo.org/644720
+
+--- bash-4.4/jobs.c
++++ bash-4.4/jobs.c
+@@ -750,7 +750,7 @@
+   else
+     nsize = bgpids.nalloc;
+ 
+-  while (nsize < js.c_childmax)
++  while (nsize < (ps_index_t)js.c_childmax)
+     nsize *= 2;
+ 
+   if (bgpids.nalloc < js.c_childmax)
diff --git a/app-shells/bash/files/bash-4.4-popd-offset-overflow.patch b/app-shells/bash/files/bash-4.4-popd-offset-overflow.patch
deleted file mode 100644
index c6ef19d..0000000
--- a/app-shells/bash/files/bash-4.4-popd-offset-overflow.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-https://bugs.gentoo.org/600174
-https://lists.gnu.org/archive/html/bug-bash/2016-11/msg00099.html
-
-*** ../bash-4.4-patched/builtins/pushd.def	2016-01-25 13:31:49.000000000 -0500
---- builtins/pushd.def	2016-10-28 10:46:49.000000000 -0400
-***************
-*** 366,370 ****
-      }
-  
-!   if (which > directory_list_offset || (directory_list_offset == 0 && which == 0))
-      {
-        pushd_error (directory_list_offset, which_word ? which_word : "");
---- 366,370 ----
-      }
-  
-!   if (which > directory_list_offset || (which < -directory_list_offset) || (directory_list_offset == 0 && which == 0))
-      {
-        pushd_error (directory_list_offset, which_word ? which_word : "");
-***************
-*** 388,391 ****
---- 388,396 ----
-  	 of the list into place. */
-        i = (direction == '+') ? directory_list_offset - which : which;
-+       if (i < 0 || i > directory_list_offset)
-+ 	{
-+ 	  pushd_error (directory_list_offset, which_word ? which_word : "");
-+ 	  return (EXECUTION_FAILURE);
-+ 	}
-        free (pushd_directory_list[i]);
-        directory_list_offset--;
diff --git a/app-shells/bash/files/bash-4.4-set-SHOBJ_STATUS.patch b/app-shells/bash/files/bash-4.4-set-SHOBJ_STATUS.patch
new file mode 100644
index 0000000..96302c2
--- /dev/null
+++ b/app-shells/bash/files/bash-4.4-set-SHOBJ_STATUS.patch
@@ -0,0 +1,14 @@
+http://lists.gnu.org/archive/html/bug-bash/2016-10/msg00004.html
+
+--- a/configure
++++ b/configure
+@@ -16124,6 +16124,9 @@ $as_echo_n "checking shared object configuration for loadable builtins... " >&6;
+ 
+ 	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $SHOBJ_STATUS" >&5
+ $as_echo "$SHOBJ_STATUS" >&6; }
++else
++	SHOBJ_STATUS=unsupported
++
+ fi
+ 
+ # try to create a directory tree if the source is elsewhere
diff --git a/app-shells/bash/files/bashrc b/app-shells/bash/files/bashrc
index 8d9c297..2f3dc77 100644
--- a/app-shells/bash/files/bashrc
+++ b/app-shells/bash/files/bashrc
@@ -38,7 +38,7 @@
 
 # Change the window title of X terminals 
 case ${TERM} in
-	[aEkx]term*|rxvt*|gnome*|konsole*|interix)
+	[aEkx]term*|rxvt*|gnome*|konsole*|interix|tmux*)
 		PS1='\[\033]0;\u@\h:\w\007\]'
 		;;
 	screen*)
@@ -80,7 +80,7 @@
 	# Some systems (e.g. BSD & embedded) don't typically come with
 	# dircolors so we need to hardcode some terminals in here.
 	case ${TERM} in
-	[aEkx]term*|rxvt*|gnome*|konsole*|screen|cons25|*color) use_color=true;;
+	[aEkx]term*|rxvt*|gnome*|konsole*|screen|tmux|cons25|*color) use_color=true;;
 	esac
 fi
 
diff --git a/app-text/poppler-data/Manifest b/app-text/poppler-data/Manifest
index 4e09bee..050e04d 100644
--- a/app-text/poppler-data/Manifest
+++ b/app-text/poppler-data/Manifest
@@ -1 +1 @@
-DIST poppler-data-0.4.7.tar.gz 4182339 SHA256 e752b0d88a7aba54574152143e7bf76436a7ef51977c55d6bd9a48dccde3a7de SHA512 9a865f077f8760a106c6b28302357253c6d63a8f4f10a9506724d1f0ba42e3481bd790ca07e7ee245c63de3650a33c12e80e20e94415a0e37b05225cfe0efce2 WHIRLPOOL 4e939252767112723678fe8771f958eeef6d3fd26224c26ecf54feb2a7a29510d86f183f1b8267fcf56848a24fb6e3e3c4c001145edd9751d953cb882585b827
+DIST poppler-data-0.4.10.tar.gz 4497684 BLAKE2B 2c262223a971fe49b7f9848e424ba78a6d96e193d18b0bbad4eb343deea7808a6d9e234ebbb252c5becd40840221ba86d2b87ad36595fe982546b32ea6201f0b SHA512 4bebad0791b55b5e2805cf864393d1f777a7996c962398fc178211d2abbf110f75ef2fa6699e275b126aca0540eabb89542a672e0587248db9414e357a32bfd3
diff --git a/app-text/poppler-data/poppler-data-0.4.10.ebuild b/app-text/poppler-data/poppler-data-0.4.10.ebuild
new file mode 100644
index 0000000..a355efe
--- /dev/null
+++ b/app-text/poppler-data/poppler-data-0.4.10.ebuild
@@ -0,0 +1,22 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+DESCRIPTION="Data files for poppler to support uncommon encodings without xpdfrc"
+HOMEPAGE="https://poppler.freedesktop.org/"
+SRC_URI="https://poppler.freedesktop.org/${P}.tar.gz"
+
+LICENSE="BSD GPL-2 MIT"
+KEYWORDS="*"
+SLOT="0"
+IUSE=""
+
+src_install() {
+	emake prefix="${EPREFIX}"/usr DESTDIR="${D}" install
+
+	# bug 409361
+	dodir /usr/share/poppler/cMaps
+	cd "${D}/${EPREFIX}"/usr/share/poppler/cMaps || die
+	find ../cMap -type f -exec ln -s {} . \; || die
+}
diff --git a/app-text/poppler-data/poppler-data-0.4.7.ebuild b/app-text/poppler-data/poppler-data-0.4.7.ebuild
deleted file mode 100644
index 4e89904..0000000
--- a/app-text/poppler-data/poppler-data-0.4.7.ebuild
+++ /dev/null
@@ -1,23 +0,0 @@
-# Copyright 1999-2015 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/app-text/poppler-data/poppler-data-0.4.7.ebuild,v 1.10 2015/02/28 14:10:43 ago Exp $
-
-EAPI=5
-
-DESCRIPTION="Data files for poppler to support uncommon encodings without xpdfrc"
-HOMEPAGE="http://poppler.freedesktop.org/"
-SRC_URI="http://poppler.freedesktop.org/${P}.tar.gz"
-
-LICENSE="BSD GPL-2 MIT"
-KEYWORDS="*"
-SLOT="0"
-IUSE=""
-
-src_install() {
-	emake prefix="${EPREFIX}"/usr DESTDIR="${D}" install
-
-	# bug 409361
-	dodir /usr/share/poppler/cMaps
-	cd "${D}/${EPREFIX}"/usr/share/poppler/cMaps || die
-	find ../cMap -type f -exec ln -s {} . \; || die
-}
diff --git a/app-text/poppler/Manifest b/app-text/poppler/Manifest
index f43d0b5..ce1163b 100644
--- a/app-text/poppler/Manifest
+++ b/app-text/poppler/Manifest
@@ -1 +1 @@
-DIST poppler-0.80.0.tar.xz 1548908 BLAKE2B 09a3b10b1ee6a9de900f7a6ca105e98ec266995c3f6a3d56fbefb7b57851462caa4a16a55081efd8b70d02107d8b7a13a74e316d448290bb3b02286c1778ad86 SHA512 0a0d68168ba4d560941de31cb9e32c6cd7b44025e93cd84ace863ffab5b9ff0356524626cb16fb99c29a897738f2ac5862480fc54d42f8aecd2e3457f11c642f
+DIST poppler-21.01.0.tar.xz 1680536 BLAKE2B 5f8d283cd26f4713c09b0c102dd3295bc7ae1c2ad2ba0f51d12fdaed5f89a864d98d10be7176e17c5613aa4579da3bea1aca56aff3cec4e5c53e977a1e84659f SHA512 aec130446df73a2fc66851a563a14cb40299212a2de4a0d03668b0fecb28312fffa70d0a82431c774d0c0e3f7293788bd2bdf28c8136aa09ad80edbca4cf0ddd
diff --git a/app-text/poppler/files/poppler-0.78.0-respect-cflags.patch b/app-text/poppler/files/poppler-0.78.0-respect-cflags.patch
deleted file mode 100644
index 137af0d..0000000
--- a/app-text/poppler/files/poppler-0.78.0-respect-cflags.patch
+++ /dev/null
@@ -1,31 +0,0 @@
---- poppler-0.78.0/cmake/modules/PopplerMacros.cmake
-+++ poppler-0.78.0/cmake/modules/PopplerMacros.cmake
-@@ -145,28 +145,6 @@
-   endif(GCC_HAS_AS_NEEDED)
- endif (CMAKE_COMPILER_IS_GNUCXX)
- 
--if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
--# set the default compile warnings
--  set(_warn "-Wall -Wextra -Wpedantic")
--  set(_warn "${_warn} -Wno-unused-parameter")
--  set(_warn "${_warn} -Wcast-align")
--  set(_warn "${_warn} -Wformat-security")
--  set(_warn "${_warn} -Wframe-larger-than=65536")
--  set(_warn "${_warn} -Wmissing-format-attribute")
--  set(_warn "${_warn} -Wnon-virtual-dtor")
--  set(_warn "${_warn} -Woverloaded-virtual")
--  set(_warn "${_warn} -Wmissing-declarations")
--  set(_warn "${_warn} -Wundef")
--  set(_warn "${_warn} -Wzero-as-null-pointer-constant")
--  set(_warn "${_warn} -Wshadow")
--
--  # set extra warnings
--  set(_warnx "${_warnx} -Wconversion")
--
--  set(DEFAULT_COMPILE_WARNINGS "${_warn}")
--  set(DEFAULT_COMPILE_WARNINGS_EXTRA "${_warn} ${_warnx}")
--endif()
--
- if(CMAKE_C_COMPILER MATCHES "icc")
-   set(_save_cxxflags "${CMAKE_CXX_FLAGS}")
-   set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g ${_save_cxxflags}")
diff --git a/app-text/poppler/files/poppler-20.11.0-respect-cflags.patch b/app-text/poppler/files/poppler-20.11.0-respect-cflags.patch
new file mode 100644
index 0000000..9845c09
--- /dev/null
+++ b/app-text/poppler/files/poppler-20.11.0-respect-cflags.patch
@@ -0,0 +1,64 @@
+From 083bc159ce35e21ab5bb942e91e98a95ce1f8f99 Mon Sep 17 00:00:00 2001
+From: Lars Wendler <polynomial-c@gentoo.org>
+Date: Mon, 2 Nov 2020 14:30:22 +0100
+Subject: [PATCH] build: respect cflags
+
+---
+ cmake/modules/PopplerMacros.cmake | 41 -------------------------------
+ 1 file changed, 41 deletions(-)
+
+diff --git a/cmake/modules/PopplerMacros.cmake b/cmake/modules/PopplerMacros.cmake
+index 6e5f0050..1a3d0f9f 100644
+--- a/cmake/modules/PopplerMacros.cmake
++++ b/cmake/modules/PopplerMacros.cmake
+@@ -145,47 +145,6 @@ if(CMAKE_COMPILER_IS_GNUCXX)
+   endif(GCC_HAS_AS_NEEDED)
+ endif (CMAKE_COMPILER_IS_GNUCXX)
+ 
+-if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
+-# set the default compile warnings
+-  set(_warn "-Wall -Wextra -Wpedantic")
+-  set(_warn "${_warn} -Wno-unused-parameter")
+-  set(_warn "${_warn} -Wcast-align")
+-  set(_warn "${_warn} -Wformat-security")
+-  set(_warn "${_warn} -Wframe-larger-than=65536")
+-  set(_warn "${_warn} -Wmissing-format-attribute")
+-  set(_warn "${_warn} -Wnon-virtual-dtor")
+-  set(_warn "${_warn} -Woverloaded-virtual")
+-  set(_warn "${_warn} -Wmissing-declarations")
+-  set(_warn "${_warn} -Wundef")
+-  set(_warn "${_warn} -Wzero-as-null-pointer-constant")
+-  set(_warn "${_warn} -Wshadow")
+-  set(_warn "${_warn} -Wweak-vtables")
+-
+-  # set extra warnings
+-  set(_warnx "${_warnx} -Wconversion")
+-
+-  set(DEFAULT_COMPILE_WARNINGS "${_warn}")
+-  set(DEFAULT_COMPILE_WARNINGS_EXTRA "${_warn} ${_warnx}")
+-
+-  set(_save_cxxflags "${CMAKE_CXX_FLAGS}")
+-  set(CMAKE_CXX_FLAGS                "-fno-exceptions -fno-check-new -fno-common -D_DEFAULT_SOURCE")
+-  set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g ${_save_cxxflags}")
+-  set(CMAKE_CXX_FLAGS_RELEASE        "-O2 -DNDEBUG ${_save_cxxflags}")
+-  # clang does not support -fno-reorder-blocks -fno-schedule-insns, so do not use -O2
+-  set(CMAKE_CXX_FLAGS_DEBUG          "-g ${_save_cxxflags}")
+-  set(CMAKE_CXX_FLAGS_DEBUGFULL      "-g3 -fno-inline ${_save_cxxflags}")
+-  set(CMAKE_CXX_FLAGS_PROFILE        "-g3 -fno-inline -ftest-coverage -fprofile-arcs ${_save_cxxflags}")
+-  set(_save_cflags "${CMAKE_C_FLAGS}")
+-  set(CMAKE_C_FLAGS                  "-std=c99 -D_DEFAULT_SOURCE")
+-  set(CMAKE_C_FLAGS_RELWITHDEBINFO   "-O2 -g ${_save_cflags}")
+-  set(CMAKE_C_FLAGS_RELEASE          "-O2 -DNDEBUG ${_save_cflags}")
+-  # clang does not support -fno-reorder-blocks -fno-schedule-insns, so do not use -O2
+-  set(CMAKE_C_FLAGS_DEBUG            "-g ${_save_cflags}")
+-  set(CMAKE_C_FLAGS_DEBUGFULL        "-g3 -fno-inline ${_save_cflags}")
+-  set(CMAKE_C_FLAGS_PROFILE          "-g3 -fno-inline -ftest-coverage -fprofile-arcs ${_save_cflags}")
+-
+-endif()
+-
+ if(CMAKE_C_COMPILER MATCHES "icc")
+   set(_save_cxxflags "${CMAKE_CXX_FLAGS}")
+   set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g ${_save_cxxflags}")
+-- 
+2.29.2
+
diff --git a/app-text/poppler/files/poppler-20.12.0-respect-cflags.patch b/app-text/poppler/files/poppler-20.12.0-respect-cflags.patch
new file mode 100644
index 0000000..4b389fa
--- /dev/null
+++ b/app-text/poppler/files/poppler-20.12.0-respect-cflags.patch
@@ -0,0 +1,108 @@
+From 37f8326557eeb291d78a866d5ff78d79b32f6f8b Mon Sep 17 00:00:00 2001
+From: Lars Wendler <polynomial-c@gentoo.org>
+Date: Wed, 2 Dec 2020 09:29:33 +0100
+Subject: [PATCH] build: respect cflags
+
+---
+ cmake/modules/PopplerMacros.cmake | 81 +------------------------------
+ 1 file changed, 2 insertions(+), 79 deletions(-)
+
+diff --git a/cmake/modules/PopplerMacros.cmake b/cmake/modules/PopplerMacros.cmake
+index 707e7497..882cf11b 100644
+--- a/cmake/modules/PopplerMacros.cmake
++++ b/cmake/modules/PopplerMacros.cmake
+@@ -79,8 +79,6 @@ if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
+   set(CMAKE_BUILD_TYPE RelWithDebInfo)
+ endif(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
+ 
+-if(CMAKE_COMPILER_IS_GNUCXX)
+-  # set the default compile warnings
+   set(_warn "-Wall -Wextra -Wpedantic")
+   set(_warn "${_warn} -Wno-unused-parameter")
+   set(_warn "${_warn} -Wcast-align")
+@@ -105,80 +103,5 @@ if(CMAKE_COMPILER_IS_GNUCXX)
+   set(DEFAULT_COMPILE_WARNINGS "${_warn}")
+   set(DEFAULT_COMPILE_WARNINGS_EXTRA "${_warn} ${_warnx}")
+ 
+-  set(_save_cxxflags "${CMAKE_CXX_FLAGS}")
+-  set(CMAKE_CXX_FLAGS                "-fno-exceptions -fno-check-new -fno-common -fno-operator-names -D_DEFAULT_SOURCE")
+-  set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g ${_save_cxxflags}")
+-  set(CMAKE_CXX_FLAGS_RELEASE        "-O2 -DNDEBUG ${_save_cxxflags}")
+-  set(CMAKE_CXX_FLAGS_DEBUG          "-g -O2 -fno-reorder-blocks -fno-schedule-insns -fno-inline ${_save_cxxflags}")
+-  set(CMAKE_CXX_FLAGS_DEBUGFULL      "-g3 -fno-inline ${_save_cxxflags}")
+-  set(CMAKE_CXX_FLAGS_PROFILE        "-g3 -fno-inline -ftest-coverage -fprofile-arcs ${_save_cxxflags}")
+-  set(_save_cflags "${CMAKE_C_FLAGS}")
+-  set(CMAKE_C_FLAGS                  "-std=c99 -D_DEFAULT_SOURCE")
+-  set(CMAKE_C_FLAGS_RELWITHDEBINFO   "-O2 -g ${_save_cflags}")
+-  set(CMAKE_C_FLAGS_RELEASE          "-O2 -DNDEBUG ${_save_cflags}")
+-  set(CMAKE_C_FLAGS_DEBUG            "-g -O2 -fno-reorder-blocks -fno-schedule-insns -fno-inline ${_save_cflags}")
+-  set(CMAKE_C_FLAGS_DEBUGFULL        "-g3 -fno-inline ${_save_cflags}")
+-  set(CMAKE_C_FLAGS_PROFILE          "-g3 -fno-inline -ftest-coverage -fprofile-arcs ${_save_cflags}")
+-
+-  poppler_check_link_flag("-Wl,--as-needed" GCC_HAS_AS_NEEDED)
+-  if(GCC_HAS_AS_NEEDED)
+-    set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--as-needed")
+-    set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -Wl,--as-needed")
+-    set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--as-needed")
+-  endif(GCC_HAS_AS_NEEDED)
+-endif (CMAKE_COMPILER_IS_GNUCXX)
+-
+-if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
+-# set the default compile warnings
+-  set(_warn "-Wall -Wextra -Wpedantic")
+-  set(_warn "${_warn} -Wno-unused-parameter")
+-  set(_warn "${_warn} -Wcast-align")
+-  set(_warn "${_warn} -Wformat-security")
+-  set(_warn "${_warn} -Wframe-larger-than=65536")
+-  set(_warn "${_warn} -Wmissing-format-attribute")
+-  set(_warn "${_warn} -Wnon-virtual-dtor")
+-  set(_warn "${_warn} -Woverloaded-virtual")
+-  set(_warn "${_warn} -Wmissing-declarations")
+-  set(_warn "${_warn} -Wundef")
+-  set(_warn "${_warn} -Wzero-as-null-pointer-constant")
+-  set(_warn "${_warn} -Wshadow")
+-  set(_warn "${_warn} -Wweak-vtables")
+-
+-  # set extra warnings
+-  set(_warnx "${_warnx} -Wconversion")
+-
+-  set(DEFAULT_COMPILE_WARNINGS "${_warn}")
+-  set(DEFAULT_COMPILE_WARNINGS_EXTRA "${_warn} ${_warnx}")
+-
+-  set(_save_cxxflags "${CMAKE_CXX_FLAGS}")
+-  set(CMAKE_CXX_FLAGS                "-fno-exceptions -fno-check-new -fno-common -D_DEFAULT_SOURCE")
+-  set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g ${_save_cxxflags}")
+-  set(CMAKE_CXX_FLAGS_RELEASE        "-O2 -DNDEBUG ${_save_cxxflags}")
+-  # clang does not support -fno-reorder-blocks -fno-schedule-insns, so do not use -O2
+-  set(CMAKE_CXX_FLAGS_DEBUG          "-g ${_save_cxxflags}")
+-  set(CMAKE_CXX_FLAGS_DEBUGFULL      "-g3 -fno-inline ${_save_cxxflags}")
+-  set(CMAKE_CXX_FLAGS_PROFILE        "-g3 -fno-inline -ftest-coverage -fprofile-arcs ${_save_cxxflags}")
+-  set(_save_cflags "${CMAKE_C_FLAGS}")
+-  set(CMAKE_C_FLAGS                  "-std=c99 -D_DEFAULT_SOURCE")
+-  set(CMAKE_C_FLAGS_RELWITHDEBINFO   "-O2 -g ${_save_cflags}")
+-  set(CMAKE_C_FLAGS_RELEASE          "-O2 -DNDEBUG ${_save_cflags}")
+-  # clang does not support -fno-reorder-blocks -fno-schedule-insns, so do not use -O2
+-  set(CMAKE_C_FLAGS_DEBUG            "-g ${_save_cflags}")
+-  set(CMAKE_C_FLAGS_DEBUGFULL        "-g3 -fno-inline ${_save_cflags}")
+-  set(CMAKE_C_FLAGS_PROFILE          "-g3 -fno-inline -ftest-coverage -fprofile-arcs ${_save_cflags}")
+-
+-endif()
+-
+-if(CMAKE_C_COMPILER MATCHES "icc")
+-  set(_save_cxxflags "${CMAKE_CXX_FLAGS}")
+-  set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g ${_save_cxxflags}")
+-  set(CMAKE_CXX_FLAGS_RELEASE        "-O2 -DNDEBUG ${_save_cxxflags}")
+-  set(CMAKE_CXX_FLAGS_DEBUG          "-O2 -g -0b0 -noalign ${_save_cxxflags}")
+-  set(CMAKE_CXX_FLAGS_DEBUGFULL      "-g -Ob0 -noalign ${_save_cxxflags}")
+-  set(_save_cflags "${CMAKE_C_FLAGS}")
+-  set(CMAKE_C_FLAGS_RELWITHDEBINFO   "-O2 -g ${_save_cflags}")
+-  set(CMAKE_C_FLAGS_RELEASE          "-O2 -DNDEBUG ${_save_cflags}")
+-  set(CMAKE_C_FLAGS_DEBUG            "-O2 -g -Ob0 -noalign ${_save_cflags}")
+-  set(CMAKE_C_FLAGS_DEBUGFULL        "-g -Ob0 -noalign ${_save_cflags}")
+-endif(CMAKE_C_COMPILER MATCHES "icc")
+-
++set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wnon-virtual-dtor -Woverloaded-virtual")
++set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c99")
+-- 
+2.29.2
+
diff --git a/app-text/poppler/files/poppler-20.12.1-qt5-deps.patch b/app-text/poppler/files/poppler-20.12.1-qt5-deps.patch
new file mode 100644
index 0000000..234be82
--- /dev/null
+++ b/app-text/poppler/files/poppler-20.12.1-qt5-deps.patch
@@ -0,0 +1,49 @@
+From e5927c7250afd6b715a9de520851b26e41b7f422 Mon Sep 17 00:00:00 2001
+From: Andreas Sturmlechner <asturm@gentoo.org>
+Date: Wed, 9 Dec 2020 01:28:25 +0100
+Subject: [PATCH] Move Qt5 test dependencies into test dir
+
+Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
+---
+ CMakeLists.txt     |  6 ++----
+ qt5/CMakeLists.txt | 10 ++++++++--
+ 2 files changed, 10 insertions(+), 6 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 1573249a..ab91d537 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -157,10 +157,8 @@ if (ENABLE_QT5)
+   find_package(Qt5Core 5.5)  # Update QT_DISABLE_DEPRECATED_BEFORE in qt5/CMakeLists.txt when increasing this
+   find_package(Qt5Gui)
+   find_package(Qt5Xml)
+-  find_package(Qt5Widgets)
+-  find_package(Qt5Test)
+-  if (NOT (Qt5Core_FOUND AND Qt5Gui_FOUND AND Qt5Xml_FOUND AND Qt5Widgets_FOUND AND Qt5Test_FOUND))
+-    message("-- Package Qt5Core or Qt5Gui or Qt5Xml or Qt5Widgets or Qt5Test not found")
++  if (NOT (Qt5Core_FOUND AND Qt5Gui_FOUND AND Qt5Xml_FOUND))
++    message("-- Package Qt5Core or Qt5Gui or Qt5Xml not found")
+     set(ENABLE_QT5 OFF)
+   endif()
+ endif()
+diff --git a/qt5/CMakeLists.txt b/qt5/CMakeLists.txt
+index 58b42f5e..e3b26cc2 100644
+--- a/qt5/CMakeLists.txt
++++ b/qt5/CMakeLists.txt
+@@ -9,5 +9,11 @@ add_definitions(-DQT_DISABLE_DEPRECATED_BEFORE=0x050500)
+ add_definitions(-DQT_NO_DEPRECATED_WARNINGS)
+ 
+ add_subdirectory(src)
+-add_subdirectory(tests)
+-add_subdirectory(demos)
++
++if(BUILD_QT5_TESTS)
++  find_package(Qt5Widgets REQUIRED)
++  find_package(Qt5Test REQUIRED)
++
++  add_subdirectory(tests)
++  add_subdirectory(demos)
++endif()
+-- 
+2.29.2
+
diff --git a/app-text/poppler/poppler-0.80.0.ebuild b/app-text/poppler/poppler-0.80.0.ebuild
deleted file mode 100644
index 6dd4201..0000000
--- a/app-text/poppler/poppler-0.80.0.ebuild
+++ /dev/null
@@ -1,127 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-inherit cmake-utils flag-o-matic toolchain-funcs xdg-utils
-
-if [[ ${PV} == *9999* ]] ; then
-	inherit git-r3
-	EGIT_REPO_URI="https://anongit.freedesktop.org/git/poppler/poppler.git"
-	SLOT="0/9999"
-else
-	SRC_URI="https://poppler.freedesktop.org/${P}.tar.xz"
-	KEYWORDS="*"
-	SLOT="0/90"   # CHECK THIS WHEN BUMPING!!! SUBSLOT IS libpoppler.so SOVERSION
-fi
-
-DESCRIPTION="PDF rendering library based on the xpdf-3.0 code base"
-HOMEPAGE="https://poppler.freedesktop.org/"
-
-LICENSE="GPL-2"
-IUSE="cairo cjk curl cxx debug doc +introspection +jpeg +jpeg2k +lcms nss png qt5 tiff +utils"
-
-# No test data provided
-RESTRICT="test"
-
-BDEPEND="
-	dev-util/glib-utils
-	virtual/pkgconfig
-"
-DEPEND="
-	media-libs/fontconfig
-	media-libs/freetype
-	sys-libs/zlib
-	cairo? (
-		dev-libs/glib:2
-		x11-libs/cairo
-		introspection? ( dev-libs/gobject-introspection:= )
-	)
-	curl? ( net-misc/curl )
-	jpeg? ( virtual/jpeg:0 )
-	jpeg2k? ( >=media-libs/openjpeg-2.3.0-r1:2= )
-	lcms? ( media-libs/lcms:2 )
-	nss? ( >=dev-libs/nss-3.19:0 )
-	png? ( media-libs/libpng:0= )
-	qt5? (
-		dev-qt/qtcore:5
-		dev-qt/qtgui:5
-		dev-qt/qtxml:5
-	)
-	tiff? ( media-libs/tiff:0 )
-"
-RDEPEND="${DEPEND}
-	cjk? ( app-text/poppler-data )
-"
-
-DOCS=( AUTHORS NEWS README.md README-XPDF )
-
-PATCHES=(
-	"${FILESDIR}/${PN}-0.60.1-qt5-dependencies.patch"
-	"${FILESDIR}/${PN}-0.28.1-fix-multilib-configuration.patch"
-	"${FILESDIR}/${PN}-0.78.0-respect-cflags.patch"
-	"${FILESDIR}/${PN}-0.61.0-respect-cflags.patch"
-	"${FILESDIR}/${PN}-0.57.0-disable-internal-jpx.patch"
-)
-
-src_prepare() {
-	cmake-utils_src_prepare
-
-	# Clang doesn't grok this flag, the configure nicely tests that, but
-	# cmake just uses it, so remove it if we use clang
-	if [[ ${CC} == clang ]] ; then
-		sed -e 's/-fno-check-new//' -i cmake/modules/PopplerMacros.cmake || die
-	fi
-
-	if ! grep -Fq 'cmake_policy(SET CMP0002 OLD)' CMakeLists.txt ; then
-		sed -e '/^cmake_minimum_required/acmake_policy(SET CMP0002 OLD)' \
-			-i CMakeLists.txt || die
-	else
-		einfo "policy(SET CMP0002 OLD) - workaround can be removed"
-	fi
-
-	# we need to up the C++ version, bug #622526, #643278
-	append-cxxflags -std=c++11
-}
-
-src_configure() {
-	xdg_environment_reset
-	local mycmakeargs=(
-		-DBUILD_GTK_TESTS=OFF
-		-DBUILD_QT5_TESTS=OFF
-		-DBUILD_CPP_TESTS=OFF
-		-DENABLE_SPLASH=ON
-		-DENABLE_ZLIB=ON
-		-DENABLE_ZLIB_UNCOMPRESS=OFF
-		-DENABLE_UNSTABLE_API_ABI_HEADERS=ON
-		-DSPLASH_CMYK=OFF
-		-DUSE_FIXEDPOINT=OFF
-		-DUSE_FLOAT=OFF
-		-DWITH_Cairo=$(usex cairo)
-		-DENABLE_LIBCURL=$(usex curl)
-		-DENABLE_CPP=$(usex cxx)
-		-DWITH_JPEG=$(usex jpeg)
-		-DENABLE_DCTDECODER=$(usex jpeg libjpeg none)
-		-DENABLE_LIBOPENJPEG=$(usex jpeg2k openjpeg2 none)
-		-DENABLE_CMS=$(usex lcms lcms2 none)
-		-DWITH_NSS3=$(usex nss)
-		-DWITH_PNG=$(usex png)
-		$(cmake-utils_use_find_package qt5 Qt5Core)
-		-DWITH_TIFF=$(usex tiff)
-		-DENABLE_UTILS=$(usex utils)
-	)
-	use cairo && mycmakeargs+=( -DWITH_GObjectIntrospection=$(usex introspection) )
-
-	cmake-utils_src_configure
-}
-
-src_install() {
-	cmake-utils_src_install
-
-	# live version doesn't provide html documentation
-	if use cairo && use doc && [[ ${PV} != *9999* ]]; then
-		# For now install gtk-doc there
-		insinto /usr/share/gtk-doc/html/poppler
-		doins -r "${S}"/glib/reference/html/*
-	fi
-}
diff --git a/app-text/poppler/poppler-21.01.0.ebuild b/app-text/poppler/poppler-21.01.0.ebuild
new file mode 100644
index 0000000..5ef1a58
--- /dev/null
+++ b/app-text/poppler/poppler-21.01.0.ebuild
@@ -0,0 +1,122 @@
+# Copyright 2005-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit cmake toolchain-funcs xdg-utils
+
+if [[ ${PV} == *9999* ]] ; then
+	inherit git-r3
+	EGIT_REPO_URI="https://anongit.freedesktop.org/git/poppler/poppler.git"
+	SLOT="0/9999"
+else
+	SRC_URI="https://poppler.freedesktop.org/${P}.tar.xz"
+	KEYWORDS="*"
+	SLOT="0/106"   # CHECK THIS WHEN BUMPING!!! SUBSLOT IS libpoppler.so SOVERSION
+fi
+
+DESCRIPTION="PDF rendering library based on the xpdf-3.0 code base"
+HOMEPAGE="https://poppler.freedesktop.org/"
+
+LICENSE="GPL-2"
+IUSE="cairo cjk curl +cxx debug doc +introspection +jpeg +jpeg2k +lcms nss png qt5 tiff +utils"
+
+# No test data provided
+RESTRICT="test"
+
+BDEPEND="
+	dev-util/glib-utils
+	virtual/pkgconfig
+"
+DEPEND="
+	media-libs/fontconfig
+	media-libs/freetype
+	sys-libs/zlib
+	cairo? (
+		dev-libs/glib:2
+		x11-libs/cairo
+		introspection? ( dev-libs/gobject-introspection:= )
+	)
+	curl? ( net-misc/curl )
+	jpeg? ( virtual/jpeg:0 )
+	jpeg2k? ( >=media-libs/openjpeg-2.3.0-r1:2= )
+	lcms? ( media-libs/lcms:2 )
+	nss? ( >=dev-libs/nss-3.19:0 )
+	png? ( media-libs/libpng:0= )
+	qt5? (
+		dev-qt/qtcore:5
+		dev-qt/qtgui:5
+		dev-qt/qtxml:5
+	)
+	tiff? ( media-libs/tiff:0 )
+"
+RDEPEND="${DEPEND}
+	cjk? ( app-text/poppler-data )
+"
+
+DOCS=( AUTHORS NEWS README.md README-XPDF )
+
+PATCHES=(
+	"${FILESDIR}/${PN}-20.12.1-qt5-deps.patch"
+	"${FILESDIR}/${PN}-20.12.0-respect-cflags.patch"
+	"${FILESDIR}/${PN}-0.57.0-disable-internal-jpx.patch"
+)
+
+src_prepare() {
+	cmake_src_prepare
+
+	# Clang doesn't grok this flag, the configure nicely tests that, but
+	# cmake just uses it, so remove it if we use clang
+	if [[ ${CC} == clang ]] ; then
+		sed -e 's/-fno-check-new//' -i cmake/modules/PopplerMacros.cmake || die
+	fi
+
+	if ! grep -Fq 'cmake_policy(SET CMP0002 OLD)' CMakeLists.txt ; then
+		sed -e '/^cmake_minimum_required/acmake_policy(SET CMP0002 OLD)' \
+			-i CMakeLists.txt || die
+	else
+		einfo "policy(SET CMP0002 OLD) - workaround can be removed"
+	fi
+}
+
+src_configure() {
+	xdg_environment_reset
+	local mycmakeargs=(
+		-DBUILD_GTK_TESTS=OFF
+		-DBUILD_QT5_TESTS=OFF
+		-DBUILD_CPP_TESTS=OFF
+		-DRUN_GPERF_IF_PRESENT=OFF
+		-DENABLE_SPLASH=ON
+		-DENABLE_ZLIB=ON
+		-DENABLE_ZLIB_UNCOMPRESS=OFF
+		-DENABLE_UNSTABLE_API_ABI_HEADERS=ON
+		-DUSE_FLOAT=OFF
+		-DWITH_Cairo=$(usex cairo)
+		-DENABLE_LIBCURL=$(usex curl)
+		-DENABLE_CPP=$(usex cxx)
+		-DWITH_JPEG=$(usex jpeg)
+		-DENABLE_DCTDECODER=$(usex jpeg libjpeg none)
+		-DENABLE_LIBOPENJPEG=$(usex jpeg2k openjpeg2 none)
+		-DENABLE_CMS=$(usex lcms lcms2 none)
+		-DWITH_NSS3=$(usex nss)
+		-DWITH_PNG=$(usex png)
+		$(cmake_use_find_package qt5 Qt5Core)
+		-DWITH_TIFF=$(usex tiff)
+		-DENABLE_UTILS=$(usex utils)
+		-DENABLE_QT6=OFF
+	)
+	use cairo && mycmakeargs+=( -DWITH_GObjectIntrospection=$(usex introspection) )
+
+	cmake_src_configure
+}
+
+src_install() {
+	cmake_src_install
+
+	# live version doesn't provide html documentation
+	if use cairo && use doc && [[ ${PV} != *9999* ]]; then
+		# For now install gtk-doc there
+		insinto /usr/share/gtk-doc/html/poppler
+		doins -r "${S}"/glib/reference/html/*
+	fi
+}
diff --git a/app-text/tree/Manifest b/app-text/tree/Manifest
index 28ed48a..22f9056 100644
--- a/app-text/tree/Manifest
+++ b/app-text/tree/Manifest
@@ -1 +1 @@
-DIST tree-1.5.3.tgz 34494 RMD160 72ca2be3ea05bd18819973ad0dfc60a3b9247d90 SHA1 329e05e500754109ff1f648c14924d8cac42c6ea SHA256 1128755ea9455615188212bb04319cf103114fb78f687aa887ce29ef184ffb8d
+DIST tree-1.8.0.tgz 50286 BLAKE2B 51a27500b89a46add6e792d446b465696d2b34339bbd06f03baff9ce589131b5d82c414849f891dbb79a3f3cfb23b89336e783ad23b84c1fb5415a13fb9488cd SHA512 3f657a6278ec5eab2fccab39dfd69bf9376811189a368b5e3213dc900b90a4e7a4961fc58eb80ad2efd5b40d2fbd0146ec59f30fe0bba576f93519214f240695
diff --git a/app-text/tree/files/tree.bashcomp b/app-text/tree/files/tree.bashcomp
index b5da3ee..fed4935 100644
--- a/app-text/tree/files/tree.bashcomp
+++ b/app-text/tree/files/tree.bashcomp
@@ -1,6 +1,5 @@
-# Copyright 1999-2005 Gentoo Foundation
+# Copyright 1999-2012 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/app-text/tree/files/tree.bashcomp,v 1.1 2005/08/30 14:15:49 ka0ttic Exp $
 
 # bash command-line completion for tree
 # Author: Aaron Walker <ka0ttic@gentoo.org>
@@ -15,7 +14,7 @@
     --dirsfirst --charset --help"
 
     if [[ ${cur} == -* ]] ; then
-        COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
+        COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
         return 0
     fi
 
@@ -23,10 +22,10 @@
         -L|-P|-I|-H|-T|--charset|--help)
             ;;
         -o)
-            COMPREPLY=( $(compgen -f -- ${cur}) )
+	    _filedir
             ;;
         *)
-            COMPREPLY=( $(compgen -d -- ${cur}) )
+	    _filedir -d
             ;;
     esac
 }
diff --git a/app-text/tree/metadata.xml b/app-text/tree/metadata.xml
index 3e22333..c30fee7 100644
--- a/app-text/tree/metadata.xml
+++ b/app-text/tree/metadata.xml
@@ -1,8 +1,15 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
 <pkgmetadata>
-  <maintainer>
-    <email>mr_bones_@gentoo.org</email>
-    <name>Michael Sterrett</name>
-  </maintainer>
+	<maintainer type="person">
+		<email>jstein@gentoo.org</email>
+		<name>Jonas Stein</name>
+	</maintainer>
+	<upstream>
+		<changelog>http://mama.indstate.edu/users/ice/tree/changes.html</changelog>
+	</upstream>
+	<longdescription>Tree is a recursive directory listing command that
+produces a depth indented listing of files, which is colorized ala 
+dircolors if the LS_COLORS environment variable is set and output is to tty.
+	</longdescription>
 </pkgmetadata>
diff --git a/app-text/tree/tree-1.5.3.ebuild b/app-text/tree/tree-1.5.3.ebuild
deleted file mode 100644
index 1be8e70..0000000
--- a/app-text/tree/tree-1.5.3.ebuild
+++ /dev/null
@@ -1,38 +0,0 @@
-# Copyright 1999-2010 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/app-text/tree/tree-1.5.3.ebuild,v 1.6 2010/03/08 15:25:58 pacho Exp $
-
-EAPI=2
-inherit toolchain-funcs flag-o-matic bash-completion
-
-DESCRIPTION="Lists directories recursively, and produces an indented listing of files."
-HOMEPAGE="http://mama.indstate.edu/users/ice/tree/"
-SRC_URI="ftp://mama.indstate.edu/linux/tree/${P}.tgz"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="*"
-IUSE=""
-
-src_prepare() {
-	sed -i \
-		-e 's:LINUX:__linux__:' tree.c \
-		|| die "sed failed"
-}
-
-src_compile() {
-	append-lfs-flags
-	emake \
-		CC="$(tc-getCC)" \
-		CFLAGS="${CFLAGS}" \
-		LDFLAGS="${LDFLAGS}" \
-		XOBJS="$(use elibc_uclibc && echo strverscmp.o)" \
-		|| die "emake failed"
-}
-
-src_install() {
-	dobin tree || die "dobin failed"
-	doman man/tree.1
-	dodoc CHANGES README*
-	dobashcompletion "${FILESDIR}"/${PN}.bashcomp
-}
diff --git a/app-text/tree/tree-1.8.0.ebuild b/app-text/tree/tree-1.8.0.ebuild
new file mode 100644
index 0000000..4ce51e3
--- /dev/null
+++ b/app-text/tree/tree-1.8.0.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+inherit toolchain-funcs flag-o-matic bash-completion-r1
+
+DESCRIPTION="Lists directories recursively, and produces an indented listing of files"
+HOMEPAGE="http://mama.indstate.edu/users/ice/tree/"
+SRC_URI="ftp://mama.indstate.edu/linux/tree/${P}.tgz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="*"
+IUSE=""
+
+RDEPEND=""
+DEPEND=""
+
+src_prepare() {
+	sed -i -e 's:LINUX:__linux__:' tree.c || die
+	mv doc/tree.1.fr doc/tree.fr.1
+	if use !elibc_glibc ; then
+		# 433972, also previously done only for elibc_uclibc
+		sed -i -e '/^OBJS=/s/$/ strverscmp.o/' Makefile || die
+	fi
+	default
+}
+
+src_compile() {
+	append-lfs-flags
+	emake \
+		CC="$(tc-getCC)" \
+		CFLAGS="${CFLAGS} ${CPPFLAGS}" \
+		LDFLAGS="${LDFLAGS}"
+}
+
+src_install() {
+	dobin tree
+	doman doc/tree*.1
+	einstalldocs
+	newbashcomp "${FILESDIR}"/${PN}.bashcomp ${PN}
+}
diff --git a/app-text/xmlto/Manifest b/app-text/xmlto/Manifest
index ddeb94a..2ac9943 100644
--- a/app-text/xmlto/Manifest
+++ b/app-text/xmlto/Manifest
@@ -1,2 +1 @@
-DIST xmlto-0.0.24-mans.tar.bz2 4575 RMD160 6687bf4d59b823f416b37b179a24ed6d9a315227 SHA1 e5c44ec88dd3e473d0be5151008b00d5fe190dc1 SHA256 1a5b78cf9b349023aaed17c2b39d94e123da58d9b682693013fb3bcdaac7735b
-DIST xmlto-0.0.24.tar.bz2 111860 RMD160 c3aa05569571aa7c2acbe0cc93c136a0d77a7d80 SHA1 68b1664e9ba4d76c37c373f2f0082d62c41506c8 SHA256 30f59f4cc87a5e86f74fc1d2e63ceb6adc7a260d438e0439689efc2588976e13
+DIST xmlto-0.0.28.tar.bz2 127921 BLAKE2B 12ef3e2e1436c330e7b003d08f4a4d4032d70255777956949eb8b47b6f5466e7c158b0f85dc87069c1e379603cac0b01c88589f98ca1ef9e862f0aef31169f6d SHA512 6e0c4968d4f1b7a3b132904182aa72a73f6167553eabdeb65cfafa6295ef7b960541685769d04144207963cca77b0c44db4f9fbb2796348ffcb37b3b399f18f1
diff --git a/app-text/xmlto/files/xmlto-0.0.24-parallelmake.patch b/app-text/xmlto/files/xmlto-0.0.24-parallelmake.patch
deleted file mode 100644
index 6d18724..0000000
--- a/app-text/xmlto/files/xmlto-0.0.24-parallelmake.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From f2ada08ce5b92de1869419f1ed50aa1190a8bfb4 Mon Sep 17 00:00:00 2001
-From: Mike Frysinger <vapier@gentoo.org>
-Date: Fri, 19 Aug 2011 10:47:10 -0400
-Subject: [PATCH] fix building manpages in parallel
-
-The current man page rules allow make to fire off two children (1 per
-man page), but each child will attempt to create all the required man
-pages.  So it's possible for the children to collide on their outputs.
-Rewrite the rules so that each man page will fire off one child and
-only process its specific man page.
-
-Signed-off-by: Mike Frysinger <vapier@gentoo.org>
----
- Makefile.am |    8 +++-----
- 1 files changed, 3 insertions(+), 5 deletions(-)
-
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -68,11 +68,9 @@ EXTRA_DIST = xmlto.spec \
- 	doc/xmlif.xml \
- 	xmlto.mak
- 
--$(man1_MANS): $(top_srcdir)/doc/xmlto.xml $(top_srcdir)/doc/xmlif.xml
--	for xml in xmlif.xml xmlto.xml; do \
--	  FORMAT_DIR=$(top_srcdir)/format \
--	   $(BASH) ./xmlto -o man/man1 man $(top_srcdir)/doc/$$xml ; \
--	done || ( RC=$$?; exit $$RC )
-+GEN_MANPAGE = FORMAT_DIR=$(top_srcdir)/format $(BASH) ./xmlto -o $(@D) man $<
-+man/man1/xmlto.1: doc/xmlto.xml ; $(GEN_MANPAGE)
-+man/man1/xmlif.1: doc/xmlif.xml ; $(GEN_MANPAGE)
- 
- TESTS_ENVIRONMENT = top_srcdir=$(top_srcdir) top_builddir=$(top_builddir)
- TESTS = xmlif/test/run-test
-
-The Makefile.in patch is trivial, so avoid autotools just for this
-
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -959,11 +959,9 @@
- 	uninstall-man uninstall-man1 uninstall-nobase_pkgdataDATA
- 
- 
--$(man1_MANS): $(top_srcdir)/doc/xmlto.xml $(top_srcdir)/doc/xmlif.xml
--	for xml in xmlif.xml xmlto.xml; do \
--	  FORMAT_DIR=$(top_srcdir)/format \
--	   $(BASH) ./xmlto -o man/man1 man $(top_srcdir)/doc/$$xml ; \
--	done || ( RC=$$?; exit $$RC )
-+GEN_MANPAGE = FORMAT_DIR=$(top_srcdir)/format $(BASH) ./xmlto -o $(@D) man $<
-+man/man1/xmlto.1: doc/xmlto.xml ; $(GEN_MANPAGE)
-+man/man1/xmlif.1: doc/xmlif.xml ; $(GEN_MANPAGE)
- 
- tag:
- 	cvs tag -c `echo V@VERSION@ | tr . _`
--- 
-1.7.6
-
diff --git a/app-text/xmlto/files/xmlto-0.0.28-allow-links.patch b/app-text/xmlto/files/xmlto-0.0.28-allow-links.patch
new file mode 100644
index 0000000..b35b492
--- /dev/null
+++ b/app-text/xmlto/files/xmlto-0.0.28-allow-links.patch
@@ -0,0 +1,15 @@
+https://bugs.gentoo.org/679626
+Thanks-to: dolphinling
+--- a/configure.in
++++ b/configure.in
+@@ -100,8 +100,8 @@ dnl
+ AC_ARG_VAR([LYNX], [Name and path of the `lynx' browser.])
+ AC_PATH_PROG([LYNX], [lynx], [lynx])
+ 
+-AC_ARG_VAR([LINKS], [Name and path of the `elinks' browser.])
+-AC_PATH_PROG([LINKS], [elinks], [elinks])
++AC_ARG_VAR([LINKS], [Name and path of the `links/elinks' browser.])
++AC_PATH_PROGS([LINKS], [links elinks], [links])
+ 
+ AC_ARG_VAR([W3M], [Name and path of the `w3m' browser.])
+ AC_PATH_PROG([W3M], [w3m], [w3m])
diff --git a/app-text/xmlto/metadata.xml b/app-text/xmlto/metadata.xml
index e960864..d52af1c 100644
--- a/app-text/xmlto/metadata.xml
+++ b/app-text/xmlto/metadata.xml
@@ -1,5 +1,11 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
 <pkgmetadata>
-  <herd>sgml</herd>
+	<maintainer type="person">
+		<email>sam@gentoo.org</email>
+		<name>Sam James</name>
+	</maintainer>
+	<use>
+		<flag name="text">Support conversion from XML to plain text</flag>
+	</use>
 </pkgmetadata>
diff --git a/app-text/xmlto/xmlto-0.0.24-r1.ebuild b/app-text/xmlto/xmlto-0.0.24-r1.ebuild
deleted file mode 100644
index eb51c0b..0000000
--- a/app-text/xmlto/xmlto-0.0.24-r1.ebuild
+++ /dev/null
@@ -1,47 +0,0 @@
-# Copyright 1999-2011 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/app-text/xmlto/xmlto-0.0.24-r1.ebuild,v 1.1 2011/08/19 15:23:41 vapier Exp $
-
-EAPI="3"
-
-inherit eutils
-
-DESCRIPTION="script for converting XML and DocBook formatted documents to a variety of output formats"
-HOMEPAGE="https://fedorahosted.org/xmlto/"
-SRC_URI="https://fedorahosted.org/releases/x/m/xmlto/${P}.tar.bz2
-	mirror://gentoo/${P}-mans.tar.bz2
-	http://dev.gentoo.org/~vapier/dist/${P}-mans.tar.bz2"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="*"
-IUSE="latex"
-
-RDEPEND="app-shells/bash
-	|| ( sys-apps/which sys-freebsd/freebsd-ubin )
-	dev-libs/libxslt
-	>=app-text/docbook-xsl-stylesheets-1.62.0-r1
-	~app-text/docbook-xml-dtd-4.2
-	|| ( sys-apps/util-linux app-misc/getopt )
-	|| ( >=sys-apps/coreutils-6.10-r1 sys-freebsd/freebsd-ubin )
-	latex? ( >=app-text/passivetex-1.25 >=dev-tex/xmltex-1.9-r2 )"
-DEPEND="${RDEPEND}
-	sys-devel/flex"
-
-src_prepare() {
-	epatch "${FILESDIR}"/${PN}-0.0.22-format_fo_passivetex_check.patch
-	epatch "${FILESDIR}"/${PN}-0.0.24-parallelmake.patch
-}
-
-src_configure() {
-	export BASH
-	has_version sys-apps/util-linux || export GETOPT="getopt-long"
-	econf
-}
-
-src_install() {
-	emake DESTDIR="${D}" install || die
-	dodoc AUTHORS ChangeLog FAQ NEWS README THANKS
-	insinto /usr/share/doc/${PF}/xml
-	doins doc/*.xml
-}
diff --git a/app-text/xmlto/xmlto-0.0.28-r6.ebuild b/app-text/xmlto/xmlto-0.0.28-r6.ebuild
new file mode 100644
index 0000000..bf9de2c
--- /dev/null
+++ b/app-text/xmlto/xmlto-0.0.28-r6.ebuild
@@ -0,0 +1,52 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit autotools
+
+DESCRIPTION="Script for converting XML and DocBook documents to a variety of output formats"
+HOMEPAGE="https://pagure.io/xmlto"
+SRC_URI="https://releases.pagure.org/${PN}/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="*"
+IUSE="latex text"
+
+RDEPEND="
+	app-text/docbook-xsl-stylesheets
+	app-text/docbook-xml-dtd:4.2
+	dev-libs/libxslt
+	|| ( sys-apps/util-linux app-misc/getopt )
+	text? ( || ( virtual/w3m www-client/elinks www-client/links www-client/lynx ) )
+	latex? ( dev-texlive/texlive-formatsextra )
+"
+# We only depend on flex when we patch the input lexer.
+DEPEND="${RDEPEND}"
+
+DOCS=( AUTHORS ChangeLog FAQ NEWS README THANKS )
+
+PATCHES=(
+	"${FILESDIR}"/${PN}-0.0.22-format_fo_passivetex_check.patch
+	"${FILESDIR}"/${PN}-0.0.28-allow-links.patch
+)
+
+src_prepare() {
+	default
+
+	# fix symbol clash on Solaris
+	if [[ ${CHOST} == *-solaris* ]] ; then
+		sed -i -e 's/\(attrib\|val\)/XMLTO\1/g' xmlif/xmlif.l || die
+	fi
+
+	eautoreconf
+}
+
+src_configure() {
+	# We don't want the script to detect /bin/sh if it is bash.
+	export ac_cv_path_BASH="${BASH}"
+	has_version sys-apps/util-linux || export GETOPT=getopt-long
+
+	econf
+}
diff --git a/dev-embedded/jlink/Manifest b/dev-embedded/jlink/Manifest
new file mode 100644
index 0000000..49f4d04
--- /dev/null
+++ b/dev-embedded/jlink/Manifest
@@ -0,0 +1 @@
+DIST JLink_Linux_V694a_x86_64.tgz 45116062 BLAKE2B b1cf94edce42fc697eb25c361d0edaefee9720a8a76596eef6ee74c78f29150b761693847d1f14814525187ef7a5fb582d4a03a03180bdbf42dd486a14943bda SHA512 9512816abf0ae7b6bd19804e97ac6e2928b8adfd3a2486105ae0de87c3693669ab4d1901c3be2a1e1a5ab8461ab5a83ba9465aa91f0086933d27453d2a1a7e89
diff --git a/dev-embedded/jlink/OWNERS b/dev-embedded/jlink/OWNERS
new file mode 100644
index 0000000..2add3e8
--- /dev/null
+++ b/dev-embedded/jlink/OWNERS
@@ -0,0 +1 @@
+tomhughes@chromium.org
diff --git a/dev-embedded/jlink/jlink-6.94a.ebuild b/dev-embedded/jlink/jlink-6.94a.ebuild
new file mode 100644
index 0000000..a0a3b72
--- /dev/null
+++ b/dev-embedded/jlink/jlink-6.94a.ebuild
@@ -0,0 +1,101 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit eutils udev
+
+INSTALLDIR="/opt/${PN}"
+
+DESCRIPTION="Tools for Segger J-Link JTAG adapters"
+HOMEPAGE="https://www.segger.com/jlink-software.html"
+SRC_URI="https://www.segger.com/downloads/jlink/JLink_Linux_V${PV/./}_x86_64.tgz"
+LICENSE="SEGGER"
+SLOT="0"
+KEYWORDS="-* amd64"
+IUSE=""
+QA_PREBUILT="*"
+
+RESTRICT="fetch strip"
+RDEPEND="
+	media-libs/fontconfig
+	media-libs/freetype
+	sys-devel/gcc
+	sys-libs/glibc
+	x11-libs/libICE
+	x11-libs/libSM
+	x11-libs/libX11
+	x11-libs/libXcursor
+	x11-libs/libXext
+	x11-libs/libXfixes
+	x11-libs/libXrandr
+"
+
+S="${WORKDIR}/JLink_Linux_V${PV/./}_x86_64"
+
+pkg_nofetch() {
+	einfo "Segger requires you to accept their license agreement before downloading."
+	einfo "Download ${SRC_URI}"
+	einfo "with your browser and place it in DISTDIR (usually /var/cache/distfiles/)"
+}
+
+src_install() {
+	local bins=(
+		JFlashExe
+		JFlashLiteExe
+		JFlashSPI_CL
+		JFlashSPIExe
+		JLinkConfigExe
+		JLinkExe
+		JLinkGDBServerCLExe
+		JLinkGDBServer
+		JLinkGUIServerExe
+		JLinkLicenseManager
+		JLinkRegistration
+		JLinkRemoteServerCLExe
+		JLinkRemoteServer
+		JLinkRTTClient
+		JLinkRTTLogger
+		JLinkRTTViewerExe
+		JLinkSTM32
+		JLinkSWOViewerCLExe
+		JLinkSWOViewer
+		JMemExe
+		JRunExe
+		JTAGLoadExe
+	)
+	local wrapper
+	for wrapper in "${bins[@]}"; do
+		make_wrapper "${wrapper}" ./"${wrapper}" "${INSTALLDIR}"
+	done
+
+	exeinto "${INSTALLDIR}"
+	doexe "${bins[@]}"
+
+	insinto "${INSTALLDIR}"
+	local libs=(
+		libjlinkarm.so*
+		libQtCore.so*
+		libQtGui.so*
+	)
+
+	local lib
+	for lib in "${libs[@]}"; do
+		# Use doins for symlinks to avoid making unnecessary copies of the libs.
+		if [[ -L "${lib}" ]]; then
+			doins "${lib}"
+		else
+			doexe "${lib}"
+		fi
+	done
+
+	doins -r \
+		README.txt \
+		Doc \
+		Samples \
+		Devices \
+		ETC \
+		GDBServer
+
+	udev_dorules 99-jlink.rules
+}
diff --git a/dev-libs/fribidi/Manifest b/dev-libs/fribidi/Manifest
index f2468fa..6e7ec45 100644
--- a/dev-libs/fribidi/Manifest
+++ b/dev-libs/fribidi/Manifest
@@ -1 +1 @@
-DIST fribidi-1.0.5.tar.bz2 2082617 BLAKE2B 99b088a37600d1b3e556b4dd978cafb04af0fea9c7db8ed9b0aa90d6a6a60f8ca312c214151ce386d2d61ae382d6ff0e6ae240bd44dfde28eb8c25a5c5f4cd1e SHA512 c8fb32468be4c461832d586d6c6af65fad1cfe9d5b2fed405f247d6974425ccedeb21ad11609fbcabc3ae5d635d78d88c12d201a4d19ef997e9497054afcdeb2
+DIST fribidi-1.0.9.tar.xz 1141684 BLAKE2B 6c9e9866ad900c041968f96ffc93e118715a319fbc47a5fe09b4a68daa5096e8c3cc1f0be1f8754ecf60b265f51fada75ac71f8bf1853f59e891644a97eaf644 SHA512 e66989830941172fa003c8b9376719282fa1039592a1e158e975cab81ce8dcb2755453c64906a8464c047f9e9154e012d9bd37256b1f463e235648a13e4601ed
diff --git a/dev-libs/fribidi/fribidi-1.0.5.ebuild b/dev-libs/fribidi/fribidi-1.0.5.ebuild
deleted file mode 100644
index 26c9254..0000000
--- a/dev-libs/fribidi/fribidi-1.0.5.ebuild
+++ /dev/null
@@ -1,35 +0,0 @@
-# Copyright 1999-2018 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-inherit multilib-minimal
-
-DESCRIPTION="A free implementation of the unicode bidirectional algorithm"
-HOMEPAGE="https://fribidi.org/"
-SRC_URI="https://github.com/fribidi/fribidi/releases/download/v${PV}/${P}.tar.bz2"
-
-LICENSE="LGPL-2.1+"
-SLOT="0"
-KEYWORDS="*"
-IUSE="static-libs"
-
-RDEPEND=""
-DEPEND="${RDEPEND}
-	virtual/pkgconfig[${MULTILIB_USEDEP}]"
-
-DOCS=( AUTHORS NEWS README ChangeLog THANKS )
-
-multilib_src_configure() {
-	local myeconfargs=(
-		--enable-shared
-		$(use_enable static-libs static)
-		--disable-debug
-	)
-	ECONF_SOURCE="${S}" econf "${myeconfargs[@]}"
-}
-
-multilib_src_install_all() {
-	einstalldocs
-	find "${ED}" -name '*.la' -delete || die
-}
diff --git a/dev-libs/fribidi/fribidi-1.0.9.ebuild b/dev-libs/fribidi/fribidi-1.0.9.ebuild
new file mode 100644
index 0000000..68d40eb
--- /dev/null
+++ b/dev-libs/fribidi/fribidi-1.0.9.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit multilib-minimal
+
+DESCRIPTION="A free implementation of the unicode bidirectional algorithm"
+HOMEPAGE="https://fribidi.org/"
+SRC_URI="https://github.com/fribidi/fribidi/releases/download/v${PV}/${P}.tar.xz"
+
+LICENSE="LGPL-2.1+"
+SLOT="0"
+KEYWORDS="*"
+IUSE="static-libs"
+
+RDEPEND=""
+DEPEND=""
+BDEPEND="
+	virtual/pkgconfig
+"
+
+DOCS=( AUTHORS NEWS ChangeLog THANKS ) # README points at README.md which wasn't disted with EAPI-7
+
+multilib_src_configure() {
+	local myeconfargs=(
+		--enable-shared
+		$(use_enable static-libs static)
+		--disable-debug
+	)
+	ECONF_SOURCE="${S}" econf "${myeconfargs[@]}"
+}
+
+multilib_src_install_all() {
+	einstalldocs
+	find "${ED}" -name '*.la' -delete || die
+}
diff --git a/dev-libs/fribidi/metadata.xml b/dev-libs/fribidi/metadata.xml
index 996e7ca..8cfcbe7 100644
--- a/dev-libs/fribidi/metadata.xml
+++ b/dev-libs/fribidi/metadata.xml
@@ -5,4 +5,7 @@
 		<email>gnome@gentoo.org</email>
 		<name>Gentoo GNOME Desktop</name>
 	</maintainer>
+	<upstream>
+		<remote-id type="cpe">cpe:/a:fribidi:gnu_fribidi</remote-id>
+	</upstream>
 </pkgmetadata>
diff --git a/dev-libs/libbsd/Manifest b/dev-libs/libbsd/Manifest
index c3d1995..5a70770 100644
--- a/dev-libs/libbsd/Manifest
+++ b/dev-libs/libbsd/Manifest
@@ -1 +1 @@
-DIST libbsd-0.9.1.tar.xz 387180 SHA256 56d835742327d69faccd16955a60b6dcf30684a8da518c4eca0ac713b9e0a7a4 SHA512 435822b8f2495a5e2705e5ab5c834a4f0f3a177b3e5c46a7c6162924507ca984e957e94a512b5ebd0067ecb413bac458fade357709ef199e9b75edf0315de91c WHIRLPOOL b1acda2e73388eed88cd18c371f18124e2921272a85d65ef0d8c679e10c418ed0cec35ef30fe3b893e7ca6e93f0577c344b0b19f167aec37b1f94914f9bff2ed
+DIST libbsd-0.10.0.tar.xz 393576 BLAKE2B 66005a511dae7fb799322c813b8ea058ab460e3b9044756d6efad5de741d8f70270496f09803bbce8cd0000ff37e998f18e092037c850826c3c8e3f47ddfdb28 SHA512 b75529785b16c93d31401187f8a58258fbebe565dac071c8311775c913af989f62cd29d5ce2651af3ea6221cffd31cf04826577d3e546ab9ca14340f297777b9
diff --git a/dev-libs/libbsd/files/libbsd-0.8.6-sparc.patch b/dev-libs/libbsd/files/libbsd-0.8.6-sparc.patch
deleted file mode 100644
index d2c35d8..0000000
--- a/dev-libs/libbsd/files/libbsd-0.8.6-sparc.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 0b65d43963fc1bea195e94e3af922a7893bf6fcd Mon Sep 17 00:00:00 2001
-From: James Clarke <jrtc27@jrtc27.com>
-Date: Sun, 4 Mar 2018 23:44:52 +0100
-Subject: Add support for ELF machine EM_SPARC32PLUS
-
-32-bit SPARC on V8+ uses a different ELF machine type.
-
-Fixes: https://bugs.gentoo.org/634550
-Signed-off-by: Guillem Jover <guillem@hadrons.org>
----
- src/local-elf.h | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/src/local-elf.h b/src/local-elf.h
-index 1faf182..f7cbd83 100644
---- a/src/local-elf.h
-+++ b/src/local-elf.h
-@@ -186,7 +186,11 @@
- #define ELF_TARG_MACH	EM_SPARCV9
- #define ELF_TARG_CLASS	ELFCLASS64
- #else
-+#if defined(__sparc_v9__)
-+#define ELF_TARG_MACH	EM_SPARC32PLUS
-+#else
- #define ELF_TARG_MACH	EM_SPARC
-+#endif
- #define ELF_TARG_CLASS	ELFCLASS32
- #endif
- #define ELF_TARG_DATA	ELFDATA2MSB
--- 
-cgit v1.1
-
diff --git a/dev-libs/libbsd/libbsd-0.10.0.ebuild b/dev-libs/libbsd/libbsd-0.10.0.ebuild
new file mode 100644
index 0000000..d758bf3
--- /dev/null
+++ b/dev-libs/libbsd/libbsd-0.10.0.ebuild
@@ -0,0 +1,40 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+inherit multilib-minimal
+
+DESCRIPTION="An library to provide useful functions commonly found on BSD systems"
+HOMEPAGE="https://libbsd.freedesktop.org/wiki/ https://gitlab.freedesktop.org/libbsd/libbsd"
+SRC_URI="https://${PN}.freedesktop.org/releases/${P}.tar.xz"
+
+LICENSE="BSD BSD-2 BSD-4 ISC"
+SLOT="0"
+KEYWORDS="*"
+IUSE="static-libs"
+
+DEPEND=">=sys-kernel/linux-headers-3.17"
+RDEPEND=""
+
+pkg_setup() {
+	local f="${EROOT}/usr/$(get_libdir)/${PN}.a"
+	local m="You need to remove ${f} by hand or re-emerge sys-libs/glibc first."
+	if ! has_version ${CATEGORY}/${PN}; then
+		if [[ -e ${f} ]]; then
+			eerror "${m}"
+			die "${m}"
+		fi
+	fi
+}
+
+multilib_src_configure() {
+	# The build system will install libbsd-ctor.a despite of USE="-static-libs"
+	# which is correct, see:
+	# https://gitlab.freedesktop.org/libbsd/libbsd/commit/c5b959028734ca2281250c85773d9b5e1d259bc8
+	ECONF_SOURCE="${S}" econf $(use_enable static-libs static)
+}
+
+multilib_src_install() {
+	emake DESTDIR="${D}" install
+	find "${ED}" -type f -name "*.la" -delete || die
+}
diff --git a/dev-libs/libbsd/libbsd-0.9.1.ebuild b/dev-libs/libbsd/libbsd-0.9.1.ebuild
deleted file mode 100644
index e48ae2b..0000000
--- a/dev-libs/libbsd/libbsd-0.9.1.ebuild
+++ /dev/null
@@ -1,40 +0,0 @@
-# Copyright 1999-2018 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-inherit multilib-minimal
-
-DESCRIPTION="An library to provide useful functions commonly found on BSD systems"
-HOMEPAGE="https://libbsd.freedesktop.org/wiki/"
-SRC_URI="https://${PN}.freedesktop.org/releases/${P}.tar.xz"
-
-LICENSE="BSD BSD-2 BSD-4 ISC"
-SLOT="0"
-KEYWORDS="*"
-IUSE="static-libs"
-
-DEPEND=">=sys-kernel/linux-headers-3.17"
-RDEPEND=""
-
-pkg_setup() {
-	local f="${EROOT}/usr/$(get_libdir)/${PN}.a"
-	local m="You need to remove ${f} by hand or re-emerge sys-libs/glibc first."
-	if ! has_version ${CATEGORY}/${PN}; then
-		if [[ -e ${f} ]]; then
-			eerror "${m}"
-			die "${m}"
-		fi
-	fi
-}
-
-multilib_src_configure() {
-	# The build system will install libbsd-ctor.a despite of USE="-static-libs"
-	# which is correct, see:
-	# https://cgit.freedesktop.org/libbsd/commit/?id=c5b959028734ca2281250c85773d9b5e1d259bc8
-	ECONF_SOURCE="${S}" econf $(use_enable static-libs static)
-}
-
-multilib_src_install() {
-	emake DESTDIR="${D}" install
-	find "${ED}" -name "*.la" -delete || die
-}
diff --git a/dev-libs/libev/Manifest b/dev-libs/libev/Manifest
index a5c3b89..88ac5d5 100644
--- a/dev-libs/libev/Manifest
+++ b/dev-libs/libev/Manifest
@@ -1 +1 @@
-DIST libev-4.23.tar.gz 524184 BLAKE2B bb8c15665e0ff59322bc2f076f4256ca8f5acff5bc55bb3f5f10ac9704f9311ad90f581e4ced25dcc22c39988ffacce1958f195234a60039d33ba7b7beb9aee2 SHA512 e3d98364b3788a7f5c56be49b99cecc98da6323fc7e6d47aff808580653ab9effffe88636a2f5d357d596a9a580e778c20139cc162467e3e2c5fc736713c6e39
+DIST libev-4.33.tar.gz 569527 BLAKE2B 8a6cae25ffde10b24a5bbf084f6a8559af326b37acdbdf47dda34b7f0c7955f3ebd26958594444a574cfa3e2b4011e4be93ad2bd994ffd4c094bf36620e67ba5 SHA512 c662a65360115e0b2598e3e8824cf7b33360c43a96ac9233f6b6ea2873a10102551773cad0e89e738541e75af9fd4f3e3c11cd2f251c5703aa24f193128b896b
diff --git a/dev-libs/libev/files/libev-4.25-pc.patch b/dev-libs/libev/files/libev-4.25-pc.patch
new file mode 100644
index 0000000..a5e3624
--- /dev/null
+++ b/dev-libs/libev/files/libev-4.25-pc.patch
@@ -0,0 +1,49 @@
+diff --git a/Makefile.am b/Makefile.am
+index 059305b..76d9852 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -16,5 +16,8 @@ lib_LTLIBRARIES = libev.la
+ libev_la_SOURCES = ev.c event.c
+ libev_la_LDFLAGS = -version-info $(VERSION_INFO)
+ 
++pkgconfigdir = $(libdir)/pkgconfig
++pkgconfig_DATA = libev.pc
++
+ ev.3: ev.pod
+ 	pod2man -n LIBEV -r "libev-$(VERSION)" -c "libev - high performance full featured event loop" -s3 <$< >$@
+diff --git a/configure.ac b/configure.ac
+index b004dda..6ba3f5c 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -4,6 +4,7 @@ AC_INIT([libev], [4.25])
+ orig_CFLAGS="$CFLAGS"
+ 
+ AC_CONFIG_SRCDIR([ev_epoll.c])
++AC_CONFIG_MACRO_DIR([m4])
+ AM_INIT_AUTOMAKE
+ 
+ AC_CONFIG_HEADERS([config.h])
+@@ -23,5 +24,5 @@ AC_PROG_LIBTOOL
+ 
+ m4_include([libev.m4])
+ 
+-AC_CONFIG_FILES([Makefile])
++AC_CONFIG_FILES([Makefile libev.pc])
+ AC_OUTPUT
+diff --git a/libev.pc.in b/libev.pc.in
+new file mode 100644
+index 0000000..8bc8681
+--- /dev/null
++++ b/libev.pc.in
+@@ -0,0 +1,11 @@
++prefix=@prefix@
++exec_prefix=@prefix@
++libdir=@libdir@
++includedir=@includedir@
++
++Name: libev
++Description: A high-performance event loop/event model with lots of features
++Version: @VERSION@
++Libs: -L${libdir} -lev
++Libs.private:
++Cflags: -I${includedir}
diff --git a/dev-libs/libev/files/libev-pc.patch b/dev-libs/libev/files/libev-pc.patch
deleted file mode 100644
index a2a4c62..0000000
--- a/dev-libs/libev/files/libev-pc.patch
+++ /dev/null
@@ -1,42 +0,0 @@
---- /dev/null
-+++ b/libev.pc.in
-@@ -0,0 +1,11 @@
-+prefix=@prefix@
-+exec_prefix=@prefix@
-+libdir=@libdir@
-+includedir=@includedir@
-+
-+Name: libev
-+Description: A high-performance event loop/event model with lots of features
-+Version: @VERSION@
-+Libs: -L${libdir} -lev
-+Libs.private:
-+Cflags: -I${includedir}
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -16,5 +16,8 @@ lib_LTLIBRARIES = libev.la
- libev_la_SOURCES = ev.c event.c
- libev_la_LDFLAGS = -version-info $(VERSION_INFO)
- 
-+pkgconfigdir = $(libdir)/pkgconfig
-+pkgconfig_DATA = libev.pc
-+
- ev.3: ev.pod
- 	pod2man -n LIBEV -r "libev-$(VERSION)" -c "libev - high performance full featured event loop" -s3 <$< >$@
---- a/configure.ac
-+++ b/configure.ac
-@@ -2,6 +2,7 @@ orig_CFLAGS="$CFLAGS"
- 
- AC_INIT
- AC_CONFIG_SRCDIR([ev_epoll.c])
-+AC_CONFIG_MACRO_DIR([m4])
- 
- AM_INIT_AUTOMAKE(libev,4.11) dnl also update ev.h!
- AC_CONFIG_HEADERS([config.h])
-@@ -21,5 +22,5 @@ AC_PROG_LIBTOOL
- 
- m4_include([libev.m4])
- 
--AC_CONFIG_FILES([Makefile])
-+AC_CONFIG_FILES([Makefile libev.pc])
- AC_OUTPUT
diff --git a/dev-libs/libev/libev-4.23.ebuild b/dev-libs/libev/libev-4.23.ebuild
deleted file mode 100644
index df7ea63..0000000
--- a/dev-libs/libev/libev-4.23.ebuild
+++ /dev/null
@@ -1,40 +0,0 @@
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-
-inherit autotools eutils multilib-minimal
-
-DESCRIPTION="A high-performance event loop/event model with lots of feature"
-HOMEPAGE="http://software.schmorp.de/pkg/libev.html"
-SRC_URI="http://dist.schmorp.de/libev/${P}.tar.gz
-	http://dist.schmorp.de/libev/Attic/${P}.tar.gz"
-
-LICENSE="|| ( BSD GPL-2 )"
-SLOT="0"
-KEYWORDS="*"
-IUSE="static-libs"
-
-DOCS=( Changes README )
-
-src_prepare() {
-	sed -i -e "/^include_HEADERS/s/ event.h//" Makefile.am || die
-
-	# bug #411847
-	epatch "${FILESDIR}/${PN}-pc.patch"
-
-	epatch_user
-	eautoreconf
-}
-
-multilib_src_configure() {
-	ECONF_SOURCE="${S}" \
-	econf \
-		--disable-maintainer-mode \
-		$(use_enable static-libs static)
-}
-
-multilib_src_install_all() {
-	use static-libs || prune_libtool_files
-	einstalldocs
-}
diff --git a/dev-libs/libev/libev-4.33.ebuild b/dev-libs/libev/libev-4.33.ebuild
new file mode 100644
index 0000000..1ede07a
--- /dev/null
+++ b/dev-libs/libev/libev-4.33.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit autotools eutils multilib-minimal
+
+DESCRIPTION="A high-performance event loop/event model with lots of feature"
+HOMEPAGE="http://software.schmorp.de/pkg/libev.html"
+SRC_URI="http://dist.schmorp.de/libev/${P}.tar.gz
+	http://dist.schmorp.de/libev/Attic/${P}.tar.gz"
+
+LICENSE="|| ( BSD GPL-2 )"
+SLOT="0"
+KEYWORDS="*"
+IUSE="static-libs"
+
+DOCS=( Changes README )
+
+# bug #411847
+PATCHES=( "${FILESDIR}/${PN}-4.25-pc.patch" )
+
+src_prepare() {
+	default
+	sed -i -e "/^include_HEADERS/s/ event.h//" Makefile.am || die
+
+	eautoreconf
+}
+
+multilib_src_configure() {
+	ECONF_SOURCE="${S}" \
+	econf \
+		--disable-maintainer-mode \
+		$(use_enable static-libs static)
+}
+
+multilib_src_install_all() {
+	if ! use static-libs; then
+		find "${D}" -name '*.la' -type f -delete || die
+	fi
+	einstalldocs
+}
diff --git a/dev-libs/libevdev/Manifest b/dev-libs/libevdev/Manifest
new file mode 100644
index 0000000..38a0b4d
--- /dev/null
+++ b/dev-libs/libevdev/Manifest
@@ -0,0 +1 @@
+DIST libevdev-1.11.0.tar.xz 445316 BLAKE2B f3c1aa688d83f4a27abec23f18817bbdb7a5911cc30fab694271f620c23273cf20109598edb0049239e78a173baa20471ad1f25266eff34a50ed8898d7b86080 SHA512 b3c6b4a1532c5142f3684b920dcdd497a5368aec516e8c389e2c8f9d1eaba16c907b2a7f2c82a3c3ff89bb4d0ae5503c736098c095f9f1bc98f0668e99bf639d
diff --git a/dev-libs/libevdev/OWNERS b/dev-libs/libevdev/OWNERS
new file mode 100644
index 0000000..a8a0a62
--- /dev/null
+++ b/dev-libs/libevdev/OWNERS
@@ -0,0 +1,3 @@
+# These projects use this library.
+include chromiumos/platform2/vm_tools:/OWNERS
+
diff --git a/dev-libs/libevdev/libevdev-1.11.0.ebuild b/dev-libs/libevdev/libevdev-1.11.0.ebuild
new file mode 100644
index 0000000..e0c855d
--- /dev/null
+++ b/dev-libs/libevdev/libevdev-1.11.0.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python3_{6,7,8,9} )
+
+inherit meson-multilib python-any-r1
+
+DESCRIPTION="Handler library for evdev events"
+HOMEPAGE="https://www.freedesktop.org/wiki/Software/libevdev/ https://gitlab.freedesktop.org/libevdev/libevdev"
+
+if [[ ${PV} == 9999* ]] ; then
+	EGIT_REPO_URI="https://gitlab.freedesktop.org/libevdev/libevdev.git"
+	inherit git-r3
+else
+	SRC_URI="https://www.freedesktop.org/software/libevdev/${P}.tar.xz"
+	KEYWORDS="*"
+fi
+
+LICENSE="MIT"
+SLOT="0"
+IUSE="doc test"
+
+DEPEND="test? ( dev-libs/check[${MULTILIB_USEDEP}] )"
+BDEPEND="
+	${PYTHON_DEPS}
+	doc? ( app-doc/doxygen )
+	virtual/pkgconfig
+"
+RESTRICT="!test? ( test )"
+
+multilib_src_configure() {
+	local emesonargs=(
+		$(meson_feature doc documentation)
+		$(meson_feature test tests)
+	)
+	meson_src_configure
+}
+
+multilib_src_test() {
+	meson_src_test -t 100
+}
+
+multilib_src_install_all() {
+	if use doc; then
+		local HTML_DOCS=( doc/html/. )
+		einstalldocs
+	fi
+}
diff --git a/x11-libs/libXmu/metadata.xml b/dev-libs/libevdev/metadata.xml
similarity index 100%
rename from x11-libs/libXmu/metadata.xml
rename to dev-libs/libevdev/metadata.xml
diff --git a/dev-libs/libfmt/Manifest b/dev-libs/libfmt/Manifest
new file mode 100644
index 0000000..82e92ce
--- /dev/null
+++ b/dev-libs/libfmt/Manifest
@@ -0,0 +1 @@
+DIST libfmt-7.0.3.tar.gz 740047 BLAKE2B d12d6f59bcea5b4385c4d9ff5c563860cb9275d34d5747d9f8b95664aaa499661500b630d1f621698a7a3f8431326ac5a5273e6883d070aab7cb9aa84b0bcd41 SHA512 26afe55255414e27d58c2389fcc8643b64adc04ecc3604f87024e6421706833cbad8ee4caf514dfb7e88da4162ab3e5ff8ff81b83b5f2fb66e9959e4d1bf0f9a
diff --git a/dev-libs/libfmt/OWNERS b/dev-libs/libfmt/OWNERS
new file mode 100644
index 0000000..fe7a0cd
--- /dev/null
+++ b/dev-libs/libfmt/OWNERS
@@ -0,0 +1,3 @@
+include chromiumos/overlays/chromiumos-overlay
+
+pwang@chromium.org
diff --git a/dev-libs/libfmt/libfmt-7.0.3.ebuild b/dev-libs/libfmt/libfmt-7.0.3.ebuild
new file mode 100644
index 0000000..16f013b
--- /dev/null
+++ b/dev-libs/libfmt/libfmt-7.0.3.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+CMAKE_ECLASS=cmake
+inherit cmake-multilib
+
+DESCRIPTION="Small, safe and fast formatting library"
+HOMEPAGE="https://github.com/fmtlib/fmt"
+
+LICENSE="MIT"
+IUSE="test"
+SLOT="0/$(ver_cut 1)"
+
+if [[ ${PV} == *9999 ]] ; then
+	EGIT_REPO_URI="https://github.com/fmtlib/fmt.git"
+	inherit git-r3
+else
+	SRC_URI="https://github.com/fmtlib/fmt/archive/${PV}.tar.gz -> ${P}.tar.gz"
+	KEYWORDS="*"
+	S="${WORKDIR}/fmt-${PV}"
+fi
+
+DEPEND=""
+RDEPEND=""
+RESTRICT="!test? ( test )"
+
+multilib_src_configure() {
+	local mycmakeargs=(
+		-DFMT_CMAKE_DIR="$(get_libdir)/cmake/fmt"
+		-DFMT_LIB_DIR="$(get_libdir)"
+		-DFMT_TEST=$(usex test)
+	)
+	cmake_src_configure
+}
diff --git a/dev-libs/libfmt/libfmt-9999.ebuild b/dev-libs/libfmt/libfmt-9999.ebuild
new file mode 100644
index 0000000..6b6db65
--- /dev/null
+++ b/dev-libs/libfmt/libfmt-9999.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+CMAKE_ECLASS=cmake
+inherit cmake-multilib
+
+DESCRIPTION="Small, safe and fast formatting library"
+HOMEPAGE="https://github.com/fmtlib/fmt"
+
+LICENSE="MIT"
+IUSE="test"
+SLOT="0/$(ver_cut 1)"
+
+if [[ ${PV} == *9999 ]] ; then
+	EGIT_REPO_URI="https://github.com/fmtlib/fmt.git"
+	inherit git-r3
+else
+	SRC_URI="https://github.com/fmtlib/fmt/archive/${PV}.tar.gz -> ${P}.tar.gz"
+	KEYWORDS="~*"
+	S="${WORKDIR}/fmt-${PV}"
+fi
+
+DEPEND=""
+RDEPEND=""
+RESTRICT="!test? ( test )"
+
+multilib_src_configure() {
+	local mycmakeargs=(
+		-DFMT_CMAKE_DIR="$(get_libdir)/cmake/fmt"
+		-DFMT_LIB_DIR="$(get_libdir)"
+		-DFMT_TEST=$(usex test)
+	)
+	cmake_src_configure
+}
diff --git a/dev-libs/libfmt/metadata.xml b/dev-libs/libfmt/metadata.xml
new file mode 100644
index 0000000..8c4896c
--- /dev/null
+++ b/dev-libs/libfmt/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+	<maintainer type="person">
+		<email>candrews@gentoo.org</email>
+		<name>Craig Andrews</name>
+	</maintainer>
+	<upstream>
+		<bugs-to>https://github.com/fmtlib/fmt/issues</bugs-to>
+		<remote-id type="github">fmtlib/fmt</remote-id>
+	</upstream>
+</pkgmetadata>
diff --git a/dev-libs/libmspack/Manifest b/dev-libs/libmspack/Manifest
new file mode 100644
index 0000000..698014b
--- /dev/null
+++ b/dev-libs/libmspack/Manifest
@@ -0,0 +1 @@
+DIST libmspack-0.10.1alpha.tar.gz 963274 BLAKE2B 39bcb3b7ea419d6d00850b70c217c802a2095dd4398038e594ae7c01ca12e71508218c1cfca5ae8b102636ab9517b13d55c1e411b31e87d28aa46331cd0127e6 SHA512 a7b5f7caa49190c5021f3e768b92f2e51cc0ce685c9ab6ed6fb36de885c73231b58d47a8a3b5c5aa5c9ac56c25c500eb683d84dbf11f09f97f6cb4fff5adc245
diff --git a/dev-libs/libmspack/OWNERS b/dev-libs/libmspack/OWNERS
new file mode 100644
index 0000000..4d331e8
--- /dev/null
+++ b/dev-libs/libmspack/OWNERS
@@ -0,0 +1 @@
+include /app-arch/cabextract/OWNERS
diff --git a/dev-libs/libmspack/libmspack-0.10.1_alpha.ebuild b/dev-libs/libmspack/libmspack-0.10.1_alpha.ebuild
new file mode 100644
index 0000000..1139211
--- /dev/null
+++ b/dev-libs/libmspack/libmspack-0.10.1_alpha.ebuild
@@ -0,0 +1,73 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit autotools multilib-minimal
+
+if [[ ${PV} == "9999" ]] ; then
+	EGIT_REPO_URI="https://github.com/kyz/libmspack.git"
+	inherit git-r3
+	MY_P="${PN}-9999"
+else
+	KEYWORDS="*"
+	MY_PV="${PV/_alpha/alpha}"
+	MY_P="${PN}-${MY_PV}"
+	SRC_URI="https://www.cabextract.org.uk/libmspack/libmspack-${MY_PV}.tar.gz"
+fi
+
+DESCRIPTION="A library for Microsoft compression formats"
+HOMEPAGE="https://www.cabextract.org.uk/libmspack/"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+IUSE="debug doc static-libs"
+
+DEPEND=""
+RDEPEND=""
+
+S="${WORKDIR}/${MY_P}"
+
+src_prepare() {
+	if [[ ${PV} == "9999" ]] ; then
+		# Re-create file layout from release tarball
+		pushd "${WORKDIR}" &>/dev/null || die
+		cp -aL "${S}"/${PN} "${WORKDIR}"/${PN}-source || die
+		rm -r "${S}" || die
+		mv "${WORKDIR}"/${PN}-source "${S}" || die
+		popd &>/dev/null || die
+	fi
+
+	default
+
+	eautoreconf
+
+	multilib_copy_sources
+}
+
+multilib_src_configure() {
+	ECONF_SOURCE="${S}" econf \
+		$(use_enable debug) \
+		$(use_enable static-libs static)
+}
+
+multilib_src_test() {
+	if multilib_is_native_abi; then
+		default
+		cd "${S}"/test && "${BUILD_DIR}"/test/cabd_test || die
+	fi
+}
+
+multilib_src_install_all() {
+	DOCS=(AUTHORS ChangeLog NEWS README TODO)
+	use doc && HTML_DOCS=(doc/*)
+	default_src_install
+	if use doc; then
+		rm "${ED}"/usr/share/doc/"${PF}"/html/{Makefile*,Doxyfile*} || die
+	fi
+
+	find "${ED}" -name '*.la' -delete || die
+	if ! use static-libs ; then
+		find "${ED}" -name "*.a" -delete || die
+	fi
+}
diff --git a/dev-libs/libmspack/metadata.xml b/dev-libs/libmspack/metadata.xml
new file mode 100644
index 0000000..613d45e
--- /dev/null
+++ b/dev-libs/libmspack/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+	<maintainer type="person">
+		<email>reavertm@gentoo.org</email>
+		<name>Maciej Mrozowski</name>
+	</maintainer>
+</pkgmetadata>
diff --git a/dev-libs/libunistring/Manifest b/dev-libs/libunistring/Manifest
index 3433452..4cfebed 100644
--- a/dev-libs/libunistring/Manifest
+++ b/dev-libs/libunistring/Manifest
@@ -1 +1 @@
-DIST libunistring-0.9.7.tar.gz 3589989 BLAKE2B 5ba029be96adf3804e9591ee0c271f41111a9c48c773d50adbf2408577e98ddd06d54dc665d3791a835698012021384c9290da0e3ce3d331f20283462c6a3c75 SHA512 43cb60163299a781b57bca326ddeb6333cde0b12d274fcd2b176971c8080ee8868f8c11bf9c524596d3a56dc0213ed1d3246fb805db1de950257c3764eb34ae0
+DIST libunistring-0.9.10.tar.gz 3744814 BLAKE2B 3ddc55b8021c0f4822beb83b807bb21dbbf10bbb866747f64e060df3ab822a4143528855e1ce6a13144630bc8daa14f1fa830db77fb605e57cae21d46de804d6 SHA512 690082732fbbd47ab4ffbd6f21d85afece0f8e2ded24982f949f4ae52bf0a981b75ea9bc14ab289e0954cde07f31a7a4c2bb65615a8eb5b2bfa65720310b6fc9
diff --git a/dev-libs/libunistring/libunistring-0.9.10.ebuild b/dev-libs/libunistring/libunistring-0.9.10.ebuild
new file mode 100644
index 0000000..31f8ba5
--- /dev/null
+++ b/dev-libs/libunistring/libunistring-0.9.10.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit eutils multilib-minimal libtool ltprune
+
+DESCRIPTION="Library for manipulating Unicode and C strings according to Unicode standard"
+HOMEPAGE="https://www.gnu.org/software/libunistring/"
+SRC_URI="mirror://gnu/${PN}/${P}.tar.gz"
+
+LICENSE="LGPL-3 GPL-3"
+SLOT="0/2"
+KEYWORDS="*"
+IUSE="doc static-libs"
+
+PATCHES=(
+	"${FILESDIR}"/${PN}-nodocs.patch
+)
+
+src_prepare() {
+	default
+	elibtoolize  # for Solaris shared libraries
+}
+
+multilib_src_configure() {
+	ECONF_SOURCE="${S}" \
+	econf $(use_enable static-libs static)
+}
+
+multilib_src_install() {
+	default
+
+	prune_libtool_files
+}
+
+multilib_src_install_all() {
+	default
+
+	if use doc; then
+		dohtml doc/*.html
+		doinfo doc/*.info
+	fi
+}
diff --git a/dev-libs/libunistring/libunistring-0.9.7.ebuild b/dev-libs/libunistring/libunistring-0.9.7.ebuild
deleted file mode 100644
index bbb029c..0000000
--- a/dev-libs/libunistring/libunistring-0.9.7.ebuild
+++ /dev/null
@@ -1,44 +0,0 @@
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-inherit eutils multilib-minimal libtool
-
-DESCRIPTION="Library for manipulating Unicode and C strings according to Unicode standard"
-HOMEPAGE="https://www.gnu.org/software/libunistring/"
-SRC_URI="mirror://gnu/${PN}/${P}.tar.gz"
-
-LICENSE="LGPL-3 GPL-3"
-SLOT="0/2"
-KEYWORDS="*"
-IUSE="doc static-libs"
-
-PATCHES=(
-	"${FILESDIR}"/${PN}-nodocs.patch
-)
-
-src_prepare() {
-	default
-	elibtoolize  # for Solaris shared libraries
-}
-
-multilib_src_configure() {
-	ECONF_SOURCE="${S}" \
-	econf $(use_enable static-libs static)
-}
-
-multilib_src_install() {
-	default
-
-	prune_libtool_files
-}
-
-multilib_src_install_all() {
-	default
-
-	if use doc; then
-		dohtml doc/*.html
-		doinfo doc/*.info
-	fi
-}
diff --git a/dev-libs/libxml2/Manifest b/dev-libs/libxml2/Manifest
index 3a2bba6..8aa7d9f 100644
--- a/dev-libs/libxml2/Manifest
+++ b/dev-libs/libxml2/Manifest
@@ -1,5 +1,9 @@
+DIST libxml2-2.9.10-r1-patchset.tar.xz 72088 BLAKE2B 4d5f8aed35d6c0232089e09f22a77cbd25cbd2007c1330538e1c7acc4398ec3ef9023289129677cf5499dbacde4c2f28850ae81acab351d02625d3452aedaede SHA512 a63032d1e85128f637c2b54356aab06a17e31eb1f5facd8fdf88463eb21df6a1d9fd8cc751fa94b8d322fa4f796be4e1d9aa071cbd0826ab31fae46525fde952
+DIST libxml2-2.9.10.tar.gz 5624761 BLAKE2B a9958bd7db17fbfb8259b64d66548eb19d28f1aecf40cf66752fcec5720855d31cea9941d52963badd8c18ea1770485f1c11da6213149458336ce0273418f421 SHA512 0adfd12bfde89cbd6296ba6e66b6bed4edb814a74b4265bda34d95c41d9d92c696ee7adb0c737aaf9cc6e10426a31a35079b2a23d26c074e299858da12c072ed
+DIST libxml2-2.9.12-r1-patchset.tar.bz2 5497 BLAKE2B fda8ad166c89209abaf8f94a5dfbff84e5a6c89cca36350a2f0b9b8db42c6f348b6cb8c7738a35aed8421ca994cc6ad76c3aa02a8a9899fa969b493ca1761b01 SHA512 469befb393430d2532e27f9ed834e0ab5473fc371c89582c3b1434ab1c370140f132d4acf315f7c2b9d1841ab3e78ef04069cca78d66917269b5112ab42127df
 DIST libxml2-2.9.12.tar.gz 5681632 BLAKE2B ab93633140e9fd119d3a48ed829a91213c3d7956a00d181203f5188fb0ed0d3a7150d3128fe986b13efadf6fe484393262a3de575527f38f74aa6c0067a6d934 SHA512 df1c6486e80f0fcf3c506f3599bcfb94b620c00d0b5d26831bc983daa78d58ec58b5057b1ec7c1a26c694f40199c6234ee2a6dcabf65abfa10c447cb5705abbd
 DIST libxml2-2.9.12.tar.gz.asc 488 BLAKE2B 48ec86ec373d94de73bdb52141fc77fccd0ca296a35ed97aa3479ecdcf82b15422dd7d751359b5b1ca477e24b8eee9226784cfbfd861236e10eed2519e7959bf SHA512 69ca6ab7170cad467724e19eff99a3544966a26069e78a7b7cc27ae93a9077b11cc8dad2536bd0b27c3b45f4ea7520c813fe5a018cd65f103059f7f75147a656
+DIST xmlts20080827.tar.gz 638940 BLAKE2B c5aab959c6e0698acd5b9be82b48a8ac26f4d01cc03f9acfff20d344f97f4711fc6d4a524ae70457147e8e30c72e27b6726829e1dd21896286aa974ed60774e7 SHA512 7325d0977c4427fc4944b291ccf896a665f654cc24399e5565c12a849c2bc3aef4fa3ee42a09ac115abcb6570c51a8fbd052c38d64d164279ecdecad5a4e884d
 DIST xmlts20130923.tar.gz 641522 BLAKE2B 63a47bc69278ef510cd0b3779aed729e1b309e30efa0015d28ed051cc03f9dfddb447ab57b07b3393e8f47393d15473b0e199c34cb1f5f746b15ddfaa55670be SHA512 d5c4d26b324ed21f4e0641cd7f8b76dbf9de80df8b519982e44d41c960df29fd03618e02e9693b2d11ad06d19c4a965274c95a048ec3b9653eacb919a7f8b733
 DIST xsts-2002-01-16.tar.gz 6894439 BLAKE2B 1e9ec63d2c104655e64249e07440a04d862fcbcd4d4e19745d81b34994319b510a531c9d6df1491fae1e90b5d0764f0f1a827251ca8df5d613178b0eab01ef25 SHA512 43300af6d39c1e2221b0ed7318fe14c7464eeb6eb030ed1e22eb29b4ab17f014e2a4c8887c3a46ae5d243e3072da27f00f4e285498ae6f1288177d38d1108288
 DIST xsts-2004-01-14.tar.gz 2761085 BLAKE2B 41545995fb3a65d053257c376c07d45ffd1041a433bfbdb46d4dd87a5afb60c18c8629a3d988323f9e7a1d709775b5a7e5930276a7121c0725a22705c0976e36 SHA512 32854388d7e720ad67156baf50bf2bae7bd878ca3e35fd7e44e57cad3f434f69d56bbbedd61509f8a1faf01c9eae74a078df8fe130780b182c05c05cb1c39ebe
diff --git a/dev-libs/libxslt/Manifest b/dev-libs/libxslt/Manifest
index 0c39483..69d0fad 100644
--- a/dev-libs/libxslt/Manifest
+++ b/dev-libs/libxslt/Manifest
@@ -1 +1,2 @@
 DIST libxslt-1.1.34.tar.gz 3552258 BLAKE2B f043a0357e0705ab68041adf4031a6b3e0b5c3d396691c988a34963a0ee0ebe3bede2d1d7a0c5f0c42c046183653c94f4b51e10e35980a039c8cad446e84ad86 SHA512 1516a11ad608b04740674060d2c5d733b88889de5e413b9a4e8bf8d1a90d712149df6d2b1345b615f529d7c7d3fa6dae12e544da828b39c7d415e54c0ee0776b
+DIST libxslt-1.1.34.tar.gz.asc 488 BLAKE2B fff407ab2c2bbafa804e5a1f84ca447c706d75fd7489c99ac6040b625d0417a0e6c189be3457e6cc6ecd6b7860829875ea95a132fef24f8a532156361f8a5308 SHA512 9b155d4571daede99cdbf2813a85fb04812737b5e23d3f7c9840225b38f3dbf171623a21645daaee190e7ff9ba38bde932922e96a2a2312c203ffa9917c3baea
diff --git a/dev-libs/libxslt/files/libxslt-1.1.28-disable-static-modules.patch b/dev-libs/libxslt/files/libxslt-1.1.28-disable-static-modules.patch
deleted file mode 100644
index b30a084..0000000
--- a/dev-libs/libxslt/files/libxslt-1.1.28-disable-static-modules.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 06c9dba42097b06a18c81bb54a8da8b2bfaf991d Mon Sep 17 00:00:00 2001
-From: Gilles Dartiguelongue <eva@gentoo.org>
-Date: Wed, 11 Nov 2015 20:01:14 +0100
-Subject: [PATCH 3/3] Disable static module for python module
-
----
- python/Makefile.am | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/python/Makefile.am b/python/Makefile.am
-index cc13c62..62afd1b 100644
---- a/python/Makefile.am
-+++ b/python/Makefile.am
-@@ -27,6 +27,7 @@ python_PYTHON = libxslt.py
- pyexec_LTLIBRARIES = libxsltmod.la
- 
- libxsltmod_la_CPPFLAGS = \
-+	-shared \
- 	-I$(top_srcdir)/libxslt \
- 	-I$(top_srcdir) \
- 	-I$(top_srcdir)/libexslt \
-@@ -34,7 +35,7 @@ libxsltmod_la_CPPFLAGS = \
- libxsltmod_la_SOURCES = libxslt.c types.c
- nodist_libxsltmod_la_SOURCES = libxslt-py.c
- libxsltmod_la_LIBADD = $(mylibs) $(PYTHON_LIBS)
--libxsltmod_la_LDFLAGS =  $(WIN32_EXTRA_LDFLAGS) $(PYTHON_LDFLAGS) -module -avoid-version
-+libxsltmod_la_LDFLAGS =  $(WIN32_EXTRA_LDFLAGS) $(PYTHON_LDFLAGS) -module -avoid-version -shared
- 
- libxslt.py: $(srcdir)/libxsl.py libxsltclass.py
- 	cat $(srcdir)/libxsl.py libxsltclass.py > $@
--- 
-2.6.3
-
diff --git a/dev-libs/libxslt/files/libxslt-1.1.34-simplify-python.patch b/dev-libs/libxslt/files/libxslt-1.1.34-simplify-python.patch
deleted file mode 100644
index ff7e263..0000000
--- a/dev-libs/libxslt/files/libxslt-1.1.34-simplify-python.patch
+++ /dev/null
@@ -1,239 +0,0 @@
-From aa0f7a8d59a9bbd646203d3f14e39e217961f725 Mon Sep 17 00:00:00 2001
-From: Gilles Dartiguelongue <eva@gentoo.org>
-Date: Wed, 11 Nov 2015 17:49:07 +0100
-Subject: [PATCH] Simplify python setup in autoconf
-
-AM_PATH_PYTHON does most of the job without using pkg-config as expected
-from the rest of the autoconf script.
-diff --git a/Makefile.am b/Makefile.am
-index 2c417d0..a65a2b7 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -2,9 +2,14 @@ SUBDIRS = \
- 	libxslt \
- 	libexslt \
- 	xsltproc \
--	doc \
--	$(PYTHON_SUBDIR) \
--	tests
-+	doc
-+
-+
-+if WITH_PYTHON
-+	SUBDIRS += python
-+endif
-+
-+SUBDIRS += tests
- 
- DIST_SUBDIRS = libxslt libexslt xsltproc python doc tests
- 
-@@ -52,7 +57,9 @@ tests: dummy
- 	@echo '## Running the regression test suite'
- 	@(cd tests ; $(MAKE) -s tests)
- 	@(cd xsltproc ; $(MAKE) -s tests)
--	@(if [ "$(PYTHON_SUBDIR)" != "" ] ; then cd python ; $(MAKE) -s tests ; fi)
-+if WITH_PYTHON
-+	@(cd python ; $(MAKE) -s tests)
-+endif
- 
- valgrind:
- 	@echo '## Running the regression tests under Valgrind'
-diff --git a/configure.ac b/configure.ac
-index 325a7be..ee1eabd 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -227,90 +227,37 @@ dnl
- dnl check for python
- dnl
- 
--PYTHON_VERSION=
--PYTHON_INCLUDES=
--PYTHON_SITE_PACKAGES=
--pythondir=
--AC_ARG_WITH(python, [  --with-python[=DIR]    Build Python bindings if found])
--if test "$with_python" != "no" ; then
--    if test -x "$with_python/bin/python"
--    then
--        echo Found python in $with_python/bin/python
--        PYTHON="$with_python/bin/python"
--    else
--	if test -x "$with_python"
--	then
--	    echo Found python in $with_python
--	    PYTHON="$with_python"
--	else
--            if test -x "$PYTHON"
--            then
--                echo Found python in environment PYTHON=$PYTHON
--                with_python=`$PYTHON -c "import sys; print sys.exec_prefix"`
--	    else
--	        AC_PATH_PROG(PYTHON, python python2.4 python2.3 python2.2 python2.1 python2.0 python1.6 python1.5)
--	    fi
--	fi
--    fi
--    if test "$PYTHON" != ""
--    then
--        echo "PYTHON is pointing at $PYTHON"
--        PYTHON_VERSION=`$PYTHON -c "import sys; print sys.version[[0:3]]"`
--	echo Found Python version $PYTHON_VERSION
--	LIBXML2_PYTHON=`$PYTHON -c "try : import libxml2 ; print 1
--except: print 0"`
--	if test "$LIBXML2_PYTHON" = "1"
--	then
--	    echo Found libxml2-python module
--	else
--	    echo Warning: Missing libxml2-python
--	fi
--    fi
--    if test "$PYTHON_VERSION" != ""
--    then
--	if test -r $with_python/include/python$PYTHON_VERSION/Python.h -a \
--	   -d $with_python/lib/python$PYTHON_VERSION/site-packages
--	then
--	    PYTHON_INCLUDES=$with_python/include/python$PYTHON_VERSION
--	    PYTHON_SITE_PACKAGES='$(libdir)/python$(PYTHON_VERSION)/site-packages'
--	else
--	    if test -r $prefix/include/python$PYTHON_VERSION/Python.h
--	    then
--	        PYTHON_INCLUDES=$prefix/include/python$PYTHON_VERSION
--		PYTHON_SITE_PACKAGES='$(libdir)/python$(PYTHON_VERSION)/site-packages'
--	    else
--		if test -r /usr/include/python$PYTHON_VERSION/Python.h
--		then
--		    PYTHON_INCLUDES=/usr/include/python$PYTHON_VERSION
--		    PYTHON_SITE_PACKAGES='$(libdir)/python$(PYTHON_VERSION)/site-packages'
--		else
--		    echo could not find python$PYTHON_VERSION/Python.h
--		fi
--	    fi
--	    if test ! -d "$PYTHON_SITE_PACKAGES"
--	    then
--		    PYTHON_SITE_PACKAGES=`$PYTHON -c "from distutils import sysconfig; print sysconfig.get_python_lib()"`
--	    fi
--	fi
--        PYTHON_LIBS=`python$PYTHON_VERSION-config --libs`
--    fi
--    if test "$with_python" != ""
--    then
--        pythondir='$(PYTHON_SITE_PACKAGES)'
--    else
--        pythondir='$(libdir)/python$(PYTHON_VERSION)/site-packages'
--    fi
--fi
--AM_CONDITIONAL(WITH_PYTHON, test "$PYTHON_INCLUDES" != "")
--if test "$PYTHON_INCLUDES" != ""
--then
--    PYTHON_SUBDIR=python
--else
--    PYTHON_SUBDIR=
--fi
--AC_SUBST(pythondir)
--AC_SUBST(PYTHON_SUBDIR)
--AC_SUBST(PYTHON_LIBS)
-+AC_ARG_WITH([python],
-+    AS_HELP_STRING([--with-python], [Build Python bindings if found])
-+)
-+
-+AS_IF([test "$with_python" = "yes"],
-+      [AM_PATH_PYTHON
-+       AC_PATH_TOOL([PYTHON_CONFIG], [python$PYTHON_VERSION-config], [no])
-+       AS_IF([test "$PYTHON_CONFIG" = "no"],
-+             [AC_PATH_TOOL([PYTHON_CONFIG], [python-config], [no])])
-+       AS_IF([test "$PYTHON_CONFIG" != "no"],
-+             [PYTHON_CFLAGS=`$PYTHON_CONFIG --cflags`
-+              PYTHON_LDFLAGS=`$PYTHON_CONFIG --ldflags`
-+              PYTHON_LIBS=`$PYTHON_CONFIG --libs`],
-+             [AC_MSG_ERROR([Missing python development files.])])
-+       AC_MSG_CHECKING([libxml2 module in $PYTHON])
-+	   LIBXML2_PYTHON=`$PYTHON -c "import sys;
-+try:
-+    import libxml2
-+    sys.stdout.write('1')
-+except:
-+    sys.stdout.write('0')"`
-+       AS_IF([test "$LIBXML2_PYTHON" = "1"],
-+             [AC_MSG_RESULT([yes])],
-+             [AC_MSG_RESULT([no])
-+              AC_MSG_WARN([libxml2 python module not found, expect runtime errors])])
-+      ])
-+
-+AM_CONDITIONAL([WITH_PYTHON], [test "$with_python" = "yes"])
-+AC_SUBST([PYTHON_CFLAGS])
-+AC_SUBST([PYTHON_LDFLAGS])
-+AC_SUBST([PYTHON_LIBS])
- 
- AC_ARG_WITH(crypto, [  --with-crypto           Add crypto support to exslt (on)])
- WITH_CRYPTO=0
-@@ -634,10 +581,6 @@ AC_SUBST(PYTHONSODV)
- AC_SUBST(XML_CONFIG)
- AC_SUBST(LIBXML_LIBS)
- AC_SUBST(LIBXML_CFLAGS)
--AC_SUBST(PYTHON)
--AC_SUBST(PYTHON_VERSION)
--AC_SUBST(PYTHON_INCLUDES)
--AC_SUBST(PYTHON_SITE_PACKAGES)
- 
- XSLT_LIBDIR='-L${libdir}'
- XSLT_INCLUDEDIR='-I${includedir}'
-diff --git a/python/Makefile.am b/python/Makefile.am
-index 17a0d17..1c57a63 100644
---- a/python/Makefile.am
-+++ b/python/Makefile.am
-@@ -5,7 +5,7 @@ SUBDIRS= . tests
- 
- AM_CFLAGS = $(LIBXML_CFLAGS)
- 
--DOCS_DIR = $(datadir)/doc/libxslt-python-$(LIBXSLT_VERSION)
-+docsdir = $(datadir)/doc/libxslt-python-$(LIBXSLT_VERSION)
- # libxsltclass.txt is generated
- DOCS=
- 
-@@ -16,10 +16,7 @@ EXTRA_DIST = 			\
- 	libxml_wrap.h		\
- 	libxslt_wrap.h		\
- 	libxsl.py		\
--	libxslt-python-api.xml	\
--	$(DOCS)
--
--libxsltmod_la_LDFLAGS =  -module -avoid-version
-+	libxslt-python-api.xml
- 
- if WITH_PYTHON
- mylibs = \
-@@ -28,31 +25,22 @@ mylibs = \
- 
- all-local: libxslt.py
- 
--python_LTLIBRARIES = libxsltmod.la
-+python_PYTHON = libxslt.py
-+pyexec_LTLIBRARIES = libxsltmod.la
- 
- libxsltmod_la_CPPFLAGS = \
--	-I$(PYTHON_INCLUDES) \
- 	-I$(top_srcdir)/libxslt \
- 	-I$(top_srcdir) \
--	-I../libexslt
-+	-I$(top_srcdir)/libexslt \
-+	$(PYTHON_CFLAGS)
- libxsltmod_la_SOURCES = libxslt.c types.c
- nodist_libxsltmod_la_SOURCES = libxslt-py.c
- libxsltmod_la_LIBADD = $(mylibs) $(PYTHON_LIBS)
-+libxsltmod_la_LDFLAGS =  $(WIN32_EXTRA_LDFLAGS) $(PYTHON_LDFLAGS) -module -avoid-version
- 
- libxslt.py: $(srcdir)/libxsl.py libxsltclass.py
- 	cat $(srcdir)/libxsl.py libxsltclass.py > $@
- 
--install-data-local:
--	$(MKDIR_P) $(DESTDIR)$(pythondir)
--	$(INSTALL) -m 0644 libxslt.py $(DESTDIR)$(pythondir)
--	$(MKDIR_P) $(DESTDIR)$(DOCS_DIR)
--	@(for doc in $(DOCS) ; \
--	   do $(INSTALL) -m 0644 $(srcdir)/$$doc $(DESTDIR)$(DOCS_DIR) ; done)
--
--uninstall-local:
--	rm -f $(DESTDIR)$(pythondir)/libxslt.py
--	rm -rf $(DESTDIR)$(DOCS_DIR)
--
- GENERATE = generator.py
- API_DESC = $(top_srcdir)/doc/libxslt-api.xml $(srcdir)/libxslt-python-api.xml
- GENERATED= libxsltclass.py \
diff --git a/dev-libs/libxslt/libxslt-1.1.34-r1.ebuild b/dev-libs/libxslt/libxslt-1.1.34-r1.ebuild
new file mode 100644
index 0000000..ef9ca3a
--- /dev/null
+++ b/dev-libs/libxslt/libxslt-1.1.34-r1.ebuild
@@ -0,0 +1,67 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/danielveillard.asc
+inherit libtool multilib-minimal verify-sig
+
+# Note: Please bump this in sync with dev-libs/libxml2.
+DESCRIPTION="XSLT libraries and tools"
+HOMEPAGE="http://www.xmlsoft.org/ https://gitlab.gnome.org/GNOME/libxslt"
+SRC_URI="ftp://xmlsoft.org/${PN}/${P}.tar.gz"
+SRC_URI+=" verify-sig? ( ftp://xmlsoft.org/${PN}/${P}.tar.gz.asc )"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="*"
+IUSE="crypt debug examples static-libs elibc_Darwin"
+
+BDEPEND=">=virtual/pkgconfig-1
+	verify-sig? ( app-crypt/openpgp-keys-danielveillard )"
+RDEPEND="
+	>=dev-libs/libxml2-2.9.10:2[${MULTILIB_USEDEP}]
+	crypt? ( >=dev-libs/libgcrypt-1.5.3:0=[${MULTILIB_USEDEP}] )
+"
+DEPEND="${RDEPEND}"
+
+MULTILIB_CHOST_TOOLS=(
+	/usr/bin/xslt-config
+)
+
+MULTILIB_WRAPPED_HEADERS=(
+	/usr/include/libxslt/xsltconfig.h
+)
+
+src_prepare() {
+	default
+
+	DOCS=( AUTHORS ChangeLog FEATURES NEWS README TODO )
+
+	# Prefix always needs elibtoolize if not eautoreconf'd.
+	elibtoolize
+}
+
+multilib_src_configure() {
+	# Python bindings were dropped as they were Python 2 only at the time
+	ECONF_SOURCE="${S}" econf \
+		--with-html-dir="${EPREFIX}"/usr/share/doc/${PF} \
+		--with-html-subdir=html \
+		--without-python \
+		$(use_with crypt crypto) \
+		$(use_with debug) \
+		$(use_with debug mem-debug) \
+		$(use_enable static-libs static) \
+		"$@"
+}
+
+multilib_src_install() {
+	# "default" does not work here - docs are installed by multilib_src_install_all
+	emake DESTDIR="${D}" install
+}
+
+multilib_src_install_all() {
+	einstalldocs
+
+	find "${ED}" -type f -name "*.la" -delete || die
+}
diff --git a/dev-libs/libxslt/libxslt-1.1.34-r2.ebuild b/dev-libs/libxslt/libxslt-1.1.34-r2.ebuild
deleted file mode 120000
index ceef441..0000000
--- a/dev-libs/libxslt/libxslt-1.1.34-r2.ebuild
+++ /dev/null
@@ -1 +0,0 @@
-libxslt-1.1.34.ebuild
\ No newline at end of file
diff --git a/dev-libs/libxslt/libxslt-1.1.34-r3.ebuild b/dev-libs/libxslt/libxslt-1.1.34-r3.ebuild
new file mode 120000
index 0000000..e7a1943
--- /dev/null
+++ b/dev-libs/libxslt/libxslt-1.1.34-r3.ebuild
@@ -0,0 +1 @@
+libxslt-1.1.34-r1.ebuild
\ No newline at end of file
diff --git a/dev-libs/libxslt/libxslt-1.1.34.ebuild b/dev-libs/libxslt/libxslt-1.1.34.ebuild
deleted file mode 100644
index b67cba0..0000000
--- a/dev-libs/libxslt/libxslt-1.1.34.ebuild
+++ /dev/null
@@ -1,127 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-PYTHON_COMPAT=( python2_7 )
-PYTHON_REQ_USE="xml"
-
-inherit autotools multilib-minimal python-r1 toolchain-funcs
-
-DESCRIPTION="XSLT libraries and tools"
-HOMEPAGE="http://www.xmlsoft.org/"
-SRC_URI="ftp://xmlsoft.org/${PN}/${P}.tar.gz"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="*"
-
-IUSE="crypt debug examples python static-libs elibc_Darwin"
-REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
-
-RDEPEND="
-	>=dev-libs/libxml2-2.9.10:2[${MULTILIB_USEDEP}]
-	crypt?  ( >=dev-libs/libgcrypt-1.5.3:0=[${MULTILIB_USEDEP}] )
-	python? (
-		${PYTHON_DEPS}
-		dev-libs/libxml2:2[python,${PYTHON_USEDEP}]
-	)
-"
-DEPEND="${RDEPEND}
-	>=virtual/pkgconfig-1
-"
-
-MULTILIB_CHOST_TOOLS=(
-	/usr/bin/xslt-config
-)
-
-MULTILIB_WRAPPED_HEADERS=(
-	/usr/include/libxslt/xsltconfig.h
-)
-
-src_prepare() {
-	default
-
-	DOCS=( AUTHORS ChangeLog FEATURES NEWS README TODO )
-
-	# Simplify python setup
-	# https://bugzilla.gnome.org/show_bug.cgi?id=758095
-	eapply "${FILESDIR}"/${PN}-1.1.34-simplify-python.patch
-	eapply "${FILESDIR}"/${PN}-1.1.28-disable-static-modules.patch
-
-	eautoreconf
-	# If eautoreconf'd with new autoconf, then epunt_cxx is not necessary
-	# and it is propably otherwise too if upstream generated with new
-	# autoconf
-#	epunt_cxx
-	# But Prefix always needs elibtoolize if not eautoreconf'd.
-#	elibtoolize
-}
-
-multilib_src_configure() {
-	libxslt_configure() {
-		ECONF_SOURCE="${S}" econf \
-			--with-html-dir="${EPREFIX}"/usr/share/doc/${PF} \
-			--with-html-subdir=html \
-			$(use_with crypt crypto) \
-			$(use_with debug) \
-			$(use_with debug mem-debug) \
-			$(use_enable static-libs static) \
-			"$@"
-	}
-
-	libxslt_py_configure() {
-		mkdir -p "${BUILD_DIR}" || die # ensure python build dirs exist
-		run_in_build_dir libxslt_configure --with-python
-	}
-
-	libxslt_configure --without-python # build python bindings separately
-
-	if multilib_is_native_abi && use python; then
-		python_foreach_impl libxslt_py_configure
-	fi
-}
-
-multilib_src_compile() {
-	default
-	multilib_is_native_abi && use python && libxslt_foreach_py_emake all
-}
-
-multilib_src_test() {
-	default
-	multilib_is_native_abi && use python && libxslt_foreach_py_emake test
-}
-
-multilib_src_install() {
-	# "default" does not work here - docs are installed by multilib_src_install_all
-	emake DESTDIR="${D}" install
-
-	if multilib_is_native_abi && use python; then
-		libxslt_foreach_py_emake \
-			DESTDIR="${D}" \
-			docsdir="${EPREFIX}"/usr/share/doc/${PF}/python \
-			EXAMPLE_DIR="${EPREFIX}"/usr/share/doc/${PF}/python/examples \
-			install
-		python_foreach_impl python_optimize
-	fi
-}
-
-multilib_src_install_all() {
-	einstalldocs
-
-	if ! use examples && use python; then
-		rm -r "${ED}"/usr/share/doc/${PF}/python/examples || die
-	fi
-
-	find "${ED}" -type f -name "*.la" -delete || die
-}
-
-libxslt_foreach_py_emake() {
-	libxslt_py_emake() {
-		pushd "${BUILD_DIR}/python" > /dev/null || die
-		emake "$@"
-		popd > /dev/null
-	}
-	local native_builddir=${BUILD_DIR}
-	python_foreach_impl libxslt_py_emake top_builddir="${native_builddir}" "$@"
-}
diff --git a/dev-libs/libxslt/metadata.xml b/dev-libs/libxslt/metadata.xml
index 4073f76..e7dd72d 100644
--- a/dev-libs/libxslt/metadata.xml
+++ b/dev-libs/libxslt/metadata.xml
@@ -1,9 +1,13 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
 <pkgmetadata>
+  <maintainer type="person">
+    <email>sam@gentoo.org</email>
+    <name>Sam James</name>
+  </maintainer>
   <maintainer type="project">
-    <email>gnome@gentoo.org</email>
-    <name>Gentoo GNOME Desktop</name>
+    <email>base-system@gentoo.org</email>
+    <name>Gentoo Base System</name>
   </maintainer>
   <upstream>
     <remote-id type="cpe">cpe:/a:xmlsoft:libxslt</remote-id>
diff --git a/dev-libs/libzip/Manifest b/dev-libs/libzip/Manifest
index 5ba2fe2..6f8f0a9 100644
--- a/dev-libs/libzip/Manifest
+++ b/dev-libs/libzip/Manifest
@@ -1 +1 @@
-DIST libzip-1.7.1.tar.xz 737496 BLAKE2B bd4c73bf317fa767ff0ea3c10b7f2e96699dc7ed7bd05fdaf3c5d477cd42aa18b40627569498697be1b5360d43471a9b8132909781f8bd32bda6f46534e4a61b SHA512 e924749274e5e45b83ba4bc961bfd299b9dd05829c1f42880a9814f942dbf7afe79aa1ea4e2b33d6db1dba1f7f948c0de40517f2ef90cc8725650b8cb88d9a14
+DIST libzip-1.7.3.tar.xz 747372 BLAKE2B c0fbdcd5f5592b0aa828c47b6d90c4c84addfb037cd3280195ab83ebc9d586a6de32d833774175a24e0c6fed55b7d9e47931867721e6e7be7e61d8e5bec2dc9d SHA512 488866348a0c859f6f995c50e956bd51b4105278f07b63fe019cb44ab36c09ef958cc0684fd5444c474d83874b999e8ed1aa9b2da51b74caa37bbe7934b9c870
diff --git a/dev-libs/libzip/files/libzip-1.7.3-missing-header.patch b/dev-libs/libzip/files/libzip-1.7.3-missing-header.patch
new file mode 100644
index 0000000..bebe380
--- /dev/null
+++ b/dev-libs/libzip/files/libzip-1.7.3-missing-header.patch
@@ -0,0 +1,43 @@
+From fd89e242d16128dedef08f47d99ae56aa19b0591 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?=C3=98rjan=20Malde?= <red@foxi.me>
+Date: Wed, 15 Jul 2020 12:16:16 +0200
+Subject: [PATCH] Include limits.h for INT_MAX
+
+---
+ lib/zip_crypto_openssl.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/lib/zip_crypto_openssl.c b/lib/zip_crypto_openssl.c
+index 1cb00479..60f92758 100644
+--- a/lib/zip_crypto_openssl.c
++++ b/lib/zip_crypto_openssl.c
+@@ -38,6 +38,7 @@
+ #include "zip_crypto.h"
+ 
+ #include <openssl/rand.h>
++#include <limits.h>
+ 
+ #if OPENSSL_VERSION_NUMBER < 0x1010000fL || defined(LIBRESSL_VERSION_NUMBER)
+ #define USE_OPENSSL_1_0_API
+
+From b4a4f778806fe2c3ca9ec57c0411a8dcf462e655 Mon Sep 17 00:00:00 2001
+From: Thomas Klausner <tk@giga.or.at>
+Date: Wed, 15 Jul 2020 12:38:07 +0200
+Subject: [PATCH] Include limits.h for INT_MAX.
+
+---
+ lib/zip_crypto_mbedtls.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/lib/zip_crypto_mbedtls.c b/lib/zip_crypto_mbedtls.c
+index c348ad2a..7063c6b6 100644
+--- a/lib/zip_crypto_mbedtls.c
++++ b/lib/zip_crypto_mbedtls.c
+@@ -41,6 +41,7 @@
+ #include <mbedtls/entropy.h>
+ #include <mbedtls/pkcs5.h>
+ 
++#include <limits.h>
+ 
+ _zip_crypto_aes_t *
+ _zip_crypto_aes_new(const zip_uint8_t *key, zip_uint16_t key_size, zip_error_t *error) {
diff --git a/dev-libs/libzip/libzip-1.7.1.ebuild b/dev-libs/libzip/libzip-1.7.1.ebuild
deleted file mode 100644
index 531d17e..0000000
--- a/dev-libs/libzip/libzip-1.7.1.ebuild
+++ /dev/null
@@ -1,112 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit cmake multibuild
-
-DESCRIPTION="Library for manipulating zip archives"
-HOMEPAGE="https://nih.at/libzip/"
-SRC_URI="https://www.nih.at/libzip/${P}.tar.xz"
-
-LICENSE="BSD"
-SLOT="0/5"
-KEYWORDS="*"
-IUSE="bzip2 gnutls libressl lzma mbedtls ssl static-libs test tools"
-REQUIRED_USE="test? ( tools )"
-
-RESTRICT="!test? ( test )"
-
-DEPEND="
-	sys-libs/zlib
-	bzip2? ( app-arch/bzip2:= )
-	lzma? ( app-arch/xz-utils )
-	ssl? (
-		gnutls? (
-			dev-libs/nettle:0=
-			>=net-libs/gnutls-3.6.5:=
-		)
-		!gnutls? (
-			mbedtls? ( net-libs/mbedtls:= )
-			!mbedtls? (
-				!libressl? ( dev-libs/openssl:0= )
-				libressl? ( dev-libs/libressl:0= )
-			)
-		)
-	)
-"
-RDEPEND="${DEPEND}"
-
-pkg_setup() {
-	# Upstream doesn't support building dynamic & static
-	# simultaneously: https://github.com/nih-at/libzip/issues/76
-	MULTIBUILD_VARIANTS=( shared $(usev static-libs) )
-}
-
-src_configure() {
-	myconfigure() {
-		local mycmakeargs=(
-			-DBUILD_EXAMPLES=OFF # nothing is installed
-			-DENABLE_COMMONCRYPTO=OFF # not in tree
-			-DENABLE_BZIP2=$(usex bzip2)
-			-DENABLE_LZMA=$(usex lzma)
-		)
-		if [[ ${MULTIBUILD_VARIANT} = static-libs ]]; then
-			mycmakeargs+=(
-				-DBUILD_DOC=OFF
-				-DBUILD_EXAMPLES=OFF
-				-DBUILD_SHARED_LIBS=OFF
-				-DBUILD_TOOLS=OFF
-			)
-		else
-			mycmakeargs+=(
-				-DBUILD_DOC=ON
-				-DBUILD_REGRESS=$(usex test)
-				-DBUILD_TOOLS=$(usex tools)
-			)
-		fi
-
-		if use ssl; then
-			if use gnutls; then
-				mycmakeargs+=(
-					-DENABLE_GNUTLS=$(usex gnutls)
-					-DENABLE_MBEDTLS=OFF
-					-DENABLE_OPENSSL=OFF
-				)
-			elif use mbedtls; then
-				mycmakeargs+=(
-					-DENABLE_GNUTLS=OFF
-					-DENABLE_MBEDTLS=$(usex mbedtls)
-					-DENABLE_OPENSSL=OFF
-				)
-			else
-				mycmakeargs+=(
-					-DENABLE_GNUTLS=OFF
-					-DENABLE_MBEDTLS=OFF
-					-DENABLE_OPENSSL=ON
-				)
-			fi
-		else
-			mycmakeargs+=(
-				-DENABLE_GNUTLS=OFF
-				-DENABLE_MBEDTLS=OFF
-				-DENABLE_OPENSSL=OFF
-			)
-		fi
-		cmake_src_configure
-	}
-
-	multibuild_foreach_variant myconfigure
-}
-
-src_compile() {
-	multibuild_foreach_variant cmake_src_compile
-}
-
-src_test() {
-	[[ ${MULTIBUILD_VARIANT} = shared ]] && cmake_src_test
-}
-
-src_install() {
-	multibuild_foreach_variant cmake_src_install
-}
diff --git a/dev-libs/libzip/libzip-1.7.3-r1.ebuild b/dev-libs/libzip/libzip-1.7.3-r1.ebuild
new file mode 100644
index 0000000..5d80554
--- /dev/null
+++ b/dev-libs/libzip/libzip-1.7.3-r1.ebuild
@@ -0,0 +1,115 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit cmake multibuild flag-o-matic
+
+DESCRIPTION="Library for manipulating zip archives"
+HOMEPAGE="https://nih.at/libzip/"
+SRC_URI="https://www.nih.at/libzip/${P}.tar.xz"
+
+LICENSE="BSD"
+SLOT="0/5"
+KEYWORDS="*"
+IUSE="bzip2 gnutls libressl lzma mbedtls ssl static-libs test tools"
+REQUIRED_USE="test? ( tools )"
+
+RESTRICT="!test? ( test )"
+
+DEPEND="
+	sys-libs/zlib
+	bzip2? ( app-arch/bzip2:= )
+	lzma? ( app-arch/xz-utils )
+	ssl? (
+		gnutls? (
+			dev-libs/nettle:0=
+			>=net-libs/gnutls-3.6.5:=
+		)
+		!gnutls? (
+			mbedtls? ( net-libs/mbedtls:= )
+			!mbedtls? (
+				!libressl? ( dev-libs/openssl:0= )
+				libressl? ( dev-libs/libressl:0= )
+			)
+		)
+	)
+"
+RDEPEND="${DEPEND}"
+
+PATCHES=( "${FILESDIR}"/${P}-missing-header.patch ) # bug 733326
+
+pkg_setup() {
+	# Upstream doesn't support building dynamic & static
+	# simultaneously: https://github.com/nih-at/libzip/issues/76
+	MULTIBUILD_VARIANTS=( shared $(usev static-libs) )
+}
+
+src_configure() {
+	append-lfs-flags
+	myconfigure() {
+		local mycmakeargs=(
+			-DBUILD_EXAMPLES=OFF # nothing is installed
+			-DENABLE_COMMONCRYPTO=OFF # not in tree
+			-DENABLE_BZIP2=$(usex bzip2)
+			-DENABLE_LZMA=$(usex lzma)
+		)
+		if [[ ${MULTIBUILD_VARIANT} = static-libs ]]; then
+			mycmakeargs+=(
+				-DBUILD_DOC=OFF
+				-DBUILD_EXAMPLES=OFF
+				-DBUILD_SHARED_LIBS=OFF
+				-DBUILD_TOOLS=OFF
+			)
+		else
+			mycmakeargs+=(
+				-DBUILD_DOC=ON
+				-DBUILD_REGRESS=$(usex test)
+				-DBUILD_TOOLS=$(usex tools)
+			)
+		fi
+
+		if use ssl; then
+			if use gnutls; then
+				mycmakeargs+=(
+					-DENABLE_GNUTLS=$(usex gnutls)
+					-DENABLE_MBEDTLS=OFF
+					-DENABLE_OPENSSL=OFF
+				)
+			elif use mbedtls; then
+				mycmakeargs+=(
+					-DENABLE_GNUTLS=OFF
+					-DENABLE_MBEDTLS=$(usex mbedtls)
+					-DENABLE_OPENSSL=OFF
+				)
+			else
+				mycmakeargs+=(
+					-DENABLE_GNUTLS=OFF
+					-DENABLE_MBEDTLS=OFF
+					-DENABLE_OPENSSL=ON
+				)
+			fi
+		else
+			mycmakeargs+=(
+				-DENABLE_GNUTLS=OFF
+				-DENABLE_MBEDTLS=OFF
+				-DENABLE_OPENSSL=OFF
+			)
+		fi
+		cmake_src_configure
+	}
+
+	multibuild_foreach_variant myconfigure
+}
+
+src_compile() {
+	multibuild_foreach_variant cmake_src_compile
+}
+
+src_test() {
+	[[ ${MULTIBUILD_VARIANT} = shared ]] && cmake_src_test
+}
+
+src_install() {
+	multibuild_foreach_variant cmake_src_install
+}
diff --git a/dev-libs/nettle/Manifest b/dev-libs/nettle/Manifest
index 725cd7d..2046638 100644
--- a/dev-libs/nettle/Manifest
+++ b/dev-libs/nettle/Manifest
@@ -1 +1 @@
-DIST nettle-3.4.1.tar.gz 1947053 BLAKE2B 354318c46c28aeaaca611abe70298024ec12ff70aed53c741e43c1b5373361e5cffb03df7b8e86ef103a3b7770b2b4fe39fbca00b128f2b7ec810b3a4d9fd0fd SHA512 26aefbbe9927e90e28f271e56d2ba876611831222d0e1e1a58bdb75bbd50934fcd84418a4fe47b845f557e60a9786a72a4de2676c930447b104f2256aca7a54f
+DIST nettle-3.7.2.tar.gz 2382309 BLAKE2B 0195f973afd76d33805de4621cd340a041144b24a20ccab03a58749dba82ea12b063f779aeeeb3f063be5e1bb74dec4c8c8f72b3dd01aff033e908a9f534ad01 SHA512 5f6edcc24ff620885b24394b31e55b494418c35dd63e6ece222ddabc58e793c44a82155051cc5759896ed5f014a8efd547f0aef6736a131e41651c5cab7c7211
diff --git a/dev-libs/nettle/metadata.xml b/dev-libs/nettle/metadata.xml
index 2e7d72a..1762d33 100644
--- a/dev-libs/nettle/metadata.xml
+++ b/dev-libs/nettle/metadata.xml
@@ -1,11 +1,14 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
 <pkgmetadata>
-<maintainer type="project">
-	<email>crypto@gentoo.org</email>
-	<name>Crypto</name>
-</maintainer>
-<upstream>
-	<remote-id type="cpe">cpe:/a:nettle_project:nettle</remote-id>
-</upstream>
+	<maintainer type="project">
+		<name>Gentoo Base System</name>
+		<email>base-system@gentoo.org</email>
+	</maintainer>
+	<upstream>
+		<remote-id type="cpe">cpe:/a:nettle_project:nettle</remote-id>
+	</upstream>
+	<use>
+		<flag name="asm">Support assembly hand optimized crypto functions (i.e. faster run time)</flag>
+	</use>
 </pkgmetadata>
diff --git a/dev-libs/nettle/nettle-3.4.1-r1.ebuild b/dev-libs/nettle/nettle-3.4.1-r1.ebuild
deleted file mode 100644
index f557ceb..0000000
--- a/dev-libs/nettle/nettle-3.4.1-r1.ebuild
+++ /dev/null
@@ -1,63 +0,0 @@
-# Copyright 1999-2018 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-inherit autotools multilib-build multilib-minimal multilib toolchain-funcs
-
-DESCRIPTION="Low-level cryptographic library"
-HOMEPAGE="http://www.lysator.liu.se/~nisse/nettle/"
-SRC_URI="mirror://gnu/${PN}/${P}.tar.gz"
-
-LICENSE="|| ( LGPL-3 LGPL-2.1 )"
-SLOT="0/6.2" # subslot = libnettle soname version, .2 as broke ABI bug#601512 then fixed
-KEYWORDS="*"
-IUSE="doc +gmp neon static-libs test cpu_flags_x86_aes"
-
-DEPEND="gmp? ( >=dev-libs/gmp-6.0:0=[${MULTILIB_USEDEP}] )"
-RDEPEND="${DEPEND}"
-
-MULTILIB_WRAPPED_HEADERS=(
-	/usr/include/nettle/nettle-stdint.h
-	/usr/include/nettle/version.h
-)
-
-DOCS=()
-HTML_DOCS=()
-
-pkg_setup() {
-	use doc && DOCS+=(
-		nettle.pdf
-	)
-	use doc && HTML_DOCS+=(
-		nettle.html
-	)
-}
-
-src_prepare() {
-	default
-
-	sed -e '/CFLAGS=/s: -ggdb3::' \
-		-e 's/solaris\*)/sunldsolaris*)/' \
-		-i configure.ac || die
-
-	# conditionally build tests and examples required by tests
-	use test || sed -i '/SUBDIRS/s/testsuite examples//' Makefile.in || die
-
-	eautoreconf
-}
-
-multilib_src_configure() {
-	# --disable-openssl bug #427526
-	ECONF_SOURCE="${S}" econf \
-		CC_FOR_BUILD="$(tc-getBUILD_CC)" \
-		--libdir="${EPREFIX}"/usr/$(get_libdir) \
-		--disable-openssl \
-		--disable-fat \
-		$(use_enable gmp public-key) \
-		$(use_enable static-libs static) \
-		$(tc-is-static-only && echo --disable-shared) \
-		$(use_enable doc documentation) \
-		$(use_enable neon arm-neon) \
-		$(use_enable cpu_flags_x86_aes x86-aesni)
-}
diff --git a/dev-libs/nettle/nettle-3.7.2.ebuild b/dev-libs/nettle/nettle-3.7.2.ebuild
new file mode 100644
index 0000000..29a3e89
--- /dev/null
+++ b/dev-libs/nettle/nettle-3.7.2.ebuild
@@ -0,0 +1,67 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit autotools multilib-build multilib-minimal multilib toolchain-funcs
+
+DESCRIPTION="Low-level cryptographic library"
+HOMEPAGE="http://www.lysator.liu.se/~nisse/nettle/"
+SRC_URI="mirror://gnu/${PN}/${P}.tar.gz"
+
+LICENSE="|| ( LGPL-3 LGPL-2.1 )"
+SLOT="0/8-6" # subslot = libnettle - libhogweed soname version
+KEYWORDS="*"
+IUSE="+asm doc +gmp static-libs test cpu_flags_x86_aes cpu_flags_arm_neon cpu_flags_x86_sha"
+RESTRICT="!test? ( test )"
+
+DEPEND="gmp? ( >=dev-libs/gmp-6.1:0=[static-libs?,${MULTILIB_USEDEP}] )"
+RDEPEND="${DEPEND}"
+BDEPEND="doc? ( sys-apps/texinfo )"
+
+MULTILIB_WRAPPED_HEADERS=(
+	/usr/include/nettle/version.h
+)
+
+DOCS=()
+HTML_DOCS=()
+
+pkg_setup() {
+	use doc && DOCS+=(
+		nettle.pdf
+	)
+	use doc && HTML_DOCS+=(
+		nettle.html
+	)
+}
+
+src_prepare() {
+	default
+
+	# I do not see in config.sub reference to sunldsolaris.
+	# if someone complains readd
+	# -e 's/solaris\*)/sunldsolaris*)/' \
+	sed -e '/CFLAGS=/s: -ggdb3::' \
+		-i configure.ac || die
+
+	eautoreconf
+}
+
+multilib_src_configure() {
+	local myeconfargs=(
+		CC_FOR_BUILD="$(tc-getBUILD_CC)"
+		$(tc-is-static-only && echo --disable-shared)
+		$(use_enable cpu_flags_x86_aes x86-aesni)
+		$(use_enable cpu_flags_x86_sha x86-sha-ni)
+		$(use_enable asm assembler)
+		$(use_enable doc documentation)
+		$(use_enable gmp public-key)
+		$(use_enable cpu_flags_arm_neon arm-neon)
+		$(use_enable static-libs static)
+		--disable-fat
+		# --disable-openssl bug #427526
+		--disable-openssl
+		--libdir="${EPREFIX}"/usr/$(get_libdir)
+	)
+	ECONF_SOURCE="${S}" econf "${myeconfargs[@]}"
+}
diff --git a/dev-libs/opensc/Manifest b/dev-libs/opensc/Manifest
index 0ac21a4..c25c8a7 100644
--- a/dev-libs/opensc/Manifest
+++ b/dev-libs/opensc/Manifest
@@ -1 +1 @@
-DIST opensc-0.19.0.tar.gz 2080320 BLAKE2B c07df317f26562107680ed586e9a1ea83252c10a7dd227cffe51de709d9c888874963f6835a68f83f212d83f264b0231ea7428ed8d3ecce74cb9265d8191040a SHA512 90659133fb593cbf82ed6502e3858f34119bff051e3090489b7622659dcb1c26d389a4715892aa60a5606bc0ce115bd6c504521abfb965de9ad46441e4ed2b8e
+DIST opensc-0.21.0.tar.gz 2210878 BLAKE2B 22b63ca59cb721cdbbda755fa90f5b46fd9e5b6d7768cddbfeaffd58d68adcb145d6d604b334cf778608be9ee5fc98109f98d131d2536e61f79705aa3dbafa6c SHA512 3511b0a04a96e62011c48667e3fd36a1611fe67a89f7626ff056c9c3614f8cabc91c9924a6ca7a8ea50076a128e3967277a0dd624b4fa27c62cefee9fab22646
diff --git a/dev-libs/opensc/files/opensc-0.19.0-p11test_common.h.patch b/dev-libs/opensc/files/opensc-0.19.0-p11test_common.h.patch
deleted file mode 100644
index ca27c70..0000000
--- a/dev-libs/opensc/files/opensc-0.19.0-p11test_common.h.patch
+++ /dev/null
@@ -1,108 +0,0 @@
-From d1e4f4879b8d0a7423afc1c9a3632da4763ee31c Mon Sep 17 00:00:00 2001
-From: Alon Bar-Lev <alon.barlev@gmail.com>
-Date: Sat, 15 Sep 2018 11:04:13 +0300
-Subject: [PATCH] missing include
-
----
- src/tests/p11test/p11test_common.h | 89 ++++++++++++++++++++++++++++++++++++++
- 1 file changed, 89 insertions(+)
- create mode 100644 src/tests/p11test/p11test_common.h
-
-diff --git a/src/tests/p11test/p11test_common.h b/src/tests/p11test/p11test_common.h
-new file mode 100644
-index 0000000..d3ca304
---- /dev/null
-+++ b/src/tests/p11test/p11test_common.h
-@@ -0,0 +1,89 @@
-+/*
-+ * p11test_common.h: Test suite shared declarations for PKCS#11 API
-+ *
-+ * Copyright (C) 2016 Martin Strhársky <strharsky.martin@gmail.com>
-+ * Copyright (C) 2016, 2017 Red Hat, Inc.
-+ *
-+ * Author: Jakub Jelen <jjelen@redhat.com>
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License as published by the Free Software Foundation; either
-+ * version 2.1 of the License, or (at your option) any later version.
-+ *
-+ * This library is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+ * Lesser General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
-+ */
-+
-+#ifndef P11TEST_COMMON_H
-+#define P11TEST_COMMON_H
-+#include "config.h"
-+#include <stdio.h>
-+#include <stdlib.h>
-+#include <string.h>
-+#include <setjmp.h>
-+#include <cmocka.h>
-+#include "pkcs11/pkcs11.h"
-+#include "libopensc/sc-ossl-compat.h"
-+
-+#define MAX_MECHS 200
-+
-+#ifndef NDEBUG
-+	#define debug_print(fmt, ...) \
-+		{ fprintf(stderr, fmt "\n", ##__VA_ARGS__); } while (0)
-+#else
-+	#define debug_print(fmt, ...)
-+#endif
-+
-+#define FLAGS_SIGN		0x01
-+#define FLAGS_SIGN_OPENSSL	0x02
-+#define FLAGS_SIGN_ANY		( FLAGS_SIGN | FLAGS_SIGN_OPENSSL )
-+#define FLAGS_DECRYPT		0x04
-+#define FLAGS_DECRYPT_OPENSSL	0x08
-+#define FLAGS_DECRYPT_ANY	( FLAGS_DECRYPT | FLAGS_DECRYPT_OPENSSL )
-+
-+typedef struct {
-+	char *outfile;
-+	FILE *fd;
-+	int in_test;
-+	int first;
-+	int in_data;
-+	int first_data;
-+} log_context_t;
-+
-+typedef struct {
-+	CK_MECHANISM_TYPE mech;
-+	CK_MECHANISM_TYPE hash;
-+	CK_RSA_PKCS_MGF_TYPE mgf;
-+	int salt;
-+	int usage_flags;
-+	int result_flags;
-+} test_mech_t;
-+
-+typedef struct {
-+	CK_FUNCTION_LIST_PTR function_pointer;
-+	CK_SLOT_ID slot_id;
-+	CK_SESSION_HANDLE session_handle;
-+	CK_UTF8CHAR* pin;
-+	size_t pin_length;
-+	char *library_path;
-+	unsigned int interactive;
-+	log_context_t log;
-+
-+	test_mech_t rsa_mechs[MAX_MECHS];
-+	size_t  num_rsa_mechs;
-+	test_mech_t	ec_mechs[MAX_MECHS];
-+	size_t  num_ec_mechs;
-+	test_mech_t	keygen_mechs[MAX_MECHS];
-+	size_t  num_keygen_mechs;
-+} token_info_t;
-+
-+token_info_t token;
-+
-+#endif /* P11TEST_COMMON_H */
-+
--- 
-2.16.4
-
diff --git a/dev-libs/opensc/files/opensc-0.20.0-gcc10.patch b/dev-libs/opensc/files/opensc-0.20.0-gcc10.patch
new file mode 100644
index 0000000..f96a114
--- /dev/null
+++ b/dev-libs/opensc/files/opensc-0.20.0-gcc10.patch
@@ -0,0 +1,37 @@
+From 5450f61681d0c46c587dbe789bf19f1cb573e794 Mon Sep 17 00:00:00 2001
+From: Jakub Jelen <jjelen@redhat.com>
+Date: Mon, 10 Feb 2020 15:09:17 +0100
+Subject: [PATCH] Unbreak build with -fno-common (default in gcc10)
+
+---
+ src/tests/p11test/p11test.c        | 3 +++
+ src/tests/p11test/p11test_common.h | 2 +-
+ 2 files changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/src/tests/p11test/p11test.c b/src/tests/p11test/p11test.c
+index feecf6fb42..a16282cba3 100644
+--- a/src/tests/p11test/p11test.c
++++ b/src/tests/p11test/p11test.c
+@@ -34,6 +34,9 @@
+ 
+ #define DEFAULT_P11LIB	"../../pkcs11/.libs/opensc-pkcs11.so"
+ 
++/* Global variable keeping information about token we are using */
++token_info_t token;
++
+ void display_usage() {
+ 	fprintf(stdout,
+ 		" Usage:\n"
+diff --git a/src/tests/p11test/p11test_common.h b/src/tests/p11test/p11test_common.h
+index 2f3b238de0..9eb5cedecb 100644
+--- a/src/tests/p11test/p11test_common.h
++++ b/src/tests/p11test/p11test_common.h
+@@ -84,7 +84,7 @@ typedef struct {
+ 	size_t  num_keygen_mechs;
+ } token_info_t;
+ 
+-token_info_t token;
++extern token_info_t token;
+ 
+ #endif /* P11TEST_COMMON_H */
+ 
diff --git a/dev-libs/opensc/metadata.xml b/dev-libs/opensc/metadata.xml
index 7c8bf05..6495f8b 100644
--- a/dev-libs/opensc/metadata.xml
+++ b/dev-libs/opensc/metadata.xml
@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
 <pkgmetadata>
-	<maintainer type="project">
-		<email>crypto@gentoo.org</email>
-		<name>Crypto</name>
+	<maintainer type="person">
+		<email>zlogene@gentoo.org</email>
+		<name>Mikle Kolyada</name>
 	</maintainer>
 	<longdescription>
 		OpenSC is a library for accessing SmartCard devices. It is also
diff --git a/dev-libs/opensc/opensc-0.19.0-r4.ebuild b/dev-libs/opensc/opensc-0.19.0-r4.ebuild
deleted file mode 100644
index 7077a31..0000000
--- a/dev-libs/opensc/opensc-0.19.0-r4.ebuild
+++ /dev/null
@@ -1,69 +0,0 @@
-# Copyright 1999-2018 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit bash-completion-r1 libtool
-
-DESCRIPTION="Libraries and applications to access smartcards"
-HOMEPAGE="https://github.com/OpenSC/OpenSC/wiki"
-SRC_URI="https://github.com/OpenSC/OpenSC/releases/download/${PV}/${P}.tar.gz"
-
-LICENSE="LGPL-2.1"
-SLOT="0"
-KEYWORDS="*"
-IUSE="ctapi doc libressl openct notify +pcsc-lite readline secure-messaging ssl test zlib"
-
-RDEPEND="zlib? ( sys-libs/zlib )
-	readline? ( sys-libs/readline:0= )
-	ssl? (
-		!libressl? ( dev-libs/openssl:0= )
-		libressl? ( >=dev-libs/libressl-2.7.0:0= )
-	)
-	openct? ( >=dev-libs/openct-0.5.0 )
-	pcsc-lite? ( >=sys-apps/pcsc-lite-1.3.0 )
-	notify? ( dev-libs/glib:2= )"
-DEPEND="${RDEPEND}
-	app-text/docbook-xsl-stylesheets
-	dev-libs/libxslt
-	test? ( dev-util/cmocka )"
-BDEPEND="virtual/pkgconfig"
-
-REQUIRED_USE="
-	pcsc-lite? ( !openct !ctapi )
-	openct? ( !pcsc-lite !ctapi )
-	ctapi? ( !pcsc-lite !openct )
-	|| ( pcsc-lite openct ctapi )"
-
-PATCHES=(
-	"${FILESDIR}/${P}-p11test_common.h.patch"
-)
-
-src_prepare() {
-	default
-	elibtoolize
-}
-
-src_configure() {
-	econf \
-		--with-completiondir="$(get_bashcompdir)" \
-		--disable-openpace \
-		--disable-static \
-		--enable-man \
-		$(use_enable ctapi) \
-		$(use_enable doc) \
-		$(use_enable notify ) \
-		$(use_enable openct) \
-		$(use_enable openct) \
-		$(use_enable pcsc-lite pcsc) \
-		$(use_enable readline) \
-		$(use_enable secure-messaging sm) \
-		$(use_enable ssl openssl) \
-		$(use_enable test tests) \
-		$(use_enable zlib)
-}
-
-src_install() {
-	default
-	find "${D}" -name '*.la' -delete || die
-}
diff --git a/dev-libs/opensc/opensc-0.21.0.ebuild b/dev-libs/opensc/opensc-0.21.0.ebuild
new file mode 100644
index 0000000..5f0e0e8
--- /dev/null
+++ b/dev-libs/opensc/opensc-0.21.0.ebuild
@@ -0,0 +1,66 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit bash-completion-r1 libtool
+
+DESCRIPTION="Libraries and applications to access smartcards"
+HOMEPAGE="https://github.com/OpenSC/OpenSC/wiki"
+SRC_URI="https://github.com/OpenSC/OpenSC/releases/download/${PV}/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="*"
+IUSE="ctapi doc libressl openct notify +pcsc-lite readline secure-messaging ssl test zlib"
+RESTRICT="!test? ( test )"
+
+RDEPEND="zlib? ( sys-libs/zlib )
+	readline? ( sys-libs/readline:0= )
+	ssl? (
+		!libressl? ( dev-libs/openssl:0= )
+		libressl? ( >=dev-libs/libressl-3.1.0:0= )
+	)
+	openct? ( >=dev-libs/openct-0.5.0 )
+	pcsc-lite? ( >=sys-apps/pcsc-lite-1.3.0 )
+	notify? ( dev-libs/glib:2 )"
+DEPEND="${RDEPEND}
+	app-text/docbook-xsl-stylesheets
+	dev-libs/libxslt
+	test? ( dev-util/cmocka )"
+BDEPEND="virtual/pkgconfig"
+
+REQUIRED_USE="
+	pcsc-lite? ( !openct !ctapi )
+	openct? ( !pcsc-lite !ctapi )
+	ctapi? ( !pcsc-lite !openct )
+	|| ( pcsc-lite openct ctapi )"
+
+src_prepare() {
+	default
+	elibtoolize
+}
+
+src_configure() {
+	econf \
+		--with-completiondir="$(get_bashcompdir)" \
+		--disable-openpace \
+		--disable-static \
+		--disable-strict \
+		--enable-man \
+		$(use_enable ctapi) \
+		$(use_enable doc) \
+		$(use_enable notify ) \
+		$(use_enable openct) \
+		$(use_enable pcsc-lite pcsc) \
+		$(use_enable readline) \
+		$(use_enable secure-messaging sm) \
+		$(use_enable ssl openssl) \
+		$(use_enable test cmocka) \
+		$(use_enable zlib)
+}
+
+src_install() {
+	default
+	find "${D}" -name '*.la' -delete || die
+}
diff --git a/dev-libs/popt/Manifest b/dev-libs/popt/Manifest
index 68738a9..650e16e 100644
--- a/dev-libs/popt/Manifest
+++ b/dev-libs/popt/Manifest
@@ -1 +1 @@
-DIST popt-1.16.tar.gz 702769 SHA256 e728ed296fe9f069a0e005003c3d6b2dde3d9cad453422a10d6558616d304cc8
+DIST popt-1.18.tar.gz 580569 BLAKE2B c9c42eb12aa21764cde5e9b4a8b30125b547ae690b4d9d0d40b45bd3c1f7ae0b09d5086a588cf37e7bed71fe770ff840c0fd40ecf4ce5b7c1e874b938b6e0324 SHA512 86422e8762adda3d02d46c20ac74ffe389d4f991d552b6fea729f007345b6426cbeb71160284e2deaa2ce44ce754a9e6cf6ccbd64bff9bc2253df40cdc2f79a5
diff --git a/dev-libs/popt/metadata.xml b/dev-libs/popt/metadata.xml
index daddb6b..ead9990 100644
--- a/dev-libs/popt/metadata.xml
+++ b/dev-libs/popt/metadata.xml
@@ -5,7 +5,7 @@
     <email>base-system@gentoo.org</email>
     <name>Gentoo Base System</name>
   </maintainer>
-        <upstream>
-                <remote-id type="cpe">cpe:/a:popt_project:popt</remote-id>
-        </upstream>
+<upstream>
+  <remote-id type="cpe">cpe:/a:popt_project:popt</remote-id>
+</upstream>
 </pkgmetadata>
diff --git a/dev-libs/popt/popt-1.16-r2.ebuild b/dev-libs/popt/popt-1.16-r2.ebuild
deleted file mode 100644
index db75fdf..0000000
--- a/dev-libs/popt/popt-1.16-r2.ebuild
+++ /dev/null
@@ -1,36 +0,0 @@
-# Copyright 1999-2015 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-inherit eutils multilib-minimal libtool
-
-DESCRIPTION="Parse Options - Command line parser"
-HOMEPAGE="http://rpm5.org/"
-SRC_URI="http://rpm5.org/files/popt/${P}.tar.gz"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="*"
-IUSE="nls static-libs"
-
-RDEPEND="nls? ( >=virtual/libintl-0-r1[${MULTILIB_USEDEP}] )"
-DEPEND="nls? ( sys-devel/gettext )"
-
-src_prepare() {
-	epatch "${FILESDIR}"/fix-popt-pkgconfig-libdir.patch #349558
-	sed -i -e 's:lt-test1:test1:' testit.sh || die
-	elibtoolize
-}
-
-multilib_src_configure() {
-	ECONF_SOURCE=${S} \
-	econf \
-		--disable-dependency-tracking \
-		$(use_enable static-libs static) \
-		$(use_enable nls)
-}
-
-multilib_src_install_all() {
-	dodoc CHANGES README
-	prune_libtool_files --all
-}
diff --git a/dev-libs/popt/popt-1.18.ebuild b/dev-libs/popt/popt-1.18.ebuild
new file mode 100644
index 0000000..075d814
--- /dev/null
+++ b/dev-libs/popt/popt-1.18.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+inherit multilib-minimal libtool
+
+DESCRIPTION="Parse Options - Command line parser"
+HOMEPAGE="https://github.com/rpm-software-management/popt"
+SRC_URI="http://ftp.rpm.org/${PN}/releases/${PN}-1.x/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="*"
+IUSE="nls static-libs"
+
+RDEPEND="nls? ( >=virtual/libintl-0-r1[${MULTILIB_USEDEP}] )"
+DEPEND="${RDEPEND}"
+BDEPEND="nls? ( sys-devel/gettext )"
+
+src_prepare() {
+	default
+	sed -i -e 's:lt-test1:test1:' tests/testit.sh || die
+	elibtoolize
+}
+
+multilib_src_configure() {
+	local myeconfargs=(
+		$(use_enable static-libs static)
+		$(use_enable nls)
+	)
+	ECONF_SOURCE="${S}" econf "${myeconfargs[@]}"
+}
+
+multilib_src_install_all() {
+	dodoc CHANGES README
+	find "${ED}" -type f -name "*.la" -delete || die
+}
diff --git a/dev-libs/tinyxml2/Manifest b/dev-libs/tinyxml2/Manifest
new file mode 100644
index 0000000..b1a96e8
--- /dev/null
+++ b/dev-libs/tinyxml2/Manifest
@@ -0,0 +1 @@
+DIST tinyxml2-8.0.0.tar.gz 593833 BLAKE2B afc21220e28a1c139b1abd89e67f8e64980d2ba9bc6f60a33d435a4a02cb40ecacc27ac28bd9702ac3a435f66764ebb752b597a1b1e178d0b549e366d5b669dd SHA512 bcbb065c2af34ea681ec556377fd22e720b6f5d4caa73f432b1e34e08603a96f2233763f0ec5ae86b9ee71ddbe3062f58d3794cd3a162ce6903435530de0bba6
diff --git a/dev-libs/tinyxml2/OWNERS b/dev-libs/tinyxml2/OWNERS
new file mode 100644
index 0000000..b72e79c
--- /dev/null
+++ b/dev-libs/tinyxml2/OWNERS
@@ -0,0 +1 @@
+include chromiumos/overlays/chromiumos-overlay:/net-wireless/systembt/OWNERS
diff --git a/dev-libs/tinyxml2/metadata.xml b/dev-libs/tinyxml2/metadata.xml
new file mode 100644
index 0000000..d359b71
--- /dev/null
+++ b/dev-libs/tinyxml2/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+  <maintainer type="project">
+    <email>media-video@gentoo.org</email>
+    <name>Gentoo Video project</name>
+  </maintainer>
+  <upstream>
+    <remote-id type="github">leethomason/tinyxml2</remote-id>
+  </upstream>
+</pkgmetadata>
diff --git a/dev-libs/tinyxml2/tinyxml2-8.0.0.ebuild b/dev-libs/tinyxml2/tinyxml2-8.0.0.ebuild
new file mode 100644
index 0000000..75a28b8
--- /dev/null
+++ b/dev-libs/tinyxml2/tinyxml2-8.0.0.ebuild
@@ -0,0 +1,22 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+CMAKE_ECLASS=cmake
+inherit cmake-multilib
+
+DESCRIPTION="A simple, small, efficient, C++ XML parser"
+HOMEPAGE="http://www.grinninglizard.com/tinyxml2/ https://github.com/leethomason/tinyxml2/"
+SRC_URI="https://github.com/leethomason/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="ZLIB"
+SLOT="0/8"
+KEYWORDS="*"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+multilib_src_configure() {
+	local mycmakeargs=( -DBUILD_TESTING=$(usex test) )
+	cmake_src_configure
+}
diff --git a/dev-libs/wayland-protocols/Manifest b/dev-libs/wayland-protocols/Manifest
index ef91124..ba97a46 100644
--- a/dev-libs/wayland-protocols/Manifest
+++ b/dev-libs/wayland-protocols/Manifest
@@ -1 +1 @@
-DIST wayland-protocols-1.11.tar.xz 117852 SHA256 3afcee1d51c5b1d70b59da790c9830b354236324b19b2b7af9683bd3b7be6804 SHA512 6a6f816dd24f338182ddf11e2daa2db4f048f9153c618bd75712b6e02fccc41294c6c5f33692e858f54bab6b644b1dff49ca223ca2c8410a4afb8aa1b39e34a6 WHIRLPOOL 3fd53e7f868b6ebd6bcc37133294943ec4749d2b71a3d54d382d784d5f86656520c0e4e6be1f21230191ec08752c56458f42c15c32d8575e205da7a872c657e8
+DIST wayland-protocols-1.20.tar.xz 111684 BLAKE2B 2ddd3d0b0dde94fda4788a1fd6631b6fcf22fb134e74a55f2c310ab4b72802d3b069d294e3d7b68ea6ddfdb0f944ac9011b73a9678e65eec924135822f697087 SHA512 d13f65d03add2c39cc32bf6bda0e981e9f52504bf8505fceea045c8baeb73bea64fa4edb99cb837677fbab1b5b3023054adff36fac127e819690f366b81c4977
diff --git a/dev-libs/wayland-protocols/wayland-protocols-1.11.ebuild b/dev-libs/wayland-protocols/wayland-protocols-1.11.ebuild
deleted file mode 100644
index 911d8ec..0000000
--- a/dev-libs/wayland-protocols/wayland-protocols-1.11.ebuild
+++ /dev/null
@@ -1,39 +0,0 @@
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-
-if [[ ${PV} = 9999* ]]; then
-	EGIT_REPO_URI="https://anongit.freedesktop.org/git/wayland/wayland-protocols.git"
-	GIT_ECLASS="git-r3"
-	EXPERIMENTAL="true"
-	AUTOTOOLS_AUTORECONF=1
-fi
-
-inherit autotools-utils ${GIT_ECLASS}
-
-DESCRIPTION="Wayland protocol files"
-HOMEPAGE="https://wayland.freedesktop.org/"
-
-if [[ $PV = 9999* ]]; then
-	SRC_URI="${SRC_PATCHES}"
-else
-	SRC_URI="https://wayland.freedesktop.org/releases/${P}.tar.xz"
-	KEYWORDS="*"
-fi
-
-LICENSE="MIT"
-SLOT="0"
-IUSE=""
-
-RDEPEND="dev-libs/wayland"
-DEPEND="${RDEPEND}
-	virtual/pkgconfig"
-
-src_test() {
-	export XDG_RUNTIME_DIR="${T}/runtime-dir"
-	mkdir "${XDG_RUNTIME_DIR}" || die
-	chmod 0700 "${XDG_RUNTIME_DIR}" || die
-
-	autotools-utils_src_test
-}
diff --git a/dev-libs/wayland-protocols/wayland-protocols-1.20.ebuild b/dev-libs/wayland-protocols/wayland-protocols-1.20.ebuild
new file mode 100644
index 0000000..16b0f9a
--- /dev/null
+++ b/dev-libs/wayland-protocols/wayland-protocols-1.20.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+DESCRIPTION="Wayland protocol files"
+HOMEPAGE="https://wayland.freedesktop.org/"
+
+if [[ ${PV} = 9999* ]]; then
+	EGIT_REPO_URI="https://gitlab.freedesktop.org/wayland/${PN}.git/"
+	inherit git-r3 autotools
+else
+	SRC_URI="https://wayland.freedesktop.org/releases/${P}.tar.xz"
+	KEYWORDS="*"
+fi
+
+LICENSE="MIT"
+SLOT="0"
+IUSE=""
+
+DEPEND="dev-libs/wayland"
+RDEPEND="${DEPEND}"
+BDEPEND="virtual/pkgconfig"
+
+src_prepare() {
+	default
+
+	[[ ${PV} == 9999 ]] && eautoreconf
+}
+
+src_test() {
+	export XDG_RUNTIME_DIR="${T}/runtime-dir"
+	mkdir "${XDG_RUNTIME_DIR}" || die
+	chmod 0700 "${XDG_RUNTIME_DIR}" || die
+
+	default
+}
diff --git a/dev-libs/wayland/Manifest b/dev-libs/wayland/Manifest
index 54c86a1..c5622c6 100644
--- a/dev-libs/wayland/Manifest
+++ b/dev-libs/wayland/Manifest
@@ -1 +1 @@
-DIST wayland-1.17.0.tar.xz 437680 BLAKE2B 2f4eb54c5ded90453b4e2812f7b5086aa211196ec9f7333d316cdb829269d55db570ccb45a67ee07a039633245e630ab54da6403ff4754d59366f3c13fb87549 SHA512 c5051aab5ff078b368c196ecfedb33ccd961265bb914845d7ed81de361bb86ae18299575baa6c4eceb0d82cf8b495e8293f31b51d1cbc05d84af0a199ab3f946
+DIST wayland-1.19.0.tar.xz 456380 BLAKE2B 0f70bb02e890898c4763001884527067adb686abe9a2b9325badf1730d411d269c437037afc298eec8075eb1e3845f5b81b8ed3d702908388a54e7063cbea91a SHA512 d8a86f5e23e4a88e7c84b82fdb51eb350419086afe462ecb2f4d5c3ba9290ede310cbbcffd60215219ddccf5bad4adec21a5ebfbef6577200f66ac7a1b64a5ef
diff --git a/dev-libs/wayland/files/0001-connection-test-Encode-size-in-message-headers-corre.patch b/dev-libs/wayland/files/0001-connection-test-Encode-size-in-message-headers-corre.patch
new file mode 100644
index 0000000..72e1ca3
--- /dev/null
+++ b/dev-libs/wayland/files/0001-connection-test-Encode-size-in-message-headers-corre.patch
@@ -0,0 +1,78 @@
+From aee23e155474cb3001a8224b247cb6ded7e1f4a3 Mon Sep 17 00:00:00 2001
+From: Fergus Dall <sidereal@google.com>
+Date: Tue, 22 Jun 2021 20:05:47 +1000
+Subject: [PATCH 1/2] connection-test: Encode size in message headers correctly
+
+In these tests, message sizes are inconsistently encoded in either the upper
+or lower 16 bits of the second word of the message. Resolve this in favour
+of using the upper 16 bits, as this is how messages are supposed to be
+encoded, even though that aspect of message decoding isn't being tested
+here.
+
+Signed-off-by: Fergus Dall <sidereal@google.com>
+---
+ tests/connection-test.c | 14 +++++++-------
+ 1 file changed, 7 insertions(+), 7 deletions(-)
+
+diff --git a/tests/connection-test.c b/tests/connection-test.c
+index c04845b..669d73b 100644
+--- a/tests/connection-test.c
++++ b/tests/connection-test.c
+@@ -394,7 +394,7 @@ demarshal(struct marshal_data *data, const char *format,
+ 	struct wl_closure *closure;
+ 	struct wl_map objects;
+ 	struct wl_object object = { NULL, &func, 0 };
+-	int size = msg[1];
++	int size = msg[1] >> 16;
+ 
+ 	assert(write(data->s[1], msg, size) == size);
+ 	assert(wl_connection_read(data->read_connection) == size);
+@@ -417,39 +417,39 @@ TEST(connection_demarshal)
+ 
+ 	data.value.u = 8000;
+ 	msg[0] = 400200;	/* object id */
+-	msg[1] = 12;		/* size = 12, opcode = 0 */
++	msg[1] = 12 << 16;		/* size = 12, opcode = 0 */
+ 	msg[2] = data.value.u;
+ 	demarshal(&data, "u", msg, (void *) validate_demarshal_u);
+ 
+ 	data.value.i = -557799;
+ 	msg[0] = 400200;
+-	msg[1] = 12;
++	msg[1] = 12 << 16;
+ 	msg[2] = data.value.i;
+ 	demarshal(&data, "i", msg, (void *) validate_demarshal_i);
+ 
+ 	data.value.s = "superdude";
+ 	msg[0] = 400200;
+-	msg[1] = 24;
++	msg[1] = 24 << 16;
+ 	msg[2] = 10;
+ 	memcpy(&msg[3], data.value.s, msg[2]);
+ 	demarshal(&data, "s", msg, (void *) validate_demarshal_s);
+ 
+ 	data.value.s = "superdude";
+ 	msg[0] = 400200;
+-	msg[1] = 24;
++	msg[1] = 24 << 16;
+ 	msg[2] = 10;
+ 	memcpy(&msg[3], data.value.s, msg[2]);
+ 	demarshal(&data, "?s", msg, (void *) validate_demarshal_s);
+ 
+ 	data.value.i = wl_fixed_from_double(-90000.2390);
+ 	msg[0] = 400200;
+-	msg[1] = 12;
++	msg[1] = 12 << 16;
+ 	msg[2] = data.value.i;
+ 	demarshal(&data, "f", msg, (void *) validate_demarshal_f);
+ 
+ 	data.value.s = NULL;
+ 	msg[0] = 400200;
+-	msg[1] = 12;
++	msg[1] = 12 << 16;
+ 	msg[2] = 0;
+ 	demarshal(&data, "?s", msg, (void *) validate_demarshal_s);
+ 
+-- 
+2.32.0.93.g670b81a890-goog
+
diff --git a/dev-libs/wayland/files/0002-connection-Handle-non-nullable-strings-in-wl_connect.patch b/dev-libs/wayland/files/0002-connection-Handle-non-nullable-strings-in-wl_connect.patch
new file mode 100644
index 0000000..ad27201
--- /dev/null
+++ b/dev-libs/wayland/files/0002-connection-Handle-non-nullable-strings-in-wl_connect.patch
@@ -0,0 +1,66 @@
+From d514bc6d906ccbb3a8bd9afd2fc214f010c293c6 Mon Sep 17 00:00:00 2001
+From: Fergus Dall <sidereal@google.com>
+Date: Tue, 22 Jun 2021 19:31:26 +1000
+Subject: [PATCH 2/2] connection: Handle non-nullable strings in
+ wl_connection_demarshal
+
+Currently a null string passed into a non-nullable argument of a message
+will decode succesfully, probably resulting in the handler function
+crashing. Instead treat it the same way we do non-nullable objects and ids.
+
+Signed-off-by: Fergus Dall <sidereal@google.com>
+---
+ src/connection.c        |  7 +++++++
+ tests/connection-test.c | 18 ++++++++++++++++++
+ 2 files changed, 25 insertions(+)
+
+diff --git a/src/connection.c b/src/connection.c
+index d0c7d9f..557c611 100644
+--- a/src/connection.c
++++ b/src/connection.c
+@@ -749,6 +749,13 @@ wl_connection_demarshal(struct wl_connection *connection,
+ 		case 's':
+ 			length = *p++;
+ 
++			if (length == 0 && !arg.nullable) {
++				wl_log("NULL string received on non-nullable "
++				       "type, message %s(%s)\n", message->name,
++				       message->signature);
++				errno = EINVAL;
++				goto err;
++			}
+ 			if (length == 0) {
+ 				closure->args[i].s = NULL;
+ 				break;
+diff --git a/tests/connection-test.c b/tests/connection-test.c
+index 669d73b..7220d87 100644
+--- a/tests/connection-test.c
++++ b/tests/connection-test.c
+@@ -553,6 +553,24 @@ expected_fail_demarshal(struct marshal_data *data, const char *format,
+ 	assert(errno == expected_error);
+ }
+ 
++TEST(connection_demarshal_null_strings)
++{
++	struct marshal_data data;
++	uint32_t msg[3];
++
++	setup_marshal_data(&data);
++
++	data.value.s = NULL;
++	msg[0] = 400200;	/* object id */
++	msg[1] = 12 << 16;	/* size = 12, opcode = 0 */
++	msg[2] = 0;		/* string length = 0 */
++	demarshal(&data, "?s", msg, (void *) validate_demarshal_s);
++
++	expected_fail_demarshal(&data, "s", msg, EINVAL);
++
++	release_marshal_data(&data);
++}
++
+ /* These tests are verifying that the demarshaling code will gracefully handle
+  * clients lying about string and array lengths and giving values near
+  * UINT32_MAX. Before fixes f7fdface and f5b9e3b9 this test would crash on
+-- 
+2.32.0.93.g670b81a890-goog
+
diff --git a/dev-libs/wayland/wayland-1.17.0.ebuild b/dev-libs/wayland/wayland-1.17.0.ebuild
deleted file mode 100644
index 261062d..0000000
--- a/dev-libs/wayland/wayland-1.17.0.ebuild
+++ /dev/null
@@ -1,70 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-if [[ ${PV} = *9999* ]]; then
-	EGIT_REPO_URI="https://gitlab.freedesktop.org/wayland/wayland.git"
-	inherit git-r3
-else
-	SRC_URI="https://wayland.freedesktop.org/releases/${P}.tar.xz"
-	KEYWORDS="*"
-fi
-inherit autotools libtool multilib-minimal toolchain-funcs
-
-DESCRIPTION="Wayland protocol libraries"
-HOMEPAGE="https://wayland.freedesktop.org/ https://gitlab.freedesktop.org/wayland/wayland"
-
-LICENSE="MIT"
-SLOT="0"
-IUSE="doc static-libs"
-
-BDEPEND="
-	virtual/pkgconfig
-	doc? (
-		>=app-doc/doxygen-1.6[dot]
-		app-text/xmlto
-		>=media-gfx/graphviz-2.26.0
-		sys-apps/grep[pcre]
-	)
-"
-DEPEND="
-	>=dev-libs/expat-2.1.0-r3:=[${MULTILIB_USEDEP}]
-	dev-libs/libxml2:=
-	>=virtual/libffi-3.0.13-r1:=[${MULTILIB_USEDEP}]
-"
-RDEPEND="${DEPEND}
-	!<media-libs/mesa-18.1.1-r1
-"
-
-src_prepare() {
-	default
-	[[ $PV = 9999* ]] && eautoreconf || elibtoolize
-}
-
-multilib_src_configure() {
-	local myeconfargs=(
-		--disable-static
-		$(multilib_native_use_enable doc documentation)
-		$(multilib_native_enable dtd-validation)
-	)
-	tc-is-cross-compiler && myeconfargs+=( --with-host-scanner )
-
-	ECONF_SOURCE="${S}" econf "${myeconfargs[@]}"
-}
-
-multilib_src_install_all() {
-	find "${D}" -name '*.la' -delete || die
-	einstalldocs
-}
-
-src_test() {
-	# We set it on purpose to only a short subdir name, as socket paths are
-	# created in there, which are 108 byte limited. With this it hopefully
-	# barely fits to the limit with /var/tmp/portage/$CAT/$PF/temp/xdr
-	export XDG_RUNTIME_DIR="${T}"/xdr
-	mkdir "${XDG_RUNTIME_DIR}" || die
-	chmod 0700 "${XDG_RUNTIME_DIR}" || die
-
-	multilib-minimal_src_test
-}
diff --git a/dev-libs/wayland/wayland-1.19.0-r1.ebuild b/dev-libs/wayland/wayland-1.19.0-r1.ebuild
new file mode 100644
index 0000000..ef33ea0
--- /dev/null
+++ b/dev-libs/wayland/wayland-1.19.0-r1.ebuild
@@ -0,0 +1,62 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+if [[ ${PV} = *9999* ]]; then
+	EGIT_REPO_URI="https://gitlab.freedesktop.org/wayland/wayland.git"
+	inherit git-r3
+else
+	SRC_URI="https://wayland.freedesktop.org/releases/${P}.tar.xz"
+	KEYWORDS="*"
+fi
+inherit meson-multilib
+
+DESCRIPTION="Wayland protocol libraries"
+HOMEPAGE="https://wayland.freedesktop.org/ https://gitlab.freedesktop.org/wayland/wayland"
+
+LICENSE="MIT"
+SLOT="0"
+IUSE="doc"
+
+BDEPEND="
+	~dev-util/wayland-scanner-${PV}[$MULTILIB_USEDEP]
+	virtual/pkgconfig
+	doc? (
+		>=app-doc/doxygen-1.6[dot]
+		app-text/xmlto
+		>=media-gfx/graphviz-2.26.0
+	)
+"
+DEPEND="
+	>=dev-libs/expat-2.1.0-r3:=[${MULTILIB_USEDEP}]
+	dev-libs/libxml2:=
+	>=dev-libs/libffi-3.0.13-r1:=[${MULTILIB_USEDEP}]
+"
+RDEPEND="${DEPEND}"
+
+PATCHES=(
+	"${FILESDIR}"/0001-connection-test-Encode-size-in-message-headers-corre.patch
+	"${FILESDIR}"/0002-connection-Handle-non-nullable-strings-in-wl_connect.patch
+)
+
+multilib_src_configure() {
+	local emesonargs=(
+		$(meson_native_use_bool doc documentation)
+		$(meson_native_true dtd_validation)
+		-Dlibraries=true
+		-Dscanner=false
+	)
+	meson_src_configure
+}
+
+src_test() {
+	# We set it on purpose to only a short subdir name, as socket paths are
+	# created in there, which are 108 byte limited. With this it hopefully
+	# barely fits to the limit with /var/tmp/portage/${CATEGORY}/${PF}/temp/x
+	export XDG_RUNTIME_DIR="${T}"/x
+	mkdir "${XDG_RUNTIME_DIR}" || die
+	chmod 0700 "${XDG_RUNTIME_DIR}" || die
+
+	multilib-minimal_src_test
+}
diff --git a/dev-perl/Canary-Stability/Canary-Stability-2013.0.0.ebuild b/dev-perl/Canary-Stability/Canary-Stability-2013.0.0.ebuild
new file mode 100644
index 0000000..d162612
--- /dev/null
+++ b/dev-perl/Canary-Stability/Canary-Stability-2013.0.0.ebuild
@@ -0,0 +1,22 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+DIST_AUTHOR=MLEHMANN
+DIST_VERSION=2013
+inherit perl-module
+
+DESCRIPTION="Canary to check perl compatibility for schmorp's modules"
+
+SLOT="0"
+KEYWORDS="*"
+
+BDEPEND="
+	virtual/perl-ExtUtils-MakeMaker
+"
+src_test() {
+	perl-module_src_test
+	perl -Mblib="${S}" -M"Canary::Stability ${DIST_VERSION} ()" -e1	||
+		die "Could not load Canary::Stability"
+}
diff --git a/dev-perl/Canary-Stability/Manifest b/dev-perl/Canary-Stability/Manifest
new file mode 100644
index 0000000..85b605a
--- /dev/null
+++ b/dev-perl/Canary-Stability/Manifest
@@ -0,0 +1 @@
+DIST Canary-Stability-2013.tar.gz 4861 BLAKE2B d9f10167b5ad7391ff18cd360f908947fb95cf3608841f37cc5987bef4b4846ad80f5053319e26441da9bda3f166e239758e8900de87e72ed862abd9a776e077 SHA512 9dfb0e6d136048050aac7c29e1fc79dc2a7703c8800582aa837c5d9b9934c48bfcb0a9ef1c6b5bb7e71a10a709e7f7431b3c79ea12b8d9f374b33bfd4a3e468d
diff --git a/dev-perl/Canary-Stability/OWNERS b/dev-perl/Canary-Stability/OWNERS
new file mode 100644
index 0000000..a42b046
--- /dev/null
+++ b/dev-perl/Canary-Stability/OWNERS
@@ -0,0 +1,2 @@
+# Needed by the lcov package.
+include /dev-util/lcov/OWNERS
diff --git a/dev-perl/Canary-Stability/metadata.xml b/dev-perl/Canary-Stability/metadata.xml
new file mode 100644
index 0000000..1d35a66
--- /dev/null
+++ b/dev-perl/Canary-Stability/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+  <maintainer type="project">
+    <email>perl@gentoo.org</email>
+    <name>Gentoo Perl Project</name>
+  </maintainer>
+  <upstream>
+    <remote-id type="cpan">Canary-Stability</remote-id>
+    <remote-id type="cpan-module">Canary::Stability</remote-id>
+  </upstream>
+</pkgmetadata>
diff --git a/dev-perl/JSON-XS/JSON-XS-3.40.0.ebuild b/dev-perl/JSON-XS/JSON-XS-3.40.0.ebuild
new file mode 100644
index 0000000..c764c4d
--- /dev/null
+++ b/dev-perl/JSON-XS/JSON-XS-3.40.0.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+DIST_AUTHOR=MLEHMANN
+DIST_VERSION=3.04
+DIST_EXAMPLES=("eg/bench")
+inherit perl-module
+
+DESCRIPTION="JSON::XS - JSON serialising/deserialising, done correctly and fast"
+
+SLOT="0"
+KEYWORDS="*"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+	dev-perl/Types-Serialiser
+	dev-perl/common-sense
+	!<dev-perl/JSON-2.900.0
+	!<dev-perl/JSON-Any-1.310.0
+"
+DEPEND="${RDEPEND}
+	dev-perl/Canary-Stability
+	>=virtual/perl-ExtUtils-MakeMaker-6.520.0
+	test? ( virtual/perl-Test-Harness )"
diff --git a/dev-perl/JSON-XS/Manifest b/dev-perl/JSON-XS/Manifest
new file mode 100644
index 0000000..9990775
--- /dev/null
+++ b/dev-perl/JSON-XS/Manifest
@@ -0,0 +1 @@
+DIST JSON-XS-3.04.tar.gz 83424 BLAKE2B 031e3b9d4902b7d9ad704655914fc4ee880874aa3073ded7248e5a842287cdaea47fce8be9d6c2999d19bdd3b5026fa2c0fb963c3183d6ac006387a741e0cdd0 SHA512 69c2e199385b5b5e331d905b64805304de80e1a3b393acaf7dce21c45254b1f23f1a83b246dcd3a80c2cfdadaf8ce3634ee587c469629cb69106f0c2239c73db
diff --git a/dev-perl/JSON-XS/OWNERS b/dev-perl/JSON-XS/OWNERS
new file mode 100644
index 0000000..a42b046
--- /dev/null
+++ b/dev-perl/JSON-XS/OWNERS
@@ -0,0 +1,2 @@
+# Needed by the lcov package.
+include /dev-util/lcov/OWNERS
diff --git a/dev-perl/JSON-XS/metadata.xml b/dev-perl/JSON-XS/metadata.xml
new file mode 100644
index 0000000..28d3b49
--- /dev/null
+++ b/dev-perl/JSON-XS/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+  <maintainer type="project">
+    <email>perl@gentoo.org</email>
+    <name>Gentoo Perl Project</name>
+  </maintainer>
+  <upstream>
+    <remote-id type="cpan">JSON-XS</remote-id>
+    <remote-id type="cpan-module">JSON::XS</remote-id>
+  </upstream>
+</pkgmetadata>
diff --git a/dev-perl/JSON/JSON-2.940.0.ebuild b/dev-perl/JSON/JSON-2.940.0.ebuild
new file mode 100644
index 0000000..e184b4a
--- /dev/null
+++ b/dev-perl/JSON/JSON-2.940.0.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+DIST_AUTHOR=ISHIGAKI
+DIST_VERSION=2.94
+DIST_EXAMPLES=("eg/*")
+inherit perl-module
+
+DESCRIPTION="JSON (JavaScript Object Notation) encoder/decoder"
+
+SLOT="0"
+KEYWORDS="*"
+IUSE="test +xs"
+RESTRICT="!test? ( test )"
+
+RDEPEND="xs? ( >=dev-perl/JSON-XS-2.340.0 )"
+DEPEND="
+	virtual/perl-ExtUtils-MakeMaker
+	test? ( virtual/perl-Test-Simple )
+"
+src_test() {
+	perl_rm_files t/00_pod.t
+	perl-module_src_test
+}
diff --git a/dev-perl/JSON/Manifest b/dev-perl/JSON/Manifest
new file mode 100644
index 0000000..b23b3ab
--- /dev/null
+++ b/dev-perl/JSON/Manifest
@@ -0,0 +1 @@
+DIST JSON-2.94.tar.gz 82629 BLAKE2B 284e8fc19732ad680c9f953211f916222e29a032f2d70075d81df2372769874d409aea5a77c4f25fd00f2ff47784e34f421603adbdd0001834ce2e579c4de4b1 SHA512 0a20562441d525ee37fff467111f7d65124525e06b4f825079948752da2a983757e719025dd2ab896115b34ba146b4c495f738e4f005542dce0b058440c73a46
diff --git a/dev-perl/JSON/OWNERS b/dev-perl/JSON/OWNERS
new file mode 100644
index 0000000..a42b046
--- /dev/null
+++ b/dev-perl/JSON/OWNERS
@@ -0,0 +1,2 @@
+# Needed by the lcov package.
+include /dev-util/lcov/OWNERS
diff --git a/dev-perl/JSON/metadata.xml b/dev-perl/JSON/metadata.xml
new file mode 100644
index 0000000..b93c6f1
--- /dev/null
+++ b/dev-perl/JSON/metadata.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+  <maintainer type="project">
+    <email>perl@gentoo.org</email>
+    <name>Gentoo Perl Project</name>
+  </maintainer>
+  <use>
+    <flag name="xs">Install C-based <pkg>dev-perl/JSON-XS</pkg> for faster performance</flag>
+  </use>
+  <upstream>
+    <remote-id type="cpan">JSON</remote-id>
+    <remote-id type="cpan-module">JSON</remote-id>
+    <remote-id type="cpan-module">JSON::PP::IncrParser</remote-id>
+    <remote-id type="cpan-module">JSON::Backend::PP</remote-id>
+  </upstream>
+</pkgmetadata>
diff --git a/dev-perl/PerlIO-gzip/Manifest b/dev-perl/PerlIO-gzip/Manifest
new file mode 100644
index 0000000..a208f42
--- /dev/null
+++ b/dev-perl/PerlIO-gzip/Manifest
@@ -0,0 +1 @@
+DIST PerlIO-gzip-0.20.tar.gz 19076 BLAKE2B e7ff1dd280bbfe80720c113a26626e222695642bc02730f5271345583784ca3e850d1fbd9958acc43a12dd603ef32cefc786acdc8e86263f9d38fd675df9b7e1 SHA512 b24e8fa99cbcbaf07feabfc09cefc55a10c1dce59b495b59343ff5217536f7108c92f462751e70242e6567be32e69a0cc88a2e66325e926174a64042d4b87966
diff --git a/dev-perl/PerlIO-gzip/OWNERS b/dev-perl/PerlIO-gzip/OWNERS
new file mode 100644
index 0000000..a42b046
--- /dev/null
+++ b/dev-perl/PerlIO-gzip/OWNERS
@@ -0,0 +1,2 @@
+# Needed by the lcov package.
+include /dev-util/lcov/OWNERS
diff --git a/dev-perl/PerlIO-gzip/PerlIO-gzip-0.200.0.ebuild b/dev-perl/PerlIO-gzip/PerlIO-gzip-0.200.0.ebuild
new file mode 100644
index 0000000..98f2eba
--- /dev/null
+++ b/dev-perl/PerlIO-gzip/PerlIO-gzip-0.200.0.ebuild
@@ -0,0 +1,19 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+DIST_AUTHOR=NWCLARK
+DIST_VERSION=0.20
+inherit perl-module
+
+DESCRIPTION="PerlIO layer to gzip/gunzip"
+
+SLOT="0"
+KEYWORDS="*"
+IUSE=""
+
+DEPEND="sys-libs/zlib"
+RDEPEND="${DEPEND}
+	virtual/perl-ExtUtils-MakeMaker
+"
diff --git a/dev-perl/PerlIO-gzip/metadata.xml b/dev-perl/PerlIO-gzip/metadata.xml
new file mode 100644
index 0000000..57be8ce
--- /dev/null
+++ b/dev-perl/PerlIO-gzip/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+  <maintainer type="project">
+    <email>perl@gentoo.org</email>
+    <name>Gentoo Perl Project</name>
+  </maintainer>
+  <upstream>
+    <remote-id type="cpan">PerlIO-gzip</remote-id>
+    <remote-id type="cpan-module">PerlIO::gzip</remote-id>
+  </upstream>
+</pkgmetadata>
diff --git a/dev-perl/Types-Serialiser/Manifest b/dev-perl/Types-Serialiser/Manifest
new file mode 100644
index 0000000..5e1ef91
--- /dev/null
+++ b/dev-perl/Types-Serialiser/Manifest
@@ -0,0 +1 @@
+DIST Types-Serialiser-1.0.tar.gz 6238 BLAKE2B ec0dee2f4519605b1fbbdad832bbf2eced1f27005f6b84a4ed1c2f8d6b4ca898f0c2747f1c1986de78fe92f730cad7d93aa54ac56010e6146a9d699c54a3fe88 SHA512 b786bcd3ee976a6ad948cc98a9c71d2cdcd30f485528eff059091f6d86ae7078c10ba2dc2982326fcf0184dbfbdddea84daff324c6ec6a129fe6aac01253c8fb
diff --git a/dev-perl/Types-Serialiser/OWNERS b/dev-perl/Types-Serialiser/OWNERS
new file mode 100644
index 0000000..a42b046
--- /dev/null
+++ b/dev-perl/Types-Serialiser/OWNERS
@@ -0,0 +1,2 @@
+# Needed by the lcov package.
+include /dev-util/lcov/OWNERS
diff --git a/dev-perl/Types-Serialiser/Types-Serialiser-1.0.0-r1.ebuild b/dev-perl/Types-Serialiser/Types-Serialiser-1.0.0-r1.ebuild
new file mode 100644
index 0000000..0b66739
--- /dev/null
+++ b/dev-perl/Types-Serialiser/Types-Serialiser-1.0.0-r1.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+DIST_AUTHOR=MLEHMANN
+DIST_VERSION=1.0
+inherit perl-module
+
+DESCRIPTION="simple data types for common serialisation formats"
+
+SLOT="0"
+KEYWORDS="*"
+IUSE=""
+
+RDEPEND="
+	dev-perl/common-sense
+"
+DEPEND="${RDEPEND}
+	virtual/perl-ExtUtils-MakeMaker
+"
diff --git a/dev-perl/Types-Serialiser/metadata.xml b/dev-perl/Types-Serialiser/metadata.xml
new file mode 100644
index 0000000..51d2e3c
--- /dev/null
+++ b/dev-perl/Types-Serialiser/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+  <maintainer type="project">
+    <email>perl@gentoo.org</email>
+    <name>Gentoo Perl Project</name>
+  </maintainer>
+  <upstream>
+    <remote-id type="cpan">Types-Serialiser</remote-id>
+    <remote-id type="cpan-module">Types::Serialiser</remote-id>
+    <remote-id type="cpan-module">Types::Serialiser::BooleanBase</remote-id>
+    <remote-id type="cpan-module">Types::Serialiser::Error</remote-id>
+  </upstream>
+</pkgmetadata>
diff --git a/dev-perl/common-sense/Manifest b/dev-perl/common-sense/Manifest
new file mode 100644
index 0000000..00d7681
--- /dev/null
+++ b/dev-perl/common-sense/Manifest
@@ -0,0 +1 @@
+DIST common-sense-3.74.tar.gz 13002 BLAKE2B 234f86e1d51d650c43be0e79f1e87f24f07c529fc7724084fdb75048e3a7295961131dc108bc573e8d3ca757e6b51c657426adcfb800afdf8ded3d8bf86a352c SHA512 658ad70a2d1bbd0b26f91c4ea5d69b4cc0b632ede9532b88282987002a5e280f0475d63ee846b7bd2d38ef82f2680e20c2093803e4b62a984750ed447f318d60
diff --git a/dev-perl/common-sense/OWNERS b/dev-perl/common-sense/OWNERS
new file mode 100644
index 0000000..a42b046
--- /dev/null
+++ b/dev-perl/common-sense/OWNERS
@@ -0,0 +1,2 @@
+# Needed by the lcov package.
+include /dev-util/lcov/OWNERS
diff --git a/dev-perl/common-sense/common-sense-3.740.0-r1.ebuild b/dev-perl/common-sense/common-sense-3.740.0-r1.ebuild
new file mode 100644
index 0000000..dacab93
--- /dev/null
+++ b/dev-perl/common-sense/common-sense-3.740.0-r1.ebuild
@@ -0,0 +1,16 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+DIST_AUTHOR=MLEHMANN
+DIST_VERSION=3.74
+inherit perl-module
+
+DESCRIPTION="Save a tree AND a kitten, use common::sense!"
+
+SLOT="0"
+KEYWORDS="*"
+IUSE=""
+
+DEPEND="virtual/perl-ExtUtils-MakeMaker"
diff --git a/dev-perl/common-sense/metadata.xml b/dev-perl/common-sense/metadata.xml
new file mode 100644
index 0000000..03c6d58
--- /dev/null
+++ b/dev-perl/common-sense/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+  <maintainer type="project">
+    <email>perl@gentoo.org</email>
+    <name>Gentoo Perl Project</name>
+  </maintainer>
+  <upstream>
+    <remote-id type="cpan">common-sense</remote-id>
+    <remote-id type="cpan-module">common::sense</remote-id>
+  </upstream>
+</pkgmetadata>
diff --git a/dev-python/asn1crypto/Manifest b/dev-python/asn1crypto/Manifest
deleted file mode 100644
index 5e47229..0000000
--- a/dev-python/asn1crypto/Manifest
+++ /dev/null
@@ -1 +0,0 @@
-DIST asn1crypto-0.22.0.tar.gz 84508 SHA256 cbbadd640d3165ab24b06ef25d1dca09a3441611ac15f6a6b452474fdf0aed1a SHA512 fdc98f71ec3b744e69a75909b5b0a8381fb82d448941a6e1059823af47ca107218e1dbe6ff192e2173f11fc2454be1afcd387d801dc8e716451179857d71f8b8 WHIRLPOOL 83422e7f17c5e8c5ff5dff4e6e295596d4649f163bab8151b6885df48cdb2e61730b7abba5af5b5d44781078af69fe6495a1d1a20bc1fd1927f64f726bbdfdb1
diff --git a/dev-python/asn1crypto/asn1crypto-0.22.0-r2.ebuild b/dev-python/asn1crypto/asn1crypto-0.22.0-r2.ebuild
deleted file mode 120000
index 2ab2785..0000000
--- a/dev-python/asn1crypto/asn1crypto-0.22.0-r2.ebuild
+++ /dev/null
@@ -1 +0,0 @@
-asn1crypto-0.22.0.ebuild
\ No newline at end of file
diff --git a/dev-python/asn1crypto/asn1crypto-0.22.0.ebuild b/dev-python/asn1crypto/asn1crypto-0.22.0.ebuild
deleted file mode 100644
index da5b4f8..0000000
--- a/dev-python/asn1crypto/asn1crypto-0.22.0.ebuild
+++ /dev/null
@@ -1,21 +0,0 @@
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-PYTHON_COMPAT=( python2_7 python3_{4,5,6} pypy{,3} )
-PYTHON_REQ_USE="threads(+)"
-
-inherit distutils-r1
-
-DESCRIPTION="Python ASN.1 library with a focus on performance and a pythonic API"
-HOMEPAGE="https://github.com/wbond/asn1crypto/ https://pypi.python.org/pypi/asn1crypto/"
-SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="*"
-IUSE="test"
-
-RDEPEND=""
-DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/asn1crypto/metadata.xml b/dev-python/asn1crypto/metadata.xml
deleted file mode 100644
index 2dfa57b..0000000
--- a/dev-python/asn1crypto/metadata.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
-<pkgmetadata>
-  <maintainer type="project">
-    <email>python@gentoo.org</email>
-    <name>Python</name>
-  </maintainer>
-  <upstream>
-    <remote-id type="pypi">cryptography</remote-id>
-    <remote-id type="github">pyca/cryptography</remote-id>
-  </upstream>
-</pkgmetadata>
diff --git a/dev-python/attrs/Manifest b/dev-python/attrs/Manifest
index b2c97dd..a3541fe 100644
--- a/dev-python/attrs/Manifest
+++ b/dev-python/attrs/Manifest
@@ -1 +1 @@
-DIST attrs-18.2.0.tar.gz 116817 BLAKE2B 79d50c9b49956bbc1e04084eed36a5f65f2dda8e954b23f15650cb881d6f77a8325e042c6d1a77dcad43661d4524a4d253d96bd0053464ef03091779636e6d0b SHA512 58c26579d6dfcacbe9e3f770a125861e0625d435f1293eebe0d62efc9b8aa9572be2b312d73037a647163bffb0a13b240fb157aff7ed35196f637ae945d61d22
+DIST attrs-20.3.0.tar.gz 164523 BLAKE2B 66d2e038e485833f5033fbabe2ef9a6565e3f5f5e8530f2c70019e4f5bdfca51083ac6d0bbc9eb765f838070bc90e01db1c83ed6da113ced67300238e12b5f42 SHA512 640532c6b763fd96572e5d85e93c111bebc4c5e0ff9419fe92fb51280f03acb5f9f43339f57d30659e777d5578460675c60ec0a362f9ad433893e3624ce6a931
diff --git a/dev-python/attrs/OWNERS b/dev-python/attrs/OWNERS
new file mode 100644
index 0000000..3d2e096
--- /dev/null
+++ b/dev-python/attrs/OWNERS
@@ -0,0 +1 @@
+include chromiumos/platform/ec:/OWNERS
diff --git a/dev-python/attrs/attrs-18.2.0.ebuild b/dev-python/attrs/attrs-18.2.0.ebuild
deleted file mode 100644
index f179d46..0000000
--- a/dev-python/attrs/attrs-18.2.0.ebuild
+++ /dev/null
@@ -1,36 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-PYTHON_COMPAT=( python2_7 python3_{4,5,6,7} pypy{,3} )
-
-inherit distutils-r1
-
-DESCRIPTION="Attributes without boilerplate"
-HOMEPAGE="
-	https://github.com/hynek/attrs
-	https://attrs.readthedocs.org/
-	https://pypi.org/project/attrs/"
-SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="*"
-IUSE="test"
-
-RDEPEND="
-	dev-python/zope-interface[${PYTHON_USEDEP}]"
-
-DEPEND="
-	${RDEPEND}
-	dev-python/setuptools[${PYTHON_USEDEP}]
-	test? (
-		$(python_gen_impl_dep sqlite)
-		>=dev-python/hypothesis-3.6.0[${PYTHON_USEDEP}]
-		dev-python/pytest[${PYTHON_USEDEP}]
-	)"
-
-python_test() {
-	py.test -v || die "tests failed with ${EPYTHON}"
-}
diff --git a/dev-python/attrs/attrs-20.3.0.ebuild b/dev-python/attrs/attrs-20.3.0.ebuild
new file mode 100644
index 0000000..ec74bc8
--- /dev/null
+++ b/dev-python/attrs/attrs-20.3.0.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python2_7 python3_{6,7,8,9} pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="Attributes without boilerplate"
+HOMEPAGE="
+	https://github.com/python-attrs/attrs
+	https://attrs.readthedocs.io/
+	https://pypi.org/project/attrs/"
+SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="*"
+
+RDEPEND="
+	dev-python/zope-interface[${PYTHON_USEDEP}]"
+BDEPEND="
+	test? (
+		$(python_gen_impl_dep sqlite)
+		>=dev-python/hypothesis-3.6.0[${PYTHON_USEDEP}]
+		>=dev-python/pytest-4.3.0[${PYTHON_USEDEP}]
+	)"
+
+distutils_enable_tests pytest
diff --git a/dev-python/backports-lzma/Manifest b/dev-python/backports-lzma/Manifest
deleted file mode 100644
index 731d41e..0000000
--- a/dev-python/backports-lzma/Manifest
+++ /dev/null
@@ -1 +0,0 @@
-DIST backports.lzma-0.0.8.tar.gz 36111 SHA256 200584ad5079d8ca6b1bfe14890c7be58666ab0128d8ca26cfb2669b476085f3 SHA512 bc5e7672a0ac53b7cf97ea52a566e96d92a3dd334a8321699585225e32ad7c723b4ffd6e4b153bd2ae3ead2a2cd6a48678b915257de4952ddca8389032db48ad WHIRLPOOL 1aaa4ac5b0a2d25a932577ed52843a99a92ef152e1eaf5795bbdd9ec13cb048acd0f01a99eef1182392b33ae62aa2b4f61fb0e801e44eb729d665d707ca71ebf
diff --git a/dev-python/backports-lzma/backports-lzma-0.0.8.ebuild b/dev-python/backports-lzma/backports-lzma-0.0.8.ebuild
deleted file mode 100644
index 29a4336..0000000
--- a/dev-python/backports-lzma/backports-lzma-0.0.8.ebuild
+++ /dev/null
@@ -1,37 +0,0 @@
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-
-PYTHON_COMPAT=( python2_7 )
-
-inherit distutils-r1
-
-MY_PN=${PN/-/.}
-MY_P=${MY_PN}-${PV}
-
-DESCRIPTION="Backport of Python 3.3's lzma module for XZ/LZMA compressed files"
-HOMEPAGE="https://github.com/peterjc/backports.lzma/ https://pypi.python.org/pypi/backports.lzma/"
-SRC_URI="mirror://pypi/${PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="*"
-
-RDEPEND="app-arch/xz-utils
-	dev-python/backports[${PYTHON_USEDEP}]"
-DEPEND="${RDEPEND}"
-
-S=${WORKDIR}/${MY_P}
-
-python_test() {
-	PYTHONPATH="${BUILD_DIR}/lib" "${PYTHON}" test/test_lzma.py || die "tests failed with ${EPYTHON}"
-}
-
-python_install() {
-	# main namespace provided by dev-python/backports
-	rm "${BUILD_DIR}"/lib/backports/__init__.py || die
-	rm -f backports/__init__.py || die
-
-	distutils-r1_python_install
-}
diff --git a/dev-python/backports-lzma/metadata.xml b/dev-python/backports-lzma/metadata.xml
deleted file mode 100644
index c58f6b9..0000000
--- a/dev-python/backports-lzma/metadata.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
-<pkgmetadata>
-  <maintainer type="project">
-    <email>python@gentoo.org</email>
-    <name>Python</name>
-  </maintainer>
-  <upstream>
-    <remote-id type="github">peterjc/backports.lzma</remote-id>
-    <remote-id type="pypi">backports.lzma</remote-id>
-  </upstream>
-</pkgmetadata>
diff --git a/dev-python/backports-shutil_get_terminal_size/Manifest b/dev-python/backports-shutil_get_terminal_size/Manifest
deleted file mode 100644
index c82df62..0000000
--- a/dev-python/backports-shutil_get_terminal_size/Manifest
+++ /dev/null
@@ -1 +0,0 @@
-DIST backports.shutil_get_terminal_size-1.0.0.tar.gz 4279 BLAKE2B 8f4772c8c9b7e80c4d1402ef9cf3fefaa7ab61a1baed26b87fa0d347bea6ad704f5ae7d9379cd266bd949509eff9e89cda9d87ecedc9832c5cb332c5ed6496d0 SHA512 b74341c6616f9aace5abcc7fd657fc33801b558b6227c533002ccaf588734490b465a4a27d2bdc8047a385771afdcded610edef832dfa5ef24632f4541729050
diff --git a/dev-python/backports-shutil_get_terminal_size/backports-shutil_get_terminal_size-1.0.0-r1.ebuild b/dev-python/backports-shutil_get_terminal_size/backports-shutil_get_terminal_size-1.0.0-r1.ebuild
deleted file mode 100644
index a4d5c81..0000000
--- a/dev-python/backports-shutil_get_terminal_size/backports-shutil_get_terminal_size-1.0.0-r1.ebuild
+++ /dev/null
@@ -1,32 +0,0 @@
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-
-PYTHON_COMPAT=( python2_7 )
-
-inherit distutils-r1
-
-MY_PN="backports.shutil_get_terminal_size"
-MY_P="${MY_PN}-${PV}"
-
-DESCRIPTION="A backport of the get_terminal_size function from Python 3.3's shutil"
-HOMEPAGE="https://pypi.org/project/backports.shutil_get_terminal_size/ https://github.com/chrippa/backports.shutil_get_terminal_size"
-SRC_URI="mirror://pypi/${PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
-
-SLOT="0"
-LICENSE="MIT"
-KEYWORDS="*"
-IUSE=""
-
-DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
-RDEPEND="dev-python/backports[${PYTHON_USEDEP}]"
-
-S=${WORKDIR}/${MY_P}
-
-python_install() {
-	distutils-r1_python_install
-
-	# main namespace provided by dev-python/backports
-	rm "${D}$(python_get_sitedir)"/backports/__init__.py* || die
-}
diff --git a/dev-python/backports-shutil_get_terminal_size/metadata.xml b/dev-python/backports-shutil_get_terminal_size/metadata.xml
deleted file mode 100644
index f9b37db..0000000
--- a/dev-python/backports-shutil_get_terminal_size/metadata.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
-<pkgmetadata>
-	<maintainer type="project">
-		<email>python@gentoo.org</email>
-		<name>Python</name>
-	</maintainer>
-	<upstream>
-		<remote-id type="pypi">backports.shutil_get_terminal_size</remote-id>
-		<remote-id type="github">chrippa/backports.shutil_get_terminal_size</remote-id>
-	</upstream>
-</pkgmetadata>
diff --git a/dev-python/boto/boto-2.49.0-r4.ebuild b/dev-python/boto/boto-2.49.0-r4.ebuild
new file mode 100644
index 0000000..41f923e
--- /dev/null
+++ b/dev-python/boto/boto-2.49.0-r4.ebuild
@@ -0,0 +1,60 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="7"
+
+PYTHON_COMPAT=( python3_{6..9} )
+DISTUTILS_USE_SETUPTOOLS=bdepend
+
+inherit distutils-r1
+
+DESCRIPTION="Amazon Web Services API"
+HOMEPAGE="https://github.com/boto/boto https://pypi.org/project/boto/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="*"
+
+PATCHES=(
+	# taken from https://bugs.debian.org/909545
+	"${FILESDIR}"/${P}-try-to-add-SNI-support-v3.patch
+	"${FILESDIR}"/${P}-py38.patch
+	"${FILESDIR}"/${P}-py3-socket-binary.patch
+	"${FILESDIR}"/${P}-py3-httplib-strict.patch
+	"${FILESDIR}"/${P}-py3-server-port.patch
+	"${FILESDIR}"/${P}-unbundle-six.patch
+)
+
+RDEPEND=">=dev-python/six-1.12.0[${PYTHON_USEDEP}]"
+
+BDEPEND="
+	test? (
+		dev-python/httpretty[${PYTHON_USEDEP}]
+		dev-python/keyring[${PYTHON_USEDEP}]
+		dev-python/lxml[${PYTHON_USEDEP}]
+		dev-python/mock[${PYTHON_USEDEP}]
+		dev-python/paramiko[${PYTHON_USEDEP}]
+		dev-python/requests[${PYTHON_USEDEP}]
+		dev-python/rsa[${PYTHON_USEDEP}]
+		dev-python/selenium[${PYTHON_USEDEP}]
+	)"
+
+distutils_enable_tests nose
+
+src_prepare() {
+	# remove bundled libs.
+	rm -f "${S}"/boto/vendored/six.py || die
+	# broken, not worth fixing
+	rm tests/unit/cloudfront/test_signed_urls.py || die
+	# fix tests
+	mkdir -p "${HOME}"/.ssh || die
+	: > "${HOME}"/.ssh/known_hosts || die
+
+	distutils-r1_src_prepare
+}
+
+python_test() {
+	nosetests -v tests/unit ||
+		die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-python/boto/boto-2.49.0.ebuild b/dev-python/boto/boto-2.49.0.ebuild
deleted file mode 100644
index 3811e9b..0000000
--- a/dev-python/boto/boto-2.49.0.ebuild
+++ /dev/null
@@ -1,54 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-PYTHON_COMPAT=( python2_7 python3_{6,7} )
-
-inherit distutils-r1
-
-DESCRIPTION="Amazon Web Services API"
-HOMEPAGE="https://github.com/boto/boto https://pypi.org/project/boto/"
-SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="*"
-IUSE="doc test"
-
-REQUIRED_USE="doc? ( || ( $(python_gen_useflags 'python2*') ) )"
-
-DEPEND="
-	dev-python/setuptools[${PYTHON_USEDEP}]
-	test? ( dev-python/nose[${PYTHON_USEDEP}] )
-	doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
-
-# requires Amazon Web Services keys to pass some tests
-RESTRICT="test"
-
-pkg_setup() {
-	use doc && DISTUTILS_ALL_SUBPHASE_IMPLS=( 'python2*' )
-}
-
-python_test() {
-	"${PYTHON}" tests/test.py -v || die "Tests fail with ${EPYTHON}"
-}
-
-python_prepare_all() {
-	# Prevent un-needed d'loading
-	sed -e "s/, 'sphinx.ext.intersphinx'//" -i docs/source/conf.py || die
-	distutils-r1_python_prepare_all
-}
-
-python_compile_all() {
-	if use doc; then
-		# Appease the doc build and supply a file for _static
-		# the usual emake -C docs doesn't work under this authorship
-		cd docs && mkdir source/_static  || die
-		emake html
-	fi
-}
-
-python_install_all() {
-	use doc && local HTML_DOCS=( docs/build/html/. )
-	distutils-r1_python_install_all
-}
diff --git a/dev-python/boto/files/boto-2.49.0-py3-httplib-strict.patch b/dev-python/boto/files/boto-2.49.0-py3-httplib-strict.patch
new file mode 100644
index 0000000..209b01a
--- /dev/null
+++ b/dev-python/boto/files/boto-2.49.0-py3-httplib-strict.patch
@@ -0,0 +1,35 @@
+https://github.com/boto/boto/commit/4f4dcb31fe852c05ce19b44eb9d5b5d747e36f7c
+https://github.com/boto/boto/pull/2718
+
+From 4f4dcb31fe852c05ce19b44eb9d5b5d747e36f7c Mon Sep 17 00:00:00 2001
+From: Lee Ball <43632885+catleeball@users.noreply.github.com>
+Date: Mon, 10 Jun 2019 16:02:53 -0700
+Subject: [PATCH] Remove `strict=True` from http_client (#6)
+
+In Python 3.4, the `strict` kwarg was removed[1]. We are removing it
+here too.
+
+Alternatively, we can leave in `strict=True` for 2.x, but I chose to
+remove it entirely to maintain consistent behavior across versions.
+
+[1]: https://docs.python.org/3/library/http.client.html
+---
+ boto/connection.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/boto/connection.py b/boto/connection.py
+index c731173bb4eb..54e26fb2de16 100644
+--- a/boto/connection.py
++++ b/boto/connection.py
+@@ -807,7 +807,7 @@ class AWSAuthConnection(object):
+                 sock.sendall(six.ensure_binary("\r\n"))
+         else:
+             sock.sendall(six.ensure_binary("\r\n"))
+-        resp = http_client.HTTPResponse(sock, strict=True, debuglevel=self.debug)
++        resp = http_client.HTTPResponse(sock, debuglevel=self.debug)
+         resp.begin()
+ 
+         if resp.status != 200:
+-- 
+2.28.0
+
diff --git a/dev-python/boto/files/boto-2.49.0-py3-server-port.patch b/dev-python/boto/files/boto-2.49.0-py3-server-port.patch
new file mode 100644
index 0000000..62e3319
--- /dev/null
+++ b/dev-python/boto/files/boto-2.49.0-py3-server-port.patch
@@ -0,0 +1,42 @@
+https://github.com/boto/boto/commit/b9f6cb0ab717ea76e2780c7fddd1cd36b3bf7d63
+
+From b9f6cb0ab717ea76e2780c7fddd1cd36b3bf7d63 Mon Sep 17 00:00:00 2001
+From: Matt Houglum <houglum@google.com>
+Date: Fri, 21 Jun 2019 15:09:11 -0700
+Subject: [PATCH] Make server_name() behave correctly for PY3
+
+...because Python-2.6-or-newer doesn't just include Python 2.6 and 2.7.
+---
+ boto/connection.py | 14 +++++---------
+ 1 file changed, 5 insertions(+), 9 deletions(-)
+
+diff --git a/boto/connection.py b/boto/connection.py
+index 54e26fb2de16..bbb25d8fb842 100644
+--- a/boto/connection.py
++++ b/boto/connection.py
+@@ -650,17 +650,13 @@ class AWSAuthConnection(object):
+         if port == 80:
+             signature_host = self.host
+         else:
+-            # This unfortunate little hack can be attributed to
+-            # a difference in the 2.6 version of http_client.  In old
+-            # versions, it would append ":443" to the hostname sent
+-            # in the Host header and so we needed to make sure we
+-            # did the same when calculating the V2 signature.  In 2.6
+-            # (and higher!)
+-            # it no longer does that.  Hence, this kludge.
+-            if ((ON_APP_ENGINE and sys.version[:3] == '2.5') or
+-                    sys.version[:3] in ('2.6', '2.7')) and port == 443:
++            ver_int = sys.version_info[0] * 10 + sys.version_info[1]
++            if port == 443 and ver_int >= 26:  # Py >= 2.6
+                 signature_host = self.host
+             else:
++                # In versions < 2.6, Python's http_client would append ":443"
++                # to the hostname sent in the Host header and so we needed to
++                # make sure we did the same when calculating the V2 signature.
+                 signature_host = '%s:%d' % (self.host, port)
+         return signature_host
+ 
+-- 
+2.28.0
+
diff --git a/dev-python/boto/files/boto-2.49.0-py3-socket-binary.patch b/dev-python/boto/files/boto-2.49.0-py3-socket-binary.patch
new file mode 100644
index 0000000..1d109a3
--- /dev/null
+++ b/dev-python/boto/files/boto-2.49.0-py3-socket-binary.patch
@@ -0,0 +1,59 @@
+https://github.com/boto/boto/commit/d2cb697b32c297858ecc36701a5a4176818ab36d
+https://github.com/boto/boto/pull/2718
+https://github.com/boto/boto/pull/2893
+https://github.com/boto/boto/pull/3699
+
+From d2cb697b32c297858ecc36701a5a4176818ab36d Mon Sep 17 00:00:00 2001
+From: Cat Lee Ball <cball@google.com>
+Date: Mon, 10 Jun 2019 13:31:11 -0700
+Subject: [PATCH] Ensure binary strings sent to socket
+
+When running pre-release tests with proxied connections, it appeared a
+few spots in connection.py would fail under Python 3 since the
+socket.sendall method expects binary strings rather than unicode.
+---
+ boto/connection.py | 13 +++++++------
+ 1 file changed, 7 insertions(+), 6 deletions(-)
+
+diff --git a/boto/connection.py b/boto/connection.py
+index a0d89a51f49c..d084d1f881fb 100644
+--- a/boto/connection.py
++++ b/boto/connection.py
+@@ -796,17 +796,17 @@ class AWSAuthConnection(object):
+         else:
+             sock = socket.create_connection((self.proxy, int(self.proxy_port)))
+         boto.log.debug("Proxy connection: CONNECT %s HTTP/1.0\r\n", host)
+-        sock.sendall("CONNECT %s HTTP/1.0\r\n" % host)
+-        sock.sendall("User-Agent: %s\r\n" % UserAgent)
++        sock.sendall(six.ensure_binary("CONNECT %s HTTP/1.0\r\n" % host))
++        sock.sendall(six.ensure_binary("User-Agent: %s\r\n" % UserAgent))
+         if self.proxy_user and self.proxy_pass:
+             for k, v in self.get_proxy_auth_header().items():
+-                sock.sendall("%s: %s\r\n" % (k, v))
++                sock.sendall(six.ensure_binary("%s: %s\r\n" % (k, v)))
+             # See discussion about this config option at
+             # https://groups.google.com/forum/?fromgroups#!topic/boto-dev/teenFvOq2Cc
+             if config.getbool('Boto', 'send_crlf_after_proxy_auth_headers', False):
+-                sock.sendall("\r\n")
++                sock.sendall(six.ensure_binary("\r\n"))
+         else:
+-            sock.sendall("\r\n")
++            sock.sendall(six.ensure_binary("\r\n"))
+         resp = http_client.HTTPResponse(sock, strict=True, debuglevel=self.debug)
+         resp.begin()
+ 
+@@ -814,9 +814,10 @@ class AWSAuthConnection(object):
+             # Fake a socket error, use a code that make it obvious it hasn't
+             # been generated by the socket library
+             raise socket.error(-71,
++                               six.ensure_binary(
+                                "Error talking to HTTP proxy %s:%s: %s (%s)" %
+                                (self.proxy, self.proxy_port,
+-                                resp.status, resp.reason))
++                                resp.status, resp.reason)))
+ 
+         # We can safely close the response, it duped the original socket
+         resp.close()
+-- 
+2.28.0
+
diff --git a/dev-python/boto/files/boto-2.49.0-py38.patch b/dev-python/boto/files/boto-2.49.0-py38.patch
new file mode 100644
index 0000000..0052c6e
--- /dev/null
+++ b/dev-python/boto/files/boto-2.49.0-py38.patch
@@ -0,0 +1,54 @@
+diff --git a/boto/ecs/item.py b/boto/ecs/item.py
+index 79177a31..292b05af 100644
+--- a/boto/ecs/item.py
++++ b/boto/ecs/item.py
+@@ -21,7 +21,7 @@
+ 
+ 
+ import xml.sax
+-import cgi
++import html
+ from boto.compat import six, StringIO
+ 
+ class ResponseGroup(xml.sax.ContentHandler):
+@@ -67,7 +67,7 @@ class ResponseGroup(xml.sax.ContentHandler):
+         return None
+ 
+     def endElement(self, name, value, connection):
+-        self._xml.write("%s</%s>" % (cgi.escape(value).replace("&amp;amp;", "&amp;"), name))
++        self._xml.write("%s</%s>" % (html.escape(value).replace("&amp;amp;", "&amp;"), name))
+         if len(self._nodepath) == 0:
+             return
+         obj = None
+diff --git a/tests/unit/utils/test_utils.py b/tests/unit/utils/test_utils.py
+index db15b56d..89d1a524 100644
+--- a/tests/unit/utils/test_utils.py
++++ b/tests/unit/utils/test_utils.py
+@@ -85,7 +85,7 @@ class TestPassword(unittest.TestCase):
+         def hmac_hashfunc(cls, msg):
+             if not isinstance(msg, bytes):
+                 msg = msg.encode('utf-8')
+-            return hmac.new(b'mysecretkey', msg)
++            return hmac.new(b'mysecretkey', msg, digestmod='MD5')
+ 
+         class HMACPassword(Password):
+             hashfunc = hmac_hashfunc
+@@ -95,15 +95,15 @@ class TestPassword(unittest.TestCase):
+         password.set('foo')
+ 
+         self.assertEquals(str(password),
+-                          hmac.new(b'mysecretkey', b'foo').hexdigest())
++                          hmac.new(b'mysecretkey', b'foo', digestmod='MD5').hexdigest())
+ 
+     def test_constructor(self):
+-        hmac_hashfunc = lambda msg: hmac.new(b'mysecretkey', msg)
++        hmac_hashfunc = lambda msg: hmac.new(b'mysecretkey', msg, digestmod='MD5')
+ 
+         password = Password(hashfunc=hmac_hashfunc)
+         password.set('foo')
+         self.assertEquals(password.str,
+-                          hmac.new(b'mysecretkey', b'foo').hexdigest())
++                          hmac.new(b'mysecretkey', b'foo', digestmod='MD5').hexdigest())
+ 
+ 
+ class TestPythonizeName(unittest.TestCase):
diff --git a/dev-python/boto/files/boto-2.49.0-try-to-add-SNI-support-v3.patch b/dev-python/boto/files/boto-2.49.0-try-to-add-SNI-support-v3.patch
new file mode 100644
index 0000000..11d346a
--- /dev/null
+++ b/dev-python/boto/files/boto-2.49.0-try-to-add-SNI-support-v3.patch
@@ -0,0 +1,104 @@
+From f5e7f6c98b46ff622f60a4661ffc9ce07216d109 Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
+Date: Sat, 29 Sep 2018 21:47:11 +0200
+Subject: [PATCH] boto: try to add SNI support
+
+Add SNI support. Newer OpenSSL (with TLS1.3) fail to connect if the
+hostname is missing.
+
+Link: https://bugs.debian.org/bug=909545
+Tested-by: Witold Baryluk <witold.baryluk@gmail.com>
+Signed-off-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
+---
+ boto/connection.py       | 19 ++++++++++---------
+ boto/https_connection.py | 22 +++++++++++-----------
+ 2 files changed, 21 insertions(+), 20 deletions(-)
+
+diff --git a/boto/connection.py b/boto/connection.py
+index 34b428f101df7..b4867a7657465 100644
+--- a/boto/connection.py
++++ b/boto/connection.py
+@@ -778,8 +778,10 @@
+ 
+     def proxy_ssl(self, host=None, port=None):
+         if host and port:
++            cert_host = host
+             host = '%s:%d' % (host, port)
+         else:
++            cert_host = self.host
+             host = '%s:%d' % (self.host, self.port)
+         # Seems properly to use timeout for connect too
+         timeout = self.http_connection_kwargs.get("timeout")
+@@ -824,23 +824,24 @@ DEFAULT_CA_CERTS_FILE = os.path.join(os.path.dirname(os.path.abspath(boto.cacert
+         h = http_client.HTTPConnection(host)
+ 
+         if self.https_validate_certificates and HAVE_HTTPS_CONNECTION:
++            context = ssl.create_default_context()
++            context.verify_mode = ssl.CERT_REQUIRED
++            context.check_hostname = True
++
+             msg = "wrapping ssl socket for proxied connection; "
+             if self.ca_certificates_file:
+                 msg += "CA certificate file=%s" % self.ca_certificates_file
++                context.load_verify_locations(cafile=self.ca_certificates_file)
+             else:
+                 msg += "using system provided SSL certs"
++                context.load_default_certs()
+             boto.log.debug(msg)
+             key_file = self.http_connection_kwargs.get('key_file', None)
+             cert_file = self.http_connection_kwargs.get('cert_file', None)
+-            sslSock = ssl.wrap_socket(sock, keyfile=key_file,
+-                                      certfile=cert_file,
+-                                      cert_reqs=ssl.CERT_REQUIRED,
+-                                      ca_certs=self.ca_certificates_file)
+-            cert = sslSock.getpeercert()
+-            hostname = self.host.split(':', 0)[0]
+-            if not https_connection.ValidateCertificateHostname(cert, hostname):
+-                raise https_connection.InvalidCertificateException(
+-                    hostname, cert, 'hostname mismatch')
++            if key_file:
++                context.load_cert_chain(certfile=cert_file, keyfile=key_file)
++
++            sslSock = context.wrap_socket(sock, server_hostname=cert_host)
+         else:
+             # Fallback for old Python without ssl.wrap_socket
+             if hasattr(http_client, 'ssl'):
+diff --git a/boto/https_connection.py b/boto/https_connection.py
+index ddc31a152292e..a5076f6f9b261 100644
+--- a/boto/https_connection.py
++++ b/boto/https_connection.py
+@@ -119,20 +119,20 @@ from boto.compat import six, http_client
+             sock = socket.create_connection((self.host, self.port), self.timeout)
+         else:
+             sock = socket.create_connection((self.host, self.port))
++
++        context = ssl.create_default_context()
++        context.verify_mode = ssl.CERT_REQUIRED
++        context.check_hostname = True
++        if self.key_file:
++            context.load_cert_chain(certfile=self.cert_file, keyfile=self.key_file)
++
+         msg = "wrapping ssl socket; "
+         if self.ca_certs:
+             msg += "CA certificate file=%s" % self.ca_certs
++            context.load_verify_locations(cafile=self.ca_certs)
+         else:
+             msg += "using system provided SSL certs"
++            context.load_default_certs()
+         boto.log.debug(msg)
+-        self.sock = ssl.wrap_socket(sock, keyfile=self.key_file,
+-                                    certfile=self.cert_file,
+-                                    cert_reqs=ssl.CERT_REQUIRED,
+-                                    ca_certs=self.ca_certs)
+-        cert = self.sock.getpeercert()
+-        hostname = self.host.split(':', 0)[0]
+-        if not ValidateCertificateHostname(cert, hostname):
+-            raise InvalidCertificateException(hostname,
+-                                              cert,
+-                                              'remote hostname "%s" does not match '
+-                                              'certificate' % hostname)
++
++        self.sock = context.wrap_socket(sock, server_hostname=self.host)
+-- 
+2.19.0
+
diff --git a/dev-python/boto/files/boto-2.49.0-unbundle-six.patch b/dev-python/boto/files/boto-2.49.0-unbundle-six.patch
new file mode 100644
index 0000000..188dae7
--- /dev/null
+++ b/dev-python/boto/files/boto-2.49.0-unbundle-six.patch
@@ -0,0 +1,28 @@
+use the system copy of six
+
+--- a/boto/compat.py
++++ b/boto/compat.py
+@@ -46,16 +46,16 @@ except (AttributeError, ImportError):
+     # This is probably running on App Engine.
+     expanduser = (lambda x: x)
+ 
+-from boto.vendored import six
++import six
+ 
+-from boto.vendored.six import BytesIO, StringIO
+-from boto.vendored.six.moves import filter, http_client, map, _thread, \
++from six import BytesIO, StringIO
++from six.moves import filter, http_client, map, _thread, \
+                                     urllib, zip
+-from boto.vendored.six.moves.queue import Queue
+-from boto.vendored.six.moves.urllib.parse import parse_qs, quote, unquote, \
++from six.moves.queue import Queue
++from six.moves.urllib.parse import parse_qs, quote, unquote, \
+                                                  urlparse, urlsplit
+-from boto.vendored.six.moves.urllib.parse import unquote_plus
+-from boto.vendored.six.moves.urllib.request import urlopen
++from six.moves.urllib.parse import unquote_plus
++from six.moves.urllib.request import urlopen
+ 
+ if six.PY3:
+     # StandardError was removed, so use the base exception type instead
diff --git a/dev-python/certifi/Manifest b/dev-python/certifi/Manifest
index 5959be2..dd748ac 100644
--- a/dev-python/certifi/Manifest
+++ b/dev-python/certifi/Manifest
@@ -1 +1 @@
-DIST certifi-2017.4.17.tar.gz 373512 SHA256 f7527ebf7461582ce95f7a9e03dd141ce810d40590834f4ec20cddd54234c10a SHA512 0bd054bb2eaa8c196a94a0b7865d2488aea1fcb5e66ddc8c776c68cfa518a198a8c67bed5b485bf55db3f55d26c0ab2b4fc07839bb9175a50cb525e25d3869a5 WHIRLPOOL f949eefd72c41900202944315f058c0f8bab88883a0be1283bddadec4a273b138d012f37cda61d0f5656baadb304d7340816d953db53f624c9bd5c8545ebdf86
+DIST certifi-shim-10001.tar.gz 4061 BLAKE2B 183c573b958921877b14e38e9e26842e8a4f1c1617979a30b65ef1e2bbf001e5ff0aab830e4399906a7d21fb3c71ac12b1e757e4d283aae16cced8e7de7c2a1d SHA512 93beea61e579b2b414bd37c63eba49365e0a1a62304e0c7ac920bedaf5d72cb095a4a46b2240b3c2e6ee31e5b91cd520ae8348b6a8033212d11bbca31db6750c
diff --git a/dev-python/certifi/certifi-10001.ebuild b/dev-python/certifi/certifi-10001.ebuild
new file mode 100644
index 0000000..f3fd403
--- /dev/null
+++ b/dev-python/certifi/certifi-10001.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+DISTUTILS_USE_SETUPTOOLS=no
+PYTHON_COMPAT=( python2_7 python3_{6..9} pypy3 )
+
+inherit distutils-r1
+
+MY_P=certifi-shim-${PV}
+DESCRIPTION="Thin replacement for certifi using system certificate store"
+HOMEPAGE="
+	https://github.com/mgorny/certifi-shim
+	https://pypi.org/project/certifi"
+SRC_URI="
+	https://github.com/mgorny/certifi-shim/archive/v${PV}.tar.gz
+		-> ${MY_P}.tar.gz"
+S=${WORKDIR}/${MY_P}
+
+LICENSE="CC0-1.0"
+SLOT="0"
+KEYWORDS="*"
+
+RDEPEND="app-misc/ca-certificates"
+
+distutils_enable_tests unittest
+
+src_prepare() {
+	sed -i -e "s^/etc^${EPREFIX}/etc^" certifi/core.py || die
+	distutils-r1_src_prepare
+}
diff --git a/dev-python/certifi/certifi-2017.4.17-r1.ebuild b/dev-python/certifi/certifi-2017.4.17-r1.ebuild
deleted file mode 100644
index 9d3f05f..0000000
--- a/dev-python/certifi/certifi-2017.4.17-r1.ebuild
+++ /dev/null
@@ -1,20 +0,0 @@
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-
-PYTHON_COMPAT=( python2_7 python3_{4,5,6} pypy pypy3 )
-
-inherit distutils-r1
-
-DESCRIPTION="Python package for providing Mozilla's CA Bundle"
-HOMEPAGE="http://certifi.io/ https://pypi.python.org/pypi/certifi"
-SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
-
-LICENSE="LGPL-2.1"
-SLOT="0"
-KEYWORDS="*"
-IUSE=""
-
-RDEPEND=""
-DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/dev-python/certifi/certifi-2017.4.17-r2.ebuild b/dev-python/certifi/certifi-2017.4.17-r2.ebuild
deleted file mode 120000
index 89d9ab2..0000000
--- a/dev-python/certifi/certifi-2017.4.17-r2.ebuild
+++ /dev/null
@@ -1 +0,0 @@
-certifi-2017.4.17-r1.ebuild
\ No newline at end of file
diff --git a/dev-python/certifi/metadata.xml b/dev-python/certifi/metadata.xml
index 85d5028..2c9c847 100644
--- a/dev-python/certifi/metadata.xml
+++ b/dev-python/certifi/metadata.xml
@@ -5,6 +5,7 @@
     <email>python@gentoo.org</email>
     <name>Python</name>
   </maintainer>
+  <stabilize-allarches/>
   <upstream>
     <remote-id type="pypi">certifi</remote-id>
   </upstream>
diff --git a/dev-python/configparser/Manifest b/dev-python/configparser/Manifest
deleted file mode 100644
index 5f4bb8c..0000000
--- a/dev-python/configparser/Manifest
+++ /dev/null
@@ -1 +0,0 @@
-DIST configparser-3.5.0.tar.gz 39573 SHA256 5308b47021bc2340965c371f0f058cc6971a04502638d4244225c49d80db273a SHA512 490b9f7807bce02667f41a48389b51f550818d2bd4296b528833d65d4b04bdbe5b906e7584e55eee4495405267a697ba26a056e6504fe6b3f8cf07ea8f55f7d3 WHIRLPOOL b10b1bf1b605d7da4cac44c0feb53e50b7aa1005d06be218e84e502387b32469bd566a68c1d2e0420eb880a90bb754c6e8875771bdcd7d9207553afed0a1ca9d