From 7fa8a1e3f149eea4c844c47cfe26136ed7614c58 Mon Sep 17 00:00:00 2001
From: V3n3RiX <venerix@koprulu.sector>
Date: Mon, 15 Apr 2024 12:04:03 +0100
Subject: gentoo auto-resync : 15:04:2024 - 12:04:02

---
 sys-libs/Manifest.gz                               | Bin 14748 -> 14569 bytes
 sys-libs/glibc/Manifest                            |   6 +-
 sys-libs/glibc/glibc-2.38-r11.ebuild               |   6 +
 sys-libs/glibc/glibc-2.39-r2.ebuild                |   6 +
 sys-libs/glibc/glibc-9999.ebuild                   |   6 +
 sys-libs/libhugetlbfs/Manifest                     |  10 -
 ...fs-2.23-allow-building-against-glibc-2.34.patch | 258 -----------
 .../files/libhugetlbfs-2.23-musl-ino_t-fix.patch   |  13 -
 .../files/libhugetlbfs-2.23-musl-nonnull-fix.patch |  31 --
 .../libhugetlbfs-2.23-musl-path-max-fix.patch      |  22 -
 .../libhugetlbfs-2.23-musl-sc-level2-fix.patch     |  45 --
 .../libhugetlbfs-2.23-uncompressed-man-pages.patch |  34 --
 .../files/libhugetlbfs-2.6-fixup-testsuite.patch   |  31 --
 sys-libs/libhugetlbfs/libhugetlbfs-2.23.ebuild     | 175 --------
 sys-libs/libhugetlbfs/metadata.xml                 |  12 -
 sys-libs/libseccomp/Manifest                       |   5 +-
 .../libseccomp-2.5.5-arch-syscall-check.patch      |  45 ++
 sys-libs/libseccomp/libseccomp-2.5.5-r1.ebuild     |   5 +-
 sys-libs/libseccomp/libseccomp-9999.ebuild         |   2 +-
 sys-libs/libxcrypt/Manifest                        |   2 +-
 sys-libs/libxcrypt/libxcrypt-4.4.36-r3.ebuild      |   6 +-
 sys-libs/ncurses/Manifest                          |   6 +
 sys-libs/ncurses/ncurses-6.4_p20240414.ebuild      | 488 +++++++++++++++++++++
 23 files changed, 571 insertions(+), 643 deletions(-)
 delete mode 100644 sys-libs/libhugetlbfs/Manifest
 delete mode 100644 sys-libs/libhugetlbfs/files/libhugetlbfs-2.23-allow-building-against-glibc-2.34.patch
 delete mode 100644 sys-libs/libhugetlbfs/files/libhugetlbfs-2.23-musl-ino_t-fix.patch
 delete mode 100644 sys-libs/libhugetlbfs/files/libhugetlbfs-2.23-musl-nonnull-fix.patch
 delete mode 100644 sys-libs/libhugetlbfs/files/libhugetlbfs-2.23-musl-path-max-fix.patch
 delete mode 100644 sys-libs/libhugetlbfs/files/libhugetlbfs-2.23-musl-sc-level2-fix.patch
 delete mode 100644 sys-libs/libhugetlbfs/files/libhugetlbfs-2.23-uncompressed-man-pages.patch
 delete mode 100644 sys-libs/libhugetlbfs/files/libhugetlbfs-2.6-fixup-testsuite.patch
 delete mode 100644 sys-libs/libhugetlbfs/libhugetlbfs-2.23.ebuild
 delete mode 100644 sys-libs/libhugetlbfs/metadata.xml
 create mode 100644 sys-libs/libseccomp/files/libseccomp-2.5.5-arch-syscall-check.patch
 create mode 100644 sys-libs/ncurses/ncurses-6.4_p20240414.ebuild

(limited to 'sys-libs')

diff --git a/sys-libs/Manifest.gz b/sys-libs/Manifest.gz
index b9fc6fd36e23..6e34ab670add 100644
Binary files a/sys-libs/Manifest.gz and b/sys-libs/Manifest.gz differ
diff --git a/sys-libs/glibc/Manifest b/sys-libs/glibc/Manifest
index 552f6cecd34d..ad5df3f97393 100644
--- a/sys-libs/glibc/Manifest
+++ b/sys-libs/glibc/Manifest
@@ -51,8 +51,8 @@ EBUILD glibc-2.35-r11.ebuild 50190 BLAKE2B 29f06ac1b489b7c75e022f5044d723f05a23e
 EBUILD glibc-2.36-r8.ebuild 52468 BLAKE2B 005a5537d1cbcc1ba128174c06aa9fe797b2f1a86c1f21b174ed5d41807e869b96a311a4f9d9c1d471f9afd24c49b0ef976f3015b13de5fea7f65d4ec9a7edc9 SHA512 a0b65b2736c7a649c3b3b2b41d8b47264d60a4074dfa4f3eb93790b26786d2cdb91667d9c49f3ce10ba987c8b5d0e4b541e426e096f2aa296fe9b55e391a3296
 EBUILD glibc-2.37-r10.ebuild 52997 BLAKE2B 5302881267c59582fbdb775dd789597c199461735a92cf91d2609e1827b80fdfd5514d836867a917895ab2f0c1ea61d4a899321ae490e68af33c17456b20c164 SHA512 c0010d3a73918e95ab9cfc50c3cf452b528a028e78a4522659df3be3f8f753094bd2ba5542d539a83a76d51608d563054a3560f25ee0a862757730e1cd18adad
 EBUILD glibc-2.38-r10.ebuild 54293 BLAKE2B a1e9e5df6cf6454cd823f4c497113b4b958ee48f2e7caa1f0faa8f0a798d287b4c9b333b3e10a51f0f687fcea77f1cbf10aeb2d254f9d636e3224a645e39eb82 SHA512 49bd7ced8fe1781929d1b416dd121f247a2902bf258af361826fe58ef0192cb31055855fcf8cd36f8893e3013dc915febc8899bf4c61fc8010aa36480d245552
-EBUILD glibc-2.38-r11.ebuild 54294 BLAKE2B 403803ad95aa199d6d2bbdb07ad4120c38ce661fc538f73e52f0d171c2f4a3b251117f45e185cbf0b3a44d5232c13dcc953563f6cd4fa86b8377b86996d4df62 SHA512 8b7d47f0ee986b26091c41e867e73e33273409d4f78857fcfabeff446317bf8afb45093cffca894dc8e8b4a60f3a70d1a0d9e8d25c7184f23d155b239289db13
+EBUILD glibc-2.38-r11.ebuild 54516 BLAKE2B 5f54284b49ed56c0d22b425300d4926655d81755e6ba27417dc1fdc5e1137a50b9ae3de26c7475844b93b7b1ba815ab54e5d52c4c91b881a029a6320bdb0063b SHA512 e37b8a2498d8c0444843406e53b4b5f3fff873cee1521218eb5de364308c3dadb7d599314ba34efaf09d6b1309fa8e6fdb468e708597390252d4858d8047440c
 EBUILD glibc-2.39-r1.ebuild 54002 BLAKE2B 132527fc9289b6526837df002fb5dc518cc988b6e995a4fce5d73f7c6a7304875509c469716dc50544bda7f9b61261cf52788d1e41951eab9604699276d042d2 SHA512 5bb5854dce0382146af3f68c11e45075fe32e81ac93cff5bc1cc1d4938c7ce31092d1e7a1bd1cfe1364c0d79686d8c523445dfa8df8f82cf260c18a37b915296
-EBUILD glibc-2.39-r2.ebuild 54080 BLAKE2B 04fe721435809c26ed7792f2380b816f48d5ffb680f20914aa8d0f459844ee5c033bcbe230ae4317298371c81bcc205d8671b0192b2c80700fce8eaa4999ef3f SHA512 7785b6e89666f992457196c03ba159a3200ae9603c70d9a1892939faf810d5f8adbe008d8fa97ac90ce02fdaa84f7789806e797e3f6c654243984e8f28846a35
-EBUILD glibc-9999.ebuild 54081 BLAKE2B f2b8bfcf17a25ac09b7ee5deb9610ec16896fb54db83db07779573ce503c9fc8562f1044ece9216a57f0ae6bc9cf7651ee83b16d314ee1578a6dbcf8fba5a88a SHA512 34690d305187ac73e90ce3e17b53de2f372e06aa72209ee59248fb5e6684ca10b3191af2b550a7857432115a4cab907b6385d0d7d6aa6852cbf4318a556559d0
+EBUILD glibc-2.39-r2.ebuild 54302 BLAKE2B e26f05667f9d11fc20122ec156912645e40e8f72b31f4c3c6af1b55facdf225855c1e666b439483156e1fcf6bf7cea57d69c186dc5aeb0bbe073cd7ec3b1450e SHA512 2b79905886b56d3d0e2f710dd1c9d9f89e71b9d6d705b26fc74ae9ef73ce4d1ee18a1c12e2978f46c37795f7939bb3cb5a3c2f5738e6b6c736c776bc99b1c393
+EBUILD glibc-9999.ebuild 54303 BLAKE2B fb17c851cddbdfb5417aa0e11847b2e4a1219db670b652f17e8b0952105c66782b9d4f4d58e343e57bc0a0d41c4ed4527fb65485f36fd011908a7e2b06dfc9ba SHA512 3d496f1df146744c303ba005b48d134babce84e9e4f43e85acb589620e21afa5dc944dab43b903169d3057a20bc6a37f074076bb4d532230b79401e702c0be5f
 MISC metadata.xml 2142 BLAKE2B 765ba540eb10afccd1bade4de56f0c13ce269225500a62d1d17328194de69e7fa15d359a14eac6bfa8a36df45344db3d52f5e1811b174cf1fa2bfb95ad7760a7 SHA512 2f4a148c076a0967663d14e76b85a698ddae7093ff299b0dc95a6c3b00957c9bf73443f2bace9670eb62a45465efbcca892bb52b6aac8577acb2bc5f74a7397c
diff --git a/sys-libs/glibc/glibc-2.38-r11.ebuild b/sys-libs/glibc/glibc-2.38-r11.ebuild
index 8da751b46e7c..93f0999d1d03 100644
--- a/sys-libs/glibc/glibc-2.38-r11.ebuild
+++ b/sys-libs/glibc/glibc-2.38-r11.ebuild
@@ -576,10 +576,12 @@ setup_env() {
 	# Reset CC and CXX to the value at start of emerge
 	export CC=${glibc__ORIG_CC:-${CC:-$(tc-getCC ${CTARGET})}}
 	export CXX=${glibc__ORIG_CXX:-${CXX:-$(tc-getCXX ${CTARGET})}}
+	export CPP=${glibc__ORIG_CPP:-${CPP:-$(tc-getCPP ${CTARGET})}}
 
 	# and make sure glibc__ORIG_CC and glibc__ORIG_CXX is defined now.
 	export glibc__ORIG_CC=${CC}
 	export glibc__ORIG_CXX=${CXX}
+	export glibc__ORIG_CPP=${CPP}
 
 	if tc-is-clang && ! use custom-cflags && ! is_crosscompile ; then
 		export glibc__force_gcc=yes
@@ -606,6 +608,7 @@ setup_env() {
 		export CC="${current_gcc_path}/gcc"
 		export CPP="${current_gcc_path}/cpp"
 		export CXX="${current_gcc_path}/g++"
+		export CPP="$(tc-getCPP ${CTARGET})"
 		export LD="${current_binutils_path}/ld.bfd"
 		export AR="${current_binutils_path}/ar"
 		export AS="${current_binutils_path}/as"
@@ -644,6 +647,7 @@ setup_env() {
 	# acts on CC?)
 	export glibc__GLIBC_CC=${CC}
 	export glibc__GLIBC_CXX=${CXX}
+	export glibc__GLIBC_CPP=${CPP}
 
 	export glibc__abi_CFLAGS="$(get_abi_CFLAGS)"
 
@@ -659,6 +663,8 @@ setup_env() {
 	# Some of the tests are written in C++, so we need to force our multlib abis in, bug 623548
 	export CXX="${glibc__GLIBC_CXX} ${glibc__abi_CFLAGS} ${CFLAGS}"
 
+	export CPP="${glibc__GLIBC_CPP} ${glibc__abi_CFLAGS}"
+
 	if is_crosscompile; then
 		# Assume worst-case bootstrap: glibc is built for the first time
 		# with ${CTARGET}-g++ not available yet. We avoid
diff --git a/sys-libs/glibc/glibc-2.39-r2.ebuild b/sys-libs/glibc/glibc-2.39-r2.ebuild
index 236484af1eeb..ab73ae4098aa 100644
--- a/sys-libs/glibc/glibc-2.39-r2.ebuild
+++ b/sys-libs/glibc/glibc-2.39-r2.ebuild
@@ -589,10 +589,12 @@ setup_env() {
 	# Reset CC and CXX to the value at start of emerge
 	export CC=${glibc__ORIG_CC:-${CC:-$(tc-getCC ${CTARGET})}}
 	export CXX=${glibc__ORIG_CXX:-${CXX:-$(tc-getCXX ${CTARGET})}}
+	export CPP=${glibc__ORIG_CPP:-${CPP:-$(tc-getCPP ${CTARGET})}}
 
 	# and make sure glibc__ORIG_CC and glibc__ORIG_CXX is defined now.
 	export glibc__ORIG_CC=${CC}
 	export glibc__ORIG_CXX=${CXX}
+	export glibc__ORIG_CPP=${CPP}
 
 	if tc-is-clang && ! use custom-cflags && ! is_crosscompile ; then
 		export glibc__force_gcc=yes
@@ -641,6 +643,7 @@ setup_env() {
 
 		export CC="$(tc-getCC ${CTARGET})"
 		export CXX="$(tc-getCXX ${CTARGET})"
+		export CPP="$(tc-getCPP ${CTARGET})"
 
 		# Always use tuple-prefixed toolchain. For non-native ABI glibc's configure
 		# can't detect them automatically due to ${CHOST} mismatch and fallbacks
@@ -657,6 +660,7 @@ setup_env() {
 	# acts on CC?)
 	export glibc__GLIBC_CC=${CC}
 	export glibc__GLIBC_CXX=${CXX}
+	export glibc__GLIBC_CPP=${CPP}
 
 	export glibc__abi_CFLAGS="$(get_abi_CFLAGS)"
 
@@ -672,6 +676,8 @@ setup_env() {
 	# Some of the tests are written in C++, so we need to force our multlib abis in, bug 623548
 	export CXX="${glibc__GLIBC_CXX} ${glibc__abi_CFLAGS} ${CFLAGS}"
 
+	export CPP="${glibc__GLIBC_CPP} ${glibc__abi_CFLAGS}"
+
 	if is_crosscompile; then
 		# Assume worst-case bootstrap: glibc is built for the first time
 		# with ${CTARGET}-g++ not available yet. We avoid
diff --git a/sys-libs/glibc/glibc-9999.ebuild b/sys-libs/glibc/glibc-9999.ebuild
index 5a0caff2e597..c6fc206e2d4f 100644
--- a/sys-libs/glibc/glibc-9999.ebuild
+++ b/sys-libs/glibc/glibc-9999.ebuild
@@ -589,10 +589,12 @@ setup_env() {
 	# Reset CC and CXX to the value at start of emerge
 	export CC=${glibc__ORIG_CC:-${CC:-$(tc-getCC ${CTARGET})}}
 	export CXX=${glibc__ORIG_CXX:-${CXX:-$(tc-getCXX ${CTARGET})}}
+	export CPP=${glibc__ORIG_CPP:-${CPP:-$(tc-getCPP ${CTARGET})}}
 
 	# and make sure glibc__ORIG_CC and glibc__ORIG_CXX is defined now.
 	export glibc__ORIG_CC=${CC}
 	export glibc__ORIG_CXX=${CXX}
+	export glibc__ORIG_CPP=${CPP}
 
 	if tc-is-clang && ! use custom-cflags && ! is_crosscompile ; then
 		export glibc__force_gcc=yes
@@ -641,6 +643,7 @@ setup_env() {
 
 		export CC="$(tc-getCC ${CTARGET})"
 		export CXX="$(tc-getCXX ${CTARGET})"
+		export CPP="$(tc-getCPP ${CTARGET})"
 
 		# Always use tuple-prefixed toolchain. For non-native ABI glibc's configure
 		# can't detect them automatically due to ${CHOST} mismatch and fallbacks
@@ -657,6 +660,7 @@ setup_env() {
 	# acts on CC?)
 	export glibc__GLIBC_CC=${CC}
 	export glibc__GLIBC_CXX=${CXX}
+	export glibc__GLIBC_CPP=${CPP}
 
 	export glibc__abi_CFLAGS="$(get_abi_CFLAGS)"
 
@@ -672,6 +676,8 @@ setup_env() {
 	# Some of the tests are written in C++, so we need to force our multlib abis in, bug 623548
 	export CXX="${glibc__GLIBC_CXX} ${glibc__abi_CFLAGS} ${CFLAGS}"
 
+	export CPP="${glibc__GLIBC_CPP} ${glibc__abi_CFLAGS}"
+
 	if is_crosscompile; then
 		# Assume worst-case bootstrap: glibc is built for the first time
 		# with ${CTARGET}-g++ not available yet. We avoid
diff --git a/sys-libs/libhugetlbfs/Manifest b/sys-libs/libhugetlbfs/Manifest
deleted file mode 100644
index a56c823cd78c..000000000000
--- a/sys-libs/libhugetlbfs/Manifest
+++ /dev/null
@@ -1,10 +0,0 @@
-AUX libhugetlbfs-2.23-allow-building-against-glibc-2.34.patch 10055 BLAKE2B 38b3c28321bdaa5271d8655823ea00952ca8571c84bfe9ec980a35ad7ad77e382ac9235c058597628cc574e03ce0dadbe19bab298c30763e03508aff01275e4b SHA512 abfcfdd87cf7c17663ba466c46182ac04aac454bcedc55a5032bd142419388daa8b0ca0a885f3aedfc830bbd2c58dfd15c4a3499a6fb26df679d8cbe87bf2143
-AUX libhugetlbfs-2.23-musl-ino_t-fix.patch 298 BLAKE2B cefafb44877d41e1255854dfb5fe4e8d0a5bc162f8de72541fd54a8b2caa3593a26e27515605a072afbae573432d797cd9a16d1db9796aea1678b7e4bf5df34e SHA512 65ed971be4c1646c7fd34c16ee7ba36066fb35298f91ceb53122c53c94cfda13de7ebcdf464cba393b50cf77b243ecc5ec136399ba7ab286ecb5e0f9ffc4b819
-AUX libhugetlbfs-2.23-musl-nonnull-fix.patch 935 BLAKE2B 7a3c13e24ed9e8b86f5e37db10313a7b67fd65b6bd328f304fad3f7b86f86fc66fab8b418ddade7d1f60327d4caf110fbeefb9254b1a75ca6c8e1043e5594578 SHA512 66b96b60bebfc7ad13bc1646868eb5dd447aae8922513d126a8775ccc24a19b3f0e25c986e34b52de7b48fd19278db50af116aec78517ece47189f4f8f6c89bf
-AUX libhugetlbfs-2.23-musl-path-max-fix.patch 462 BLAKE2B 79247f6e2cb50b43ccb54f3434e7ebea696f00743f2ab1f70ea172a1c97f15c7110ef0cf46c57ec9fef6c51b1fd38ebf122284d0622d86d2de8e2c3708934bc6 SHA512 be71e9aebe25fcef59c1ac0935fdc25771c5d153ddee4b9749275e4e0eb0f9967f59030aab0f2e9a2a5dcfce2fc1edf3ead5403cc8501adbbb4f79df1e8ee66b
-AUX libhugetlbfs-2.23-musl-sc-level2-fix.patch 1618 BLAKE2B 0d21d5b08c11bdb54fab5bd67b924b6a8277204868f3b4ab833f3cf877ca9e26c588768d2f05a7159a2df1246693761e8f35a22419897c9d9adbf74c804b0556 SHA512 4c2dfcdd35afc49b39284d58b7e1c3f2f4f618930d905e48c0ad6e276343dcdfad383120538a759996e7188406c263cf2666d8cba99556f4d7bb208eb2ffc230
-AUX libhugetlbfs-2.23-uncompressed-man-pages.patch 1515 BLAKE2B b43415a3059f1071f0fc04ec834cd51d87a8bd93f2df6b428a33296b1b55745f23861415a463d5899b12699c5f4a3e5bdd837a8ec2894d1fc89039924330d77d SHA512 ea3ef19a688866676315af59422233681a41338fd049cfa50ed91f660f0baf1950ba056b9fcd540e6694b8ec348c0d1fbb3aa6b8c1840e22a77634e26555c9bc
-AUX libhugetlbfs-2.6-fixup-testsuite.patch 1231 BLAKE2B e49ac448b4ac17a6ce9c32543e3ad7391bc8525e147d7a5100ef7ae15e4b0cf48b58ff1fe62d9a0fa61f142b7b8366228974c6628999edaa61d96114371bc09d SHA512 af9ee541ac4a30260e17baab1616cee13fdcc679ae3fdceed29ca6282c12a6b60d24b04bb61e3aa5f42092e017eb3bae59a56fd2b03954e40803f9f6f2cc4f80
-DIST libhugetlbfs-2.23.tar.gz 175459 BLAKE2B f469ff9a65364e9f0e04c11c8010c958855ebd4d50e1dd719576cda7c280586623404304be64a794907a5fb1d97bd9c0620a91d7a2492577e04fa40ff432b4c7 SHA512 fc9a7d59bcda9d3ca9c9e43a3a348f989c9cbdbbb77f21a43a06e71eacd05bbe5a7b2b51e20ae9ea00da9f1c4d1130da529bbfb702e8c9d11cab6efadd3dc168
-EBUILD libhugetlbfs-2.23.ebuild 4490 BLAKE2B 81f15b9e48dfb5c699c89625121508b523a16e0d06c9f2444dbba33efc756850bcbbe1910ac66dcfa49bf0070c7a4149e7b18776dac82440f0b0047fb4a4ee99 SHA512 d54e9aa3c5c328105cb15a8fd3d6f4b87fb9ef6248a0eebea950e442072cd321681c0c9dfe1bf2c0c83cdad9299aad5dd3703549faed5359882410854b1d4328
-MISC metadata.xml 397 BLAKE2B 7b521a2822a494f6a2b7a85420a38edd396ca0e3856faeb682378c48eda3d1932788af7ac7bbb4e07cae37b2119afd386f75c5dc0ab1f69c8e4630be16cc549e SHA512 96065769a7893c1e05bc3ab9396eb01a60a293dac9b090419087a9bb5a152b2f291a950e8217ffcb7bed34262a5369119da469e22cc3171fdc0ad2b87ae6d698
diff --git a/sys-libs/libhugetlbfs/files/libhugetlbfs-2.23-allow-building-against-glibc-2.34.patch b/sys-libs/libhugetlbfs/files/libhugetlbfs-2.23-allow-building-against-glibc-2.34.patch
deleted file mode 100644
index 68e121e240ab..000000000000
--- a/sys-libs/libhugetlbfs/files/libhugetlbfs-2.23-allow-building-against-glibc-2.34.patch
+++ /dev/null
@@ -1,258 +0,0 @@
-From 959d74fd0fbbff310943096e15024a84e8f5cba4 Mon Sep 17 00:00:00 2001
-From: Matheus Castanho <msc@linux.ibm.com>
-Date: Thu, 12 Aug 2021 16:38:46 -0300
-Subject: [PATCH] Disable hugepage-backed malloc if __morecore is not available
-
-Starting with glibc 2.32, __morecore hook has been marked as deprecated, and was
-completely removed on glibc 2.34, which causes an undefined symbol error during
-the build of libhugetlbfs.
-
-Greater changes are needed in order to keep providing the same functionality
-with future versions of glibc (see issue #52). Meanwhile, we can disable
-hugepage-backed malloc setup if __morecore is not available so users can at
-least keep using the other features provided by the library.  Related tests are
-also conditionally disabled, and will show as SKIPPED if __morecore is not
-available.
-
-Tested on powerpc64le and x86_64 with glibc 2.34 and olders.
-
-Signed-off-by: Matheus Castanho <msc@linux.ibm.com>
----
- Makefile           |  6 +++++
- morecore.c         |  8 ++++++
- tests/run_tests.py | 67 +++++++++++++++++++++++++++++++++++++++-------
- 3 files changed, 71 insertions(+), 10 deletions(-)
-
-diff --git a/Makefile b/Makefile
-index 8b73523..35e53e7 100644
---- a/Makefile
-+++ b/Makefile
-@@ -192,6 +192,12 @@ endif
- endif
- endif
- 
-+# glibc 2.34 removed __morecore, so it may not be available with recent versions
-+HAS_MORECORE := $(shell /bin/echo -e '\#include <malloc.h>\nvoid * morecore_exists() { return &__morecore; }' | $(CC) -c -xc -o /dev/null - &> /dev/null && /bin/echo yes || /bin/echo no)
-+ifeq ($(HAS_MORECORE),yes)
-+CFLAGS += -DHAS_MORECORE
-+endif
-+
- HEADERDIR = $(PREFIX)/include
- LIBDIR32 = $(PREFIX)/$(LIB32)
- LIBDIR64 = $(PREFIX)/$(LIB64)
-diff --git a/morecore.c b/morecore.c
-index 6563bbd..405c566 100644
---- a/morecore.c
-+++ b/morecore.c
-@@ -33,6 +33,13 @@
- 
- #include "libhugetlbfs_internal.h"
- 
-+#ifndef HAS_MORECORE
-+void hugetlbfs_setup_morecore(void)
-+{
-+	INFO("Not setting up morecore because it's not available (see issue #52).\n");
-+}
-+#else
-+
- static int heap_fd;
- 
- static void *heapbase;
-@@ -381,3 +388,4 @@ void hugetlbfs_setup_morecore(void)
- 	 * to mmap() if we run out of hugepages. */
- 	mallopt(M_MMAP_MAX, 0);
- }
-+#endif /* HAS_MORECORE */
-diff --git a/tests/run_tests.py b/tests/run_tests.py
-index 018264d..871d04d 100755
---- a/tests/run_tests.py
-+++ b/tests/run_tests.py
-@@ -60,7 +60,7 @@ def snapshot_pool_state():
-         l.append((d, tuple(substate)))
-     return tuple(l)
- 
--def run_test_prog(bits, pagesize, cmd, **env):
-+def run_test_prog(bits, pagesize, cmd, output='stdout', **env):
-     if paranoid_pool_check:
-         beforepool = snapshot_pool_state()
-         print("Pool state: %s" % str(beforepool))
-@@ -73,15 +73,17 @@ def run_test_prog(bits, pagesize, cmd, **env):
-         % (bits, bits, local_env.get("LD_LIBRARY_PATH", ""))
-     local_env["HUGETLB_DEFAULT_PAGE_SIZE"] = repr(pagesize)
- 
-+    popen_args = {'env' : local_env, output : subprocess.PIPE}
-+
-     try:
--        p = subprocess.Popen(cmd, env=local_env, stdout=subprocess.PIPE)
-+        p = subprocess.Popen(cmd, **popen_args)
-         rc = p.wait()
-     except KeyboardInterrupt:
-         # Abort and mark this a strange test result
-         return (None, "")
-     except OSError as e:
-         return (-e.errno, "")
--    out = p.stdout.read().decode().strip()
-+    out = getattr(p, output).read().decode().strip()
- 
-     if paranoid_pool_check:
-         afterpool = snapshot_pool_state()
-@@ -309,6 +311,33 @@ def check_linkhuge_tests():
-             okbits.add(bits)
-     return okbits
- 
-+def check_morecore_disabled():
-+    """
-+    Check if support for morecore is available.
-+
-+    Newer glibc versions (>= 2.34) removed the __morecore malloc hook, so tests
-+    relying on that functionality will not work as expected, and should be
-+    disabled.
-+    """
-+    global morecore_disabled, wordsizes, pagesizes
-+
-+    # Quick and dirty way to get a word and page size. Which one doesn't really
-+    # matter in this case.
-+    for wsz in wordsizes:
-+        b = wsz
-+        break
-+    for psz in pagesizes:
-+        p = psz
-+        break
-+
-+    # Run an arbitrary program and check stderr for the "morecore disabled"
-+    # message
-+    (rc, out) = run_test_prog(b, p, "gethugepagesize", output='stderr',
-+                              HUGETLB_MORECORE="yes",
-+                              HUGETLB_VERBOSE="3")
-+
-+    morecore_disabled = "Not setting up morecore" in out
-+
- def print_cmd(pagesize, bits, cmd, env):
-     if env:
-         print(' '.join(['%s=%s' % (k, v) for k, v in env.items()]), end=" ")
-@@ -357,14 +386,17 @@ def skip_test(pagesize, bits, cmd, **env):
-     print_cmd(pagesize, bits, cmd, env)
-     print("SKIPPED")
- 
--def do_test(cmd, bits=None, **env):
-+def do_test(cmd, bits=None, skip=False, **env):
-     """
-     Run a test case, testing each page size and each indicated word size.
-     """
-     if bits == None: bits = wordsizes
-     for p in pagesizes:
-         for b in (set(bits) & wordsizes_by_pagesize[p]):
--            run_test(p, b, cmd, **env)
-+            if skip:
-+                skip_test(p, b, cmd, **env)
-+            else:
-+                run_test(p, b, cmd, **env)
- 
- def do_test_with_rlimit(rtype, limit, cmd, bits=None, **env):
-     """
-@@ -375,7 +407,7 @@ def do_test_with_rlimit(rtype, limit, cmd, bits=None, **env):
-     do_test(cmd, bits, **env)
-     resource.setrlimit(rtype, oldlimit)
- 
--def do_test_with_pagesize(pagesize, cmd, bits=None, **env):
-+def do_test_with_pagesize(pagesize, cmd, bits=None, skip=False, **env):
-     """
-     Run a test case, testing with a specified huge page size and
-     each indicated word size.
-@@ -383,7 +415,10 @@ def do_test_with_pagesize(pagesize, cmd, bits=None, **env):
-     if bits == None:
-         bits = wordsizes
-     for b in (set(bits) & wordsizes_by_pagesize[pagesize]):
--        run_test(pagesize, b, cmd, **env)
-+        if skip:
-+            skip_test(pagesize, b, cmd, **env)
-+        else:
-+            run_test(pagesize, b, cmd, **env)
- 
- def do_elflink_test(cmd, **env):
-     """
-@@ -533,7 +568,7 @@ def functional_tests():
-     """
-     Run the set of functional tests.
-     """
--    global linkhuge_wordsizes
-+    global linkhuge_wordsizes, morecore_disabled
- 
-     # Kernel background tests not requiring hugepage support
-     do_test("zero_filesize_segment")
-@@ -598,19 +633,24 @@ def functional_tests():
-     do_test("fork-cow")
-     do_test("direct")
-     do_test_with_pagesize(system_default_hpage_size, "malloc")
-+
-     do_test_with_pagesize(system_default_hpage_size, "malloc",
-+                          skip=morecore_disabled,
-                           LD_PRELOAD="libhugetlbfs.so",
-                           HUGETLB_MORECORE="yes")
-     do_test_with_pagesize(system_default_hpage_size, "malloc",
-+                          skip=morecore_disabled,
-                           LD_PRELOAD="libhugetlbfs.so",
-                           HUGETLB_MORECORE="yes",
-                           HUGETLB_RESTRICT_EXE="unknown:none")
-     do_test_with_pagesize(system_default_hpage_size, "malloc",
-+                          skip=morecore_disabled,
-                           LD_PRELOAD="libhugetlbfs.so",
-                           HUGETLB_MORECORE="yes",
-                           HUGETLB_RESTRICT_EXE="unknown:malloc")
-     do_test_with_pagesize(system_default_hpage_size, "malloc_manysmall")
-     do_test_with_pagesize(system_default_hpage_size, "malloc_manysmall",
-+                          skip=morecore_disabled,
-                           LD_PRELOAD="libhugetlbfs.so",
-                           HUGETLB_MORECORE="yes")
- 
-@@ -630,26 +670,32 @@ def functional_tests():
-     do_test_with_pagesize(system_default_hpage_size, "heapshrink",
-                           GLIBC_TUNABLES="glibc.malloc.tcache_count=0",
-                           LD_PRELOAD="libheapshrink.so")
-+
-     do_test_with_pagesize(system_default_hpage_size, "heapshrink",
-+                          skip=morecore_disabled,
-                           GLIBC_TUNABLES="glibc.malloc.tcache_count=0",
-                           LD_PRELOAD="libhugetlbfs.so",
-                           HUGETLB_MORECORE="yes")
-     do_test_with_pagesize(system_default_hpage_size, "heapshrink",
-+                          skip=morecore_disabled,
-                           GLIBC_TUNABLES="glibc.malloc.tcache_count=0",
-                           LD_PRELOAD="libhugetlbfs.so libheapshrink.so",
-                           HUGETLB_MORECORE="yes")
-     do_test_with_pagesize(system_default_hpage_size, "heapshrink",
-+                          skip=morecore_disabled,
-                           GLIBC_TUNABLES="glibc.malloc.tcache_count=0",
-                           LD_PRELOAD="libheapshrink.so",
-                           HUGETLB_MORECORE="yes",
-                           HUGETLB_MORECORE_SHRINK="yes")
-     do_test_with_pagesize(system_default_hpage_size, "heapshrink",
-+                          skip=morecore_disabled,
-                           GLIBC_TUNABLES="glibc.malloc.tcache_count=0",
-                           LD_PRELOAD="libhugetlbfs.so libheapshrink.so",
-                           HUGETLB_MORECORE="yes",
-                           HUGETLB_MORECORE_SHRINK="yes")
- 
--    do_test("heap-overflow", HUGETLB_VERBOSE="1", HUGETLB_MORECORE="yes")
-+    do_test("heap-overflow", skip=morecore_disabled, HUGETLB_VERBOSE="1",
-+            HUGETLB_MORECORE="yes")
- 
-     # Run the remapping tests' up-front checks
-     linkhuge_wordsizes = check_linkhuge_tests()
-@@ -747,7 +793,7 @@ def print_help():
- 
- def main():
-     global wordsizes, pagesizes, dangerous, paranoid_pool_check, system_default_hpage_size
--    global custom_ldscripts
-+    global custom_ldscripts, morecore_disabled
-     testsets = set()
-     env_override = {"QUIET_TEST": "1", "HUGETLBFS_MOUNTS": "",
-                     "HUGETLB_ELFMAP": None, "HUGETLB_MORECORE": None}
-@@ -802,6 +848,7 @@ def main():
-         return 1
- 
-     check_hugetlbfs_path()
-+    check_morecore_disabled()
- 
-     if "func" in testsets: functional_tests()
-     if "stress" in testsets: stress_tests()
diff --git a/sys-libs/libhugetlbfs/files/libhugetlbfs-2.23-musl-ino_t-fix.patch b/sys-libs/libhugetlbfs/files/libhugetlbfs-2.23-musl-ino_t-fix.patch
deleted file mode 100644
index f408f9fd6ac0..000000000000
--- a/sys-libs/libhugetlbfs/files/libhugetlbfs-2.23-musl-ino_t-fix.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-# Include dirent.h for ino_t
-# Fixes error: unknown typename 'ino_t'
-# Closes: https://bugs.gentoo.org/828830
---- a/tests/hugetests.h
-+++ b/tests/hugetests.h
-@@ -22,6 +22,7 @@
-
- #include <errno.h>
- #include <string.h>
-+#include <dirent.h>
- #include <unistd.h>
-
- #include "libhugetlbfs_privutils.h"
diff --git a/sys-libs/libhugetlbfs/files/libhugetlbfs-2.23-musl-nonnull-fix.patch b/sys-libs/libhugetlbfs/files/libhugetlbfs-2.23-musl-nonnull-fix.patch
deleted file mode 100644
index 5e3532e50877..000000000000
--- a/sys-libs/libhugetlbfs/files/libhugetlbfs-2.23-musl-nonnull-fix.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-# Use __nonnull only on glibc system
-# Closes: https://bugs.gentoo.org/832980
---- a/shm.c
-+++ b/shm.c
-@@ -35,6 +35,12 @@
- #endif
-
- #ifdef HAVE_SHMGET_SYSCALL
-+
-+/* define __THROW to avoid build issue when it's not available from the libc */
-+#ifndef __THROW
-+#define __THROW
-+#endif
-+
- /*
-  * The calls to dlsym() and dlerror() in the shmget() wrapper below force
-  * a dependency on libdl.so.  This does not work for static executables
-@@ -48,8 +54,13 @@
-  * system shmget() may be performed without worry as there is no dynamic
-  * call chain.
-  */
-+#ifdef __GLIBC__
- extern void *dlsym (void *__restrict __handle, __const char *__restrict __name)
- 		__attribute__((weak)) __THROW __nonnull ((2));
-+#else
-+extern void *dlsym (void *__restrict __handle, __const char *__restrict __name)
-+		__attribute__((weak)) __THROW __attribute__((nonnull((2))));
-+#endif // __GLIBC__
- extern char *dlerror (void) __attribute__((weak)) __THROW;
-
-
diff --git a/sys-libs/libhugetlbfs/files/libhugetlbfs-2.23-musl-path-max-fix.patch b/sys-libs/libhugetlbfs/files/libhugetlbfs-2.23-musl-path-max-fix.patch
deleted file mode 100644
index 883bb3e98fc7..000000000000
--- a/sys-libs/libhugetlbfs/files/libhugetlbfs-2.23-musl-path-max-fix.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-# Include limits.h for PATH_MAX
-# Closes: https://bugs.gentoo.org/828830
---- a/hugeadm.c
-+++ b/hugeadm.c
-@@ -33,6 +33,7 @@
- #include <grp.h>
- #include <pwd.h>
- #include <fcntl.h>
-+#include <limits.h>
-
- #include <sys/stat.h>
- #include <sys/types.h>
---- a/tests/gethugepagesizes.c
-+++ b/tests/gethugepagesizes.c
-@@ -27,6 +27,7 @@
- #include <sys/types.h>
- #include <sys/stat.h>
- #include <fcntl.h>
-+#include <limits.h>
- #include <stdarg.h>
- #include <hugetlbfs.h>
-
diff --git a/sys-libs/libhugetlbfs/files/libhugetlbfs-2.23-musl-sc-level2-fix.patch b/sys-libs/libhugetlbfs/files/libhugetlbfs-2.23-musl-sc-level2-fix.patch
deleted file mode 100644
index c42e017abec1..000000000000
--- a/sys-libs/libhugetlbfs/files/libhugetlbfs-2.23-musl-sc-level2-fix.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-# _SC_LEVEL2_CACHE_LINESIZE is most probably Glibc specific define. Hence we
-# cannot use it with other libc's. Check if _SC_LEVEL2_CACHE_LINESIZE is
-# available or use custom function to get CPU cache size
-# Original patch was found here [1]
-# [1]: https://cgit.openembedded.org/meta-openembedded/plain/meta-oe/recipes-benchmark/libhugetlbfs/files/0003-alloc.c-Avoid-sysconf-_SC_LEVEL2_CACHE_LINESIZE-on-l.patch
-# Closes: https://bugs.gentoo.org/828830
---- a/alloc.c
-+++ b/alloc.c
-@@ -245,6 +245,24 @@ void free_huge_pages(void *ptr)
- 	__free_huge_pages(ptr, 1);
- }
-
-+/*
-+ * Avoid sysconf(_SC_LEVEL2_CACHE_LINESIZE) on linux
-+ * Taken from the folling patch [1]
-+ *
-+ * [1]: https://cgit.openembedded.org/meta-openembedded/plain/meta-oe/recipes-benchmark/libhugetlbfs/files/0003-alloc.c-Avoid-sysconf-_SC_LEVEL2_CACHE_LINESIZE-on-l.patch
-+ */
-+#if !defined(_SC_LEVEL2_CACHE_LINESIZE)
-+static size_t get_cacheline_size() {
-+	FILE * fp = fopen("/sys/devices/system/cpu/cpu0/cache/index0/coherency_line_size", "r");
-+	unsigned int line_size = 0;
-+	if (fp) {
-+		fscanf(fp, "%d", &line_size);
-+		fclose(fp);
-+	}
-+	return line_size;
-+}
-+#endif
-+
- /*
-  * Offset the buffer using bytes wasted due to alignment to avoid using the
-  * same cache lines for the start of every buffer returned by
-@@ -261,7 +279,11 @@ void *cachecolor(void *buf, size_t len, size_t color_bytes)
-
- 	/* Lookup our cacheline size once */
- 	if (cacheline_size == 0) {
-+#if defined(_SC_LEVEL2_CACHE_LINESIZE)
- 		cacheline_size = sysconf(_SC_LEVEL2_CACHE_LINESIZE);
-+#else
-+		cacheline_size = get_cacheline_size();
-+#endif
- 		linemod = time(NULL);
- 	}
-
diff --git a/sys-libs/libhugetlbfs/files/libhugetlbfs-2.23-uncompressed-man-pages.patch b/sys-libs/libhugetlbfs/files/libhugetlbfs-2.23-uncompressed-man-pages.patch
deleted file mode 100644
index c0ca6a398e70..000000000000
--- a/sys-libs/libhugetlbfs/files/libhugetlbfs-2.23-uncompressed-man-pages.patch
+++ /dev/null
@@ -1,34 +0,0 @@
---- a/Makefile
-+++ b/Makefile
-@@ -436,27 +436,19 @@ install-man:
- 	$(INSTALL) -d $(DESTDIR)$(MANDIR8)
- 	for x in $(INSTALL_MAN1); do \
- 		$(INSTALL) -m 444 man/$$x $(DESTDIR)$(MANDIR1); \
--		gzip -f $(DESTDIR)$(MANDIR1)/$$x; \
- 	done
- 	for x in $(INSTALL_MAN3); do \
- 		$(INSTALL) -m 444 man/$$x $(DESTDIR)$(MANDIR3); \
--		gzip -f $(DESTDIR)$(MANDIR3)/$$x; \
- 	done
--	rm -f $(DESTDIR)$(MANDIR3)/free_huge_pages.3.gz
--	rm -f $(DESTDIR)$(MANDIR3)/free_hugepage_region.3.gz
--	rm -f $(DESTDIR)$(MANDIR3)/hugetlbfs_unlinked_fd_for_size.3.gz
--	rm -f $(DESTDIR)$(MANDIR3)/hugetlbfs_find_path_for_size.3.gz
--	ln -s get_huge_pages.3.gz $(DESTDIR)$(MANDIR3)/free_huge_pages.3.gz
--	ln -s get_hugepage_region.3.gz $(DESTDIR)$(MANDIR3)/free_hugepage_region.3.gz
--	ln -s hugetlbfs_unlinked_fd.3.gz $(DESTDIR)$(MANDIR3)/hugetlbfs_unlinked_fd_for_size.3.gz
--	ln -s hugetlbfs_find_path.3.gz $(DESTDIR)$(MANDIR3)/hugetlbfs_find_path_for_size.3.gz
-+	ln -s get_huge_pages.3 $(DESTDIR)$(MANDIR3)/free_huge_pages.3
-+	ln -s get_hugepage_region.3 $(DESTDIR)$(MANDIR3)/free_hugepage_region.3
-+	ln -s hugetlbfs_unlinked_fd.3 $(DESTDIR)$(MANDIR3)/hugetlbfs_unlinked_fd_for_size.3
-+	ln -s hugetlbfs_find_path.3 $(DESTDIR)$(MANDIR3)/hugetlbfs_find_path_for_size.3
- 	for x in $(INSTALL_MAN7); do \
- 		$(INSTALL) -m 444 man/$$x $(DESTDIR)$(MANDIR7); \
--		gzip -f $(DESTDIR)$(MANDIR7)/$$x; \
- 	done
- 	for x in $(INSTALL_MAN8); do \
- 		$(INSTALL) -m 444 man/$$x $(DESTDIR)$(MANDIR8); \
--		gzip -f $(DESTDIR)$(MANDIR8)/$$x; \
- 	done
- 
- install-bin:
diff --git a/sys-libs/libhugetlbfs/files/libhugetlbfs-2.6-fixup-testsuite.patch b/sys-libs/libhugetlbfs/files/libhugetlbfs-2.6-fixup-testsuite.patch
deleted file mode 100644
index 12548a884a6f..000000000000
--- a/sys-libs/libhugetlbfs/files/libhugetlbfs-2.6-fixup-testsuite.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-diff -Nuar --exclude '*.S' --exclude Makefile libhugetlbfs-2.6.orig/tests/run_tests.py libhugetlbfs-2.6/tests/run_tests.py
---- libhugetlbfs-2.6.orig/tests/run_tests.py	2009-08-24 05:56:07.000000000 -0700
-+++ libhugetlbfs-2.6/tests/run_tests.py	2009-10-31 00:40:28.520387427 -0700
-@@ -56,6 +56,11 @@
-     local_env["LD_LIBRARY_PATH"] = "../obj%d:obj%d:%s" \
-         % (bits, bits, local_env.get("LD_LIBRARY_PATH", ""))
-     local_env["HUGETLB_DEFAULT_PAGE_SIZE"] = repr(pagesize)
-+    if isinstance(cmd, types.StringType):
-+        cmd = 'obj%d/%s' % (bits, cmd)
-+    else:
-+        s = 'obj%d/%s' % (bits, cmd[0])
-+        cmd = (s,)+(cmd[1:])
- 
-     p = subprocess.Popen(cmd, env=local_env, stdout=subprocess.PIPE)
-     try:
-@@ -523,10 +528,11 @@
-     elfshare_test("linkshare")
-     elflink_and_share_test("linkhuge")
- 
--    # elflink_rw tests
--    elflink_rw_test("linkhuge_rw")
--    # elflink_rw sharing tests
--    elflink_rw_and_share_test("linkhuge_rw")
-+    if 32 in wordsizes:
-+        # elflink_rw tests
-+        elflink_rw_test("linkhuge_rw")
-+        # elflink_rw sharing tests
-+        elflink_rw_and_share_test("linkhuge_rw")
- 
-     # Accounting bug tests
-     # reset free hpages because sharing will have held some
diff --git a/sys-libs/libhugetlbfs/libhugetlbfs-2.23.ebuild b/sys-libs/libhugetlbfs/libhugetlbfs-2.23.ebuild
deleted file mode 100644
index 09cf0eba54c1..000000000000
--- a/sys-libs/libhugetlbfs/libhugetlbfs-2.23.ebuild
+++ /dev/null
@@ -1,175 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python3_{9..10} )
-
-inherit toolchain-funcs python-any-r1
-
-DESCRIPTION="Easy hugepage access"
-HOMEPAGE="https://github.com/libhugetlbfs/libhugetlbfs"
-SRC_URI="https://github.com/libhugetlbfs/libhugetlbfs/archive/${PV}.tar.gz -> ${P}.tar.gz"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~s390 ~x86"
-IUSE="static-libs test"
-RESTRICT="!test? ( test )"
-
-BDEPEND="test? ( ${PYTHON_DEPS} )"
-
-PATCHES=(
-	"${FILESDIR}"/${PN}-2.6-fixup-testsuite.patch
-	"${FILESDIR}"/${PN}-2.23-uncompressed-man-pages.patch
-	"${FILESDIR}"/${PN}-2.23-allow-building-against-glibc-2.34.patch
-	"${FILESDIR}"/${PN}-2.23-musl-sc-level2-fix.patch
-	"${FILESDIR}"/${PN}-2.23-musl-path-max-fix.patch
-	"${FILESDIR}"/${PN}-2.23-musl-nonnull-fix.patch
-	"${FILESDIR}"/${PN}-2.23-musl-ino_t-fix.patch
-)
-
-src_prepare() {
-	default
-
-	sed -i \
-		-e '/^PREFIX/s:/local::' \
-		-e '1iBUILDTYPE = NATIVEONLY' \
-		-e '1iV = 1' \
-		-e '/gzip.*MANDIR/d' \
-		-e "/^LIB\(32\)/s:=.*:= $(get_libdir):" \
-		-e '/^CC\(32\|64\)/s:=.*:= $(CC):' \
-		-e 's@^\(ARCH\) ?=@\1 =@' \
-		Makefile || die "sed failed"
-
-	if [[ "$(get_libdir)" == "lib64" ]]; then
-		sed -i \
-			-e "/^LIB\(32\)/s:=.*:= lib32:" \
-				Makefile
-	fi
-
-	# Tarballs from github don't have the version set.
-	# https://github.com/libhugetlbfs/libhugetlbfs/issues/7
-	[[ -f version ]] || echo "${PV}" > version
-}
-
-src_test_alloc_one() {
-	hugeadm="${1}"
-	sign="${2}"
-	pagesize="${3}"
-	pagecount="${4}"
-
-	${hugeadm} \
-		--pool-pages-max ${pagesize}:${sign}${pagecount} \
-	&& \
-	${hugeadm} \
-		--pool-pages-min ${pagesize}:${sign}${pagecount}
-	return $?
-}
-
-# die is NOT allowed in this src_test block after the marked point, so that we
-# can clean up memory allocation. You'll leak at LEAST 64MiB per run otherwise.
-src_test() {
-	[[ ${UID} -eq 0 ]] || die "Need FEATURES=-userpriv to run this testsuite"
-	einfo "Building testsuite"
-	emake -j1 tests
-
-	local hugeadm='obj/hugeadm'
-	local allocated=''
-	local rc=0
-	# the testcases need 64MiB per pagesize.
-	local MIN_HUGEPAGE_RAM=$((64*1024*1024))
-
-	einfo "Planning allocation"
-	local PAGESIZES="$(${hugeadm} --page-sizes-all)"
-
-	# Need to do this before we can create the mountpoints.
-	local pagesize pagecount
-	for pagesize in ${PAGESIZES} ; do
-		# The kernel depends on the location :-(
-		mkdir -p /var/lib/hugetlbfs/pagesize-${pagesize}
-		addwrite /var/lib/hugetlbfs/pagesize-${pagesize}
-	done
-
-	addwrite /proc/sys/vm/
-	addwrite /proc/sys/kernel/shmall
-	addwrite /proc/sys/kernel/shmmax
-	addwrite /proc/sys/kernel/shmmni
-
-	einfo "Checking HugeTLB mountpoints"
-	${hugeadm} --create-mounts || die "Failed to set up hugetlb mountpoints."
-
-	# -----------------------------------------------------
-	# --------- die is unsafe after this point. -----------
-	# -----------------------------------------------------
-
-	einfo "Starting allocation"
-	for pagesize in ${PAGESIZES} ; do
-		pagecount=$((${MIN_HUGEPAGE_RAM}/${pagesize}))
-		einfo "  ${pagecount} @ ${pagesize}"
-
-		addwrite /var/lib/hugetlbfs/pagesize-${pagesize}
-		src_test_alloc_one "${hugeadm}" "+" "${pagesize}" "${pagecount}"
-
-		rc=$?
-		if [[ ${rc} -eq 0 ]]; then
-			allocated="${allocated} ${pagesize}:${pagecount}"
-		else
-			eerror "Failed to add ${pagecount} pages of size ${pagesize}"
-		fi
-	done
-
-	einfo "Allocation status"
-	${hugeadm} --pool-list
-
-	if [[ -n "${allocated}" ]]; then
-		# All our allocations worked, so time to run.
-		einfo "Starting tests"
-
-		cd "${S}"/tests || die
-		local TESTOPTS="-t func"
-		case ${ARCH} in
-			amd64|ppc64)
-				TESTOPTS="${TESTOPTS} -b 64"
-				;;
-			x86)
-				TESTOPTS="${TESTOPTS} -b 32"
-				;;
-		esac
-
-		# This needs a bit of work to give a nice exit code still.
-		./run_tests.py ${TESTOPTS}
-		rc=$?
-	else
-		eerror "Failed to make HugeTLB allocations."
-		rc=1
-	fi
-
-	einfo "Cleaning up memory"
-	cd "${S}" || die
-	# Cleanup memory allocation
-	for alloc in ${allocated} ; do
-		pagesize="${alloc/:*}"
-		pagecount="${alloc/*:}"
-
-		einfo "  ${pagecount} @ ${pagesize}"
-		src_test_alloc_one "${hugeadm}" "-" "${pagesize}" "${pagecount}"
-	done
-
-	# ---------------------------------------------------------
-	# --------- die is safe again after this point. -----------
-	# ---------------------------------------------------------
-
-	return ${rc}
-}
-
-src_compile() {
-	tc-export AR
-	emake CC="$(tc-getCC)" libs tools
-}
-
-src_install() {
-	default
-
-	use static-libs || rm -f "${ED}"/usr/$(get_libdir)/*.a
-}
diff --git a/sys-libs/libhugetlbfs/metadata.xml b/sys-libs/libhugetlbfs/metadata.xml
deleted file mode 100644
index 4256595eca45..000000000000
--- a/sys-libs/libhugetlbfs/metadata.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
-<pkgmetadata>
-<maintainer type="project">
-	<email>base-system@gentoo.org</email>
-	<name>Gentoo Base System</name>
-</maintainer>
-<upstream>
-	<remote-id type="github">libhugetlbfs/libhugetlbfs</remote-id>
-	<remote-id type="sourceforge">libhugetlbfs</remote-id>
-</upstream>
-</pkgmetadata>
diff --git a/sys-libs/libseccomp/Manifest b/sys-libs/libseccomp/Manifest
index aee6178daae6..2f24d03c95bc 100644
--- a/sys-libs/libseccomp/Manifest
+++ b/sys-libs/libseccomp/Manifest
@@ -1,10 +1,11 @@
 AUX libseccomp-2.5.3-skip-valgrind.patch 516 BLAKE2B d5dc87fcca8e20b7edd427c434d875c9c3c7aa130a651dbe06c2c648825312e330400f89177afcfe4985fa48e0f95de9937773deb6d3d83da9b2351e6e0488fc SHA512 96053f8ca6abc97ea7c5565c3c25563881e8c0363e9c38fa05836d59b5d9ea1a375f9e072bd5f89a67ddac159c1219be7ed829facd651b3fb8bd5071c89bddcb
+AUX libseccomp-2.5.5-arch-syscall-check.patch 1485 BLAKE2B c94cd88060e51e1ba4962fc56603a958bd8fe314adc6d038a271d8f661db1f421026a180d5aa6deccc42422818a95cf8ec46a2a4e961325ef74d342d17f24e2a SHA512 c14f351e9d7dbdf1be43f031cd7a9a5b192b2e358574054aabba1d08a0ccc1cf8f1138b1462d0b7eac899ac801039aa03e748ff52a8020174801b26ee47b69b1
 AUX libseccomp-2.5.5-which-hunt.patch 1779 BLAKE2B 00ac7f24b718f450c258c0d69f600a739360ac6cce45acdca51d413e07396d16ffa50d64fda2744968171e33e3a0e2ac17fa01c6016a95fab6774a4f6c7ba7c4 SHA512 b077a3f1075664fdfec6fecc077bd53685823794f037315a559f205cb6dc78a7d5e720ea4587dfdb605bfbeae79cf964d083157fbfae2085ca1d9e2995015067
 AUX libseccomp-2.6.0-python-shared.patch 778 BLAKE2B 343bcb6c8e8cfc9bab3e0439d391ddfae023587f64f23860c1594cacb60d3af58e031edd5f37ba705bf3da01799ed12ab931a4b9a98e9063922f16cab814d5e6 SHA512 029b1403a3b0af5931833837d9b640d8d9ee172972f927f756137ca51bdbfd3f9cd42657029397fdb2cb727a5065356e05ca196fcb2170484f807bb65cd5a398
 AUX libseccomp-python-shared.patch 759 BLAKE2B e2c42e18ca93fe5fddbc3a5b47ac0e6a29e566292fd62b87e6b45f6cb230570a2d1907a8b192e80b32c1900d069a4f10a866fa50bd9b88f5b78abff4206bd4cb SHA512 74548c7969869ff8f937a75eac720f1c654fad87dc17aed1c041bcb765586b4ee978a3ff7c6281be03277f6c74f2ec32624f91beb55afec3066a06a9e51483e2
 DIST libseccomp-2.5.5-loongarch64-20231204.patch.xz 41236 BLAKE2B 7831b28c275771bb675b4b5045e657d96c254e69cee7188a19f4812bc83343e0041772c20be1e7392ec88387726b49f34aa670a906b922dba531a0d35e548b1e SHA512 7870e536d834360dfec446493815b675a305f6bec1b79d0caae6fb546d2f694e77ce52e547bbcdb22cda272272bf3d5a427960b4aa76fb987d06ab035298007d
 DIST libseccomp-2.5.5.tar.gz 642445 BLAKE2B d770cee1f3e02fbbcd9f25655b360ab38160ad800e2829a67f2b9da62b095a90be99ac851a67344cf95bd6810a6268da4655dc1d37d996e58239c4999eb41998 SHA512 f630e7a7e53a21b7ccb4d3e7b37616b89aeceba916677c8e3032830411d77a14c2d74dcf594cd193b1acc11f52595072e28316dc44300e54083d5d7b314a38da
-EBUILD libseccomp-2.5.5-r1.ebuild 2977 BLAKE2B 465ada875d125a0772c4a24ea0f31b74cf7c8b48846379b0f8371e9a117836f41831fd1a8351325341fab0bd75a905bf90c46a7a6b231678134bf24b7ab5e8de SHA512 cd187a505f7b179b5a4f692ea2476d5432f046021f8d31f403e61e1a339f49a15f42b36e4d5447ca0eafc8fe3718b92e020b05d93ec354c42dcecfddda7542c6
+EBUILD libseccomp-2.5.5-r1.ebuild 3028 BLAKE2B d3bee995e94088d7bb3193d57a46af968c7e5216aff493423b220504c839f06b3fd91e080e31edbc80b55f378151c69cef0466df78422bd3e179e5ec98a4fd48 SHA512 8f0c4c3c85529772b81d73a519bc377a02da569059026b5929453eab8721540515eea5f415015eb1019f8f5c85574342f89bc76fe8a59e1f37068acd74b3bfb1
 EBUILD libseccomp-2.5.5.ebuild 2933 BLAKE2B d2b8b53e01877d343de0b6838b2bf4b3addeec676fbd89fae289788da03fb4b9b7af89e193e17621361bb39e33f77f80393a7807887010016dc7d49120653b1d SHA512 9f911a3647dac012b5cad4c919ba1a286fbc9348320810f7b772125da4250c4d26ae5cb870caf96a45930f3f040296f375b31818e69c0ccee826b497208d7d86
-EBUILD libseccomp-9999.ebuild 2433 BLAKE2B a56e8a279a27b607acfbc6a7a718a5f8968841bb9b7251813ba7af259be9ccffdadbfd40459a883b1add4114c497692390f7d65da60d8f4b676826203c8ec6ef SHA512 3d553759cbcfb2e99e2fbbcb6140b80ba9b64c7f9e6dfe738ba2d5371526a4e5ad4b3b0049496af9538867df4975d74a1d8b2c08657b141a46e8197e0369f89c
+EBUILD libseccomp-9999.ebuild 2433 BLAKE2B 50afb42077d398c80404844c9d865b2b5760f157c7455f8b74ab666f16ebec647f413649091a4d1406f7b7d5e0b9daf1a0edf4a3ee83f9eb7c495b8817cf06e4 SHA512 c0abf7f041c37df9047fb4e7e9c4632978be2d90c93b5756bdfff9167d2cd11df5065266c23eefd70feb67cf731cb653d6ab9154ae077bcb714c11c38aacea18
 MISC metadata.xml 506 BLAKE2B 44dc13629234226f9314270c05d5c7c87575639fe12282e73697ead63d016ee9b52a89d673be5881bfcbf4d605024ecfcc3e19510581d334a6d5737df6a36b50 SHA512 93b0a53783499eab6b6264867a049830d765ee56d19b0c60e764f6651dff9f0d11efbec0783fdeb17c2c64d3f409bb4b1b1f74f267022775b992b61a1df03100
diff --git a/sys-libs/libseccomp/files/libseccomp-2.5.5-arch-syscall-check.patch b/sys-libs/libseccomp/files/libseccomp-2.5.5-arch-syscall-check.patch
new file mode 100644
index 000000000000..238098ad4c9e
--- /dev/null
+++ b/sys-libs/libseccomp/files/libseccomp-2.5.5-arch-syscall-check.patch
@@ -0,0 +1,45 @@
+From 744c9a897b74ad66d065791593e25a05e4b6f6a1 Mon Sep 17 00:00:00 2001
+From: Michal Privoznik <mprivozn@redhat.com>
+Date: Tue, 1 Nov 2022 11:59:51 +0100
+Subject: [PATCH] src: Make arch-syscall-check work in VPATH build
+
+The aim of arch-syscall-check test is to check for syscalls
+missing implementation. It does so by comparing two files:
+
+  1) src/syscalls.csv
+  2) include/seccomp-syscalls.h
+
+However, due to use of relative paths these files are not found
+when doing a VPATH build. But, we can re-use an idea from GNU
+coreutils and get an absolute path to the source dir. All that's
+needed then is to prefix those two paths with the source dir
+path.
+
+Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
+Acked-by: Tom Hromatka <tom.hromatka@oracle.com>
+Signed-off-by: Paul Moore <paul@paul-moore.com>
+---
+ src/arch-syscall-check | 7 +++++--
+ 1 file changed, 5 insertions(+), 2 deletions(-)
+
+diff --git a/src/arch-syscall-check b/src/arch-syscall-check
+index ae67daa..9c7fd41 100755
+--- a/src/arch-syscall-check
++++ b/src/arch-syscall-check
+@@ -22,8 +22,11 @@
+ # along with this library; if not, see <http://www.gnu.org/licenses>.
+ #
+ 
+-SYSCALL_CSV="./syscalls.csv"
+-SYSCALL_HDR="../include/seccomp-syscalls.h"
++# Based on an idea from GNU coreutils
++abs_topsrcdir="$(unset CDPATH; cd $(dirname $0)/.. && pwd)"
++
++SYSCALL_CSV="$abs_topsrcdir/src/syscalls.csv"
++SYSCALL_HDR="$abs_topsrcdir/include/seccomp-syscalls.h"
+ 
+ function check_snr() {
+ 	(export LC_ALL=C; diff \
+-- 
+2.44.0
+
diff --git a/sys-libs/libseccomp/libseccomp-2.5.5-r1.ebuild b/sys-libs/libseccomp/libseccomp-2.5.5-r1.ebuild
index db6a08dfb2a6..347a6274d5f7 100644
--- a/sys-libs/libseccomp/libseccomp-2.5.5-r1.ebuild
+++ b/sys-libs/libseccomp/libseccomp-2.5.5-r1.ebuild
@@ -6,7 +6,7 @@ EAPI=8
 DISTUTILS_EXT=1
 DISTUTILS_OPTIONAL=1
 DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{10..11} )
+PYTHON_COMPAT=( python3_{10..12} )
 
 inherit distutils-r1 multilib-minimal
 
@@ -20,7 +20,7 @@ if [[ ${PV} == *9999 ]] ; then
 else
 	SRC_URI="https://github.com/seccomp/libseccomp/releases/download/v${PV}/${P}.tar.gz
 		experimental-loong? ( https://dev.gentoo.org/~xen0n/distfiles/${PN}-2.5.5-loongarch64-20231204.patch.xz )"
-	KEYWORDS="-* ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~x86 ~amd64-linux ~x86-linux"
+	KEYWORDS="-* amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 x86 ~amd64-linux ~x86-linux"
 fi
 
 LICENSE="LGPL-2.1"
@@ -49,6 +49,7 @@ PATCHES=(
 	"${FILESDIR}"/libseccomp-python-shared.patch
 	"${FILESDIR}"/libseccomp-2.5.3-skip-valgrind.patch
 	"${FILESDIR}"/libseccomp-2.5.5-which-hunt.patch
+	"${FILESDIR}"/libseccomp-2.5.5-arch-syscall-check.patch
 )
 
 src_prepare() {
diff --git a/sys-libs/libseccomp/libseccomp-9999.ebuild b/sys-libs/libseccomp/libseccomp-9999.ebuild
index 45cf592639a0..ac4df4483838 100644
--- a/sys-libs/libseccomp/libseccomp-9999.ebuild
+++ b/sys-libs/libseccomp/libseccomp-9999.ebuild
@@ -6,7 +6,7 @@ EAPI=8
 DISTUTILS_EXT=1
 DISTUTILS_OPTIONAL=1
 DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{10..11} )
+PYTHON_COMPAT=( python3_{10..12} )
 
 inherit distutils-r1 multilib-minimal
 
diff --git a/sys-libs/libxcrypt/Manifest b/sys-libs/libxcrypt/Manifest
index 0ffffc5542f9..063b44d3dcd3 100644
--- a/sys-libs/libxcrypt/Manifest
+++ b/sys-libs/libxcrypt/Manifest
@@ -1,6 +1,6 @@
 AUX libxcrypt-4.4.19-multibuild.patch 303 BLAKE2B cd342eef2a8ce3e305e544d37373370748690878b4171709028b7b894ad2c76c9188496ab089a46645ad6f9fca09fa4f89cdcb444e1400747ee358c079441661 SHA512 3cbd4bbd0827801faaaa2198eccccb285100cdfc43525b70816121aa70b32dc2c8479c53e16b9e99920926b1b11014dcc19909c4f72a09d9d19fcdb0fa6350cd
 DIST libxcrypt-4.4.36-autotools.tar.xz 624660 BLAKE2B 8dc3d0f354baf8c64dc011e95e7df10d48b0dfe428503936ffd55edf2745de04003c7efe231ed5d9a14cea7f682ba377b7e00f0463b4060c50c9c29f555b790f SHA512 fb8391ecb89622eb0d74d13c5fc1369718e83c47671449044ca0c2f78a236d7b06177a60bf8cda47694caa840c68eaaf0b23690e8975fa5d64b734c8eb246d10
 EBUILD libxcrypt-4.4.36-r2.ebuild 9083 BLAKE2B 75bae6bbaa6d87d2a7dde7c237e6e9d931adab44591a54d35e13f95993077d0cb16391fc85835ee67ffd6c30f88e052e24d4b5ecf6ea2833d56e0a1990401162 SHA512 a5fd4cdf5a9adc31e145109532181a659e4ddedbea7e7e3f74a47cb9afbcdbbcc1940f339cec2318fe7f34531b32d80f884e8e7db1b638dafede1493a987708c
-EBUILD libxcrypt-4.4.36-r3.ebuild 6520 BLAKE2B 6db30204a2815cf03a154bd542cc4039036c2613843f49dcab6aeae125a486d0aec9b2a250c8719bef368b92e13c96897716314d30efcf6892c23a0d7598775c SHA512 f538e1a5138c3e19be822a9040ac32b210dd3b7325fa170bf85d91ffe764db9a3a260317ab5f0fd9b5ff310c26ce0e1a4de302423b04637e2a0e5adc4e21d2ce
+EBUILD libxcrypt-4.4.36-r3.ebuild 6524 BLAKE2B 44dfbae851fb773df69d016c681c655f252231cd0cdb2138416c3761b1df8657268c589fc288ab49c768763b98de0edf52108c65c1a95bcb43b8e25658e0098e SHA512 b2a70f4647defb0a7b8eab90d28c1a8d6d17353a8b78bc4fbde8ccecde0c98d61bf2bd0bf44a380adc47e2e502c92e8051d26c30dbba068e77439d7d85801ded
 EBUILD libxcrypt-4.4.36.ebuild 9276 BLAKE2B 98a592ac762240cae507fc801b23df1172552d07a1583ef42d83efe00d1008f2fdc28cc71d73d527cb94d59ccd9db64062077789dece2428518b887bc72ba8a0 SHA512 8b4bf70219e81777d4ba975f0d06f33f9fda18211816e93f0b04363663a06fc2fad9cf1f02c012ca877935f45f6ea9af3afa026c56c12e7f5a97699097b975c3
 MISC metadata.xml 913 BLAKE2B c2b3f52bd72bb46b0de4eb4a5f47dcb3aacfd248b811bcdc88db88c6f9cbe3ed1af4fda3e643b350fd22131273af03f2f888d78d306f0f7274d9432eb65075a3 SHA512 0ebbc3c2aa661f1a40e7f654384a395662b1b0235f145c7778b7b86bfb65ad09d4e8900bc6ede94413f057e769397c355bfd1bcafe8540acbf7e00e5451400c9
diff --git a/sys-libs/libxcrypt/libxcrypt-4.4.36-r3.ebuild b/sys-libs/libxcrypt/libxcrypt-4.4.36-r3.ebuild
index 3faec08e8e41..550e7631a094 100644
--- a/sys-libs/libxcrypt/libxcrypt-4.4.36-r3.ebuild
+++ b/sys-libs/libxcrypt/libxcrypt-4.4.36-r3.ebuild
@@ -3,11 +3,11 @@
 
 EAPI=8
 
-PYTHON_COMPAT=( python3_{10..11} )
+PYTHON_COMPAT=( python3_{10..12} )
 # NEED_BOOTSTRAP is for developers to quickly generate a tarball
 # for publishing to the tree.
 NEED_BOOTSTRAP="no"
-inherit crossdev multilib python-any-r1 flag-o-matic toolchain-funcs multilib-minimal
+inherit crossdev multibuild multilib python-any-r1 flag-o-matic toolchain-funcs multilib-minimal
 
 DESCRIPTION="Extended crypt library for descrypt, md5crypt, bcrypt, and others"
 HOMEPAGE="https://github.com/besser82/libxcrypt"
@@ -20,7 +20,7 @@ fi
 
 LICENSE="LGPL-2.1+ public-domain BSD BSD-2"
 SLOT="0/1"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86"
 IUSE="+compat static-libs +system test headers-only"
 RESTRICT="!test? ( test )"
 
diff --git a/sys-libs/ncurses/Manifest b/sys-libs/ncurses/Manifest
index acf491b05974..38df71800404 100644
--- a/sys-libs/ncurses/Manifest
+++ b/sys-libs/ncurses/Manifest
@@ -132,12 +132,18 @@ DIST ncurses-6.4-20240323.patch.gz 143301 BLAKE2B f51c229985025950ebe0b35e1e9cb1
 DIST ncurses-6.4-20240323.patch.gz.asc 729 BLAKE2B 380eaa8b0f3faa3e2ff21a3847c6f2ba59019adec68391134bb68bdecfd13cb56589ad4ec062dd391ae3d7bd96a306d85e78ef0827300de594723d188272e7c4 SHA512 380675d04ad1db69a039001b109bea6e7ef3f9fa0059ebe8b17ad12d0b59b20dd18b90abedb63f95db2ed6ad770de77aacc85c24d70bb883b1851c72c5dada88
 DIST ncurses-6.4-20240330.patch.gz 63526 BLAKE2B 593823a358017e5f98e897ebd6e1a2f945b0329c51a76b0ea65458751d2486dc51a71c1d0fdfbc1741167c47ed0b8aedc52b1a923c4788f23293d7e7729885c7 SHA512 666c8f7a37bc2b93b9b0ff76f2a5fe412f1d5c0c9260b64a26665e7c3ba74a9f05ae3883a512425d901ab943948509792759297ea85b9642cd02b7b64455326e
 DIST ncurses-6.4-20240330.patch.gz.asc 729 BLAKE2B 159c110254d81b1c83d7cdb3250fce7ac12d1b4773e6c1a4a347bc7a5d96893504b1a7066d6a8997c3db467ba7d3705e043714000142fd2ebac6e9a008a62ae8 SHA512 1a0dcc56e79da6e0d615bd0a6571869e42aa6e31233e6cb01fe85c8816c82858c23e93a47650e1a4fd8cee2461e4900f7b78a4f9aa3149a0aec6cda704f9c163
+DIST ncurses-6.4-20240413.patch.gz 113122 BLAKE2B d8e5d011a8ab61dd30624c51d7917ecc66f388c8b0edcba25f35179031a16b5a41379d8c5f2c40a2b6af5e485b25ca8a3cb1c97301450b00c14e2640187f0054 SHA512 45c14df0fc4229667ae173cd4eb37fad2a3dbcb8906763a4d472fad7b563dbe72dbc0bc12e6070e6e7f2e64fc2f3a254bffe5d1e904dce9f5636fccdd2761750
+DIST ncurses-6.4-20240413.patch.gz.asc 729 BLAKE2B 3786f815cddf3f6ebbf89da47e3151c01d50f26c2fa713cb982c61b7190ca25a807b6f7264688a296d5d252c78f4737372f2c6f26d7713bc448c5228676e922f SHA512 c172fe7f308a01474d04b06919b43710abcdb9fe3961396cbc7731f619093ed18bc7deb9bb62075e3bd0bb88d345059c9bf485a4f9ef614dc1109d4549c95a34
+DIST ncurses-6.4-20240414.patch.gz 3007 BLAKE2B a4db0635df3b2669ae1ba0057c21f717db2512aa51545ea5157dbaf33c3db334cf8315ecd60a4c8a6406e6e7ba417e23f00f575af72c56b18046e3c4a34dab87 SHA512 348ffdbeb2b7350493957562a0af1a217590dd35cd9f8f27ff46adfb969018224e170b63581f5b3ad268293441db59878898bd23d1d1a4add77fc681344df526
+DIST ncurses-6.4-20240414.patch.gz.asc 729 BLAKE2B 8d579b2724245756947200a3e704c1ae534ba64e6986ad009a5ca9d33145fff82ddae9003a7c6ffe5b64b68f813661440afcac0a1321e5b80113d3ec94e1ea5a SHA512 0976a253d11fb10d52fee1cd2ad38e80b0b531f89efe94a62b9a0e2d69206bd1574140785776c7f6bd19775f6ca446c582da31cd9f51a8b0f12039d1e9695600
 DIST ncurses-6.4.tar.gz 3612591 BLAKE2B 47fd9c2d27f44fa9942552881a471e5067465dbace40bf68b28998dded0556127a1d8662b96de4de4fd76c1c8b98bdae796036553ab4b05ca9f160839d841ba3 SHA512 1c2efff87a82a57e57b0c60023c87bae93f6718114c8f9dc010d4c21119a2f7576d0225dab5f0a227c2cfc6fb6bdbd62728e407f35fce5bf351bb50cf9e0fd34
 DIST ncurses-6.4.tar.gz.sig 438 BLAKE2B e6a78b8d0cbce1577205b49b0260394094632cefd95294813c7e4e51a2908e8599a9f24b3b648e42ba16c015fb9424b2a82236f58aac3bf96f5400a50482e44e SHA512 f2a7859725b4d5d62f68006338d56598ac6b38a1448983108906e192f0ec922be287cc89bcc79c1ae49ebc80c967af3dd077427f35ae579b00d445c882414fed
 DIST ncurses-6.4_p20230408-patches.tar.xz 80472 BLAKE2B 0ba8156ebd4f1691fec7bc1b800ef39ce6a4210573c027dd437919cdcd7c995830116da06c69f31c65923845a4d5c88e974673fac38acce5813f7d6cdc646e3e SHA512 32960e2cc4cd9dc60c38b49f46c5ce2c02179479abb66ca29f63cd06475ae8e26299a78b5f06762d114aefbbca3ba6fbebe7093a58106eeaa40cf500d21633a4
 DIST ncurses-6.4_p20230527-patches.tar.xz 63080 BLAKE2B 9db4ac28c8936d3a9c6f3ca5cb8a4c92aa79ee4ce49789bcfc9c031a0454bf6f55a0544bc4a3dbb5c243ed9b2d0792afb98622a6a14b11675b7988100a650eb5 SHA512 3eacda173e8a177cd201ca3fef65311ac92e7e5af4039dc8a5792beae7db1d37efd06f5a55c249eebb771d1245995ff3a206a45794936b6b4299151666dbeade
 DIST ncurses-6.4_p20240330-patches.tar.xz 63796 BLAKE2B 3e6618ba0b37268d10a16cf26c2810e55c17ded97079af3753e34f2d12575f979a2e55cfd308abf783e35e39d4a848b89f435b4886d3633007ccb522b8dc2e51 SHA512 1bbf1978f9287f68bf6a8596f06d4d0523564bf3d2f6b3bd9746081a2fa0c76e36862beca62a4157d51cac0df61e456ddb6cacfae10b92344fe80cd752f72c38
+DIST ncurses-6.4_p20240413-patches.tar.xz 63760 BLAKE2B 6a91d453cca3705ca54b3a6f2ef00250d655168c1697726db4b581a1597cbc143479b8794e176d5e4154c794f99ea33c3fe1eb26605789930fc82649a2da3c93 SHA512 59239503a9400e054641428528799aa9c13b12669b31f32b2ff18cb60882698801e04dcdf75ece8357c7a4c3b899a729aa973090ec12a20de72cb80a916878b8
 EBUILD ncurses-6.4_p20230401.ebuild 13386 BLAKE2B 1e8285544f4eeb665a79988329e82fca9ad7ff1488ae8637294b5ecdc4b8aea3d5a4043d792bd05ef41d2111ae3c73d0d09a14b2fb606c9060ff267c0658e514 SHA512 f22355b4a8d30d403ddb1140c65c05d5ad5854791da6bf55309ba7c90f28f14cdf324b1e81e23bb9f4f607af8fea9d65b9ff8c909cba81ed04cffb53d257d347
 EBUILD ncurses-6.4_p20230527.ebuild 13534 BLAKE2B 6f66941cfa56e0033c3fb8b51805a9fe1f2a7d7ae94b640a6e69093ebdcb0c3c79cbde4bf56205bdb1f26a8601ed7d2c31b9cdf6c132779f39ab99e52c9b1a4e SHA512 ed972ae8c20b0d723bc957ee7bd71529b3b9ae8d2a796d9f600939ccde5e1c640cd08c259ffc17cd03e2316d72a1e6cab5c5e5727b571a0a8cf127a0a5b46602
 EBUILD ncurses-6.4_p20240330.ebuild 14061 BLAKE2B 15a772cb1354bac6500cbed1617adec51be0b3479a37d855c72c2e2b6946335f6b865ae65ec0044a5c13e3ac9f62eaed2968bb96db8b89559c0297831fe5b8e9 SHA512 37b5382b95a6ae9985a812d7e9ad0b2816b95ffdb248441955ab1fb2c67b1a0d9077beb71b9ce17befda6a43b75560f5ece027d9f85fac42270fc2da30a3257c
+EBUILD ncurses-6.4_p20240414.ebuild 14247 BLAKE2B a9a35523584e251e8853d553b9fb76e9089838977906c71182d94dc8214a91cc8be26b34f4340de74913d061e85a836bc454ab9bc6ae653f8f76e0d372463d99 SHA512 3e171e6851a9eeaa44dcc9ecfd05603fde3ca3b32875717fe89f03b9ddcdced568f959a6de9b5a30dddb531918e487dfac86444c34fa9f88aa43b85278a4ca6c
 MISC metadata.xml 1094 BLAKE2B a65bbb9584f77fb07fff735e6471ef48a5d63e7fa79112bf75df67f2f94e816706165fdd42a482708a7fd2ab3b3e308f9766eac0b39c3a4e31dcff5b3db25d57 SHA512 adf0f939a1e14c964bfb44ab80b1b8c1ee897a036a994848ba3e40280ab3a73ddb3beef540c905efd623e71b890c4c91e0b7c24651561d0e2bb2a4c86f039dba
diff --git a/sys-libs/ncurses/ncurses-6.4_p20240414.ebuild b/sys-libs/ncurses/ncurses-6.4_p20240414.ebuild
new file mode 100644
index 000000000000..3d26b093679b
--- /dev/null
+++ b/sys-libs/ncurses/ncurses-6.4_p20240414.ebuild
@@ -0,0 +1,488 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# sys-libs/ncurses-compat can be bumped with sys-libs/ncurses as upstream
+# provide a configure option for the ABI version.
+
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/thomasdickey.asc
+inherit flag-o-matic toolchain-funcs multilib multilib-minimal preserve-libs usr-ldscript verify-sig
+
+MY_PV="${PV:0:3}"
+MY_P="${PN}-${MY_PV}"
+DESCRIPTION="Console display library"
+HOMEPAGE="https://www.gnu.org/software/ncurses/ https://invisible-island.net/ncurses/"
+# Keep invisible-mirror.net here as some users reported 403 forbidden with invisible-island.net
+SRC_URI="
+	mirror://gnu/ncurses/${MY_P}.tar.gz
+	https://invisible-island.net/archives/${PN}/${MY_P}.tar.gz
+	https://invisible-mirror.net/archives/${PN}/${MY_P}.tar.gz
+	verify-sig? ( mirror://gnu/ncurses/${MY_P}.tar.gz.sig )
+"
+
+GENTOO_PATCH_DEV=sam
+GENTOO_PATCH_PV=6.4_p20240413
+GENTOO_PATCH_NAME=${PN}-${GENTOO_PATCH_PV}-patches
+
+# Populated below in a loop. Do not add patches manually here.
+UPSTREAM_PATCHES=()
+
+if [[ ${PV} == *_p* ]] ; then
+	# Sometimes, after releases, there's no megapatch available yet.
+	#
+	# From upstream README at e.g. https://invisible-island.net/archives/ncurses/6.3/:
+	#
+	#	"At times (generally to mark a relatively stable point), I create a rollup
+	#	patch, which consists of all changes from the release through the current date."
+	#
+	# Also, from https://lists.gnu.org/archive/html/bug-ncurses/2019-08/msg00039.html,
+	# the patches are considered to be acceptable to use after some testing. They
+	# are both for development but also bug fixes.
+	#
+	# This array should contain a list of all the snapshots since the last
+	# release if there's no megapatch available yet.
+	PATCH_DATES=(
+		20230107
+		20230114
+		20230121
+		20230128
+		20230211
+		20230218
+		20230225
+		20230311
+		20230401
+		20230408
+		20230415
+		20230418
+		20230423
+		20230424
+		20230429
+		20230506
+		20230514
+		20230520
+		20230527
+		20230603
+		20230610
+		20230615
+		20230617
+		20230624
+		20230625
+		20230701
+		20230708
+		20230715
+		20230722
+		20230729
+		20230805
+		20230812
+		20230819
+		20230826
+		20230902
+		20230909
+		20230917
+		20230918
+		20230923
+		20231001
+		20231007
+		20231014
+		20231016
+		20231021
+		20231028
+		20231104
+		20231111
+		20231118
+		20231121
+		20231125
+		20231202
+		20231209
+		20231217
+		20231223
+		20231230
+		20240106
+		20240113
+		20240120
+		20240127
+		20240203
+		20240210
+		20240217
+		20240224
+		20240302
+		20240309
+		20240323
+		20240330
+		20240413
+
+		# Latest patch is just _pN = $(ver_cut 4)
+		$(ver_cut 4)
+	)
+
+	if [[ -z ${PATCH_DATES[@]} ]] ; then
+		SRC_URI+=" https://invisible-island.net/archives/${PN}/${PV/_p*}/${MY_P/_p/-}.patch.sh.gz"
+		SRC_URI+=" verify-sig? ( https://invisible-island.net/archives/${PN}/${PV/_p*}/${MY_P/_p/-}.patch.sh.gz.asc"
+
+		# If we have a rollup patch, use that instead of the individual ones.
+		UPSTREAM_PATCHES+=( patch.sh )
+	else
+		# We use a mirror as well because we've had reports of 403 forbidden for some users.
+		upstream_url_base="https://invisible-island.net/archives/${PN}/${PV/_p*}/${MY_P}-"
+		upstream_m_url_base="https://invisible-mirror.net/archives/${PN}/${PV/_p*}/${MY_P}-"
+
+		# Prefix each date with the upstream location (https://invisible-island.net/archives/${PN}/${PV/_p*}/${MY_P})
+		mangled_patches=( "${PATCH_DATES[@]/#/${upstream_url_base}}" )
+		# Suffix each with .patch.gz
+		mangled_patches=( "${mangled_patches[@]/%/.patch.gz}" )
+		mangled_patches_sig=( "${mangled_patches[@]/%/.asc}" )
+		# Repeat for .patch.gz.asc for verify-sig
+		SRC_URI+=" ${mangled_patches[@]}"
+		SRC_URI+=" verify-sig? ( ${mangled_patches_sig[@]} )"
+
+		# For all of the URLs, chuck in invisible-island.net too:
+		SRC_URI+=" ${mangled_patches[@]/${upstream_url_base}/${upstream_m_url_base}}"
+		SRC_URI+=" verify-sig? ( ${mangled_patches_sig[@]/${upstream_url_base}/${upstream_m_url_base}} )"
+
+		UPSTREAM_PATCHES=( "${PATCH_DATES[@]/%/.patch}" )
+
+		unset upstream_url_base upstream_m_url_base mangled_patches mangled_patches_sig
+	fi
+fi
+
+SRC_URI+=" https://dev.gentoo.org/~${GENTOO_PATCH_DEV}/distfiles/${CATEGORY}/${PN}/${GENTOO_PATCH_NAME}.tar.xz"
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="MIT"
+# The subslot reflects the SONAME.
+SLOT="0/6"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
+IUSE="ada +cxx debug doc gpm minimal profile split-usr +stack-realign static-libs test tinfo trace"
+RESTRICT="!test? ( test )"
+
+DEPEND="gpm? ( sys-libs/gpm[${MULTILIB_USEDEP}] )"
+# Block the older ncurses that installed all files w/SLOT=5, bug #557472
+RDEPEND="
+	${DEPEND}
+	!<=sys-libs/ncurses-5.9-r4:5
+	!<sys-libs/slang-2.3.2_pre23
+	!<x11-terms/rxvt-unicode-9.06-r3
+	!<x11-terms/st-0.6-r1
+"
+BDEPEND="verify-sig? ( sec-keys/openpgp-keys-thomasdickey )"
+
+PATCHES=(
+	"${UPSTREAM_PATCHES[@]/#/${WORKDIR}/${MY_P}-}"
+
+	# When rebasing Gentoo's patchset, please use git from a clean
+	# src_prepare with upstream patches already applied. git am --reject
+	# the existing patchset and rebase as required. This makes it easier
+	# to manage future rebasing & adding new patches.
+	#
+	# For the same reasons, please include the original configure.in changes,
+	# NOT just the generated results!
+	"${WORKDIR}"/${GENTOO_PATCH_NAME}
+)
+
+src_unpack() {
+	# Avoid trying to verify our own patchset tarball, there's no point
+	if use verify-sig ; then
+		local file
+		for file in ${A} ; do
+			if [[ ${file} == ${MY_P}.tar.gz ]] ; then
+				verify-sig_verify_detached "${DISTDIR}"/${file} "${DISTDIR}"/${file}.sig
+			else
+				[[ ${file} == @(*${GENTOO_PATCH_NAME}.tar.xz|*.asc|*.sig) ]] && continue
+
+				verify-sig_verify_detached "${DISTDIR}"/${file} "${DISTDIR}"/${file}.asc
+			fi
+		done
+	fi
+
+	default
+}
+
+src_configure() {
+	# bug #115036
+	unset TERMINFO
+
+	tc-export_build_env BUILD_{CC,CXX,CPP}
+
+	# bug #214642
+	BUILD_CPPFLAGS+=" -D_GNU_SOURCE"
+
+	# Build the various variants of ncurses -- narrow, wide, and threaded. #510440
+	# Order matters here -- we want unicode/thread versions to come last so that the
+	# binaries in /usr/bin support both wide and narrow.
+	# The naming is also important as we use these directly with filenames and when
+	# checking configure flags.
+	NCURSES_TARGETS=(
+		ncurses
+		ncursesw
+		ncursest
+		ncursestw
+	)
+
+	# When installing ncurses, we have to use a compatible version of tic.
+	# This comes up when cross-compiling, doing multilib builds, upgrading,
+	# or installing for the first time.  Build a local copy of tic whenever
+	# the host version isn't available. bug #249363, bug #557598
+	if ! has_version -b "~sys-libs/${P}:0" ; then
+		local lbuildflags="-static"
+
+		# some toolchains don't quite support static linking
+		local dbuildflags="-Wl,-rpath,${WORKDIR}/lib"
+		case ${CHOST} in
+			*-darwin*)  dbuildflags=     ;;
+			*-solaris*) dbuildflags="-Wl,-R,${WORKDIR}/lib" ;;
+		esac
+		echo "int main() {}" | \
+			$(tc-getCC) -o x -x c - ${lbuildflags} -pipe >& /dev/null \
+			|| lbuildflags="${dbuildflags}"
+
+		# We can't re-use the multilib BUILD_DIR because we run outside of it.
+		BUILD_DIR="${WORKDIR}" \
+		CC=${BUILD_CC} \
+		CXX=${BUILD_CXX} \
+		CPP=${BUILD_CPP} \
+		CHOST=${CBUILD} \
+		CFLAGS=${BUILD_CFLAGS} \
+		CXXFLAGS=${BUILD_CXXFLAGS} \
+		CPPFLAGS=${BUILD_CPPFLAGS} \
+		LDFLAGS="${BUILD_LDFLAGS} ${lbuildflags}" \
+		do_configure cross --without-shared --with-normal --with-progs --without-ada
+	fi
+	multilib-minimal_src_configure
+}
+
+multilib_src_configure() {
+	if [[ ${ABI} == x86 ]] ; then
+		# For compatibility with older binaries at slight performance cost.
+		# bug #616402
+		use stack-realign && append-flags -mstackrealign
+	fi
+
+	local t
+	for t in "${NCURSES_TARGETS[@]}" ; do
+		do_configure "${t}"
+	done
+}
+
+do_configure() {
+	local target=$1
+	shift
+
+	mkdir "${BUILD_DIR}/${target}" || die
+	cd "${BUILD_DIR}/${target}" || die
+
+	local conf=(
+		# We need the basic terminfo files in /etc, bug #37026.  We will
+		# add '--with-terminfo-dirs' and then populate /etc/terminfo in
+		# src_install() ...
+		--with-terminfo-dirs="${EPREFIX}/etc/terminfo:${EPREFIX}/usr/share/terminfo"
+
+		# Enable installation of .pc files.
+		--enable-pc-files
+		# This path is used to control where the .pc files are installed.
+		--with-pkg-config-libdir="${EPREFIX}/usr/$(get_libdir)/pkgconfig"
+
+		# Now the rest of the various standard flags.
+		--with-shared
+		# (Originally disabled until bug #245417 is sorted out, but now
+		# just keeping it off for good, given nobody needed it until now
+		# (2022) and we're trying to phase out bdb.)
+		--without-hashed-db
+		$(use_with ada)
+		$(use_with cxx)
+		$(use_with cxx cxx-binding)
+		--with-cxx-shared
+		$(use_with debug)
+		$(use_with profile)
+		# The configure script uses ldd to parse the linked output which
+		# is flaky for cross-compiling/multilib/ldd versions/etc...
+		$(use_with gpm gpm libgpm.so.1)
+		--disable-term-driver
+		--disable-termcap
+		--enable-symlinks
+		--with-manpage-format=normal
+		--enable-const
+		--enable-colorfgbg
+		--enable-hard-tabs
+		--enable-echo
+		$(use_enable !ada warnings)
+		$(use_with debug assertions)
+		$(use_enable !debug leaks)
+		$(use_with debug expanded)
+		$(use_with !debug macros)
+		$(multilib_native_with progs)
+		$(use_with test tests)
+		$(use_with trace)
+		$(use_with tinfo termlib)
+		--disable-stripping
+		--disable-pkg-ldflags
+	)
+
+	if [[ ${target} == ncurses*w ]] ; then
+		conf+=( --enable-widec )
+	else
+		conf+=( --disable-widec )
+	fi
+	if [[ ${target} == ncursest* ]] ; then
+		conf+=( --with-{pthread,reentrant} )
+	else
+		conf+=(
+			--without-{pthread,reentrant}
+
+			# XXX: Revisit on next ABI break (>6) (bug #928873)
+			--disable-opaque-curses
+			--disable-opaque-form
+			--disable-opaque-menu
+			--disable-opaque-panel
+		)
+	fi
+
+	# Make sure each variant goes in a unique location.
+	if [[ ${target} == "ncurses" ]] ; then
+		# "ncurses" variant goes into "${EPREFIX}"/usr/include
+		# It is needed on Prefix because the configure script appends
+		# "ncurses" to "${prefix}/include" if "${prefix}" is not /usr.
+		conf+=( --enable-overwrite )
+	else
+		conf+=( --includedir="${EPREFIX}"/usr/include/${target} )
+	fi
+	# See comments in src_configure.
+	if [[ ${target} != "cross" ]] ; then
+		local cross_path="${WORKDIR}/cross"
+		[[ -d ${cross_path} ]] && export TIC_PATH="${cross_path}/progs/tic"
+	fi
+
+	ECONF_SOURCE="${S}" econf "${conf[@]}" "$@"
+}
+
+src_compile() {
+	# See comments in src_configure.
+	if ! has_version -b "~sys-libs/${P}:0" ; then
+		BUILD_DIR="${WORKDIR}" do_compile cross -C progs tic$(get_exeext)
+	fi
+
+	multilib-minimal_src_compile
+}
+
+multilib_src_compile() {
+	local t
+	for t in "${NCURSES_TARGETS[@]}" ; do
+		do_compile "${t}"
+	done
+}
+
+do_compile() {
+	local target=$1
+	shift
+
+	cd "${BUILD_DIR}/${target}" || die
+
+	# A little hack to fix parallel builds ... they break when
+	# generating sources so if we generate the sources first (in
+	# non-parallel), we can then build the rest of the package
+	# in parallel.  This is not really a perf hit since the source
+	# generation is quite small.
+	emake -j1 sources
+
+	# For some reason, sources depends on pc-files which depends on
+	# compiled libraries which depends on sources which ...
+	# Manually delete the pc-files file so the install step will
+	# create the .pc files we want.
+	rm -f misc/pc-files || die
+	emake "$@"
+}
+
+multilib_src_install() {
+	local target
+	for target in "${NCURSES_TARGETS[@]}" ; do
+		emake -C "${BUILD_DIR}/${target}" DESTDIR="${D}" install
+	done
+
+	# Move main libraries into /.
+	if multilib_is_native_abi ; then
+		gen_usr_ldscript -a \
+			"${NCURSES_TARGETS[@]}" \
+			$(usex tinfo 'tinfow tinfo' '')
+	fi
+
+	# Don't delete '*.dll.a', needed for linking, bug #631468
+	if ! use static-libs; then
+		find "${ED}"/usr/ -name '*.a' ! -name '*.dll.a' -delete || die
+	fi
+
+	# Build fails to create this ...
+	# -FIXME-
+	# Ugly hackaround for riscv having two parts libdir (bug #689240)
+	# Replace this hack with an official solution once we have one...
+	# -FIXME-
+	dosym $(sed 's@[^/]\+@..@g' <<< $(get_libdir))/share/terminfo \
+		/usr/$(get_libdir)/terminfo
+
+	# Remove obsolete libcurses symlink that is created by the build
+	# system. Technically, this could be also achieved
+	# via --disable-overwrite but it also moves headers implicitly,
+	# and we do not want to do this yet.
+	# bug #836696
+	rm "${ED}"/usr/$(get_libdir)/libcurses* || die
+}
+
+multilib_src_install_all() {
+	local terms=(
+		# Dumb/simple values that show up when using the in-kernel VT.
+		ansi console dumb linux
+		vt{52,100,102,200,220}
+		# [u]rxvt users used to be pretty common.  Probably should drop this
+		# since upstream is dead and people are moving away from it.
+		rxvt{,-unicode}{,-256color}
+		# xterm users are common, as is terminals re-using/spoofing it.
+		xterm xterm-{,256}color
+		# screen is common (and reused by tmux).
+		screen{,-256color}
+		screen.xterm-256color
+	)
+	if use split-usr ; then
+		local x
+		# We need the basic terminfo files in /etc for embedded/recovery, bug #37026
+		einfo "Installing basic terminfo files in /etc..."
+		for x in "${terms[@]}"; do
+			local termfile=$(find "${ED}"/usr/share/terminfo/ -name "${x}" 2>/dev/null)
+			local basedir=$(basename "$(dirname "${termfile}")")
+
+			if [[ -n ${termfile} ]] ; then
+				dodir "/etc/terminfo/${basedir}"
+				mv "${termfile}" "${ED}/etc/terminfo/${basedir}/" || die
+				dosym "../../../../etc/terminfo/${basedir}/${x}" \
+					"/usr/share/terminfo/${basedir}/${x}"
+			fi
+		done
+
+		echo "CONFIG_PROTECT_MASK=\"/etc/terminfo\"" | newenvd - 50ncurses
+
+		use minimal && rm -r "${ED}"/usr/share/terminfo*
+		# Because ncurses5-config --terminfo returns the directory we keep it
+		# bug #245374
+		keepdir /usr/share/terminfo
+	elif use minimal ; then
+		# Keep only the basic terminfo files
+		find "${ED}"/usr/share/terminfo/ \
+			\( -type f -o -type l \) ${terms[*]/#/! -name } -delete , \
+			-type d -empty -delete || die
+	fi
+
+	cd "${S}" || die
+	dodoc ANNOUNCE MANIFEST NEWS README* TO-DO doc/*.doc
+	if use doc ; then
+		docinto html
+		dodoc -r doc/html/
+	fi
+}
+
+pkg_preinst() {
+	preserve_old_lib /$(get_libdir)/libncurses.so.5
+	preserve_old_lib /$(get_libdir)/libncursesw.so.5
+}
+
+pkg_postinst() {
+	preserve_old_lib_notify /$(get_libdir)/libncurses.so.5
+	preserve_old_lib_notify /$(get_libdir)/libncursesw.so.5
+}
-- 
cgit v1.2.3