diff options
Diffstat (limited to 'sys-libs')
23 files changed, 571 insertions, 643 deletions
diff --git a/sys-libs/Manifest.gz b/sys-libs/Manifest.gz Binary files differindex b9fc6fd36e23..6e34ab670add 100644 --- a/sys-libs/Manifest.gz +++ b/sys-libs/Manifest.gz 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 +} |