diff --git a/.github/workflows/portage-stable-packages-list b/.github/workflows/portage-stable-packages-list index f9dada95f09..0f2363f0130 100644 --- a/.github/workflows/portage-stable-packages-list +++ b/.github/workflows/portage-stable-packages-list @@ -750,6 +750,7 @@ virtual/libcrypt virtual/libelf virtual/libiconv virtual/libintl +virtual/libpcre2-internals virtual/libudev virtual/libusb virtual/man diff --git a/sdk_container/src/third_party/coreos-overlay/app-admin/etcd-wrapper/etcd-wrapper-3.5.16.ebuild b/sdk_container/src/third_party/coreos-overlay/app-admin/etcd-wrapper/etcd-wrapper-3.5.33.ebuild similarity index 88% rename from sdk_container/src/third_party/coreos-overlay/app-admin/etcd-wrapper/etcd-wrapper-3.5.16.ebuild rename to sdk_container/src/third_party/coreos-overlay/app-admin/etcd-wrapper/etcd-wrapper-3.5.33.ebuild index 0bbcbdb7da2..4c30a18f651 100644 --- a/sdk_container/src/third_party/coreos-overlay/app-admin/etcd-wrapper/etcd-wrapper-3.5.16.ebuild +++ b/sdk_container/src/third_party/coreos-overlay/app-admin/etcd-wrapper/etcd-wrapper-3.5.33.ebuild @@ -15,10 +15,7 @@ KEYWORDS="amd64 arm64" RDEPEND=">=app-admin/sdnotify-proxy-0.1.0" src_install() { - local tag="v${PV}" - if [[ "${ARCH}" != "amd64" ]]; then - tag+="-${ARCH}" - fi + local tag="v${PV}-${ARCH}" exeinto /usr/lib/flatcar doexe "${FILESDIR}"/etcd-wrapper diff --git a/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/dev-vcs/git/0001-fix-cross.patch b/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/dev-vcs/git/0001-fix-cross.patch new file mode 100644 index 00000000000..3d2a1822fe5 --- /dev/null +++ b/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/dev-vcs/git/0001-fix-cross.patch @@ -0,0 +1,19 @@ +diff '--color=auto' -r -u git-2.55.0/src/cargo-meson.sh git-2.55.0-mod/src/cargo-meson.sh +--- git-2.55.0/src/cargo-meson.sh 2026-09-08 09:35:45.445569075 -0000 ++++ git-2.55.0-mod/src/cargo-meson.sh 2026-09-08 09:36:40.445141695 -0000 +@@ -38,7 +38,12 @@ + exit $RET + fi + +-if ! cmp "$BUILD_DIR/$BUILD_TYPE/$LIBNAME" "$BUILD_DIR/libgitcore.a" >/dev/null 2>&1 ++if test "$CBUILD" != "$CHOST" && test -n "$CARGO_BUILD_TARGET" + then +- cp "$BUILD_DIR/$BUILD_TYPE/$LIBNAME" "$BUILD_DIR/libgitcore.a" ++ BUILD_DIR_EXTRA="$CARGO_BUILD_TARGET/" ++fi ++ ++if ! cmp "$BUILD_DIR/$BUILD_DIR_EXTRA$BUILD_TYPE/$LIBNAME" "$BUILD_DIR/libgitcore.a" >/dev/null 2>&1 ++then ++ cp "$BUILD_DIR/$BUILD_DIR_EXTRA$BUILD_TYPE/$LIBNAME" "$BUILD_DIR/libgitcore.a" + fi +Only in git-2.55.0-mod/src: cargo-meson.sh.orig diff --git a/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/dev-vcs/git/README.md b/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/dev-vcs/git/README.md new file mode 100644 index 00000000000..217250b562a --- /dev/null +++ b/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/dev-vcs/git/README.md @@ -0,0 +1,3 @@ +The patch `0001-fix-cross.patch` is a temporary fix for +cross-compiling issue that pops up when building the libgitcore.a rust +library. diff --git a/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-apps/systemd/0001-wait-online-set-any-by-default.patch b/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-apps/systemd/0001-wait-online-set-any-by-default.patch index 91a5c228c40..9004e1c627d 100644 --- a/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-apps/systemd/0001-wait-online-set-any-by-default.patch +++ b/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-apps/systemd/0001-wait-online-set-any-by-default.patch @@ -1,4 +1,4 @@ -From c16ef94786281a7a75c498f33995191f7e1cc93d Mon Sep 17 00:00:00 2001 +From 1b44d9a28eca8b9790b54cdfeef112c61da38880 Mon Sep 17 00:00:00 2001 From: David Michael Date: Tue, 16 Apr 2019 02:44:51 +0000 Subject: [PATCH 1/8] wait-online: set --any by default @@ -15,10 +15,10 @@ earlier) for the original implementation. 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/network/wait-online/wait-online.c b/src/network/wait-online/wait-online.c -index b1d0b9cde2..e07c11d807 100644 +index e566f89d02..323041be40 100644 --- a/src/network/wait-online/wait-online.c +++ b/src/network/wait-online/wait-online.c -@@ -24,7 +24,7 @@ static Hashmap *arg_interfaces = NULL; +@@ -25,7 +25,7 @@ static Hashmap *arg_interfaces = NULL; static char **arg_ignore = NULL; static LinkOperationalStateRange arg_required_operstate = LINK_OPERSTATE_RANGE_INVALID; static AddressFamily arg_required_family = ADDRESS_FAMILY_NO; @@ -28,5 +28,5 @@ index b1d0b9cde2..e07c11d807 100644 STATIC_DESTRUCTOR_REGISTER(arg_interfaces, hashmap_freep); -- -2.53.0 +2.55.0 diff --git a/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-apps/systemd/0002-needs-update-don-t-require-strictly-newer-usr.patch b/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-apps/systemd/0002-needs-update-don-t-require-strictly-newer-usr.patch index 7301bdb87c7..a2b2090ed25 100644 --- a/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-apps/systemd/0002-needs-update-don-t-require-strictly-newer-usr.patch +++ b/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-apps/systemd/0002-needs-update-don-t-require-strictly-newer-usr.patch @@ -1,4 +1,4 @@ -From ec321c3a3888014f94d782c8f6454745a96bfaab Mon Sep 17 00:00:00 2001 +From 738a8b0776b76f80670b05e05465e7598547ef21 Mon Sep 17 00:00:00 2001 From: Alex Crawford Date: Wed, 2 Mar 2016 10:46:33 -0800 Subject: [PATCH 2/8] needs-update: don't require strictly newer usr @@ -10,7 +10,7 @@ Updates should be triggered whenever usr changes, not only when it is newer. 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/man/systemd-update-done.service.xml b/man/systemd-update-done.service.xml -index d9d78262a1..761bbdecca 100644 +index 8bb92ca5b5..8b65659b69 100644 --- a/man/systemd-update-done.service.xml +++ b/man/systemd-update-done.service.xml @@ -49,7 +49,7 @@ @@ -23,10 +23,10 @@ index d9d78262a1..761bbdecca 100644 This requires that updates to /usr/ are always followed by an update of the modification time of diff --git a/src/shared/condition.c b/src/shared/condition.c -index 903662edf1..9157b53e2f 100644 +index 2b4a29ed5c..a479ea11ab 100644 --- a/src/shared/condition.c +++ b/src/shared/condition.c -@@ -817,7 +817,7 @@ static int condition_test_needs_update(Condition *c, char **env) { +@@ -926,7 +926,7 @@ static int condition_test_needs_update(Condition *c, char **env) { * First, compare seconds as they are always accurate... */ if (usr.st_mtim.tv_sec != other.st_mtim.tv_sec) @@ -35,7 +35,7 @@ index 903662edf1..9157b53e2f 100644 /* * ...then compare nanoseconds. -@@ -828,7 +828,7 @@ static int condition_test_needs_update(Condition *c, char **env) { +@@ -937,7 +937,7 @@ static int condition_test_needs_update(Condition *c, char **env) { * (otherwise the filesystem supports nsec timestamps, see stat(2)). */ if (usr.st_mtim.tv_nsec == 0 || other.st_mtim.tv_nsec > 0) @@ -44,7 +44,7 @@ index 903662edf1..9157b53e2f 100644 _cleanup_free_ char *timestamp_str = NULL; r = parse_env_file(NULL, p, "TIMESTAMP_NSEC", ×tamp_str); -@@ -848,7 +848,7 @@ static int condition_test_needs_update(Condition *c, char **env) { +@@ -957,7 +957,7 @@ static int condition_test_needs_update(Condition *c, char **env) { return true; } @@ -54,5 +54,5 @@ index 903662edf1..9157b53e2f 100644 static bool in_first_boot(void) { -- -2.53.0 +2.55.0 diff --git a/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-apps/systemd/0003-core-use-max-for-DefaultTasksMax.patch b/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-apps/systemd/0003-core-use-max-for-DefaultTasksMax.patch index 429af6b6eda..494131a7bb4 100644 --- a/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-apps/systemd/0003-core-use-max-for-DefaultTasksMax.patch +++ b/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-apps/systemd/0003-core-use-max-for-DefaultTasksMax.patch @@ -1,4 +1,4 @@ -From 5e8b4b38473018964ac462a0c0aa9ec994945828 Mon Sep 17 00:00:00 2001 +From 20f887e7aa926a18b5c74045bf5620d265186f7c Mon Sep 17 00:00:00 2001 From: Adrian Vladu Date: Fri, 16 Feb 2024 11:22:08 +0000 Subject: [PATCH 3/8] core: use max for DefaultTasksMax @@ -21,7 +21,7 @@ Signed-off-by: Adrian Vladu 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/man/systemd-system.conf.xml b/man/systemd-system.conf.xml -index b7fe53dc9c..175fe67139 100644 +index e33267409b..d37bd8c456 100644 --- a/man/systemd-system.conf.xml +++ b/man/systemd-system.conf.xml @@ -227,7 +227,7 @@ @@ -34,10 +34,10 @@ index b7fe53dc9c..175fe67139 100644 Kernel has a default value for kernel.pid_max= and an algorithm of counting in case of more than 32 cores. For example, with the default kernel.pid_max=, DefaultTasksMax= defaults to 4915, diff --git a/src/core/manager.c b/src/core/manager.c -index 79fa19d976..d83b5b38b0 100644 +index 74c9d3e7aa..7a46141a5f 100644 --- a/src/core/manager.c +++ b/src/core/manager.c -@@ -113,7 +113,7 @@ +@@ -117,7 +117,7 @@ /* How many units and jobs to process of the bus queue before returning to the event loop. */ #define MANAGER_BUS_MESSAGE_BUDGET 100U @@ -47,10 +47,10 @@ index 79fa19d976..d83b5b38b0 100644 static int manager_dispatch_notify_fd(sd_event_source *source, int fd, uint32_t revents, void *userdata); static int manager_dispatch_signal_fd(sd_event_source *source, int fd, uint32_t revents, void *userdata); diff --git a/src/core/system.conf.in b/src/core/system.conf.in -index 54196e8489..b0b5c78b56 100644 +index aa8208ca1d..fbfef9ec37 100644 --- a/src/core/system.conf.in +++ b/src/core/system.conf.in -@@ -58,7 +58,7 @@ +@@ -60,7 +60,7 @@ #DefaultIPAccounting=no #DefaultMemoryAccounting={{ 'yes' if MEMORY_ACCOUNTING_DEFAULT else 'no' }} #DefaultTasksAccounting=yes @@ -60,5 +60,5 @@ index 54196e8489..b0b5c78b56 100644 #DefaultLimitFSIZE= #DefaultLimitDATA= -- -2.53.0 +2.55.0 diff --git a/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-apps/systemd/0004-systemd-Disable-SELinux-permissions-checks.patch b/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-apps/systemd/0004-systemd-Disable-SELinux-permissions-checks.patch index e1a2e8292ff..05990d4de73 100644 --- a/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-apps/systemd/0004-systemd-Disable-SELinux-permissions-checks.patch +++ b/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-apps/systemd/0004-systemd-Disable-SELinux-permissions-checks.patch @@ -1,4 +1,4 @@ -From 5c6b08088fe16e40e0aaaf501950d711a421fb99 Mon Sep 17 00:00:00 2001 +From fe5953a640cd30242a8bdf462838dc608e0b25bc Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Tue, 20 Dec 2016 16:43:22 +0000 Subject: [PATCH 4/8] systemd: Disable SELinux permissions checks @@ -25,5 +25,5 @@ index 7457b3d456..82afe343dd 100644 #include -- -2.53.0 +2.55.0 diff --git a/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-apps/systemd/0005-Revert-getty-Pass-tty-to-use-by-agetty-via-stdin.patch b/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-apps/systemd/0005-Revert-getty-Pass-tty-to-use-by-agetty-via-stdin.patch index 214ebd231f5..4e4649de87d 100644 --- a/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-apps/systemd/0005-Revert-getty-Pass-tty-to-use-by-agetty-via-stdin.patch +++ b/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-apps/systemd/0005-Revert-getty-Pass-tty-to-use-by-agetty-via-stdin.patch @@ -1,4 +1,4 @@ -From 6c97801bdec3730f49f68683b141909145826f2f Mon Sep 17 00:00:00 2001 +From 3dfaa28aca094f4986450ad9df01c68276f0f935 Mon Sep 17 00:00:00 2001 From: Sayan Chowdhury Date: Fri, 16 Dec 2022 16:28:26 +0530 Subject: [PATCH 5/8] Revert "getty: Pass tty to use by agetty via stdin" @@ -99,5 +99,5 @@ index d89805a0ef..73d88541fe 100644 TTYReset=yes TTYVHangup=yes -- -2.53.0 +2.55.0 diff --git a/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-apps/systemd/0006-units-Keep-using-old-journal-file-format.patch b/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-apps/systemd/0006-units-Keep-using-old-journal-file-format.patch index 4b1724a9775..26f99302fce 100644 --- a/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-apps/systemd/0006-units-Keep-using-old-journal-file-format.patch +++ b/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-apps/systemd/0006-units-Keep-using-old-journal-file-format.patch @@ -1,4 +1,4 @@ -From c05273535a1d96e187c7837929f0c88bfbf0ae68 Mon Sep 17 00:00:00 2001 +From 1916bda083e4f25fae1af9f156e058f57e172429 Mon Sep 17 00:00:00 2001 From: Adrian Vladu Date: Fri, 16 Feb 2024 11:29:04 +0000 Subject: [PATCH 6/8] units: Keep using old journal file format @@ -38,5 +38,5 @@ index b705ce08ff..874701dac4 100644 FileDescriptorStoreMax=4224 Group=systemd-journal -- -2.53.0 +2.55.0 diff --git a/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-apps/systemd/0007-tmpfiles.d-Fix-DNS-issues-with-default-k8s-configura.patch b/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-apps/systemd/0007-tmpfiles.d-Fix-DNS-issues-with-default-k8s-configura.patch index 00383ba868b..591b40db58a 100644 --- a/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-apps/systemd/0007-tmpfiles.d-Fix-DNS-issues-with-default-k8s-configura.patch +++ b/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-apps/systemd/0007-tmpfiles.d-Fix-DNS-issues-with-default-k8s-configura.patch @@ -1,4 +1,4 @@ -From e8de255a0141ab8d169488338dc24f391299d653 Mon Sep 17 00:00:00 2001 +From 39d334ff6a3932f8f3b46ba909d998b59f4e41f5 Mon Sep 17 00:00:00 2001 From: Krzesimir Nowak Date: Wed, 22 Oct 2025 10:39:42 +0200 Subject: [PATCH 7/8] tmpfiles.d: Fix DNS issues with default k8s configuration @@ -32,5 +32,5 @@ index be5edc98e0..bea686682a 100644 -L! /etc/resolv.conf - - - - ../run/systemd/resolve/stub-resolv.conf +L! /etc/resolv.conf - - - - ../run/systemd/resolve/resolv.conf -- -2.53.0 +2.55.0 diff --git a/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-apps/systemd/0008-units-Make-multi-user.target-the-default-target.patch b/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-apps/systemd/0008-units-Make-multi-user.target-the-default-target.patch index d4fd2466b50..9354f692764 100644 --- a/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-apps/systemd/0008-units-Make-multi-user.target-the-default-target.patch +++ b/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/sys-apps/systemd/0008-units-Make-multi-user.target-the-default-target.patch @@ -1,4 +1,4 @@ -From 450c8acb76f851bb594f725f834c04b041c2859e Mon Sep 17 00:00:00 2001 +From 88f2b978a19289e978bd5d023f41dbb1b517e3f3 Mon Sep 17 00:00:00 2001 From: Krzesimir Nowak Date: Fri, 24 Oct 2025 11:06:57 +0200 Subject: [PATCH 8/8] units: Make multi-user.target the default target @@ -9,7 +9,7 @@ Signed-off-by: Krzesimir Nowak 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/units/meson.build b/units/meson.build -index b2cf9bd8f3..74d7f61519 100644 +index 27d8ef2f72..282d178c4a 100644 --- a/units/meson.build +++ b/units/meson.build @@ -48,7 +48,7 @@ units = [ @@ -31,5 +31,5 @@ index b2cf9bd8f3..74d7f61519 100644 { 'file' : 'systemd-mute-console.socket', -- -2.53.0 +2.55.0 diff --git a/sdk_container/src/third_party/coreos-overlay/profiles/coreos/base/package.accept_keywords b/sdk_container/src/third_party/coreos-overlay/profiles/coreos/base/package.accept_keywords index 5c1f151809f..9a14c8c9873 100644 --- a/sdk_container/src/third_party/coreos-overlay/profiles/coreos/base/package.accept_keywords +++ b/sdk_container/src/third_party/coreos-overlay/profiles/coreos/base/package.accept_keywords @@ -16,10 +16,6 @@ # Needed to fix build with acl 2.4.0 =app-arch/tar-1.35-r1 -# Needed to address security issues. -=app-arch/unzip-6.0_p31 -=app-arch/zip-3.0_p16 - # For podman 6.0.0 =app-containers/aardvark-dns-2.0.0 @@ -33,6 +29,10 @@ # To address some CVEs. =app-containers/cri-tools-1.36.0 +# We always want the latest version available. +=app-containers/docker-29* +=app-containers/docker-cli-29* + # To address security issues =app-containers/incus-7.3-r1 @@ -90,6 +90,7 @@ dev-cpp/azure-security-keyvault-keys =dev-lang/go-1.26.7 # Keep versions on both arches in sync. +=dev-lang/swig-4.3.1 =dev-libs/cowsql-1.15.9 ~arm64 =dev-libs/ding-libs-0.6.2-r1 ~arm64 @@ -152,6 +153,9 @@ dev-cpp/azure-security-keyvault-keys # latest version of the package with the unstable keywords. sys-apps/azure-vm-utils +# Keep versions on both arches in sync. +=sys-apps/bubblewrap-0.12.0 + # To address CVE-2026-59676, CVE-2026-59677 in policycoreutils. =sys-apps/semodule-utils-3.11 @@ -180,14 +184,12 @@ sys-firmware/edk2-bin =sys-libs/libseccomp-2.6.1 # To address CVE-2026-59676, CVE-2026-59677 in policycoreutils. -=sys-libs/libselinux-3.11 +=sys-libs/libselinux-3.11-r1 =sys-libs/libsepol-3.11 # Keep versions on both arches in sync. =sys-libs/libunwind-1.8.3 +=sys-libs/liburing-2.12 # rsync 3.5.0 needs it =virtual/acl-2.4.0 - -# Pull some fixes (nested mount issue with sysext) -=sys-apps/systemd-260.4 diff --git a/sdk_container/src/third_party/portage-stable/app-arch/gzip/Manifest b/sdk_container/src/third_party/portage-stable/app-arch/gzip/Manifest index ad8869c73d6..e0edc356b1c 100644 --- a/sdk_container/src/third_party/portage-stable/app-arch/gzip/Manifest +++ b/sdk_container/src/third_party/portage-stable/app-arch/gzip/Manifest @@ -2,3 +2,5 @@ DIST gzip-1.14.tar.xz 885748 BLAKE2B 32f7241bd9f3b7f73a59905a5bc9abf4e360e787f69 DIST gzip-1.14.tar.xz.sig 833 BLAKE2B a13ade68035fe32d69c24a1b5791ae6d7163cbbbebda396b4c773f2dc82ea6c619a44c39adc53dcd8fff094962a1c2dddfabfc7ec2cf54561202ef9a2be325ae SHA512 a5abd09e3b7bda8d87e5af7d2bd943e6021272cb0b6aa05625ddfeae45838aede1ffd91d7e0cb4e170f7f3078035f735f8441bc15cc115c51d302e0a11be44cf DIST gzip-1.14_p20260502.tar.xz 829092 BLAKE2B fc98853530b4c0e52f1276cf07969acaa42434773d62375d4048fe17b5984ae316ffb8d0ffa949bb5e772adbcab477a79890fc79f1ac4387dd9b2d5e29c337be SHA512 5507ea6ac68ed7c0f4eaf17e6016800a6df597aa9015f91b5c1ca1422f9edd0a8b714c29e7678bfa57a2f45f220ae2ca4e94f1d3dff2b2a7a2cd602e93b364ef DIST gzip-1.14_p20260502.tar.xz.sig 833 BLAKE2B 13c0c9f39f8ff3e210a772c0ce83bfb2f9f2fabf73ea505dd4f16b80be8b8c3c1eb8f8916ee71c1ac1d562c71a5ca6d6fa522b4624b16e7a6eb67c654f66cd70 SHA512 48816f0d47e44e13b841937f70a4479a5a912ad1bf150640c8e157010853381806af2a1ba8959eced17c630abf9ae6e22f041bb4bed856a6b93f213b3210378a +DIST gzip-1.14_p20260901.tar.xz 834840 BLAKE2B e78aff73b626d3a68ac84ebe590a6a2d67c106aaf7a7ffe1195131322f9ce3fe5fc35a12de4950b29bda4aaf684f8e829425e79186b525544b2c7e0abac45bec SHA512 b2ff6352f819c14de98e87ab5ce54d21b6201d3a00c90163ca769cd72de6a636a8d50b7576e63a963f219820605a43e3744dbfca251f6755f8d62de75575b55a +DIST gzip-1.14_p20260901.tar.xz.sig 833 BLAKE2B 503c5ab9607658fa48ce857155563a0b264d2a398b84e2814cb537bb9d351471dd86743ec98b60f17f76b2365edd785363709e2883a540661d5f93b358a11857 SHA512 35c78a77f2f40e330f5950e028452e488f2758347e3c09b711c540a9bf1f4d289e617b07060b39c640f79827a321f5ed9f2c72d1791b6e4a98678ca1ed96e3a9 diff --git a/sdk_container/src/third_party/portage-stable/app-arch/gzip/gzip-1.14_p20260901.ebuild b/sdk_container/src/third_party/portage-stable/app-arch/gzip/gzip-1.14_p20260901.ebuild new file mode 100644 index 00000000000..29392564420 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/app-arch/gzip/gzip-1.14_p20260901.ebuild @@ -0,0 +1,98 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/gzip.asc +inherit eapi9-ver flag-o-matic verify-sig + +DESCRIPTION="Standard GNU compressor" +HOMEPAGE="https://www.gnu.org/software/gzip/" + +if [[ ${PV} == *_p* ]] ; then + # Note: could put this in devspace, but if it's gone, we don't want + # it in tree anyway. It's just for testing. + MY_SNAPSHOT="$(ver_cut 1-2).96-72fa" + + SRC_URI=" + https://meyering.net/gzip/gzip-${MY_SNAPSHOT}.tar.xz -> ${P}.tar.xz + verify-sig? ( + https://meyering.net/gzip/gzip-${MY_SNAPSHOT}.tar.xz.sig -> ${P}.tar.xz.sig + ) + " + S="${WORKDIR}"/${PN}-${MY_SNAPSHOT} +else + SRC_URI=" + mirror://gnu/gzip/${P}.tar.xz + verify-sig? ( + mirror://gnu/gzip/${P}.tar.xz.sig + ) + " +fi + +LICENSE="GPL-3+" +SLOT="0" +if [[ ${PV} != *_p* ]] ; then + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" +fi +IUSE="pic static" + +BDEPEND="verify-sig? ( sec-keys/openpgp-keys-gzip )" +RDEPEND="!app-arch/pigz[symlink(-)]" +PDEPEND=" + app-alternatives/gzip +" + +PATCHES=( + "${FILESDIR}/${PN}-1.3.8-install-symlinks.patch" +) + +src_configure() { + use static && append-flags -static + + # Avoid text relocation in gzip + use pic && export DEFS="NO_ASM" + + # embeds the path to grep detected at build time into installed scripts; + # use the canonical USE="split-usr" agnostic path. bug #935721 + export GREP="${EPREFIX}/bin/grep" + + # bug #663928 + econf --disable-gcc-warnings +} + +src_install() { + default + + docinto txt + dodoc algorithm.doc gzip.doc + + # Avoid conflict with app-arch/ncompress + rm "${ED}"/usr/bin/uncompress || die + + # keep most things in /usr, just the fun stuff in / + # also rename them to avoid conflict with app-alternatives/gzip + dodir /bin + local x + for x in gunzip gzip zcat; do + mv "${ED}/usr/bin/${x}" "${ED}/bin/${x}-reference" || die + done + mv "${ED}"/usr/share/man/man1/gzip{,-reference}.1 || die + rm "${ED}"/usr/share/man/man1/{gunzip,zcat}.1 || die +} + +pkg_postinst() { + if ver_replacing -lt "1.12-r2"; then + ewarn "This package no longer installs 'uncompress'." + ewarn "Please use 'gzip -d' to decompress .Z files." + fi + + # ensure to preserve the symlinks before app-alternatives/gzip + # is installed + local x + for x in gunzip gzip zcat; do + if [[ ! -h ${EROOT}/bin/${x} ]]; then + ln -s "${x}-reference" "${EROOT}/bin/${x}" || die + fi + done +} diff --git a/sdk_container/src/third_party/portage-stable/app-arch/unzip/unzip-6.0_p31.ebuild b/sdk_container/src/third_party/portage-stable/app-arch/unzip/unzip-6.0_p31.ebuild index 5bd0f5817c2..e710b91d4c7 100644 --- a/sdk_container/src/third_party/portage-stable/app-arch/unzip/unzip-6.0_p31.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-arch/unzip/unzip-6.0_p31.ebuild @@ -19,7 +19,7 @@ S="${WORKDIR}/${MY_P}" LICENSE="Info-ZIP" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~loong ~m68k ~mips ~ppc ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" IUSE="bzip2 natspec unicode" DEPEND=" diff --git a/sdk_container/src/third_party/portage-stable/app-arch/zip/zip-3.0_p16.ebuild b/sdk_container/src/third_party/portage-stable/app-arch/zip/zip-3.0_p16.ebuild index 0571a0d81cd..1b7b780303d 100644 --- a/sdk_container/src/third_party/portage-stable/app-arch/zip/zip-3.0_p16.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-arch/zip/zip-3.0_p16.ebuild @@ -18,7 +18,7 @@ S="${WORKDIR}"/${MY_P} LICENSE="Info-ZIP" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" IUSE="bzip2 crypt natspec unicode" DEPEND=" diff --git a/sdk_container/src/third_party/portage-stable/app-containers/containers-shortnames/containers-shortnames-2025.03.19_p20260615.ebuild b/sdk_container/src/third_party/portage-stable/app-containers/containers-shortnames/containers-shortnames-2025.03.19_p20260615.ebuild index c2c412a2ce5..0b091b84677 100644 --- a/sdk_container/src/third_party/portage-stable/app-containers/containers-shortnames/containers-shortnames-2025.03.19_p20260615.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-containers/containers-shortnames/containers-shortnames-2025.03.19_p20260615.ebuild @@ -13,7 +13,7 @@ if [[ ${PV} == 9999* ]]; then else SRC_URI="https://github.com/containers/shortnames/archive/${GIT_COMMIT}.tar.gz -> ${P}.tar.gz" S="${WORKDIR}/${PN#containers-}-${GIT_COMMIT}" - KEYWORDS="~amd64 ~arm64 ~loong ~riscv" + KEYWORDS="~alpha ~amd64 ~arm64 ~loong ~riscv" fi LICENSE="Apache-2.0" diff --git a/sdk_container/src/third_party/portage-stable/app-containers/docker-buildx/Manifest b/sdk_container/src/third_party/portage-stable/app-containers/docker-buildx/Manifest index a85c8ade34d..fc5222dd8a4 100644 --- a/sdk_container/src/third_party/portage-stable/app-containers/docker-buildx/Manifest +++ b/sdk_container/src/third_party/portage-stable/app-containers/docker-buildx/Manifest @@ -6,3 +6,4 @@ DIST docker-buildx-0.21.2.tar.gz 13608048 BLAKE2B 8229fe6d8d1b2b9f35213ae0ae879d DIST docker-buildx-0.34.1.tar.gz 15417849 BLAKE2B b302d1f2331ba7f76c79358be197436ac37e3d4ebea154ae441fc05b787544d9cd037bff2ae8140f9475ddfa3cad77e0a136b1a423d29cb73bdb42218ade5da0 SHA512 be69ff92a136e169456710c369099bd33ed0ae17271133fe0322fe1664c868ad76dd74265879fa783fa257a6ed6dca37c213d1153de9e903833b59cde4181d0b DIST docker-buildx-0.35.0.tar.gz 15243338 BLAKE2B d5529d81cd2745366e46da1f805da6b4b47a4002260c5f351cddafbba4cc55fbad3be182e94d89453de62fdda3adc7bde2713010122439ce72a7cc53e49b3f6f SHA512 208251fe59d016bbb1d34abacab4813169577c474ad62f47afdcce4f2484e8535a452bfa0b8dbadc465590cae935896bfeec2263934262cdb769a27b59b4c5de DIST docker-buildx-0.36.1.tar.gz 15022684 BLAKE2B c927c4e310cd72a9cbffb00d637e0c596828ea1ad1aee8725cdaa9163dc100a35c0898b25f7123ed1c926006f7b3e632c4b579eeeeb296cd25b331f9e7d64699 SHA512 669a1fa58570f56dfc6d5a0cf79f09e5a326b997a26a79e9bdbc263b1b847200d6bcc8fa1a37be43a77573d32c04d093959ec793cfd503cef524cbfdb9332339 +DIST docker-buildx-0.37.0.tar.gz 15139877 BLAKE2B 2f0048fc2878054104168eb9e1117c987c6fb44be3f929e5a52bc1554c2c97f91898f35049a74b8320c3ae77ee0a1ffe661fcdd2c28b969ebce33d16659b16c4 SHA512 9b82b4b6e6f27a364dda89c3dcc936db78a49750c7cdc527641f04c736d8987a4efbde9614a91ea151772c9b9d01959ce51de5c6d144820b18b7e3244695bece diff --git a/sdk_container/src/third_party/portage-stable/app-containers/docker-buildx/docker-buildx-0.37.0.ebuild b/sdk_container/src/third_party/portage-stable/app-containers/docker-buildx/docker-buildx-0.37.0.ebuild new file mode 100644 index 00000000000..a339148875b --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/app-containers/docker-buildx/docker-buildx-0.37.0.ebuild @@ -0,0 +1,57 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=9 + +inherit go-module + +DESCRIPTION="Docker CLI plugin for extended build capabilities with BuildKit" +HOMEPAGE="https://github.com/docker/buildx" + +if [[ ${PV} == 9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/docker/buildx.git" +else + SRC_URI="https://github.com/docker/buildx/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz" + KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86" + S=${WORKDIR}/${P#docker-} +fi + +LICENSE="Apache-2.0" +# Dependent licenses +LICENSE+=" Apache-2.0 BSD BSD-2 ISC MIT MPL-2.0 Unicode-DFS-2016" +SLOT="0" + +RDEPEND="app-containers/docker-cli" +BDEPEND=">=dev-lang/go-1.26.3" + +src_compile() { + local _buildx_r='github.com/docker/buildx' + local version=${PV} + if [[ ${PV} == 9999 ]]; then + version="$(git rev-parse --short HEAD)" + fi + local go_ldflags=( + "-linkmode=external" + -X "${_buildx_r}/version.Version=${version}" + -X "${_buildx_r}/version.Revision=$(date -u +%FT%T%z)" + -X "${_buildx_r}/version.Package=${_buildx_r}" + ) + ego build -o docker-buildx -ldflags "${go_ldflags[*]}" ./cmd/buildx +} + +src_test() { + # TestGit can't work in a source tarball; TestReadTargets fails seemingly due to parallelism. + if [[ ${PV} == 9999 ]]; then + ego test ./... -skip "TestReadTargets|TestIntegration" + else + ego test ./... -skip "TestGit|TestReadTargets|TestIntegration" + fi +} + +src_install() { + exeinto /usr/libexec/docker/cli-plugins + doexe docker-buildx + + einstalldocs +} diff --git a/sdk_container/src/third_party/portage-stable/app-containers/docker-cli/Manifest b/sdk_container/src/third_party/portage-stable/app-containers/docker-cli/Manifest index c90b074ab35..6fcc332c897 100644 --- a/sdk_container/src/third_party/portage-stable/app-containers/docker-cli/Manifest +++ b/sdk_container/src/third_party/portage-stable/app-containers/docker-cli/Manifest @@ -10,3 +10,4 @@ DIST docker-cli-28.4.0.tar.gz 7612765 BLAKE2B acfa0ee4cdeb6eec31ae92eb8c0a41357a DIST docker-cli-29.1.3.tar.gz 7303915 BLAKE2B 3d45206f91f3675171f054f5159ec38034a9d7125d1742346a9b0819af26a50616198d87640ec6e6cb0a017aa801c677d5bb85c7faf7cfbd1de81cb4f886c932 SHA512 f37a5d125eb93639db8527c826078571ef5938be6bb33d132ccf693bf0810e3b9bb354074488021e129760a44b7fc51cd8295c6c6fe79211b70736231f47320e DIST docker-cli-29.5.2.tar.gz 6828313 BLAKE2B c62bf6acd83a6db72dbf3f65be34e0738b38e6ade12ae15c1b1bcc69b648628b85dac523bd876c0f473cd9d12408c738b1728b8e33aab87034a76ec0aec36388 SHA512 3c569dbbcef6e9720a126147175f67297acab9a4ae8dd2af544b48eca70519dfd3c5312bf4ffab777e59a251cfdc5965217b0d3ca4c2eb41117c2e3b465bbb8a DIST docker-cli-29.7.2.tar.gz 6893753 BLAKE2B f744e147e32eeea233398c35b998d1e7f7b17066cd2d9c4d0fe8a2e155ff0445ff90d844181f7758c85fcd87b57e0b9a702449e9fef2131a8d9d04f186081b3f SHA512 0b118d17e205277c15b90e29a2f9bad3b385f59ea3b8d6e32371c103ceadd0fb964e91f3d57f5b87dc0a1b0778afbc41680087e91fdb4c8037abab6b6e222b80 +DIST docker-cli-29.8.0.tar.gz 7106105 BLAKE2B 8540003d04624191f5cab570b00f993df226614c8444ff198279bd0188efc83bf6225ae0cacd3abf5179786706dde83bcc14fc6b5ef4c025e99b97c98eb87a6d SHA512 75d475d4198fc87085fa1fd881caf18f2fafe0b8483bf3ba4c19f1057ed03f336e7d2f6eeb0c14697c82c0d1b3bf93dadc96a007b9c499e634dd44a8438e132c diff --git a/sdk_container/src/third_party/portage-stable/app-containers/docker-cli/docker-cli-29.5.2.ebuild b/sdk_container/src/third_party/portage-stable/app-containers/docker-cli/docker-cli-29.5.2.ebuild index 26a997d780a..07ac56f10b4 100644 --- a/sdk_container/src/third_party/portage-stable/app-containers/docker-cli/docker-cli-29.5.2.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-containers/docker-cli/docker-cli-29.5.2.ebuild @@ -23,6 +23,7 @@ RDEPEND="selinux? ( sec-policy/selinux-docker )" BDEPEND=" dev-go/go-md2man >=dev-lang/go-1.25.0 + williamh@gentoo.org William Hubbs - + + + arthurzam@gentoo.org + Arthur Zamarin + docker/cli cpe:/a:docker:command_line_interface diff --git a/sdk_container/src/third_party/portage-stable/app-containers/docker/Manifest b/sdk_container/src/third_party/portage-stable/app-containers/docker/Manifest index eadb535aae5..5896d1a9c20 100644 --- a/sdk_container/src/third_party/portage-stable/app-containers/docker/Manifest +++ b/sdk_container/src/third_party/portage-stable/app-containers/docker/Manifest @@ -6,3 +6,4 @@ DIST docker-28.4.0.tar.gz 18066393 BLAKE2B 70c9910bec169994ddd39f46e4a7042e5f38a DIST docker-29.1.3.tar.gz 19491833 BLAKE2B ded1a1832b1ce037776e04855a0ea7c3f45981df41bdace54c3b84496a2990b0450ed62b34a6f3c289dec2643d28a7563c9afba55c88fc0e1cc4fb7855220800 SHA512 e3fa96057beb2849fea6e4fd480b08ffbe9b74b851060901e54e57aa62938888b260b7cef4cee33d4cffd965fabc0db7fc0aa5aeeae9aa6b9870c3dbcf7b6ec3 DIST docker-29.5.2.tar.gz 21115630 BLAKE2B f47b730a470c0ab4868beb6d4187b9ff34d06ecf4f381f3e89b89e6f9b18b5bf4c9220ee2e0d6977d4b2b0dfddd4fb9f7e171316dcb2935428bfc9ca350dd17f SHA512 c5cbb956711e9ce8dbab010bf1eab3fd9b35e35806188e3030a3bbeafb545f4024504577df7c39588672c8d5252f6ab071bcfd6377867f4668b75855571469fb DIST docker-29.7.2.tar.gz 22043949 BLAKE2B 78bd52de33f2ecbc4272150add52b4b293629aeae2aa746f32c5134c2905a93cfc92db65510f707621689d8794c6a759952b58bd50a3852149cbeeab3f29d12c SHA512 f04e264c499854525ed7ef694ebea3c9fd449c6a538ed449e228728b87b654c86962d639fad45081d328db749f58493e18286217d2d95ca492028b79c99c0beb +DIST docker-29.8.0.tar.gz 22238609 BLAKE2B 076e70dc477ec6281af68c0192b3b5cd0a89f2d69713c6927e2a42619aa6af1b0cc309a408f78fb3fe10642e8c9ec1c87eb137f48d1f5789e6f973684fc1d578 SHA512 2e2b6079d69b6e1cf4e2c6c1609cab64aceed402c966c31efdef42b8b7f2a5a7e7c39c06b2eeb191b00f4bb5b4eb83eb1c5ec82ddde020009f3c0a39c1739244 diff --git a/sdk_container/src/third_party/portage-stable/app-containers/docker/docker-29.5.2.ebuild b/sdk_container/src/third_party/portage-stable/app-containers/docker/docker-29.5.2.ebuild index 8d1387f7186..6f21ae350c0 100644 --- a/sdk_container/src/third_party/portage-stable/app-containers/docker/docker-29.5.2.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-containers/docker/docker-29.5.2.ebuild @@ -49,6 +49,7 @@ BDEPEND=" dev-go/go-md2man virtual/pkgconfig >=dev-lang/go-1.25.5 + ' + elog + + if has_version sys-fs/zfs; then + elog " ZFS storage driver is available" + elog " Check https://docs.docker.com/storage/storagedriver/zfs-driver for more info" + elog + fi + + optfeature "rootless mode support" sys-apps/shadow + optfeature "rootless mode support" sys-apps/rootlesskit + optfeature_header "for rootless mode you also need a network stack" + optfeature "rootless mode network stack" app-containers/slirp4netns +} diff --git a/sdk_container/src/third_party/portage-stable/app-containers/docker/metadata.xml b/sdk_container/src/third_party/portage-stable/app-containers/docker/metadata.xml index 29ae0a0b6db..95e58bf4813 100644 --- a/sdk_container/src/third_party/portage-stable/app-containers/docker/metadata.xml +++ b/sdk_container/src/third_party/portage-stable/app-containers/docker/metadata.xml @@ -12,6 +12,10 @@ williamh@gentoo.org William Hubbs + + arthurzam@gentoo.org + Arthur Zamarin + Enables dependencies for the "btrfs" graph driver, including diff --git a/sdk_container/src/third_party/portage-stable/app-containers/incus/Manifest b/sdk_container/src/third_party/portage-stable/app-containers/incus/Manifest index d9df4cc0082..11314e4d040 100644 --- a/sdk_container/src/third_party/portage-stable/app-containers/incus/Manifest +++ b/sdk_container/src/third_party/portage-stable/app-containers/incus/Manifest @@ -1,7 +1,7 @@ DIST incus-7.0.1.tar.xz 13961756 BLAKE2B 6266f2c1984a8fd7b1290b6e772d01f95c6d849a5c16216a00f9087909910b62d4530ae955993ca4ee4e63fcc10489f95fef994469934d08151f51b50ba37007 SHA512 8113252041de49796c3317e5b22e49308bd5f6741f7eff0bb68fecf1bd1f41f661e219b1003afab69bd056a629f7427ec6d472e4555b7eca0a1e47fc21a50b55 DIST incus-7.0.1.tar.xz.asc 833 BLAKE2B db72bbeacadb282964f2214bd6f2fd6548e6b6d83fb861e5f9662e67a070e4827102be920c2702ee406c3b197cbd1dc96934dcdd6dcc677538d16c89f23ff1eb SHA512 08d29eaced3c70002f1b3963443467b5a62a80bb19a680d4ea52caf7c422195fbab3887ee38036cc8a8ea77cd72a401d0e53cd400f7267fcf9edd59b3fdeef30 -DIST incus-7.2.tar.xz 13899812 BLAKE2B 67504a86755517f785cfcb869560a5ba8bda86c538e172a53309362a8590266c1c748840ff33a55a435daaf99a38b108a0becca514bcfc90c4296fad25145f97 SHA512 219e9de0d483fdb05dc7782d129de81864903b61c010c97d2606b59487be95a2a0362c5b54909471f8fe20777bbcec88c82a86d803227e28f28f8def7a5ba613 -DIST incus-7.2.tar.xz.asc 833 BLAKE2B a01ea73af3cc3447874627fa1687fbde2346f7cba77a607a3decf07def91026260aa34a1aeaaa7392d3ddd543e1530d50b657117b72e22210f811c8f6bc91535 SHA512 87f609cb97c07306b9578e869948e28f4739a1ad2d9da7ddf4614429eadb08972dd4f80e7c8c6e2fabb7bfc975ca2273432c0a975041d45cea8b1129c769772a DIST incus-7.3-cve-commits-bgo980304.tar.xz 9564 BLAKE2B 9c53f58e460608ae67d16be04e030515cc2862575739fb89c48627f2fc9c29c2472640dc28aa42cd634916a2375a7e1858a47a654cf408714246cd110b11e850 SHA512 96c0c6ae80096e9af3f9e2dd348bd48b553c9bbdff57bd3214e17032cdf459d450a6d25afca79b9197d1add06c01a35be5f63c910ab6e5c9d71643cebd52507c DIST incus-7.3.tar.xz 14151148 BLAKE2B 1f4109d956599ce798a3c156e1b37e9dfcea9350498e3cd2703b692d367da79f76cff482f9042bd35a58b99ae67fea8a7b393aaa2a9f13c54ea25ac68cd995ea SHA512 aad1a35bbe150cd3f1beee233839bff23c636a4bd9e2ff99a26f15adc971b5a383fae3900f4e7cf6997b153560f8f18dfab87f1e68d859f5a338e3522209a5c4 DIST incus-7.3.tar.xz.asc 833 BLAKE2B 62b81b3f97f0965dd6153a4b271942c81a1f217047b04c1d96108b49fa775be06cd610e2a1418f572cce2fda2dd8509223437c4241ec6d1a8eacae7c085b6d8d SHA512 3169f98a7c4bd2d5cd9a04b538dd21bf5e34d602d4651549da9c32043be8706fb55b2256685ce16fc9b167efe8d4f2f81a3500ca8726a9f6d7f892c7275c06ee +DIST incus-7.4.tar.xz 14314748 BLAKE2B 659fa53f3b86324ea9b49196c3a841b52f2e0ec514fb0a2e638911dff9e534bb253c29e0a028bb381fdbe86d63852e388cfb7334b3fd4af0117850eff6d8324c SHA512 2682f4f18f3835a21ee39aae00869d20046b4d0ae8c32886c140109741431916013e7c2d7036191876276c0847f06157adb04e1ee0091f372f6ec8566780c295 +DIST incus-7.4.tar.xz.asc 833 BLAKE2B 2ee5632e9da2f0a5a812c0b1c5a584dd7f5113367f2c2e7d3f8e6da6136a1c51ee66ab2e8b949b695a55a1ebde1edb61de3b4141d44ed1db7c8ac626a1004e20 SHA512 fb02fd99042961f3be99bc71c837b7983a0e0ffaa17e53a7a65f333ddefaebddec8755b98af161572a0dc6ae565557ea751f1c9c2549bcf653f966a48463d7ec diff --git a/sdk_container/src/third_party/portage-stable/app-containers/incus/incus-7.0.1.ebuild b/sdk_container/src/third_party/portage-stable/app-containers/incus/incus-7.0.1.ebuild deleted file mode 100644 index 79db277cea5..00000000000 --- a/sdk_container/src/third_party/portage-stable/app-containers/incus/incus-7.0.1.ebuild +++ /dev/null @@ -1,268 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit go-env go-module linux-info optfeature systemd toolchain-funcs verify-sig - -DESCRIPTION="Modern, secure and powerful system container and virtual machine manager" -HOMEPAGE="https://linuxcontainers.org/incus/introduction/ https://github.com/lxc/incus" -SRC_URI="https://linuxcontainers.org/downloads/incus/${P}.tar.xz - verify-sig? ( https://linuxcontainers.org/downloads/incus/${P}.tar.xz.asc )" - -LICENSE="Apache-2.0 BSD LGPL-3 MIT" -SLOT="0/lts" -KEYWORDS="amd64 ~arm64" -IUSE="apparmor fuidshift nls qemu selinux" - -DEPEND="acct-group/incus - acct-group/incus-admin - app-arch/xz-utils - >=app-containers/lxc-6.0.0:=[apparmor?,seccomp(+)] - dev-db/sqlite:3 - >=dev-libs/cowsql-1.15.9 - dev-libs/lzo - >=dev-libs/raft-0.22.1:=[lz4] - >=dev-util/xdelta-3.0[lzma(+)] - net-dns/dnsmasq[dhcp] - sys-libs/libcap - virtual/udev" -RDEPEND="${DEPEND} - fuidshift? ( !app-containers/lxd ) - net-firewall/ebtables - net-firewall/nftables[json] - sys-apps/iproute2 - sys-fs/fuse:* - >=sys-fs/lxcfs-6.0.0 - sys-fs/squashfs-tools[lzma] - virtual/acl - apparmor? ( sec-policy/apparmor-profiles ) - qemu? ( - app-cdr/cdrtools - app-emulation/qemu[spice,usbredir,virtfs] - sys-apps/gptfdisk - ) - selinux? ( sec-policy/selinux-incus )" -BDEPEND=">=dev-lang/go-1.25.11 - nls? ( sys-devel/gettext ) - verify-sig? ( sec-keys/openpgp-keys-linuxcontainers )" - -CONFIG_CHECK=" - ~AIO - ~CGROUPS - ~IPC_NS - ~NET_NS - ~PID_NS - - ~SECCOMP - ~USER_NS - ~UTS_NS - - ~KVM - ~MACVTAP - ~VHOST_VSOCK -" - -ERROR_AIO="CONFIG_AIO is required." -ERROR_IPC_NS="CONFIG_IPC_NS is required." -ERROR_NET_NS="CONFIG_NET_NS is required." -ERROR_PID_NS="CONFIG_PID_NS is required." -ERROR_SECCOMP="CONFIG_SECCOMP is required." -ERROR_UTS_NS="CONFIG_UTS_NS is required." - -WARNING_KVM="CONFIG_KVM and CONFIG_KVM_AMD/-INTEL is required for virtual machines." -WARNING_MACVTAP="CONFIG_MACVTAP is required for virtual machines." -WARNING_VHOST_VSOCK="CONFIG_VHOST_VSOCK is required for virtual machines." - -# Go magic. -QA_PREBUILT="/usr/bin/incus - /usr/bin/incus-agent - /usr/bin/incus-benchmark - /usr/bin/incus-migrate - /usr/bin/lxc-to-incus - /usr/sbin/fuidshift - /usr/sbin/incusd - /usr/sbin/lxd-to-incus" - -VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/linuxcontainers.asc - -# The testsuite must be run as root. -# make: *** [Makefile:156: check] Error 1 -RESTRICT="test" - -GOPATH="${S}/_dist" - -src_unpack() { - verify-sig_src_unpack - go-module_src_unpack -} - -src_prepare() { - export GOPATH="${S}/_dist" - - default - - sed -i \ - -e "s:\./configure:./configure --prefix=/usr --libdir=${EPREFIX}/usr/lib/incus:g" \ - -e "s:make:make ${MAKEOPTS}:g" \ - Makefile || die - - sed -i \ - -e "s:/usr/share/OVMF:/usr/share/edk2/OvmfX64:g" \ - -e "s:OVMF_VARS.ms.fd:OVMF_VARS.fd:g" \ - internal/server/instance/drivers/edk2/driver_edk2.go || die "Failed to fix hardcoded ovmf paths." - - cp "${FILESDIR}"/incus-6.14-r1.service "${T}"/incus.service || die - if use apparmor; then - sed -i \ - '/^EnvironmentFile=.*/a ExecStartPre=\/usr\/libexec\/lxc\/lxc-apparmor-load' \ - "${T}"/incus.service || die - fi - - # Disable -Werror's from go modules. - find "${S}" -name "cgo.go" -exec sed -i "s/ -Werror / /g" {} + || die -} - -src_configure() { :; } - -incus_get_bindir() { - local host_arch=${1} - if [[ "${GOARCH}" != "${host_arch}" ]]; then - echo "_dist/bin/linux_${GOARCH}" - else - echo "_dist/bin" - fi -} - -src_compile() { - export GOPATH="${S}/_dist" - export CGO_LDFLAGS_ALLOW="-Wl,-z,now" - - for k in incus-benchmark incus-simplestreams incus-user incus lxc-to-incus lxd-to-incus ; do - ego install -v -x "${S}/cmd/${k}" - done - - if use fuidshift ; then - ego install -v -x "${S}/cmd/fuidshift" - fi - - ego install -v -x -tags libsqlite3 "${S}"/cmd/incusd - - # Needs to be built statically - CGO_ENABLED=0 go install -v -tags agent,netgo,static -buildmode default "${S}"/cmd/incus-migrate - - local bindir=$(incus_get_bindir "$(go-env_goarch "${CBUILD}")") - - # Build the VM agents, statically too - if use amd64 ; then - GOARCH=amd64 CGO_ENABLED=0 ego build -o "${bindir}"/incus-agent.linux.x86_64 -v \ - -tags agent,netgo,static -buildmode default "${S}"/cmd/incus-agent - GOARCH=386 CGO_ENABLED=0 ego build -o "${bindir}"/incus-agent.linux.i686 -v \ - -tags agent,netgo,static -buildmode default "${S}"/cmd/incus-agent - GOARCH=amd64 GOOS=windows CGO_ENABLED=0 ego build -o "${bindir}"/incus-agent.windows.x86_64 -v \ - -tags agent,netgo,static -buildmode default "${S}"/cmd/incus-agent - GOARCH=386 GOOS=windows CGO_ENABLED=0 ego build -o "${bindir}"/incus-agent.windows.i686 -v \ - -tags agent,netgo,static -buildmode default "${S}"/cmd/incus-agent - elif use arm64 ; then - GOARCH=arm64 CGO_ENABLED=0 ego build -o "${bindir}"/incus-agent.linux.aarch64 -v \ - -tags agent,netgo,static -buildmode default "${S}"/cmd/incus-agent - GOARCH=arm64 GOOS=windows CGO_ENABLED=0 ego build -o "${bindir}"/incus-agent.windows.aarch64 -v \ - -tags agent,netgo,static -buildmode default "${S}"/cmd/incus-agent - else - echo "No VM support for this arch." - return - fi - - use nls && emake build-mo -} - -src_test() { - emake check -} - -src_install() { - export GOPATH="${S}/_dist" - - export GOHOSTARCH=$(go-env_goarch "${CBUILD}") - local bindir=$(incus_get_bindir "${GOHOSTARCH}") - - newsbin "${FILESDIR}"/incus-startup-0.4.sh incus-startup - - # Admin tools - for l in incusd incus-user lxd-to-incus ; do - dosbin "${bindir}/${l}" - done - - # User tools - for m in incus-benchmark incus-migrate incus-simplestreams incus lxc-to-incus ; do - dobin "${bindir}/${m}" - done - - # VM Agents - if use amd64 ; then - exeinto /usr/libexec/incus/agents - doexe ${bindir}/incus-agent.linux.x86_64 - doexe ${bindir}/incus-agent.linux.i686 - doexe ${bindir}/incus-agent.windows.x86_64 - doexe ${bindir}/incus-agent.windows.i686 - elif use arm64 ; then - exeinto /usr/libexec/incus/agents - doexe ${bindir}/incus-agent.linux.aarch64 - doexe ${bindir}/incus-agent.windows.aarch64 - fi - - # fuidshift, should be moved under admin tools at some point - if use fuidshift ; then - dosbin ${bindir}/fuidshift - fi - - newconfd "${FILESDIR}"/incus-6.0.confd incus - newinitd "${FILESDIR}"/incus-6.0.initd incus - newinitd "${FILESDIR}"/incus-user-0.4.initd incus-user - - systemd_dounit "${T}"/incus.service - systemd_newunit "${FILESDIR}"/incus-0.4.socket incus.socket - systemd_newunit "${FILESDIR}"/incus-startup-0.4.service incus-startup.service - systemd_newunit "${FILESDIR}"/incus-user-0.4.service incus-user.service - systemd_newunit "${FILESDIR}"/incus-user-0.4.socket incus-user.socket - - if ! tc-is-cross-compiler; then - # Generate and install shell completion files. - mkdir -p "${D}"/usr/share/{bash-completion/completions/,fish/vendor_completions.d/,zsh/site-functions/} || die - "${bindir}"/incus completion bash > "${D}"/usr/share/bash-completion/completions/incus || die - "${bindir}"/incus completion fish > "${D}"/usr/share/fish/vendor_completions.d/incus.fish || die - "${bindir}"/incus completion zsh > "${D}"/usr/share/zsh/site-functions/_incus || die - else - ewarn "Shell completion files not installed! Install them manually with incus completion --help" - fi - - dodoc AUTHORS - dodoc -r doc/* - use nls && domo po/*.mo - - # Incus needs INCUS_EDK2_PATH in env to find OVMF files for virtual machines, #946184, - # and INCUS_AGENT_PATH to find multi-setup agents for VMs, #959878, - # and INCUS_SECURITY_SELINUX=true to enable selinux support (until its enabled by default) - newenvd "${FILESDIR}"/90incus.envd 90incus - if use selinux; then - echo "INCUS_SECURITY_SELINUX=true" >> "${D}"/etc/env.d/90incus - fi -} - -pkg_postinst() { - elog - elog "Please see" - elog " https://wiki.gentoo.org/wiki/Incus" - elog " https://wiki.gentoo.org/wiki/Incus#Migrating_from_LXD" - elog - optfeature "OCI container images support" app-containers/skopeo app-containers/umoci - optfeature "support for ACME certificate issuance" app-crypt/lego - optfeature "ipv6 support" net-dns/dnsmasq[ipv6] - optfeature "full incus-migrate support" net-misc/rsync - optfeature "btrfs storage backend" sys-fs/btrfs-progs - optfeature "lvm2 storage backend" sys-fs/lvm2 - optfeature "zfs storage backend" sys-fs/zfs - elog - elog "Be sure to add your local user to the incus group." - elog -} diff --git a/sdk_container/src/third_party/portage-stable/app-containers/incus/incus-7.2.ebuild b/sdk_container/src/third_party/portage-stable/app-containers/incus/incus-7.4.ebuild similarity index 99% rename from sdk_container/src/third_party/portage-stable/app-containers/incus/incus-7.2.ebuild rename to sdk_container/src/third_party/portage-stable/app-containers/incus/incus-7.4.ebuild index 8d30b9cb7c7..6874100f2e6 100644 --- a/sdk_container/src/third_party/portage-stable/app-containers/incus/incus-7.2.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-containers/incus/incus-7.4.ebuild @@ -49,7 +49,7 @@ RDEPEND="${DEPEND} sys-apps/gptfdisk ) selinux? ( sec-policy/selinux-incus )" -BDEPEND=">=dev-lang/go-1.25.10 +BDEPEND=">=dev-lang/go-1.26.7 nls? ( sys-devel/gettext ) verify-sig? ( sec-keys/openpgp-keys-linuxcontainers )" diff --git a/sdk_container/src/third_party/portage-stable/app-containers/incus/incus-9999.ebuild b/sdk_container/src/third_party/portage-stable/app-containers/incus/incus-9999.ebuild index 8d2b2fcf70d..6874100f2e6 100644 --- a/sdk_container/src/third_party/portage-stable/app-containers/incus/incus-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-containers/incus/incus-9999.ebuild @@ -49,7 +49,7 @@ RDEPEND="${DEPEND} sys-apps/gptfdisk ) selinux? ( sec-policy/selinux-incus )" -BDEPEND=">=dev-lang/go-1.25.12 +BDEPEND=">=dev-lang/go-1.26.7 nls? ( sys-devel/gettext ) verify-sig? ( sec-keys/openpgp-keys-linuxcontainers )" diff --git a/sdk_container/src/third_party/portage-stable/app-crypt/gnupg/Manifest b/sdk_container/src/third_party/portage-stable/app-crypt/gnupg/Manifest index d87e487bb0d..9e60a50e5c9 100644 --- a/sdk_container/src/third_party/portage-stable/app-crypt/gnupg/Manifest +++ b/sdk_container/src/third_party/portage-stable/app-crypt/gnupg/Manifest @@ -2,3 +2,5 @@ DIST gnupg-2.5.20.tar.bz2 8327674 BLAKE2B 5a2890203cf4ac52d86897ffb104896c5cbc8a DIST gnupg-2.5.20.tar.bz2.sig 119 BLAKE2B fc54197b59aad9cb26cfcef062a25f882cf26e5cf8ca0c9d3672d4501cbe453b3334225291b3d4fbc4a49c7bb52102963a5386e9b59b4ec10a0385fe8be004b6 SHA512 0a54e9df9f1d6aa6d2f5fb841a3ae36d7530d3ab34bc7635892f58020e73e950a420120430206860e5eb4a7dc7b668f03e31eb42e381b25c4bca07f3e5f2f95b DIST gnupg-2.5.21.tar.bz2 8351785 BLAKE2B 3d00cb6e7779358886a8bb8710f5e00e43dfed6e4f495c8ae93b653ac7a688f4c622e721f64a657fd48ed2135c378d456e88828a1e0f5745ccf701cfd0b77d47 SHA512 dcc4e976e56411c0dd7309c0cb7e790b409709af55bb93883d257890abe72b17442d6c8fd682fef0e019d70e46a6a5cf860f1ae355a99024ed2aea230de8c0ea DIST gnupg-2.5.21.tar.bz2.sig 119 BLAKE2B e5ba3cebef212c5a1ec9f9af11c89898a6bf7076ecbf9fd1a5eca738c721b4225ee3995666b9c2b8b5683f6169ea3a1a7987d537e65d26eaf0d01f7dea79fd3f SHA512 f5364d02d3df2b2d611bbeb22fc66879426fa4e8addb0881410263873165ee31b5f3a20fb9b496d353a62cf1ac6fb4ef3e0ebbc609c246150e7019069f1419e9 +DIST gnupg-2.5.22.tar.bz2 8363854 BLAKE2B 8fe56d7fb839d5ec095d3ed90dc2365745e6926ecb9ff9d912f94e49956a17c0b5f3ef3459915059451693dc49e2b1b61e31f195775f433e6aebdca2dea9ad9c SHA512 5ff5834e42009f5741d84dcf25473adb5704ca796e1bd8d1a8ea3216b854864f08504f5ff5279026bab24b5baa255e9bd18e70bc1d4fc8fe293351760ab71231 +DIST gnupg-2.5.22.tar.bz2.sig 119 BLAKE2B 63ddc912a126c688901325c0eb73a29be4307a8cb82234502aa038d0c9f02f431c1b2e7a8087a15fea9af88c99127a18eb734116c64ef6b75dae80e0dd8f7466 SHA512 3ee64251b87d016712914ba559f6cf1e66717be223b2ac648a0424d3b54aced015fd4521364bc60be931df82ec40b6337b4c9bb02c24ea9225d849da177e2fcf diff --git a/sdk_container/src/third_party/portage-stable/app-crypt/gnupg/files/0001-Fix-stub-functions-to-avoid-LTO-linking-bugs.patch b/sdk_container/src/third_party/portage-stable/app-crypt/gnupg/files/0001-Fix-stub-functions-to-avoid-LTO-linking-bugs.patch deleted file mode 100644 index 65ff69294d4..00000000000 --- a/sdk_container/src/third_party/portage-stable/app-crypt/gnupg/files/0001-Fix-stub-functions-to-avoid-LTO-linking-bugs.patch +++ /dev/null @@ -1,200 +0,0 @@ -https://bugs.gentoo.org/854222 - -From 81760cc931d69f37cf2a8ad54616a1af590fd2cf Mon Sep 17 00:00:00 2001 -Message-ID: <81760cc931d69f37cf2a8ad54616a1af590fd2cf.1770174575.git.sam@gentoo.org> -From: Werner Koch -Date: Wed, 28 Jan 2026 13:45:00 +0100 -Subject: [PATCH GnuPG] Fix stub functions to avoid LTO linking bugs. - --- ---- - g10/gpgv.c | 42 ++++++++++++++++++++++++++++-------------- - g10/test-stubs.c | 36 +++++++++++++++++++++++------------- - 2 files changed, 51 insertions(+), 27 deletions(-) - -diff --git a/g10/gpgv.c b/g10/gpgv.c -index b65dfa66b..23704e21c 100644 ---- a/g10/gpgv.c -+++ b/g10/gpgv.c -@@ -462,10 +462,13 @@ keyserver_any_configured (ctrl_t ctrl) - } - - int --keyserver_import_keyid (u32 *keyid, void *dummy, unsigned int flags) -+keyserver_import_keyid (ctrl_t ctrl, -+ u32 *keyid,struct keyserver_spec *keyserver, -+ unsigned int flags) - { -+ (void)ctrl; - (void)keyid; -- (void)dummy; -+ (void)keyserver; - (void)flags; - return -1; - } -@@ -493,9 +496,14 @@ keyserver_import_fpr_ntds (ctrl_t ctrl, - } - - int --keyserver_import_cert (const char *name) -+keyserver_import_cert (ctrl_t ctrl, const char *name, int dane_mode, -+ unsigned char **fpr,size_t *fpr_len) - { -+ (void)ctrl; - (void)name; -+ (void)dane_mode; -+ (void)fpr; -+ (void)fpr_len; - return -1; - } - -@@ -511,11 +519,17 @@ keyserver_import_wkd (ctrl_t ctrl, const char *name, unsigned int flags, - return GPG_ERR_BUG; - } - --int --keyserver_import_mbox (const char *name,struct keyserver_spec *spec) -+gpg_error_t -+keyserver_import_mbox (ctrl_t ctrl, const char *mbox, -+ unsigned char **fpr, size_t *fprlen, -+ struct keyserver_spec *keyserver, unsigned int flags) - { -- (void)name; -- (void)spec; -+ (void)ctrl; -+ (void)mbox; -+ (void)fpr; -+ (void)fprlen; -+ (void)keyserver; -+ (void)flags; - return -1; - } - -@@ -647,14 +661,11 @@ parse_preferred_keyserver(PKT_signature *sig) - return NULL; - } - --struct keyserver_spec * --parse_keyserver_uri (const char *uri, int require_scheme, -- const char *configname, unsigned int configlineno) -+keyserver_spec_t -+parse_keyserver_uri (const char *string, int require_scheme) - { -- (void)uri; -+ (void)string; - (void)require_scheme; -- (void)configname; -- (void)configlineno; - return NULL; - } - -@@ -666,11 +677,14 @@ free_keyserver_spec (struct keyserver_spec *keyserver) - - /* Stubs to avoid linking to photoid.c */ - void --show_photos (const struct user_attribute *attrs, int count, PKT_public_key *pk) -+show_photos (ctrl_t ctrl, const struct user_attribute *attrs, int count, -+ PKT_public_key *pk, PKT_user_id *uid) - { -+ (void)ctrl; - (void)attrs; - (void)count; - (void)pk; -+ (void)uid; - } - - int -diff --git a/g10/test-stubs.c b/g10/test-stubs.c -index 9b41c8929..16d10972d 100644 ---- a/g10/test-stubs.c -+++ b/g10/test-stubs.c -@@ -193,10 +193,13 @@ keyserver_any_configured (ctrl_t ctrl) - } - - int --keyserver_import_keyid (u32 *keyid, void *dummy, unsigned int flags) -+keyserver_import_keyid (ctrl_t ctrl, -+ u32 *keyid,struct keyserver_spec *keyserver, -+ unsigned int flags) - { -+ (void)ctrl; - (void)keyid; -- (void)dummy; -+ (void)keyserver; - (void)flags; - return -1; - } -@@ -224,9 +227,14 @@ keyserver_import_fpr_ntds (ctrl_t ctrl, - } - - int --keyserver_import_cert (const char *name) -+keyserver_import_cert (ctrl_t ctrl, const char *name, int dane_mode, -+ unsigned char **fpr,size_t *fpr_len) - { -+ (void)ctrl; - (void)name; -+ (void)dane_mode; -+ (void)fpr; -+ (void)fpr_len; - return -1; - } - -@@ -242,15 +250,17 @@ keyserver_import_wkd (ctrl_t ctrl, const char *name, unsigned int flags, - return GPG_ERR_BUG; - } - --int --keyserver_import_mbox (ctrl_t ctrl, const char *mbox, unsigned char **fpr, -- size_t *fprlen, struct keyserver_spec *keyserver) -+gpg_error_t -+keyserver_import_mbox (ctrl_t ctrl, const char *mbox, -+ unsigned char **fpr, size_t *fprlen, -+ struct keyserver_spec *keyserver, unsigned int flags) - { - (void)ctrl; - (void)mbox; - (void)fpr; - (void)fprlen; - (void)keyserver; -+ (void)flags; - return -1; - } - -@@ -381,14 +391,11 @@ parse_preferred_keyserver(PKT_signature *sig) - return NULL; - } - --struct keyserver_spec * --parse_keyserver_uri (const char *uri, int require_scheme, -- const char *configname, unsigned int configlineno) -+keyserver_spec_t -+parse_keyserver_uri (const char *string, int require_scheme) - { -- (void)uri; -+ (void)string; - (void)require_scheme; -- (void)configname; -- (void)configlineno; - return NULL; - } - -@@ -400,11 +407,14 @@ free_keyserver_spec (struct keyserver_spec *keyserver) - - /* Stubs to avoid linking to photoid.c */ - void --show_photos (const struct user_attribute *attrs, int count, PKT_public_key *pk) -+show_photos (ctrl_t ctrl, const struct user_attribute *attrs, int count, -+ PKT_public_key *pk, PKT_user_id *uid) - { -+ (void)ctrl; - (void)attrs; - (void)count; - (void)pk; -+ (void)uid; - } - - int --- -2.53.0 - diff --git a/sdk_container/src/third_party/portage-stable/app-crypt/gnupg/files/0003-agent-Fix-the-regression-in-pkdecrypt-with-TPM-RSA.patch b/sdk_container/src/third_party/portage-stable/app-crypt/gnupg/files/0003-agent-Fix-the-regression-in-pkdecrypt-with-TPM-RSA.patch deleted file mode 100644 index 1a2965106d3..00000000000 --- a/sdk_container/src/third_party/portage-stable/app-crypt/gnupg/files/0003-agent-Fix-the-regression-in-pkdecrypt-with-TPM-RSA.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 6eed3959303c81c9699fe9273030e480732f72be Mon Sep 17 00:00:00 2001 -Message-ID: <6eed3959303c81c9699fe9273030e480732f72be.1771025112.git.sam@gentoo.org> -From: NIIBE Yutaka -Date: Thu, 12 Feb 2026 11:51:17 +0900 -Subject: [PATCH GnuPG] agent: Fix the regression in pkdecrypt with TPM RSA. - -* agent/divert-tpm2.c (divert_tpm2_pkdecrypt): Care about additional -0x00. - --- - -GnuPG-bug-id: 8045 -Signed-off-by: NIIBE Yutaka ---- - agent/divert-tpm2.c | 9 +++++++++ - 1 file changed, 9 insertions(+) - -diff --git a/agent/divert-tpm2.c b/agent/divert-tpm2.c -index 5500c07f1..839a039bc 100644 ---- a/agent/divert-tpm2.c -+++ b/agent/divert-tpm2.c -@@ -138,6 +138,15 @@ divert_tpm2_pkdecrypt (ctrl_t ctrl, - if (!smatch (&s, n, "a")) - return gpg_error (GPG_ERR_UNKNOWN_SEXP); - n = snext (&s); -+ /* NOTE: gpg-agent protocol uses signed integer for RSA (%m in -+ * MPI), where 0x00 is added when the MSB is 1. TPM2 uses -+ * unsigned integer. We need to remove this 0x00, or else -+ * it may result GPG_ERR_TOO_LARGE in tpm2daemon. */ -+ if (!*s && (n&1)) -+ { -+ s++; -+ n--; -+ } - } - else if (smatch (&s, n, "ecdh")) - { --- -2.53.0 - diff --git a/sdk_container/src/third_party/portage-stable/app-crypt/gnupg/gnupg-2.5.22.ebuild b/sdk_container/src/third_party/portage-stable/app-crypt/gnupg/gnupg-2.5.22.ebuild new file mode 100644 index 00000000000..e52a6cf4fa4 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/app-crypt/gnupg/gnupg-2.5.22.ebuild @@ -0,0 +1,221 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Maintainers should: +# 1. Join the "Gentoo" project at https://dev.gnupg.org/project/view/27/ +# 2. Subscribe to release tasks like https://dev.gnupg.org/T6159 +# (find the one for the current release then subscribe to it + +# any subsequent ones linked within so you're covered for a while.) + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/gnupg.asc +# in-source builds are not supported: https://dev.gnupg.org/T6313#166339 +inherit flag-o-matic out-of-source multiprocessing systemd toolchain-funcs verify-sig + +MY_P="${P/_/-}" + +DESCRIPTION="The GNU Privacy Guard, a GPL OpenPGP implementation" +HOMEPAGE="https://gnupg.org/" +SRC_URI="mirror://gnupg/gnupg/${MY_P}.tar.bz2" +SRC_URI+=" verify-sig? ( mirror://gnupg/gnupg/${P}.tar.bz2.sig )" +S="${WORKDIR}/${MY_P}" + +LICENSE="GPL-3+" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" +IUSE="+alternatives bzip2 doc ldap nls readline selinux +smartcard ssl test +tofu tpm tools usb user-socket wks-server" +RESTRICT="!test? ( test )" +REQUIRED_USE="test? ( tofu )" + +# Existence of executables is checked during configuration +DEPEND=" + >=dev-libs/libassuan-3.0.0-r1:= + >=dev-libs/libgcrypt-1.11.0:= + >=dev-libs/libgpg-error-1.56 + >=dev-libs/libksba-1.6.3 + >=dev-libs/npth-1.2 + virtual/zlib:= + bzip2? ( app-arch/bzip2 ) + ldap? ( net-nds/openldap:= ) + readline? ( sys-libs/readline:0= ) + smartcard? ( usb? ( virtual/libusb:1 ) ) + tofu? ( >=dev-db/sqlite-3.27 ) + tpm? ( >=app-crypt/tpm2-tss-2.4.0:= ) + ssl? ( >=net-libs/gnutls-3.2:0= ) +" +RDEPEND=" + ${DEPEND} + nls? ( virtual/libintl ) + selinux? ( sec-policy/selinux-gpg ) + wks-server? ( virtual/mta ) +" +PDEPEND=" + app-crypt/pinentry + alternatives? ( + app-alternatives/gpg[-freepg(-)] + ) +" +BDEPEND=" + virtual/pkgconfig + doc? ( sys-apps/texinfo ) + nls? ( sys-devel/gettext ) + verify-sig? ( sec-keys/openpgp-keys-gnupg ) +" + +DOCS=( + ChangeLog NEWS README THANKS TODO VERSION + doc/FAQ doc/DETAILS doc/HACKING doc/TRANSLATE doc/OpenPGP doc/KEYSERVER +) + +PATCHES=( + "${FILESDIR}"/${PN}-2.1.20-gpgscm-Use-shorter-socket-path-lengts-to-improve-tes.patch + "${FILESDIR}"/0002-Fix-stub-functions-to-avoid-LTO-linking-bugs-followup.patch +) + +src_prepare() { + default + + GNUPG_SYSTEMD_UNITS=( + dirmngr.service + dirmngr.socket + gpg-agent-browser.socket + gpg-agent-extra.socket + gpg-agent.service + gpg-agent.socket + gpg-agent-ssh.socket + ) + + cp "${GNUPG_SYSTEMD_UNITS[@]/#/${FILESDIR}/}" "${T}" || die + + # Inject SSH_AUTH_SOCK into user's sessions after enabling gpg-agent-ssh.socket in systemctl --user mode, + # idea borrowed from libdbus, see + # https://gitlab.freedesktop.org/dbus/dbus/-/blob/master/bus/systemd-user/dbus.socket.in#L6 + # + # This cannot be upstreamed, as it requires determining the exact prefix of 'systemctl', + # which in turn requires discovery in Autoconf, something that upstream deeply resents. + sed -e "/DirectoryMode=/a ExecStartPost=-${EPREFIX}/bin/systemctl --user set-environment SSH_AUTH_SOCK=%t/gnupg/S.gpg-agent.ssh" \ + -i "${T}"/gpg-agent-ssh.socket || die + + # Since 2.5.3, --supervised is called --deprecated-supervised. See + # https://dev.gnupg.org/rGa019a0fcd8dfb9d1eae5bc991fdd54b7cf55641e + sed -i "s/--supervised/--deprecated-supervised/g" "${T}"/*.service || die +} + +my_src_configure() { + local myconf=( + # --enable-selinux controls ENABLE_SELINUX_HACKS which + # prohibits import of secret keys, so doesn't seem desirable + # to have that forced on with USE=selinux. + $(use_enable bzip2) + $(use_enable nls) + $(use_enable smartcard scdaemon) + $(use_enable ssl gnutls) + $(use_enable test all-tests) + $(use_enable test tests) + $(use_enable tofu) + $(use_enable tofu keyboxd) + $(use_enable tofu sqlite) + $(usex tpm '--with-tss=intel' '--disable-tpm2d') + $(use smartcard && use_enable usb ccid-driver || echo '--disable-ccid-driver') + $(use_enable wks-server wks-tools) + $(use_with ldap) + $(use_with readline) + + # Hardcode mailprog to /usr/libexec/sendmail even if it does not exist. + # As of GnuPG 2.3, the mailprog substitution is used for the binary called + # by wks-client & wks-server; and if it's autodetected but not not exist at + # build time, then then 'gpg-wks-client --send' functionality will not + # work. This has an unwanted side-effect in stage3 builds: there was a + # [R]DEPEND on virtual/mta, which also brought in virtual/logger, bloating + # the build where the install guide previously make the user chose the + # logger & mta early in the install. + --with-mailprog=/usr/libexec/sendmail + + --disable-ntbtls + --enable-gpgsm + --enable-large-secmem + + CC_FOR_BUILD="$(tc-getBUILD_CC)" + GPGRT_CONFIG="${ESYSROOT}/usr/bin/${CHOST}-gpgrt-config" + + $("${S}/configure" --help | grep -o -- '--without-.*-prefix') + ) + + if use prefix && use usb; then + # bug #649598 + append-cppflags -I"${ESYSROOT}/usr/include/libusb-1.0" + fi + + if [[ ${CHOST} == *-solaris* ]] ; then + # these somehow are treated as fatal, but Solaris has different + # types for getpeername with socket_t + append-flags -Wno-incompatible-pointer-types + append-flags -Wno-unused-label + fi + + # bug #663142 + if use user-socket; then + myconf+=( --enable-run-gnupg-user-socket ) + fi + + # glib fails and picks up clang's internal stdint.h causing weird errors + tc-is-clang && export gl_cv_absolute_stdint_h="${ESYSROOT}"/usr/include/stdint.h + + econf "${myconf[@]}" +} + +my_src_compile() { + default + + use doc && emake -C doc html +} + +my_src_test() { + export TESTFLAGS="--parallel=$(get_makeopts_jobs)" + + default +} + +my_src_install() { + emake DESTDIR="${D}" install + + use tools && dobin tools/{gpgconf,gpgsplit,gpg-check-pattern} tools/make-dns-cert + + if use alternatives; then + # rename for app-alternatives/gpg + mv "${ED}"/usr/bin/gpg{,-reference} || die + mv "${ED}"/usr/bin/gpgv{,-reference} || die + mv "${ED}"/usr/share/man/man1/gpg{,-reference}.1 || die + mv "${ED}"/usr/share/man/man1/gpgv{,-reference}.1 || die + else + dosym gpg /usr/bin/gpg2 + dosym gpgv /usr/bin/gpgv2 + echo ".so man1/gpg.1" > "${ED}"/usr/share/man/man1/gpg2.1 || die + echo ".so man1/gpgv.1" > "${ED}"/usr/share/man/man1/gpgv2.1 || die + fi + + use doc && dodoc doc/gnupg.html/* +} + +my_src_install_all() { + einstalldocs + + use tools && dobin tools/{convert-from-106,mail-signed-keys,lspgpot} + use doc && dodoc doc/*.png + + # Dropped upstream in https://git.gnupg.org/cgi-bin/gitweb.cgi?p=gnupg.git;a=commitdiff;h=eae28f1bd4a5632e8f8e85b7248d1c4d4a10a5ed. + dodoc "${FILESDIR}"/README-systemd + systemd_douserunit "${GNUPG_SYSTEMD_UNITS[@]/#/${T}/}" +} + +pkg_postinst() { + # If /usr/bin/gpg and /usr/bin/gpgv do not exist, provide them. + if [[ ! -e ${EROOT}/usr/bin/gpg ]]; then + ln -sf -- gpg-reference "${EROOT}"/usr/bin/gpg || die + fi + + if [[ ! -e ${EROOT}/usr/bin/gpgv ]]; then + ln -sf -- gpgv-reference "${EROOT}"/usr/bin/gpgv || die + fi +} diff --git a/sdk_container/src/third_party/portage-stable/app-crypt/pinentry/pinentry-1.3.3.ebuild b/sdk_container/src/third_party/portage-stable/app-crypt/pinentry/pinentry-1.3.3.ebuild index 06610dbf2e3..6d26e51b1ac 100644 --- a/sdk_container/src/third_party/portage-stable/app-crypt/pinentry/pinentry-1.3.3.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-crypt/pinentry/pinentry-1.3.3.ebuild @@ -13,7 +13,7 @@ SRC_URI+=" verify-sig? ( mirror://gnupg/${PN}/${P}.tar.bz2.sig )" LICENSE="GPL-2" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" IUSE="caps efl emacs gtk keyring ncurses qt6 selinux wayland X" DEPEND=" diff --git a/sdk_container/src/third_party/portage-stable/app-crypt/tpm2-tools/Manifest b/sdk_container/src/third_party/portage-stable/app-crypt/tpm2-tools/Manifest index f6980bd982e..4343f5478f6 100644 --- a/sdk_container/src/third_party/portage-stable/app-crypt/tpm2-tools/Manifest +++ b/sdk_container/src/third_party/portage-stable/app-crypt/tpm2-tools/Manifest @@ -1,3 +1,4 @@ +DIST tpm2-tools-5.7-efivars-pretty-print.patch 337761 BLAKE2B 2ff6f5c9ed273483b02a14c46fc0266ee8b55fa50b46a1b9fbd2d99b01a10f2abe1c047159057d543bc5ab0eb4acf9808502805d3d2365749253e8899405007a SHA512 32c5a7a5c09b9e3636ca92fbf0e59a1256aaafe9c96a3375d226347cc3575ca74c920a700a780a7cff008c91fc86b7721218bc17d91be8398c7cbe3c2acc1a35 DIST tpm2-tools-5.7.1.tar.gz 1344510 BLAKE2B 77e3505bcb2977a435e7ad796574561e18b57861d840830ff6f70148227d756be129857475112c99183baddad79bf9483e1eae8fb08915dfa3fe53e4cdc44974 SHA512 b628ce4eb88092e106d5afef417e44c47e4450d0b5fc047cecbcc23be9f94703a5b777828106b8e5c5fd1a5b3fbb727e4d863cefe0ab75de661299064f42def9 DIST tpm2-tools-5.7.tar.gz 1339035 BLAKE2B 3984f25176e0b092793a33a0b40b396bc650de989e0b600989d11439cccdf7bc410535c01e1a0e985ab67b36b63eb02d392342aa1746b86727ba22d67d522389 SHA512 629b0b1826815877f452935285f7b3fe0f32bd24fe9130eb169a2dc9b7b254a737797043af9eea68be706b87c32ab2b7189151360c9c00bc5c31dce62a799670 DIST tpm2-tools-5.8.tar.gz 1447277 BLAKE2B bad9caa72b4849326df6348548b0b838bab095d311f86cbce511e437eb2a5006d209acdca3e75722ee3acb55458f74666d23b41da0264f60fde6ce73c7ea8ec6 SHA512 0bea68505a773f75476a1e0ea2abd8336a16f0b8900006512a81019708f04b50dbb7960922b37821278825305d33e042f82da2125e7409dacbd139cd52474e82 diff --git a/sdk_container/src/third_party/portage-stable/app-crypt/tpm2-tools/tpm2-tools-5.7.1.ebuild b/sdk_container/src/third_party/portage-stable/app-crypt/tpm2-tools/tpm2-tools-5.7.1.ebuild index 7c518c1ddf4..024a9a2549a 100644 --- a/sdk_container/src/third_party/portage-stable/app-crypt/tpm2-tools/tpm2-tools-5.7.1.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-crypt/tpm2-tools/tpm2-tools-5.7.1.ebuild @@ -9,10 +9,11 @@ inherit autotools bash-completion-r1 flag-o-matic python-any-r1 DESCRIPTION="Tools for the TPM 2.0 TSS" HOMEPAGE="https://github.com/tpm2-software/tpm2-tools" SRC_URI="https://github.com/tpm2-software/tpm2-tools/releases/download/${PV}/${P}.tar.gz" +SRC_URI+=" https://github.com/tpm2-software/tpm2-tools/commit/644867e8116b79a37fdf299101522ac245d05ce9.patch?full_index=1 -> ${PN}-5.7-efivars-pretty-print.patch" LICENSE="BSD" SLOT="0" -KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86" +KEYWORDS="amd64 arm ~arm64 ppc64 x86" IUSE="+fapi test" RESTRICT="!test? ( test )" @@ -37,6 +38,7 @@ BDEPEND="virtual/pkgconfig ${PYTHON_DEPS}" PATCHES=( + "${DISTDIR}/${PN}-5.7-efivars-pretty-print.patch" "${FILESDIR}/${PN}-5.6-Makefile-am-Dont-require-pandoc-for-tests.patch" "${FILESDIR}/${PN}-5.7-tests-Eliminate-dependency-on-which.patch" ) diff --git a/sdk_container/src/third_party/portage-stable/app-crypt/tpm2-tss/tpm2-tss-4.1.4.ebuild b/sdk_container/src/third_party/portage-stable/app-crypt/tpm2-tss/tpm2-tss-4.1.4.ebuild index 47c4f0de0fb..0fd684325c9 100644 --- a/sdk_container/src/third_party/portage-stable/app-crypt/tpm2-tss/tpm2-tss-4.1.4.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-crypt/tpm2-tss/tpm2-tss-4.1.4.ebuild @@ -11,7 +11,7 @@ SRC_URI="https://github.com/tpm2-software/${PN}/releases/download/${PV}/${P}.tar LICENSE="BSD-2" SLOT="0/4" -KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86" +KEYWORDS="amd64 arm ~arm64 ~loong ppc64 ~riscv x86" IUSE="doc +fapi +openssl mbedtls +policy static-libs test" RESTRICT="!test? ( test )" diff --git a/sdk_container/src/third_party/portage-stable/app-doc/eclass-manpages/Manifest b/sdk_container/src/third_party/portage-stable/app-doc/eclass-manpages/Manifest index 3061a0e7f68..9a4c6af8d14 100644 --- a/sdk_container/src/third_party/portage-stable/app-doc/eclass-manpages/Manifest +++ b/sdk_container/src/third_party/portage-stable/app-doc/eclass-manpages/Manifest @@ -1,2 +1,2 @@ -DIST eclass-manpages-20260426.tar.xz 516192 BLAKE2B 5fd40d3839fefcd90bce77c763b3a6b9ac53eca40f412c01e1bcf1a6744d376d11810a941541783dd901eb4f49ae656e1b78c9bd7ce01f7a6ed3069e29f19513 SHA512 dfc6a5ef6a9ad3bf12857618412146ac5081878fe1d2416b28fc37de85bc9f2ce4a25d3a087b5aff6953e79a3d6f9220be325d68e5b27c8d68fac62a12952aec DIST eclass-manpages-20260624.tar.xz 518600 BLAKE2B 8b044c6c35820ddaf60e02203e562d4c1d01445c1bd982ff33235ee6e55f93cccf0da7eb536dc2febded3207c4fee8e1d73b35281dc348e10e16b3abdc35cfed SHA512 82ecee2f15f99db10422740e81478eb590e682e181983a12aa48d92b462537527bfa50dbf4eb3ae61799355b17cc6ad0e5256b3345b65d2a135e625d3e133066 +DIST eclass-manpages-20260904.tar.xz 503496 BLAKE2B cde4ff5f44db2eaa0f874d07579a86efe9941d07e1702f2f679f6f84d2106f8d8931f8f643a9b850cb65827659a66e9c7faf0e7ff107bf5038ed6d70a78590d2 SHA512 9e06809303e46ea382a591b2ca5bb0e15873f21bd53e46bc68537196d4963b247978c654434b1f6445d352d49c139f11ee8b40f068433892801912dd6e98ef1f diff --git a/sdk_container/src/third_party/portage-stable/app-doc/eclass-manpages/eclass-manpages-20260426.ebuild b/sdk_container/src/third_party/portage-stable/app-doc/eclass-manpages/eclass-manpages-20260426.ebuild deleted file mode 100644 index 1427ea35350..00000000000 --- a/sdk_container/src/third_party/portage-stable/app-doc/eclass-manpages/eclass-manpages-20260426.ebuild +++ /dev/null @@ -1,24 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# Instructions to make a dist tarball: -# git clone https://github.com/projg2/eclass-to-manpage.git -# cd eclass-to-manpage -# make dist ECLASSDIR=~/g/eclass/ - -DESCRIPTION="Collection of Gentoo eclass manpages" -HOMEPAGE="https://github.com/projg2/eclass-to-manpage" -SRC_URI="https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${P}.tar.xz" - -LICENSE="GPL-2" -SLOT="0" -# Keep the keywords stable. No need to change to ~arch. -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos" - -BDEPEND="sys-apps/gawk" - -src_install() { - emake install DESTDIR="${D}" PREFIX="${EPREFIX}/usr" -} diff --git a/sdk_container/src/third_party/portage-stable/app-doc/eclass-manpages/eclass-manpages-20260904.ebuild b/sdk_container/src/third_party/portage-stable/app-doc/eclass-manpages/eclass-manpages-20260904.ebuild new file mode 100644 index 00000000000..28c51b608eb --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/app-doc/eclass-manpages/eclass-manpages-20260904.ebuild @@ -0,0 +1,42 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=9 + +if [[ ${PV} = 99999999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/gentoo/gentoo.git" + S="${WORKDIR}/${P}/eclass" +else + # Instructions to make a dist tarball: + # cd /path/to/gentoo-repo + # P=eclass-manpages-$(TZ=UTC git log -1 --pretty="%cd" \ + # --date="format-local:%Y%m%d" -- eclass) + # tar -cJf ${P}.tar.xz --transform="s:^eclass/:${P}/:" eclass/*.eclass + SRC_URI="https://distfiles.gentoo.org/pub/proj/qa/${PN}/${P}.tar.xz" + # Keep the keywords stable. No need to change to ~arch. + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos" +fi + +DESCRIPTION="Collection of Gentoo eclass manpages" +HOMEPAGE="https://gitweb.gentoo.org/repo/gentoo.git/tree/eclass" + +LICENSE="GPL-2" +SLOT="0" + +BDEPEND=">=sys-apps/pkgcore-0.12.42" + +if [[ ${PV} = 99999999 ]]; then + src_unpack() { + git-r3_fetch + git-r3_checkout "" "" "" "eclass/*.eclass" + } +fi + +src_compile() { + edo pmaint eclass -f man -o "{eclass}.eclass.5" *.eclass +} + +src_install() { + doman *.5 +} diff --git a/sdk_container/src/third_party/portage-stable/app-doc/eclass-manpages/eclass-manpages-99999999.ebuild b/sdk_container/src/third_party/portage-stable/app-doc/eclass-manpages/eclass-manpages-99999999.ebuild index 2a553378b66..ba4bebb4874 100644 --- a/sdk_container/src/third_party/portage-stable/app-doc/eclass-manpages/eclass-manpages-99999999.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-doc/eclass-manpages/eclass-manpages-99999999.ebuild @@ -1,32 +1,42 @@ -# Copyright 1999-2023 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=8 - -inherit git-r3 +EAPI=9 + +if [[ ${PV} = 99999999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/gentoo/gentoo.git" + S="${WORKDIR}/${P}/eclass" +else + # Instructions to make a dist tarball: + # cd /path/to/gentoo-repo + # P=eclass-manpages-$(TZ=UTC git log -1 --pretty="%cd" \ + # --date="format-local:%Y%m%d" -- eclass) + # tar -cJf ${P}.tar.xz --transform="s:^eclass/:${P}/:" eclass/*.eclass + SRC_URI="https://distfiles.gentoo.org/pub/proj/qa/${PN}/${P}.tar.xz" + # Keep the keywords stable. No need to change to ~arch. + KEYWORDS="~alpha amd64 arm arm64 ~hppa ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos" +fi DESCRIPTION="Collection of Gentoo eclass manpages" -HOMEPAGE="https://github.com/projg2/eclass-to-manpage" -EGIT_REPO_URI="https://anongit.gentoo.org/git/repo/gentoo.git - https://github.com/gentoo/gentoo.git" +HOMEPAGE="https://gitweb.gentoo.org/repo/gentoo.git/tree/eclass" LICENSE="GPL-2" SLOT="0" -BDEPEND="sys-apps/gawk" - -src_unpack() { - git-r3_fetch - git-r3_fetch "https://github.com/projg2/eclass-to-manpage.git" +BDEPEND=">=sys-apps/pkgcore-0.12.42" - git-r3_checkout "" "" "" eclass - git-r3_checkout "https://github.com/projg2/eclass-to-manpage.git" -} +if [[ ${PV} = 99999999 ]]; then + src_unpack() { + git-r3_fetch + git-r3_checkout "" "" "" "eclass/*.eclass" + } +fi src_compile() { - emake ECLASSDIR=eclass + edo pmaint eclass -f man -o "{eclass}.eclass.5" *.eclass } src_install() { - emake install ECLASSDIR=eclass DESTDIR="${D}" PREFIX="${EPREFIX}/usr" + doman *.5 } diff --git a/sdk_container/src/third_party/portage-stable/app-doc/eclass-manpages/metadata.xml b/sdk_container/src/third_party/portage-stable/app-doc/eclass-manpages/metadata.xml index 6b7923d9382..90b6413681e 100644 --- a/sdk_container/src/third_party/portage-stable/app-doc/eclass-manpages/metadata.xml +++ b/sdk_container/src/third_party/portage-stable/app-doc/eclass-manpages/metadata.xml @@ -5,13 +5,14 @@ mgorny@gentoo.org Michał Górny - - devmanual@gentoo.org + + ulm@gentoo.org tools-portage@gentoo.org Gentoo Portage tools team + projg2/eclass-to-manpage diff --git a/sdk_container/src/third_party/portage-stable/app-editors/nano/nano-9.2.ebuild b/sdk_container/src/third_party/portage-stable/app-editors/nano/nano-9.2.ebuild index d53000a57bf..ed81d2282d5 100644 --- a/sdk_container/src/third_party/portage-stable/app-editors/nano/nano-9.2.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-editors/nano/nano-9.2.ebuild @@ -15,7 +15,7 @@ else https://www.nano-editor.org/dist/v${PV:0:1}/${MY_P}.tar.xz verify-sig? ( https://www.nano-editor.org/dist/v${PV:0:1}/${MY_P}.tar.xz.asc ) " - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" + KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" BDEPEND="verify-sig? ( sec-keys/openpgp-keys-bennoschulenberg )" fi diff --git a/sdk_container/src/third_party/portage-stable/app-emulation/virt-firmware/Manifest b/sdk_container/src/third_party/portage-stable/app-emulation/virt-firmware/Manifest index 163662d7f6f..b43666d0156 100644 --- a/sdk_container/src/third_party/portage-stable/app-emulation/virt-firmware/Manifest +++ b/sdk_container/src/third_party/portage-stable/app-emulation/virt-firmware/Manifest @@ -1,3 +1,4 @@ DIST virt_firmware-26.2.tar.gz 143457 BLAKE2B fd0b977539af0cde4059e67e86ddf97c6dcffc3f7b1cf5975d181dd51b698334c8b22b2c6a951da2e39327a0dd43b44d03a05d0ff56be6defb4a48f872ac4e80 SHA512 6e7fa94009da095e15880b6be850b130ea3097394572c01fe0404b6d4bc11117b9ae730ca43408cb02b5ae9dc2671ef5635520dd2c8776bb2b6b68c8246d06c7 DIST virt_firmware-26.5.4.tar.gz 151249 BLAKE2B 05724cb57e33ef4d30cf987bdc7cf71b49be0b32437b27cec5fb43d39fe9fd0456f104da3ecac05e251f8249a974f18286f162f041247de2267436c993864be9 SHA512 5a61d4cf9e4aa025a12eab17f5f61ada197a7fc5c18d1ecdf0a6282d26cec8d261112a88ea24fbcdfd4ef69421667225ad8df1645cd30a1c1c374c8475e5c532 DIST virt_firmware-26.7.1.tar.gz 157512 BLAKE2B 75267393cd25afd0b0da4aef81390e93840321ac63fb6b846b11bb3e2672674fb593429d306c2a50b5e6efe3037ba9bd9ca28e90e4df6a8d5bddb8867843ce86 SHA512 5ca477eebbdd89be75b25d251757e1207f19f292aa4bc464479a1b33ecf5303b0b66932cfd0a7678fc876737138511a3aba6d8441a347c61d13b1bd958389611 +DIST virt_firmware-26.9.tar.gz 170099 BLAKE2B f8491e0c810e2f93ccd1707da350e580c1f53ee3e82005fb27dada88011b6086e5a3a18a51b059d2d396376002f2018f06685b2598739dc79472e5fa95ab1ed6 SHA512 e52fa77cfc26f92ab2c1ffc17645b375aaa10e47aceedaca377966fee3b2723d19931156704c6a2d7b333a63a8e42c35ed7ee2a4fdec3602840864028685690c diff --git a/sdk_container/src/third_party/portage-stable/app-emulation/virt-firmware/virt-firmware-26.9.ebuild b/sdk_container/src/third_party/portage-stable/app-emulation/virt-firmware/virt-firmware-26.9.ebuild new file mode 100644 index 00000000000..a00a00b212c --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/app-emulation/virt-firmware/virt-firmware-26.9.ebuild @@ -0,0 +1,66 @@ +# Copyright 2024-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{11..14} ) +DISTUTILS_USE_PEP517=setuptools + +inherit distutils-r1 optfeature pypi systemd + +DESCRIPTION="Tools for ovmf/armvirt firmware volumes" +HOMEPAGE=" + https://gitlab.com/kraxel/virt-firmware + https://pypi.org/project/virt-firmware/ +" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~riscv ~x86" + +RDEPEND=" + dev-python/cryptography[${PYTHON_USEDEP}] + dev-python/pefile[${PYTHON_USEDEP}] + dev-python/pyyaml[${PYTHON_USEDEP}] + dev-python/requests[${PYTHON_USEDEP}] +" + +# Need systemd-detect-virt +BDEPEND=" + test? ( + sys-apps/systemd + ) +" + +distutils_enable_tests unittest + +python_prepare_all() { + # Requires crypt module removed in py3.13 + rm virt/qemutest/cloudinit.py || die + sed -e '/from virt.qemutest.cloudinit import CloudInitISO/d' \ + -i tests/tests.py || die + + distutils-r1_python_prepare_all +} + +python_test() { + eunittest tests +} + +python_install_all() { + distutils-r1_python_install_all + + doman man/*.1 + + doinitd "${FILESDIR}/kernel-bootcfg-boot-successful" + systemd_dounit systemd/kernel-bootcfg-boot-successful.service + + # Use our own provided by sys-kernel/installkernel[efistub,systemd] + #exeinto /usr/lib/kernel/install.d + #doexe systemd/99-uki-uefi-setup.install +} + +pkg_postinst() { + optfeature "automatically updating UEFI configuration on each kernel installation or removal" \ + "sys-kernel/installkernel[systemd,efistub]" +} diff --git a/sdk_container/src/third_party/portage-stable/app-portage/gemato/gemato-20.13.ebuild b/sdk_container/src/third_party/portage-stable/app-portage/gemato/gemato-20.13.ebuild index 4df70f60f06..f1b8f86409e 100644 --- a/sdk_container/src/third_party/portage-stable/app-portage/gemato/gemato-20.13.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-portage/gemato/gemato-20.13.ebuild @@ -17,7 +17,7 @@ HOMEPAGE=" LICENSE="GPL-2+" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" IUSE="+gpg pretty-log tools" RDEPEND=" diff --git a/sdk_container/src/third_party/portage-stable/app-portage/gentoolkit/Manifest b/sdk_container/src/third_party/portage-stable/app-portage/gentoolkit/Manifest index 5bc7515ea64..64bca3fc5ea 100644 --- a/sdk_container/src/third_party/portage-stable/app-portage/gentoolkit/Manifest +++ b/sdk_container/src/third_party/portage-stable/app-portage/gentoolkit/Manifest @@ -1,2 +1,3 @@ DIST gentoolkit-0.7.6.tar.bz2 3191813 BLAKE2B a56c575ab2026abe2ace0b6fe7c411d892b8aeb8722ecac929ccfe8da141683c630c490d35bedcfe0cf67e0fe071a2f45b7b7731b052a34b47f798c10102f240 SHA512 723611caea039272870b928a8fb3c2681fbde68ace09049d2f1b44fb9181b4ceb706593b9e6c7b4b465393e80e3582791c384d79b8622423bbc676b3d28a6a44 DIST gentoolkit-0.8.0.tar.bz2 3191836 BLAKE2B 4fc4db2b394521ae6ee41b18868c022628a6c69d814810821713ba5b203d21e9bdda789ff37588efe77f2af7625a7b6993d4d24e68da2a13e8cdda2a25999767 SHA512 96d343401afd548106280120bfa7e8e25f3b31027cf84a3f950bec93680bc3fe49d56f1c0a6fb4284a8505bf1868a36d0f7eb68815c556edf0c48a541d172fad +DIST gentoolkit-0.8.1.tar.bz2 3192301 BLAKE2B 6a630e96233526905fed7c7e3d6e0ab82786810a0caa90ac7353cad564499bd9bd172babb127c4cc1a5e63e094c7fafe4618b7c106e178691f0636ce22f97518 SHA512 b5e04b985071bc5fe6033767d92d5482157cee14fdeb5c039555712a0ba8d0469db1dffa1382e7dd8cd0b38bd48dc4592433303815f65c728b277b9b7272c4c3 diff --git a/sdk_container/src/third_party/portage-stable/app-portage/gentoolkit/gentoolkit-0.8.1.ebuild b/sdk_container/src/third_party/portage-stable/app-portage/gentoolkit/gentoolkit-0.8.1.ebuild new file mode 100644 index 00000000000..f5621f8bded --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/app-portage/gentoolkit/gentoolkit-0.8.1.ebuild @@ -0,0 +1,130 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{12..15} ) +PYTHON_REQ_USE="xml(+),threads(+)" + +inherit meson python-r1 tmpfiles + +if [[ ${PV} = 9999* ]]; then + EGIT_REPO_URI=" + https://anongit.gentoo.org/git/proj/gentoolkit.git + https://github.com/gentoo/gentoolkit + " + inherit git-r3 +else + SRC_URI="https://gitweb.gentoo.org/proj/gentoolkit.git/snapshot/${P}.tar.bz2" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" +fi + +DESCRIPTION="Collection of administration scripts for Gentoo" +HOMEPAGE="https://wiki.gentoo.org/wiki/Project:Portage-Tools" + +LICENSE="GPL-2" +SLOT="0" +REQUIRED_USE="${PYTHON_REQUIRED_USE}" +IUSE="test" +RESTRICT="!test? ( test )" + +# Need newer Portage for eclean-pkg API, bug #900224 +DEPEND=" + >=sys-apps/portage-3.0.57[${PYTHON_USEDEP}] +" +RDEPEND=" + ${DEPEND} + ${PYTHON_DEPS} + app-alternatives/awk + sys-apps/gentoo-functions +" + +# setuptools is still needed as a workaround for Python 3.12+ for now. +# https://github.com/mesonbuild/meson/issues/7702 +# +# >=meson-1.2.1-r1 for bug #912051 +BDEPEND=" + ${PYTHON_DEPS} + >=dev-build/meson-1.2.1-r1 + $(python_gen_cond_dep ' + dev-python/setuptools[${PYTHON_USEDEP}] + ' python3_12) + test? ( + dev-python/pytest[${PYTHON_USEDEP}] + ) +" + +src_prepare() { + default + if use prefix-guest ; then + # use correct repo name, bug #632223 + sed -i \ + -e "/load_profile_data/s/repo='gentoo'/repo='gentoo_prefix'/" \ + pym/gentoolkit/profile.py || die + fi +} + +src_configure() { + local code_only=false + python_foreach_impl my_src_configure +} + +my_src_configure() { + local emesonargs=( + -Dcode-only=${code_only} + $(meson_use test tests) + -Deprefix="${EPREFIX}" + -Ddocdir="${EPREFIX}/usr/share/doc/${PF}" + ) + + meson_src_configure + code_only=true +} + +src_compile() { + python_foreach_impl meson_src_compile +} + +src_test() { + local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 + python_foreach_impl epytest +} + +src_install() { + python_foreach_impl my_src_install + dotmpfiles data/tmpfiles.d/revdep-rebuild.conf + + local scripts + mapfile -t scripts < <(awk '/^#!.*python/ {print FILENAME} {nextfile}' "${ED}"/usr/bin/* || die) + python_replicate_script "${scripts[@]}" +} + +my_src_install() { + local pydirs=( + "${D}$(python_get_sitedir)" + ) + + meson_src_install + python_optimize "${pydirs[@]}" +} + +pkg_postinst() { + tmpfiles_process revdep-rebuild.conf + + # Only show the elog information on a new install + if [[ ! ${REPLACING_VERSIONS} ]]; then + elog + elog "For further information on gentoolkit, please read the gentoolkit" + elog "guide: https://wiki.gentoo.org/wiki/Gentoolkit" + elog + elog "Another alternative to equery is app-portage/portage-utils" + elog + elog "Additional tools that may be of interest:" + elog + elog " app-admin/eclean-kernel" + elog " app-portage/diffmask" + elog " app-portage/flaggie" + elog " app-portage/portpeek" + elog " app-portage/smart-live-rebuild" + fi +} diff --git a/sdk_container/src/third_party/portage-stable/app-shells/gentoo-bashcomp/Manifest b/sdk_container/src/third_party/portage-stable/app-shells/gentoo-bashcomp/Manifest index 0abdd1b4721..40354730d9d 100644 --- a/sdk_container/src/third_party/portage-stable/app-shells/gentoo-bashcomp/Manifest +++ b/sdk_container/src/third_party/portage-stable/app-shells/gentoo-bashcomp/Manifest @@ -1,2 +1,3 @@ DIST gentoo-bashcomp-20240625.tar.bz2 23794 BLAKE2B 567131238e24744a5083ad8ec484d4342b6891e95b999d11d809da769d8f2ad3536f7da769f0d291663b9c3be46fe67d261cbdcf59a0f846e4f08a66b4106571 SHA512 1b5476ba7cb1b7c2f1d51c03d592245718fb4c2c07ff5171aee1bfa0def2a2f0bbff7a38950d18e3646285e7432cedee0ee75eed1c6348946793f011de4ddcbf DIST gentoo-bashcomp-20250620.tar.bz2 23780 BLAKE2B dc4d6dd7d0063056a234cfe4aff3d39b4519848f6f3d68d76f63cdcb5d333da159a88984b8607ae2f9b99ab6bd9ed264b0e4c7f4a7edafe002dbec18cb6c2e19 SHA512 222995b060f762d86c486e34d3e8f740b15a947b4392575bb1af29f11e3cec9c2a0fbdd1a8d397f5356db771adc19df39c2e70ac2dd22b2ce4ee188747ef5b6b +DIST gentoo-bashcomp-20260905.tar.bz2 23762 BLAKE2B b667ccdab5711cbb07ebc58ddf0ab60e3f9541a7b671735e4a65af23efc7bdc2bb15792ab911058b5de270a7409a4eaa2f2b082dc66066916435f04c768d5eb6 SHA512 8ed9f95bcfe6950d37da0bb523d6b91b1b341a1e055a5808e6394e0e4198db9327dda3e4fb3a77aaf1dd8a5170fcca755d012cc37790f35a835cfb66e2d37e7a diff --git a/sdk_container/src/third_party/portage-stable/app-shells/gentoo-bashcomp/gentoo-bashcomp-20260905.ebuild b/sdk_container/src/third_party/portage-stable/app-shells/gentoo-bashcomp/gentoo-bashcomp-20260905.ebuild new file mode 100644 index 00000000000..437e00eb03b --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/app-shells/gentoo-bashcomp/gentoo-bashcomp-20260905.ebuild @@ -0,0 +1,21 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit bash-completion-r1 + +DESCRIPTION="Gentoo-specific bash command-line completions (emerge, ebuild, equery, etc)" +HOMEPAGE="https://gitweb.gentoo.org/proj/gentoo-bashcomp.git/" +SRC_URI="https://gitweb.gentoo.org/proj/${PN}.git/snapshot/${P}.tar.bz2" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos" + +src_install() { + emake DESTDIR="${D}" install \ + completionsdir="$(get_bashcompdir)" \ + helpersdir="$(get_bashhelpersdir)" \ + compatdir="${EPREFIX}/etc/bash_completion.d" +} diff --git a/sdk_container/src/third_party/portage-stable/dev-build/cmake/Manifest b/sdk_container/src/third_party/portage-stable/dev-build/cmake/Manifest index 14c7a34f9fa..6b3bb816d6a 100644 --- a/sdk_container/src/third_party/portage-stable/dev-build/cmake/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-build/cmake/Manifest @@ -8,9 +8,6 @@ DIST cmake-4.1.5.tar.gz 12048837 BLAKE2B c62c615a480edfd60c694003e26f70a6d2365d0 DIST cmake-4.2.4-SHA-256.txt 2015 BLAKE2B 2f53c1aaedbb9e7421312ecf843f35f7538ad72e6bf4dd41271d8cef6eeab0375d45969c09ff255e0587562276711d77f334e670441a08892ad6bf3ce8e0ed16 SHA512 778023fbd242da7de84d8c3a312466022160cc58206fe9945e97b570fc8011db188c2996d6a47f6b6092345b123197c9d083af56b7002acffb4465c08aab601f DIST cmake-4.2.4-SHA-256.txt.asc 833 BLAKE2B 63ad10bdfba3408d2c23c33130519b6404c2e796d0d84cdb46b0bf18567954ef35768ba69343adabfea701fdad73db308ae751c4bffe9679d834f78b1eb0ab5a SHA512 11819ed1c70938f8980597d2a62c89f393efd2e6ca4e2e4b472fc7e78ad89a7f59c3a92cec03ee2baeb551fcbe6a720edeab7790a300e6339b71a9e5efb607d1 DIST cmake-4.2.4.tar.gz 12348311 BLAKE2B 367f75fb2493caf2c137ffe04857843e4a94ea01b7ac1c3128e18ab550a97db83eda49f2d8e1600dbcf81a528330bb7517ab3a82ab32cbc0936054cda8b07c09 SHA512 255838f89ef5dd01936bbc13252d099e41d99a681e4279d305e3a3b0ddd85597e7e0334b87052d4766a77e7d5ef189dd77259a194e27d1a6f19a0d0a0e8e7d76 -DIST cmake-4.3.3-SHA-256.txt 2015 BLAKE2B a73f3dfd4a95a353e95cf75c8fe68343020b3936f78da4c1579d49f4bf51360d952193aaf744accd820f9da22e180cfd1f13b029bf13deda293e74306869377f SHA512 23c9851300aa16881cd32d22df69db4189ac2288cc3cdb6cc9534c7de5f2abc0d1d5e53f2b1bdbfce81c4901cb7ea5857019598edd53f95ad0f6554028c65720 -DIST cmake-4.3.3-SHA-256.txt.asc 833 BLAKE2B ff69825df8b777894ef200a418f2b6f1d1cf534d040c54f5b2399aa9a63069d70bb72deeb118245484c00da9a471c8c93a2ea7da26cfe5a3aee3ce23609473e1 SHA512 f1a018f80aa42c62836bd3aeb1a3866d11815041b26adcc3e0f2f0bba482f7564b426a805c3ccf02ff3ad375382ad1a47f0df327c736d2c0428c1573eede33a4 -DIST cmake-4.3.3.tar.gz 12971567 BLAKE2B 30de7da05576d0cc44d67320a2d6fa250c44f5262f73a9e7c3a568cb7f9bda9aee578486911e6dfe2881c55ac618fb7c4443755aec4a105ac54ac304d005a4af SHA512 7f6af59cc53ea412311d54aeb52ad6981c46c53bac1ce0d3bf5944e85952534888267ea952596ad612e2b582f6897a818566963c85b88099f698df0803fe29d9 DIST cmake-4.3.4-SHA-256.txt 2015 BLAKE2B 360522f5897b115e9373271354ee464f72435c589f693b356b041324b2513b8d09c5a5cae059701ae3eeb837d9b0d9a5e31d8a99ecb2239d14f68a2b5e6255c4 SHA512 b58a83444024efb8428be9110400d618d261979493d45af42318a6ffca7fbb3a496ade6825db5b0b3935f052336e380f07f21e9bbf9bc9dcaeeadea1ae5dc516 DIST cmake-4.3.4-SHA-256.txt.asc 833 BLAKE2B 4b30bd7a3f004c3d3a35d4225f462045fe05681c77bebc8dfa5ecc958fd64d787597a09863afa41c8dc8a2d9d3facf2f3800c601d2d7cac2493a33a4cd80015a SHA512 41138746ad77af5926a38937b81a8edb9dc77d38755d3c4c190cc9f71206154111f0e8c60a3370a560b91e00c6fd5fd21fbb1bf8cee82d90f04edeecc4068244 DIST cmake-4.3.4.tar.gz 12976016 BLAKE2B b73bfdd09444d6b47145c33b4f139b83e4b336c237a8f537b2dd3b2b3e1316f88a59af3c6e2dd624e6f56da8c10f991670de6ee8e1a0ff90fcc9039881866b1c SHA512 3194f604432549eacd8bf0def22798eb84356e7c63ce288a4d60cbf31f63405ded0a1c004682fd5e1507f2a709ea9fe93df40d8fb16a9681f4c56b35afc83e06 diff --git a/sdk_container/src/third_party/portage-stable/dev-build/cmake/cmake-4.3.3-r1.ebuild b/sdk_container/src/third_party/portage-stable/dev-build/cmake/cmake-4.3.3-r1.ebuild deleted file mode 100644 index 76ceffde857..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-build/cmake/cmake-4.3.3-r1.ebuild +++ /dev/null @@ -1,339 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# Generate using https://github.com/thesamesam/sam-gentoo-scripts/blob/main/niche/generate-cmake-docs -# Set to 1 if prebuilt, 0 if not -# (the construct below is to allow overriding from env for script) -: ${CMAKE_DOCS_PREBUILT:=1} - -CMAKE_DOCS_PREBUILT_DEV=sam -CMAKE_DOCS_VERSION=4.0.0_rc1 -#CMAKE_DOCS_VERSION=${PV} -#CMAKE_DOCS_VERSION=$(ver_cut 1-2).0 -# Default to generating docs (inc. man pages) if no prebuilt; overridden later -# See bug #784815 -CMAKE_DOCS_USEFLAG="+doc" - -CMAKE_QA_COMPAT_SKIP=1 # bug #964514; cmake itself is the last pkg we worry about - -# TODO RunCMake.LinkWhatYouUse fails consistently w/ ninja -# ... but seems fine as of 3.22.3? -# TODO ... but bootstrap sometimes(?) fails with ninja now. bug #834759. -CMAKE_MAKEFILE_GENERATOR="emake" -CMAKE_REMOVE_MODULES_LIST=() -inherit bash-completion-r1 cmake flag-o-matic multiprocessing \ - toolchain-funcs xdg-utils - -MY_P="${P/_/-}" - -DESCRIPTION="Cross platform Make" -HOMEPAGE="https://cmake.org/" -if [[ ${PV} == *9999* ]] ; then - CMAKE_DOCS_PREBUILT=0 - - EGIT_REPO_URI="https://gitlab.kitware.com/cmake/cmake.git" - inherit git-r3 -else - SRC_URI="https://cmake.org/files/v$(ver_cut 1-2)/${MY_P}.tar.gz" - - if [[ ${CMAKE_DOCS_PREBUILT} == 1 ]] ; then - SRC_URI+=" !doc? ( https://dev.gentoo.org/~${CMAKE_DOCS_PREBUILT_DEV}/distfiles/${CATEGORY}/${PN}/${PN}-${CMAKE_DOCS_VERSION}-docs.tar.xz )" - fi - - VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/bradking.asc - inherit verify-sig - - SRC_URI+=" verify-sig? ( - https://cmake.org/files/v$(ver_cut 1-2)/${MY_P}-SHA-256.txt - https://cmake.org/files/v$(ver_cut 1-2)/${MY_P}-SHA-256.txt.asc - https://github.com/Kitware/CMake/releases/download/v${PV/_/-}/${MY_P}-SHA-256.txt - https://github.com/Kitware/CMake/releases/download/v${PV/_/-}/${MY_P}-SHA-256.txt.asc - )" - - if [[ ${PV} != *_rc* ]] ; then - KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~loong ~m68k ~mips ~ppc ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" - fi - - BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-bradking-20250904 )" -fi - -[[ ${CMAKE_DOCS_PREBUILT} == 1 ]] && CMAKE_DOCS_USEFLAG="doc" - -S="${WORKDIR}/${MY_P}" - -LICENSE="BSD" -SLOT="0" -IUSE="${CMAKE_DOCS_USEFLAG} dap gui ncurses test" -RESTRICT="!test? ( test )" - -# >= 1.51.0-r1 for ppc32 workaround (bug #941738) -RDEPEND=" - >=app-arch/libarchive-3.8.0:= - app-crypt/rhash:0= - >=dev-libs/expat-2.0.1 - >=dev-libs/jsoncpp-1.9.2-r2:0= - >=dev-libs/libuv-1.51.0-r1:= - >=net-misc/curl-7.21.5[ssl] - virtual/zlib:= - virtual/pkgconfig - dap? ( dev-cpp/cppdap ) - gui? ( dev-qt/qtbase:6[gui,widgets] ) - ncurses? ( sys-libs/ncurses:= ) -" -DEPEND="${RDEPEND}" -BDEPEND+=" - doc? ( - dev-python/requests - dev-python/sphinx - ) - test? ( app-arch/libarchive[zstd] ) -" - -PATCHES=( - # Prefix - "${FILESDIR}"/${PN}-3.27.0_rc1-0001-Don-t-use-.so-for-modules-on-darwin-macos.-Use-.bund.patch - "${FILESDIR}"/${PN}-3.27.0_rc1-0002-Set-some-proper-paths-to-make-cmake-find-our-tools.patch - # Misc - "${FILESDIR}"/${PN}-3.27.0_rc1-0004-Ensure-that-the-correct-version-of-Qt-is-always-used.patch - "${FILESDIR}"/${PN}-3.27.0_rc1-0005-Respect-Gentoo-s-Python-eclasses.patch - # Cuda - "${FILESDIR}/${PN}-3.30.3-cudahostld.patch" - - # Upstream fixes (can usually be removed with a version bump) -) - -cmake_src_bootstrap() { - # disable running of cmake in bootstrap command - sed -i \ - -e '/"${cmake_bootstrap_dir}\/cmake"/s/^/#DONOTRUN /' \ - bootstrap || die "sed failed" - - # execinfo.h on Solaris isn't quite what it is on Darwin - if [[ ${CHOST} == *-solaris* ]] ; then - sed -i -e 's/execinfo\.h/blablabla.h/' \ - Source/kwsys/CMakeLists.txt || die - fi - - # bootstrap script isn't exactly /bin/sh compatible - tc-env_build ${CONFIG_SHELL:-sh} ./bootstrap \ - --prefix="${T}/cmakestrap/" \ - --parallel=$(get_makeopts_jobs "$(get_nproc)") \ - || die "Bootstrap failed" -} - -pkg_pretend() { - if [[ -z ${EPREFIX} ]] ; then - local file - local errant_files=() - - # See bug #599684 and bug #753581 (at least) - for file in /etc/arch-release /etc/redhat-release /etc/debian_version ; do - if [[ -e ${file} ]]; then - errant_files+=( "${file}" ) - fi - done - - # If errant files exist - if [[ ${#errant_files[@]} -gt 0 ]]; then - eerror "Errant files found!" - eerror "The presence of these files is known to confuse CMake's" - eerror "library path logic. Please (re)move these files:" - - for file in "${errant_files[@]}"; do - eerror " mv ${file} ${file}.bak" - done - - die "Stray files found in /etc/, see above message" - fi - fi -} - -src_unpack() { - if [[ ${PV} == 9999 ]] ; then - git-r3_src_unpack - elif [[ ${PV} == *_rc* ]] || ! use verify-sig ; then - default - else - cd "${DISTDIR}" || die - - # See https://mgorny.pl/articles/verify-sig-by-example.html#verifying-using-a-checksum-file-with-a-detached-signature - verify-sig_verify_detached ${MY_P}-SHA-256.txt{,.asc} - verify-sig_verify_unsigned_checksums ${MY_P}-SHA-256.txt sha256 ${MY_P}.tar.gz - - cd "${WORKDIR}" || die - - default - fi -} - -src_prepare() { - cmake_src_prepare - - if [[ ${CHOST} == *-darwin* ]] ; then - # Disable Xcode hooks, bug #652134 - sed -i -e 's/cm\(\|Global\|Local\)XCode[^.]\+\.\(cxx\|h\)//' \ - Source/CMakeLists.txt || die - sed -i -e '/define CMAKE_USE_XCODE/s/XCODE/NO_XCODE/' \ - -e '/cmGlobalXCodeGenerator.h/d' \ - Source/cmake.cxx || die - # Disable system integration, bug #933744 - sed -i -e 's/__APPLE__/__DISABLED__/' \ - Source/cmFindProgramCommand.cxx \ - Source/CPack/cmCPackGeneratorFactory.cxx || die - sed -i -e 's/__MAC_OS_X_VERSION_MIN_REQUIRED/__DISABLED__/' \ - Source/cmMachO.cxx || die - sed -i -e 's:CPack/cmCPack\(Bundle\|DragNDrop\|PKG\|ProductBuild\)Generator.cxx::' \ - Source/CMakeLists.txt || die - - # Disable isysroot usage with GCC, we've properly instructed - # where things are via GCC configuration and ldwrapper - sed -i -e '/cmake_gnu_set_sysroot_flag/d' \ - Modules/Platform/Apple-GNU-*.cmake || die - # Disable isysroot usage with clang as well - sed -i -e '/_SYSROOT_FLAG/d' \ - Modules/Platform/Apple-Clang.cmake || die - # Don't set a POSIX standard, system headers don't like that, #757426 - sed -i -e 's/^#if !defined(_WIN32) && !defined(__sun)/& \&\& !defined(__APPLE__)/' \ - Source/cmLoadCommandCommand.cxx \ - Source/cmStandardLexer.h \ - Source/cmSystemTools.cxx \ - Source/cmTimestamp.cxx - sed -i -e 's/^#if !defined(_POSIX_C_SOURCE) && !defined(_WIN32) && !defined(__sun)/& \&\& !defined(__APPLE__)/' \ - Source/cmStandardLexer.h - fi - - # Add gcc libs to the default link paths - sed -i \ - -e "s|@GENTOO_PORTAGE_GCCLIBDIR@|${EPREFIX}/usr/${CHOST}/lib/|g" \ - -e "$(usex prefix-guest "s|@GENTOO_HOST@||" "/@GENTOO_HOST@/d")" \ - -e "s|@GENTOO_PORTAGE_EPREFIX@|${EPREFIX}/|g" \ - Modules/Platform/{UnixPaths,Darwin}.cmake || die "sed failed" - - ## in theory we could handle these flags in src_configure, as we do in many other packages. But we *must* - ## handle them as part of bootstrapping, sadly. - - # Fix linking on Solaris - [[ ${CHOST} == *-solaris* ]] && append-ldflags -lsocket -lnsl - - # ODR warnings, bug #858335 - # https://gitlab.kitware.com/cmake/cmake/-/issues/20740 - filter-lto - - # 4.0.0_rc1 is missing this, fails to configure - # https://gitlab.kitware.com/cmake/cmake/-/issues/26712 - touch .clang-tidy Utilities/.clang-tidy || die - - if ! has_version -b \>=${CATEGORY}/${PN}-3.13 || ! cmake --version &>/dev/null ; then - CMAKE_BINARY="${S}/Bootstrap.cmk/cmake" - cmake_src_bootstrap - fi -} - -src_configure() { - local mycmakeargs=( - -DCMAKE_USE_SYSTEM_LIBRARIES=ON - -DCMake_ENABLE_DEBUGGER=$(usex dap) - -DCMAKE_DOC_DIR=/share/doc/${PF} - -DCMAKE_MAN_DIR=/share/man - -DCMAKE_DATA_DIR=/share/${PN} - -DSPHINX_MAN=$(usex doc) - -DSPHINX_HTML=$(usex doc) - -DBUILD_CursesDialog="$(usex ncurses)" - -DBUILD_TESTING=$(usex test) - -DBUILD_QtDialog=$(usex gui) - ) - - use gui && mycmakeargs+=( -DCMake_QT_MAJOR_VERSION=6 ) - - cmake_src_configure -} - -src_test() { - # Fix OutDir and SelectLibraryConfigurations tests - # these are altered thanks to our eclass - sed -i -e 's:^#_cmake_modify_IGNORE ::g' \ - "${S}"/Tests/{OutDir,CMakeOnly/SelectLibraryConfigurations}/CMakeLists.txt \ - || die - - unset CLICOLOR CLICOLOR_FORCE CMAKE_COMPILER_COLOR_DIAGNOSTICS CMAKE_COLOR_DIAGNOSTICS - - pushd "${BUILD_DIR}" > /dev/null || die - - # Excluded tests: - local CMAKE_SKIP_TESTS=( - # BootstrapTest: we actually bootstrap it every time so why test it? - "BootstrapTest" - # BundleUtilities: bundle creation broken - "BundleUtilities" - # CMakeOnly.AllFindModules: pthread issues - "CMakeOnly.AllFindModules" - # TODO - "CompileOptions" - # CTest.updatecvs: which fails to commit as root - "CTest.UpdateCVS" - # Fortran: requires fortran - "Fortran" - # RunCMake.CompilerLauncher: also requires fortran - "RunCMake.CompilerLauncher" - # RunCMake.CPack_RPM: breaks if app-arch/rpm is installed because - # debugedit binary is not in the expected location - # RunCMake.CPack_DEB: breaks if app-arch/dpkg is installed because - # it can't find a deb package that owns libc - # RunCMake.CPack_TGZ: requires 64-bit time_t (bug #967480) - "RunCMake.CPack_(DEB|RPM|TGZ)" - # TestUpload, which requires network access - "TestUpload" - # RunCMake.CMP0125, known failure reported upstream (bug #829414) - "RunCMake.CMP0125" - ) - - local myctestargs=( - # Filter all tests requiring Fortran - -LE "Fortran" - ) - - local -x QT_QPA_PLATFORM=offscreen - - cmake_src_test -} - -src_install() { - cmake_src_install - - # If USE=doc, there'll be newly generated docs which we install instead. - if ! use doc && [[ ${CMAKE_DOCS_PREBUILT} == 1 ]] ; then - doman "${WORKDIR}"/${PN}-${CMAKE_DOCS_VERSION}-docs/man*/*.[0-8] - fi - - insinto /usr/share/vim/vimfiles/syntax - doins Auxiliary/vim/syntax/cmake.vim - - insinto /usr/share/vim/vimfiles/indent - doins Auxiliary/vim/indent/cmake.vim - - insinto /usr/share/vim/vimfiles/ftdetect - doins "${FILESDIR}/${PN}.vim" - - # Part of app-emacs/cmake-mode instead - rm -r "${ED}"/usr/share/emacs || die - - dobashcomp Auxiliary/bash-completion/{${PN},ctest,cpack} -} - -pkg_postinst() { - if use gui; then - xdg_icon_cache_update - xdg_desktop_database_update - xdg_mimeinfo_database_update - fi -} - -pkg_postrm() { - if use gui; then - xdg_icon_cache_update - xdg_desktop_database_update - xdg_mimeinfo_database_update - fi -} diff --git a/sdk_container/src/third_party/portage-stable/dev-build/ninja/files/ninja-1.13.2-big-endian-test.patch b/sdk_container/src/third_party/portage-stable/dev-build/ninja/files/ninja-1.13.2-big-endian-test.patch new file mode 100644 index 00000000000..ae0b7538cea --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-build/ninja/files/ninja-1.13.2-big-endian-test.patch @@ -0,0 +1,91 @@ +https://github.com/ninja-build/ninja/commit/9421d5c9f6a3190f68675796d88677fc1ebaae50 + +From 9421d5c9f6a3190f68675796d88677fc1ebaae50 Mon Sep 17 00:00:00 2001 +From: Ben Boeckel +Date: Tue, 15 Jul 2025 00:09:28 -0400 +Subject: [PATCH] deps_log_test: support big endian architectures + +--- + src/deps_log_test.cc | 36 ++++++++++++++++++++++++++++++++++++ + 1 file changed, 36 insertions(+) + +diff --git a/src/deps_log_test.cc b/src/deps_log_test.cc +index 6476843f7f..62192b099e 100644 +--- a/src/deps_log_test.cc ++++ b/src/deps_log_test.cc +@@ -566,15 +566,30 @@ TEST_F(DepsLogTest, MalformedDepsLog) { + + const size_t version_offset = 12; + ASSERT_EQ("# ninjadeps\n", original_contents.substr(0, version_offset)); ++#if defined(_WIN32) || (defined(__BYTE_ORDER__) && defined(__ORDER_LITTLE_ENDIAN__) && __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__) + ASSERT_EQ('\x04', original_contents[version_offset + 0]); + ASSERT_EQ('\x00', original_contents[version_offset + 1]); + ASSERT_EQ('\x00', original_contents[version_offset + 2]); + ASSERT_EQ('\x00', original_contents[version_offset + 3]); ++#elif defined(__BYTE_ORDER__) && defined(__ORDER_BIG_ENDIAN__) && __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ ++ ASSERT_EQ('\x00', original_contents[version_offset + 0]); ++ ASSERT_EQ('\x00', original_contents[version_offset + 1]); ++ ASSERT_EQ('\x00', original_contents[version_offset + 2]); ++ ASSERT_EQ('\x04', original_contents[version_offset + 3]); ++#else ++# error "Unknown endianness." ++#endif + + // clang-format off + static const uint8_t kFirstRecord[] = { + // size field == 0x0000000c ++#if defined(_WIN32) || (defined(__BYTE_ORDER__) && defined(__ORDER_LITTLE_ENDIAN__) && __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__) + 0x0c, 0x00, 0x00, 0x00, ++#elif defined(__BYTE_ORDER__) && defined(__ORDER_BIG_ENDIAN__) && __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ ++ 0x00, 0x00, 0x00, 0x0c, ++#else ++# error "Unknown endianness." ++#endif + // name field = 'out.o' + 3 bytes of padding. + 'o', 'u', 't', '.', 'o', 0x00, 0x00, 0x00, + // checksum = ~0 +@@ -593,11 +608,23 @@ TEST_F(DepsLogTest, MalformedDepsLog) { + // clang-format off + static const uint8_t kSecondRecord[] = { + // size field == 0x0000000c ++#if defined(_WIN32) || (defined(__BYTE_ORDER__) && defined(__ORDER_LITTLE_ENDIAN__) && __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__) + 0x0c, 0x00, 0x00, 0x00, ++#elif defined(__BYTE_ORDER__) && defined(__ORDER_BIG_ENDIAN__) && __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ ++ 0x00, 0x00, 0x00, 0x0c, ++#else ++# error "Unknown endianness." ++#endif + // name field = 'foo.hh' + 2 bytes of padding. + 'f', 'o', 'o', '.', 'h', 'h', 0x00, 0x00, + // checksum = ~1 ++#if defined(_WIN32) || (defined(__BYTE_ORDER__) && defined(__ORDER_LITTLE_ENDIAN__) && __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__) + 0xfe, 0xff, 0xff, 0xff, ++#elif defined(__BYTE_ORDER__) && defined(__ORDER_BIG_ENDIAN__) && __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ ++ 0xff, 0xff, 0xff, 0xfe, ++#else ++# error "Unknown endianness." ++#endif + }; + // clang-format on + const size_t kSecondRecordLen = sizeof(kSecondRecord); +@@ -650,10 +677,19 @@ TEST_F(DepsLogTest, MalformedDepsLog) { + + // Corrupt first record |size| value. + bad_contents = original_contents; ++#if defined(_WIN32) || (defined(__BYTE_ORDER__) && defined(__ORDER_LITTLE_ENDIAN__) && __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__) + bad_contents[first_offset + 0] = '\x55'; + bad_contents[first_offset + 1] = '\xaa'; + bad_contents[first_offset + 2] = '\xff'; + bad_contents[first_offset + 3] = '\xff'; ++#elif defined(__BYTE_ORDER__) && defined(__ORDER_BIG_ENDIAN__) && __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ ++ bad_contents[first_offset + 0] = '\xff'; ++ bad_contents[first_offset + 1] = '\xff'; ++ bad_contents[first_offset + 2] = '\xaa'; ++ bad_contents[first_offset + 3] = '\x55'; ++#else ++# error "Unknown endianness." ++#endif + ASSERT_TRUE(write_bad_log_file(bad_contents)) << strerror(errno); + { + State state; + diff --git a/sdk_container/src/third_party/portage-stable/dev-build/ninja/ninja-1.13.2-r1.ebuild b/sdk_container/src/third_party/portage-stable/dev-build/ninja/ninja-1.13.2-r1.ebuild index 2290412da8d..51e1da3be48 100644 --- a/sdk_container/src/third_party/portage-stable/dev-build/ninja/ninja-1.13.2-r1.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-build/ninja/ninja-1.13.2-r1.ebuild @@ -1,4 +1,4 @@ -# Copyright 2012-2025 Gentoo Authors +# Copyright 2012-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -43,6 +43,7 @@ PDEPEND=" PATCHES=( "${FILESDIR}"/ninja-cflags.patch "${FILESDIR}"/${PN}-1.13.2-allow-psuedo-fifo.patch + "${FILESDIR}"/${PN}-1.13.2-big-endian-test.patch ) pkg_setup() { diff --git a/sdk_container/src/third_party/portage-stable/dev-db/etcd/Manifest b/sdk_container/src/third_party/portage-stable/dev-db/etcd/Manifest index 16bac1b68be..1779247eb01 100644 --- a/sdk_container/src/third_party/portage-stable/dev-db/etcd/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-db/etcd/Manifest @@ -2,8 +2,8 @@ DIST etcd-3.4.31-deps.tar.xz 2212704 BLAKE2B 8b30941eefdb3811fb331014b69eb8d5b9c DIST etcd-3.4.31.tar.gz 6072806 BLAKE2B 30aa5b79d2fd0ba639bc766c104d5df28af50ae5398d860af3b3aff91c143ccd899538b341501386bac55dedc00086654de6e4ab9b237053b199a8de2fa509ec SHA512 4a7e366ced86ea86a324ab972ea47be56456c0aa8744e5ec07d499a56bdc9179ebc3bc2f33bd67c2d341181a5bcc703abc5a7c2e57879169a351457b4a0274f3 DIST etcd-3.5.18-deps.tar.xz 46453448 BLAKE2B 677370cb6d9064f8474adbfc5030b46f3367198cb8defc9242be00423c570f8c9bc5358d6dbe9d8cfee8e7797a2f8c93e7b4c8cbee4702c59287005cd7885fef SHA512 f1ed36d49f199fff4b0ee920870c3ac66dee0dcb5e92fa24a3861d841bdcfa99b210b292138116de9aafeec424c7663111f9bb0ad87910e1314031eb501f4aeb DIST etcd-3.5.18.tar.gz 4128059 BLAKE2B 32f867170bf1195d019dcf562bff9104db00f6ccff6b91bf12a4c95a63a5d92dda6984437bed819240be7bd8d4e2b507904251f636e945c5847ef93e72f1dd63 SHA512 0d72c40d575997d70d9d4964e7ff4be75c77e13a40ea08fcc020fddc64dc420338f1853d5a51a2dbe3f4c2881ae196a7aa32565e4b41dbda77bc2b6ae2313104 -DIST etcd-3.5.26-deps.tar.xz 48943308 BLAKE2B 6c5719f47ef4be8b98260ff8b1f4d09c25bf01eb830e8e7851793d617336df0556bf7010bd9b6dba611b017501bdda18541282363e275d3ecded6c25efa43c50 SHA512 e3544d6787800d734ec9e851ea4755f166e3eaf6e82c3353e172aa2f34336a312f97811e39aae4babc905d91627fa182aed007c450737194db937d4ba76dc8c9 -DIST etcd-3.5.26.tar.gz 4145585 BLAKE2B e261a5ef3b629a69cc044b1a92ee6b3a2d56ee7e648b86036016c79b084bbb5dd748ecaf0214900b88c596b14f297815ab166e468c0fe84d63f46e6b51e867d5 SHA512 3a014d259725d8a116a3823fd921c6fa6cf9587c993038c12765085032610e997bf318d29ca2ae9ed34a55990cb500b61e2bc1f8151a80e200ec2299d918cf76 +DIST etcd-3.5.33-deps.tar.xz 70045516 BLAKE2B 4285009fbb4428fafc0921233ff904df83f32a3b074c948a4b668a227e5956a01a0aba1501711c3832ca4cf9430cec7cf133be9c198ac953f9cb730bd2743298 SHA512 266672468a32dda0c11db71152975e671f215f3d97b9fa486e2b8e4822d0a7f79798ddfd723ae90457e9b0678a5698d24ee2a5b59264b1214031d67abb893981 +DIST etcd-3.5.33.tar.gz 4158588 BLAKE2B bfb13744dd8045d280cd7669b748386f055415c481a4a0ae51549e8dccd16bb0d391586ebb8c4cf11b192b6f23088f623d74665211ecb57d9cc9ef4274729bcc SHA512 dff4376f47c68c4640166ed7dc31bcddee8f4638f7dfaa2cc384d1677ce94af306dce285d1a8a88621aa03235c90a97af3ec3e16c58ddbcc6d69e174c74c6d3d DIST etcd-3.6.11-deps.tar.xz 111959652 BLAKE2B bfe2bb60c5a0a428401333f5ee9f33c1cad7f455fce768318625aceb95ffd6927a588c81166e67cad21d6055cda6e290a6e8a0d0151ab0b566494fb2e899adee SHA512 160078a709a58656fbc584ddeb35baa1ffe447ae9ed9b4dca5e40aa316e162caccde13c29b0eff5ef144153d601565d253e897f3ffe5684c4f807dd87517a5ca DIST etcd-3.6.11.tar.gz 7384738 BLAKE2B ba4730a1cdf31ae94365124a48aeb222a91b1df835e5b919dac15c3eceecf1165ac92ab2a19e70067be7ba8f42df59100e1679c5cee423fe86cd4aeea7d3efbd SHA512 56423c42443d9d1d2d06ff28aff389a381ed9b726cbee0d3523ac34fe2a8e22029377a42aa808077bb985f524a153c5fe63fd6166857749e8217b705fdf41910 DIST etcd-3.6.14-deps.tar.xz 111593632 BLAKE2B cfc9e3474c75f2ba6b8f1601f6f2427a0542429cb495196915adbb79b0c5762ffcb5608965821d6cc5b12e7f8e08c249b70ceea61969b7422ffe3f2fad9faf6b SHA512 3cb35f8ac8d7c6c041f8951fd89ae415b256a940e818d3f8e713ffbcf19f85a09823d394d8f67fd6357c12ed3e117d713101c5d68fb167b7c9de975978256642 diff --git a/sdk_container/src/third_party/portage-stable/dev-db/etcd/etcd-3.5.26.ebuild b/sdk_container/src/third_party/portage-stable/dev-db/etcd/etcd-3.5.33.ebuild similarity index 81% rename from sdk_container/src/third_party/portage-stable/dev-db/etcd/etcd-3.5.26.ebuild rename to sdk_container/src/third_party/portage-stable/dev-db/etcd/etcd-3.5.33.ebuild index c853295346e..52c1fbeeb2c 100644 --- a/sdk_container/src/third_party/portage-stable/dev-db/etcd/etcd-3.5.26.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-db/etcd/etcd-3.5.33.ebuild @@ -3,12 +3,18 @@ EAPI=8 inherit go-module systemd tmpfiles -GIT_COMMIT=65251b30e +GIT_COMMIT=9f4b12540 DESCRIPTION="Highly-available key value store for shared configuration and service discovery" HOMEPAGE="https://github.com/etcd-io/etcd" SRC_URI="https://github.com/etcd-io/etcd/archive/v${PV}.tar.gz -> ${P}.tar.gz" -SRC_URI+=" https://dev.gentoo.org/~chewi/distfiles/${P}-deps.tar.xz" +SRC_URI+=" https://dev.gentoo.org/~chewi/distfiles/${P}-deps.tar.xz" # Vendor tarball doesn't work. + +# P=etcd-3.X.Y +# ebuild ${P}.ebuild clean unpack +# cd /var/tmp/portage/dev-db/${P}/work/${P} +# GOMODCACHE="${PWD}"/go-mod find -name go.mod -execdir go mod download -modcacherw -x +# tar --owner root --group root -Jcf /var/cache/distfiles/${P}-deps.tar.xz go-mod LICENSE="Apache-2.0" LICENSE+=" BSD BSD-2 MIT" @@ -22,6 +28,7 @@ COMMON_DEPEND="server? ( )" DEPEND="${COMMON_DEPEND}" RDEPEND="${COMMON_DEPEND}" +BDEPEND=">=dev-lang/go-1.25.12" # Unit tests attempt to download go modules. PROPERTIES="test_network" @@ -36,7 +43,7 @@ src_prepare() { } src_configure() { - export FORCE_HOST_GO=1 GO_BUILD_FLAGS="-v -x" + export FORCE_HOST_GO=1 GO_BUILD_FLAGS="-v -x" CGO_ENABLED=1 } src_compile() { diff --git a/sdk_container/src/third_party/portage-stable/dev-db/etcd/etcd-3.7.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-db/etcd/etcd-3.7.1.ebuild index 05b0d0f01a4..90dd90ed4c7 100644 --- a/sdk_container/src/third_party/portage-stable/dev-db/etcd/etcd-3.7.1.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-db/etcd/etcd-3.7.1.ebuild @@ -14,6 +14,7 @@ SRC_URI+=" https://dev.gentoo.org/~chewi/distfiles/${P}-vendor.tar.xz" # make the vendor tarball a bit smaller. # # P=etcd-3.X.Y +# ebuild ${P}.ebuild clean unpack # cd /var/tmp/portage/dev-db/${P}/work/${P} # sed -i "/\.\/tools\//d" go.work # go work vendor diff --git a/sdk_container/src/third_party/portage-stable/dev-debug/gdb/files/gdb-17.2-gdb-cli-Don-t-emit-emojis-in-MI.patch b/sdk_container/src/third_party/portage-stable/dev-debug/gdb/files/gdb-17.2-gdb-cli-Don-t-emit-emojis-in-MI.patch new file mode 100644 index 00000000000..ff575669cfb --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-debug/gdb/files/gdb-17.2-gdb-cli-Don-t-emit-emojis-in-MI.patch @@ -0,0 +1,156 @@ +https://sourceware.org/PR34501 +https://invent.kde.org/kdevelop/kdevelop/-/merge_requests/915 + +From 615449b7e8d92ed8b9025b3591853b2517b79fa5 Mon Sep 17 00:00:00 2001 +Message-ID: <615449b7e8d92ed8b9025b3591853b2517b79fa5.1787629806.git.sam@gentoo.org> +From: Tom de Vries +Date: Thu, 13 Aug 2026 03:59:17 +0200 +Subject: [PATCH] [gdb/cli] Don't emit emojis in MI +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +PR mi/34501 reports the following: +... +$ gdb -q \ + -ex 'set charset UTF-8' \ + -ex 'interpreter-exec mi2 "-break-insert -f foo' \ + -ex quit +&"�\235\214�\217 No symbol table is loaded. Use the \"file\" command.\n" + ... +$ +... + +The output is a bit odd, but that gets better if we use +'set print sevenbit-strings on': +... +&"\342\235\214\357\270\217 No symbol table is loaded. Use the \"file\" command.\n" +... + +The output we see there is the error emoji: +... +$ gdb +(gdb) b foo +❌️ No symbol table is loaded. Use the "file" command. +... + +More specifically, two utf-8 encoded unicode characters: +- Cross Mark [1]: 0xE2 0x9D 0x8C +- Variation Selector-16 (VS16) [2]: 0xEF 0xB8 0x8F + +Now the question: is GDB doing something wrong? + +I think we probably should encode unicode characters in MI error strings as +octal escapes, independent of the sevenbit-strings setting. This patch does +not address this part. + +Then there's the question whether we should emit emojis in MI error strings in +the first place [3]. In principle they're unicode characters encoded in UTF-8, +and we can expect other such unicode characters in translated error strings. + +But, given that MI has can_emit_style_escape () == false, and already filters +out ANSI escape sequences, I think it's reasonable to also disable emojis. + +As for implementation, I introduced a function emoji_allowed alongside +can_emit_style_escape, which defaults to the value of can_emit_style_escape. + +Tested on x86_64-linux. + +Approved-By: Tom Tromey + +Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=34501 + +[1] https://www.compart.com/en/unicode/U+274C +[2] https://www.compart.com/en/unicode/U+FE0F +[3] https://sourceware.org/bugzilla/show_bug.cgi?id=33920#c1 + +(cherry picked from commit dbf19e0f878eb592011c25c1dbbfc35eee330ec2) +--- + gdb/cli/cli-style.c | 4 +-- + gdb/testsuite/gdb.base/style-mi-no-emoji.exp | 30 ++++++++++++++++++++ + gdb/ui-file.h | 8 ++++++ + 3 files changed, 40 insertions(+), 2 deletions(-) + create mode 100644 gdb/testsuite/gdb.base/style-mi-no-emoji.exp + +diff --git a/gdb/cli/cli-style.c b/gdb/cli/cli-style.c +index d6829f01095..7379f9a55bc 100644 +--- a/gdb/cli/cli-style.c ++++ b/gdb/cli/cli-style.c +@@ -468,7 +468,7 @@ show_warning_prefix (struct ui_file *file, int from_tty, + void + print_warning_prefix (ui_file *file) + { +- if (emojis_ok ()) ++ if (file->emoji_allowed () && emojis_ok ()) + gdb_puts (warning_prefix.c_str (), file); + } + +@@ -490,7 +490,7 @@ show_error_prefix (struct ui_file *file, int from_tty, + void + print_error_prefix (ui_file *file) + { +- if (emojis_ok ()) ++ if (file->emoji_allowed () && emojis_ok ()) + gdb_puts (error_prefix.c_str (), file); + } + +diff --git a/gdb/testsuite/gdb.base/style-mi-no-emoji.exp b/gdb/testsuite/gdb.base/style-mi-no-emoji.exp +new file mode 100644 +index 00000000000..c46c35b04a6 +--- /dev/null ++++ b/gdb/testsuite/gdb.base/style-mi-no-emoji.exp +@@ -0,0 +1,30 @@ ++# Copyright (C) 2026 Free Software Foundation, Inc. ++ ++# This program is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 3 of the License, or ++# (at your option) any later version. ++# ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program. If not, see . ++ ++# Check that emojis are not printed in MI error messages. ++ ++with_ansi_styling_terminal { ++ clean_restart ++ ++ gdb_test "set style emoji on" ++ ++ # Check that there is no emoji printed before the error. Regression test ++ # for PR34501. ++ set re_line \ ++ [string_to_regexp \ ++ {&"No symbol table is loaded. Use the \"file\" command.\n"}] ++ gdb_test {interpreter-exec mi2 "-break-insert -f foo"} \ ++ "\r\n${re_line}(?=\r\n).*" ++} +diff --git a/gdb/ui-file.h b/gdb/ui-file.h +index 1219bde0a75..bf44389d652 100644 +--- a/gdb/ui-file.h ++++ b/gdb/ui-file.h +@@ -93,6 +93,14 @@ class ui_file + virtual bool can_emit_style_escape () + { return false; } + ++ /* True if emojis are allowed on STREAM. */ ++ bool emoji_allowed () ++ { ++ /* By default, assume that emojis are not allowed on streams that don't ++ support ANSI escapes. */ ++ return can_emit_style_escape (); ++ } ++ + virtual void flush () + {} + + +base-commit: 2636da31af44fab38c22cee0fe771761173ea64b +-- +2.55.0 + diff --git a/sdk_container/src/third_party/portage-stable/dev-debug/gdb/files/gdb-17.2-sparc-termios.patch b/sdk_container/src/third_party/portage-stable/dev-debug/gdb/files/gdb-17.2-sparc-termios.patch new file mode 100644 index 00000000000..dee6800b4ca --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-debug/gdb/files/gdb-17.2-sparc-termios.patch @@ -0,0 +1,75 @@ +https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=2636da31af44fab38c22cee0fe771761173ea64b + +From 2636da31af44fab38c22cee0fe771761173ea64b Mon Sep 17 00:00:00 2001 +From: Simon Marchi +Date: Mon, 17 Nov 2025 16:25:18 -0500 +Subject: [PATCH] gdb/ser-unix: work around conflicting types for tcflag_t +MIME-Version: 1.0 +Content-Type: text/plain; charset=utf8 +Content-Transfer-Encoding: 8bit + +When trying to cross-compile GDB to sparc-buildroot-linux-uclibc, I get: + + CXX ser-unix.o + In file included from /data1/smarchi/many-buildroots/toolchains/sparc/sparc-buildroot-linux-uclibc/sysroot/usr/include/termios.h:39, + from /home/smarchi/src/binutils-gdb/gdb/ser-unix.c:51: + /data1/smarchi/many-buildroots/toolchains/sparc/sparc-buildroot-linux-uclibc/sysroot/usr/include/bits/termios.h:26:22: error: conflicting declaration ‘typedef unsigned int tcflag_t’ + 26 | typedef unsigned int tcflag_t; + | ^~~~~~~~ + In file included from /home/smarchi/src/binutils-gdb/gdb/ser-unix.c:46: + /data1/smarchi/many-buildroots/toolchains/sparc/sparc-buildroot-linux-uclibc/sysroot/usr/include/asm/termbits.h:13:25: note: previous declaration as ‘typedef long unsigned int tcflag_t’ + 13 | typedef unsigned long tcflag_t; + | ^~~~~~~~ + +uClibc and the kernel don't agree on the definition of tcflag_t for this +architecture. Here' uClibc [1]: + + typedef unsigned int tcflag_t; + +And here's the kernel [2]: + + #if defined(__sparc__) && defined(__arch64__) + typedef unsigned int tcflag_t; + #else + typedef unsigned long tcflag_t; <--- that branch is take + #endif + +glibc [3] has the same definition as uClibc, so we would get the same +problem. + +I propose to work around this the same way as we handle differences in +the termios structure, by renaming the version from the kernel. + +I opened a bug on the glibc bugzilla [4] to ask if this is something +that would need to be fixed on the libc side, but in the mean time we +need to work around it. + +[1] https://github.com/kraj/uClibc/blob/ca1c74d67dd115d059a875150e10b8560a9c35a8/libc/sysdeps/linux/sparc/bits/termios.h#L26 +[2] https://github.com/torvalds/linux/blob/e7c375b181600caf135cfd03eadbc45eb530f2cb/arch/sparc/include/uapi/asm/termbits.h#L7-L11 +[3] https://gitlab.com/gnutools/glibc/-/blob/efc8642051e6c4fe5165e8986c1338ba2c180de6/bits/termios.h#L104 +[4] https://sourceware.org/bugzilla/show_bug.cgi?id=33643 + +Change-Id: I71c6e0df5ac8e2ff3db3233a2220faaf70c3df6d +Approved-By: Tom Tromey +(cherry picked from commit 6b84377e146794446f21371f8455b870a029cc8e) +--- + gdb/ser-unix.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/gdb/ser-unix.c b/gdb/ser-unix.c +index 5ec664df1f3..50c0fdddf6d 100644 +--- a/gdb/ser-unix.c ++++ b/gdb/ser-unix.c +@@ -43,8 +43,10 @@ + /* Workaround to resolve conflicting declarations of termios + in and . */ + # define termios asmtermios ++# define tcflag_t asmtcflag_t + # include + # undef termios ++# undef tcflag_t + #endif + + #ifdef HAVE_TERMIOS_H +-- +2.43.7 diff --git a/sdk_container/src/third_party/portage-stable/dev-debug/gdb/gdb-17.2-r1.ebuild b/sdk_container/src/third_party/portage-stable/dev-debug/gdb/gdb-17.2-r1.ebuild new file mode 100644 index 00000000000..b53f8400ec2 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-debug/gdb/gdb-17.2-r1.ebuild @@ -0,0 +1,356 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# See https://sourceware.org/gdb/wiki/DistroAdvice for general packaging +# tips & notes. + +GUILE_COMPAT=( 2-2 3-0 ) +PYTHON_COMPAT=( python3_{11..14} ) +inherit flag-o-matic guile-single linux-info python-single-r1 strip-linguas toolchain-funcs + +export CTARGET=${CTARGET:-${CHOST}} + +if [[ ${CTARGET} == ${CHOST} ]] ; then + if [[ ${CATEGORY} == cross-* ]] ; then + export CTARGET=${CATEGORY#cross-} + fi +fi + +is_cross() { [[ ${CHOST} != ${CTARGET} ]] ; } + +case ${PV} in + 9999*) + # live git tree + EGIT_REPO_URI=" + https://sourceware.org/git/binutils-gdb.git + https://git.sr.ht/~sourceware/binutils-gdb + https://gitlab.com/x86-binutils/binutils-gdb.git + " + inherit git-r3 + SRC_URI="" + ;; + *.*.50_p2???????|*.*.90_p2???????) + # Weekly snapshots + MY_PV="${PV/_p/.}" + SRC_URI=" + https://sourceware.org/pub/gdb/snapshots/branch/gdb-weekly-${MY_PV}.tar.xz + https://sourceware.org/pub/gdb/snapshots/current/gdb-weekly-${MY_PV}.tar.xz + https://distfiles.gentoo.org/pub/proj/toolchain/gdb/snapshots/gdb-weekly-${MY_PV}.tar.xz + " + S="${WORKDIR}/${PN}-${MY_PV}" + + # e.g. 13.1.90_p20230325 is a snapshot on the stable branch, so it's fine + if [[ ${PV} == *.[123456789].9?_p2??????? ]] ; then + REGULAR_RELEASE=1 + fi + ;; + *.*.9?) + # Prereleases + MY_PV="${PV/_p/.}" + SRC_URI=" + https://sourceware.org/pub/gdb/snapshots/branch/gdb-${MY_PV}.tar.xz + https://distfiles.gentoo.org/pub/proj/toolchain/gdb/snapshots/gdb-${MY_PV}.tar.xz + " + S="${WORKDIR}/${PN}-${MY_PV}" + ;; + *) + # Normal upstream release + SRC_URI=" + mirror://gnu/gdb/${P}.tar.xz + https://sourceware.org/pub/gdb/releases/${P}.tar.xz + " + + REGULAR_RELEASE=1 +esac + +PATCH_DEV="" +PATCH_VER="" +DESCRIPTION="GNU debugger" +HOMEPAGE="https://sourceware.org/gdb/" +SRC_URI=" + ${SRC_URI} + ${PATCH_DEV:+https://distfiles.gentoo.org/pub/proj/toolchain/gdb/patches/${P}-patches-${PATCH_VER}.tar.xz} +" + +LICENSE="GPL-3+ LGPL-2.1+" +SLOT="0" +IUSE="babeltrace cet +debuginfod guile lzma multitarget nls +python rocm +server sim source-highlight test vanilla +xml xxhash zstd" +if [[ -n ${REGULAR_RELEASE} ]] ; then + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos ~x64-solaris" +fi +REQUIRED_USE=" + guile? ( ${GUILE_REQUIRED_USE} ) + python? ( ${PYTHON_REQUIRED_USE} ) + rocm? ( multitarget ) +" +RESTRICT="!test? ( test )" + +# =dev-lang/go-${GO_BOOTSTRAP_MIN}"; then - export GOROOT_BOOTSTRAP="${BROOT}/usr/lib/go" - elif has_version -b ">=dev-lang/go-bootstrap-${GO_BOOTSTRAP_MIN}"; then - export GOROOT_BOOTSTRAP="${BROOT}/usr/lib/go-bootstrap" - else - eerror "Go cannot be built without go or go-bootstrap installed" - die "Should not be here, please report a bug" - fi - - # Go's build script does not use BUILD/HOST/TARGET consistently. :( - export GOHOSTARCH=$(go-env_goarch ${CBUILD}) - export GOHOSTOS=$(go-env_goos ${CBUILD}) - export CC=$(tc-getBUILD_CC) - - export GOARCH=$(go-env_goarch) - export GOOS=$(go-env_goos) - export CC_FOR_TARGET=$(tc-getCC) - export CXX_FOR_TARGET=$(tc-getCXX) - use arm && export GOARM=$(go-env_goarm) - use x86 && export GO386=$(go-env_go386) - - cd src - bash -x ./make.bash || die "build failed" -} - -src_test() { - go_cross_compile && return 0 - cd src - PATH="${GOBIN}:${PATH}" \ - ./run.bash -no-rebuild -k || die "tests failed" -} - -src_install() { - dodir /usr/lib/go - # The use of cp is deliberate in order to retain permissions - cp -R . "${ED}"/usr/lib/go - einstalldocs - - # testdata directories are not needed on the installed system - # The other files we remove are installed by einstalldocs - rm -r $(find "${ED}"/usr/lib/go -iname testdata -type d -print) || die - rm "${ED}"/usr/lib/go/{CONTRIBUTING.md,PATENTS,README.md} || die - rm "${ED}"/usr/lib/go/{SECURITY.md,codereview.cfg,LICENSE} || die - - local bin_path - if go_cross_compile; then - bin_path="bin/$(go_tuple)" - else - bin_path=bin - fi - local f x - for x in ${bin_path}/*; do - f=${x##*/} - dosym ../lib/go/${bin_path}/${f} /usr/bin/${f} - done -} diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/go/go-1.25.10.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/go/go-1.25.10.ebuild deleted file mode 100644 index c366214fcce..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-lang/go/go-1.25.10.ebuild +++ /dev/null @@ -1,148 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -export CBUILD=${CBUILD:-${CHOST}} -export CTARGET=${CTARGET:-${CHOST}} - -# See "Bootstrap" in release notes -GO_BOOTSTRAP_MIN=1.22.12 -MY_PV=${PV/_/} - -inherit flag-o-matic go-env toolchain-funcs - -case ${PV} in -*9999*) - EGIT_REPO_URI="https://github.com/golang/go.git" - inherit git-r3 - ;; -*) - SRC_URI="https://go.dev/dl/go${MY_PV}.src.tar.gz " - S="${WORKDIR}"/go - KEYWORDS="-* amd64 arm arm64 ~loong ~mips ppc64 ~riscv ~s390 x86 ~x64-macos ~x64-solaris" - ;; -esac - -DESCRIPTION="A concurrent garbage collected and typesafe programming language" -HOMEPAGE="https://go.dev" - -LICENSE="BSD" -SLOT="0/${PV}" -IUSE="cpu_flags_x86_sse2" - -BDEPEND="|| ( - >=dev-lang/go-${GO_BOOTSTRAP_MIN} - >=dev-lang/go-bootstrap-${GO_BOOTSTRAP_MIN} )" - -# the *.syso files have writable/executable stacks -QA_EXECSTACK='*.syso' - -# Do not complain about CFLAGS, etc, since Go doesn't use them. -QA_FLAGS_IGNORED='.*' - -# The tools in /usr/lib/go should not cause the multilib-strict check to fail. -QA_MULTILIB_PATHS="usr/lib/go/pkg/tool/.*/.*" - -# This package triggers "unrecognized elf file(s)" notices on riscv. -# https://bugs.gentoo.org/794046 -QA_PREBUILT="*" -QA_PRESTRIPPED="*.syso" - -# The Go data race detector (go test -race) requires an unstripped Go toolchain. -# https://bugs.gentoo.org/961618 -RESTRICT="strip" - -DOCS=( - CONTRIBUTING.md - PATENTS - README.md - SECURITY.md -) - -go_tuple() { - echo "$(go-env_goos $@)_$(go-env_goarch $@)" -} - -go_cross_compile() { - [[ $(go_tuple ${CBUILD}) != $(go_tuple) ]] -} - -PATCHES=( - "${FILESDIR}"/go-1.24-skip-gdb-tests.patch - "${FILESDIR}"/go-1.25-no-dwarf5.patch - "${FILESDIR}"/go-1.25-strip-top-level-const.patch - "${FILESDIR}"/go-never-download-newer-toolchains.patch -) - -src_compile() { - if has_version -b ">=dev-lang/go-${GO_BOOTSTRAP_MIN}"; then - export GOROOT_BOOTSTRAP="${BROOT}/usr/lib/go" - elif has_version -b ">=dev-lang/go-bootstrap-${GO_BOOTSTRAP_MIN}"; then - export GOROOT_BOOTSTRAP="${BROOT}/usr/lib/go-bootstrap" - else - eerror "Go cannot be built without go or go-bootstrap installed" - die "Should not be here, please report a bug" - fi - - if tc-is-gcc ; then - # XXX: Hack for checking ICE (bug #912152, gcc PR113204) - # - # For either USE=debug or an unreleased compiler, non-default - # checking will trigger. - if has_version -b "sys-devel/gcc[debug]" || [[ $(gcc-minor-version) -eq 0 ]] ; then - rm src/cmd/link/cgo_test.go || die - fi - - # bug #929219 - replace-flags -g3 -g - replace-flags -ggdb3 -ggdb - fi - - # Go's build script does not use BUILD/HOST/TARGET consistently. :( - export GOHOSTARCH=$(go-env_goarch ${CBUILD}) - export GOHOSTOS=$(go-env_goos ${CBUILD}) - export CC=$(tc-getBUILD_CC) - - export GOARCH=$(go-env_goarch) - export GOOS=$(go-env_goos) - export CC_FOR_TARGET=$(tc-getCC) - export CXX_FOR_TARGET=$(tc-getCXX) - use arm && export GOARM=$(go-env_goarm) - use x86 && export GO386=$(go-env_go386) - - cd src - bash -x ./make.bash || die "build failed" -} - -src_test() { - go_cross_compile && return 0 - cd src - PATH="${GOBIN}:${PATH}" \ - ./run.bash -no-rebuild -k || die "tests failed" -} - -src_install() { - dodir /usr/lib/go - # The use of cp is deliberate in order to retain permissions - cp -R . "${ED}"/usr/lib/go - einstalldocs - - # testdata directories are not needed on the installed system - # The other files we remove are installed by einstalldocs - rm -r $(find "${ED}"/usr/lib/go -iname testdata -type d -print) || die - rm "${ED}"/usr/lib/go/{CONTRIBUTING.md,PATENTS,README.md} || die - rm "${ED}"/usr/lib/go/{SECURITY.md,codereview.cfg,LICENSE} || die - - local bin_path - if go_cross_compile; then - bin_path="bin/$(go_tuple)" - else - bin_path=bin - fi - local f x - for x in ${bin_path}/*; do - f=${x##*/} - dosym ../lib/go/${bin_path}/${f} /usr/bin/${f} - done -} diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/go/go-1.25.13.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/go/go-1.25.13.ebuild index 4fae67fcf5a..11b1353dddb 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/go/go-1.25.13.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/go/go-1.25.13.ebuild @@ -20,7 +20,7 @@ case ${PV} in *) SRC_URI="https://go.dev/dl/go${MY_PV}.src.tar.gz " S="${WORKDIR}"/go - KEYWORDS="-* ~amd64 ~arm ~arm64 ~loong ~mips ~ppc64 ~riscv ~s390 ~x86 ~x64-macos ~x64-solaris" + KEYWORDS="-* amd64 ~arm arm64 ~loong ~mips ~ppc64 ~riscv ~s390 x86 ~x64-macos ~x64-solaris" ;; esac diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/go/go-1.25.5-r1.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/go/go-1.25.5-r1.ebuild deleted file mode 100644 index 208dee89dbe..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-lang/go/go-1.25.5-r1.ebuild +++ /dev/null @@ -1,135 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -export CBUILD=${CBUILD:-${CHOST}} -export CTARGET=${CTARGET:-${CHOST}} - -# See "Bootstrap" in release notes -GO_BOOTSTRAP_MIN=1.22.12 -MY_PV=${PV/_/} - -inherit go-env toolchain-funcs - -case ${PV} in -*9999*) - EGIT_REPO_URI="https://github.com/golang/go.git" - inherit git-r3 - ;; -*) - SRC_URI="https://go.dev/dl/go${MY_PV}.src.tar.gz " - S="${WORKDIR}"/go - KEYWORDS="-* amd64 arm arm64 ~loong ~mips ppc64 ~riscv ~s390 x86 ~x64-macos ~x64-solaris" - ;; -esac - -DESCRIPTION="A concurrent garbage collected and typesafe programming language" -HOMEPAGE="https://go.dev" - -LICENSE="BSD" -SLOT="0/${PV}" -IUSE="cpu_flags_x86_sse2" - -BDEPEND="|| ( - >=dev-lang/go-${GO_BOOTSTRAP_MIN} - >=dev-lang/go-bootstrap-${GO_BOOTSTRAP_MIN} )" - -# the *.syso files have writable/executable stacks -QA_EXECSTACK='*.syso' - -# Do not complain about CFLAGS, etc, since Go doesn't use them. -QA_FLAGS_IGNORED='.*' - -# The tools in /usr/lib/go should not cause the multilib-strict check to fail. -QA_MULTILIB_PATHS="usr/lib/go/pkg/tool/.*/.*" - -# This package triggers "unrecognized elf file(s)" notices on riscv. -# https://bugs.gentoo.org/794046 -QA_PREBUILT="*" -QA_PRESTRIPPED="*.syso" - -# The Go data race detector (go test -race) requires an unstripped Go toolchain. -# https://bugs.gentoo.org/961618 -RESTRICT="strip" - -DOCS=( - CONTRIBUTING.md - PATENTS - README.md - SECURITY.md -) - -go_tuple() { - echo "$(go-env_goos $@)_$(go-env_goarch $@)" -} - -go_cross_compile() { - [[ $(go_tuple ${CBUILD}) != $(go_tuple) ]] -} - -PATCHES=( - "${FILESDIR}"/go-1.24-skip-gdb-tests.patch - "${FILESDIR}"/go-1.24-dont-force-gold-arm.patch - "${FILESDIR}"/go-1.25-no-dwarf5.patch - "${FILESDIR}"/go-1.25-strip-top-level-const.patch - "${FILESDIR}"/go-never-download-newer-toolchains.patch -) - -src_compile() { - if has_version -b ">=dev-lang/go-${GO_BOOTSTRAP_MIN}"; then - export GOROOT_BOOTSTRAP="${BROOT}/usr/lib/go" - elif has_version -b ">=dev-lang/go-bootstrap-${GO_BOOTSTRAP_MIN}"; then - export GOROOT_BOOTSTRAP="${BROOT}/usr/lib/go-bootstrap" - else - eerror "Go cannot be built without go or go-bootstrap installed" - die "Should not be here, please report a bug" - fi - - # Go's build script does not use BUILD/HOST/TARGET consistently. :( - export GOHOSTARCH=$(go-env_goarch ${CBUILD}) - export GOHOSTOS=$(go-env_goos ${CBUILD}) - export CC=$(tc-getBUILD_CC) - - export GOARCH=$(go-env_goarch) - export GOOS=$(go-env_goos) - export CC_FOR_TARGET=$(tc-getCC) - export CXX_FOR_TARGET=$(tc-getCXX) - use arm && export GOARM=$(go-env_goarm) - use x86 && export GO386=$(go-env_go386) - - cd src - bash -x ./make.bash || die "build failed" -} - -src_test() { - go_cross_compile && return 0 - cd src - PATH="${GOBIN}:${PATH}" \ - ./run.bash -no-rebuild -k || die "tests failed" -} - -src_install() { - dodir /usr/lib/go - # The use of cp is deliberate in order to retain permissions - cp -R . "${ED}"/usr/lib/go - einstalldocs - - # testdata directories are not needed on the installed system - # The other files we remove are installed by einstalldocs - rm -r $(find "${ED}"/usr/lib/go -iname testdata -type d -print) || die - rm "${ED}"/usr/lib/go/{CONTRIBUTING.md,PATENTS,README.md} || die - rm "${ED}"/usr/lib/go/{SECURITY.md,codereview.cfg,LICENSE} || die - - local bin_path - if go_cross_compile; then - bin_path="bin/$(go_tuple)" - else - bin_path=bin - fi - local f x - for x in ${bin_path}/*; do - f=${x##*/} - dosym ../lib/go/${bin_path}/${f} /usr/bin/${f} - done -} diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/go/go-1.25.6-r1.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/go/go-1.25.6-r1.ebuild deleted file mode 100644 index 8655037fb5e..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-lang/go/go-1.25.6-r1.ebuild +++ /dev/null @@ -1,135 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -export CBUILD=${CBUILD:-${CHOST}} -export CTARGET=${CTARGET:-${CHOST}} - -# See "Bootstrap" in release notes -GO_BOOTSTRAP_MIN=1.22.12 -MY_PV=${PV/_/} - -inherit go-env toolchain-funcs - -case ${PV} in -*9999*) - EGIT_REPO_URI="https://github.com/golang/go.git" - inherit git-r3 - ;; -*) - SRC_URI="https://go.dev/dl/go${MY_PV}.src.tar.gz " - S="${WORKDIR}"/go - KEYWORDS="-* ~amd64 ~arm ~arm64 ~loong ~mips ~ppc64 ~riscv ~s390 ~x86 ~x64-macos ~x64-solaris" - ;; -esac - -DESCRIPTION="A concurrent garbage collected and typesafe programming language" -HOMEPAGE="https://go.dev" - -LICENSE="BSD" -SLOT="0/${PV}" -IUSE="cpu_flags_x86_sse2" - -BDEPEND="|| ( - >=dev-lang/go-${GO_BOOTSTRAP_MIN} - >=dev-lang/go-bootstrap-${GO_BOOTSTRAP_MIN} )" - -# the *.syso files have writable/executable stacks -QA_EXECSTACK='*.syso' - -# Do not complain about CFLAGS, etc, since Go doesn't use them. -QA_FLAGS_IGNORED='.*' - -# The tools in /usr/lib/go should not cause the multilib-strict check to fail. -QA_MULTILIB_PATHS="usr/lib/go/pkg/tool/.*/.*" - -# This package triggers "unrecognized elf file(s)" notices on riscv. -# https://bugs.gentoo.org/794046 -QA_PREBUILT="*" -QA_PRESTRIPPED="*.syso" - -# The Go data race detector (go test -race) requires an unstripped Go toolchain. -# https://bugs.gentoo.org/961618 -RESTRICT="strip" - -DOCS=( - CONTRIBUTING.md - PATENTS - README.md - SECURITY.md -) - -go_tuple() { - echo "$(go-env_goos $@)_$(go-env_goarch $@)" -} - -go_cross_compile() { - [[ $(go_tuple ${CBUILD}) != $(go_tuple) ]] -} - -PATCHES=( - "${FILESDIR}"/go-1.24-skip-gdb-tests.patch - "${FILESDIR}"/go-1.24-dont-force-gold-arm.patch - "${FILESDIR}"/go-1.25-no-dwarf5.patch - "${FILESDIR}"/go-1.25-strip-top-level-const.patch - "${FILESDIR}"/go-never-download-newer-toolchains.patch -) - -src_compile() { - if has_version -b ">=dev-lang/go-${GO_BOOTSTRAP_MIN}"; then - export GOROOT_BOOTSTRAP="${BROOT}/usr/lib/go" - elif has_version -b ">=dev-lang/go-bootstrap-${GO_BOOTSTRAP_MIN}"; then - export GOROOT_BOOTSTRAP="${BROOT}/usr/lib/go-bootstrap" - else - eerror "Go cannot be built without go or go-bootstrap installed" - die "Should not be here, please report a bug" - fi - - # Go's build script does not use BUILD/HOST/TARGET consistently. :( - export GOHOSTARCH=$(go-env_goarch ${CBUILD}) - export GOHOSTOS=$(go-env_goos ${CBUILD}) - export CC=$(tc-getBUILD_CC) - - export GOARCH=$(go-env_goarch) - export GOOS=$(go-env_goos) - export CC_FOR_TARGET=$(tc-getCC) - export CXX_FOR_TARGET=$(tc-getCXX) - use arm && export GOARM=$(go-env_goarm) - use x86 && export GO386=$(go-env_go386) - - cd src - bash -x ./make.bash || die "build failed" -} - -src_test() { - go_cross_compile && return 0 - cd src - PATH="${GOBIN}:${PATH}" \ - ./run.bash -no-rebuild -k || die "tests failed" -} - -src_install() { - dodir /usr/lib/go - # The use of cp is deliberate in order to retain permissions - cp -R . "${ED}"/usr/lib/go - einstalldocs - - # testdata directories are not needed on the installed system - # The other files we remove are installed by einstalldocs - rm -r $(find "${ED}"/usr/lib/go -iname testdata -type d -print) || die - rm "${ED}"/usr/lib/go/{CONTRIBUTING.md,PATENTS,README.md} || die - rm "${ED}"/usr/lib/go/{SECURITY.md,codereview.cfg,LICENSE} || die - - local bin_path - if go_cross_compile; then - bin_path="bin/$(go_tuple)" - else - bin_path=bin - fi - local f x - for x in ${bin_path}/*; do - f=${x##*/} - dosym ../lib/go/${bin_path}/${f} /usr/bin/${f} - done -} diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/go/go-1.25.8.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/go/go-1.25.8.ebuild deleted file mode 100644 index 7920d9cab23..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-lang/go/go-1.25.8.ebuild +++ /dev/null @@ -1,149 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -export CBUILD=${CBUILD:-${CHOST}} -export CTARGET=${CTARGET:-${CHOST}} - -# See "Bootstrap" in release notes -GO_BOOTSTRAP_MIN=1.22.12 -MY_PV=${PV/_/} - -inherit flag-o-matic go-env toolchain-funcs - -case ${PV} in -*9999*) - EGIT_REPO_URI="https://github.com/golang/go.git" - inherit git-r3 - ;; -*) - SRC_URI="https://go.dev/dl/go${MY_PV}.src.tar.gz " - S="${WORKDIR}"/go - KEYWORDS="-* amd64 ~arm arm64 ~loong ~mips ppc64 ~riscv ~s390 x86 ~x64-macos ~x64-solaris" - ;; -esac - -DESCRIPTION="A concurrent garbage collected and typesafe programming language" -HOMEPAGE="https://go.dev" - -LICENSE="BSD" -SLOT="0/${PV}" -IUSE="cpu_flags_x86_sse2" - -BDEPEND="|| ( - >=dev-lang/go-${GO_BOOTSTRAP_MIN} - >=dev-lang/go-bootstrap-${GO_BOOTSTRAP_MIN} )" - -# the *.syso files have writable/executable stacks -QA_EXECSTACK='*.syso' - -# Do not complain about CFLAGS, etc, since Go doesn't use them. -QA_FLAGS_IGNORED='.*' - -# The tools in /usr/lib/go should not cause the multilib-strict check to fail. -QA_MULTILIB_PATHS="usr/lib/go/pkg/tool/.*/.*" - -# This package triggers "unrecognized elf file(s)" notices on riscv. -# https://bugs.gentoo.org/794046 -QA_PREBUILT="*" -QA_PRESTRIPPED="*.syso" - -# The Go data race detector (go test -race) requires an unstripped Go toolchain. -# https://bugs.gentoo.org/961618 -RESTRICT="strip" - -DOCS=( - CONTRIBUTING.md - PATENTS - README.md - SECURITY.md -) - -go_tuple() { - echo "$(go-env_goos $@)_$(go-env_goarch $@)" -} - -go_cross_compile() { - [[ $(go_tuple ${CBUILD}) != $(go_tuple) ]] -} - -PATCHES=( - "${FILESDIR}"/go-1.24-skip-gdb-tests.patch - "${FILESDIR}"/go-1.24-dont-force-gold-arm.patch - "${FILESDIR}"/go-1.25-no-dwarf5.patch - "${FILESDIR}"/go-1.25-strip-top-level-const.patch - "${FILESDIR}"/go-never-download-newer-toolchains.patch -) - -src_compile() { - if has_version -b ">=dev-lang/go-${GO_BOOTSTRAP_MIN}"; then - export GOROOT_BOOTSTRAP="${BROOT}/usr/lib/go" - elif has_version -b ">=dev-lang/go-bootstrap-${GO_BOOTSTRAP_MIN}"; then - export GOROOT_BOOTSTRAP="${BROOT}/usr/lib/go-bootstrap" - else - eerror "Go cannot be built without go or go-bootstrap installed" - die "Should not be here, please report a bug" - fi - - if tc-is-gcc ; then - # XXX: Hack for checking ICE (bug #912152, gcc PR113204) - # - # For either USE=debug or an unreleased compiler, non-default - # checking will trigger. - if has_version -b "sys-devel/gcc[debug]" || [[ $(gcc-minor-version) -eq 0 ]] ; then - rm src/cmd/link/cgo_test.go || die - fi - - # bug #929219 - replace-flags -g3 -g - replace-flags -ggdb3 -ggdb - fi - - # Go's build script does not use BUILD/HOST/TARGET consistently. :( - export GOHOSTARCH=$(go-env_goarch ${CBUILD}) - export GOHOSTOS=$(go-env_goos ${CBUILD}) - export CC=$(tc-getBUILD_CC) - - export GOARCH=$(go-env_goarch) - export GOOS=$(go-env_goos) - export CC_FOR_TARGET=$(tc-getCC) - export CXX_FOR_TARGET=$(tc-getCXX) - use arm && export GOARM=$(go-env_goarm) - use x86 && export GO386=$(go-env_go386) - - cd src - bash -x ./make.bash || die "build failed" -} - -src_test() { - go_cross_compile && return 0 - cd src - PATH="${GOBIN}:${PATH}" \ - ./run.bash -no-rebuild -k || die "tests failed" -} - -src_install() { - dodir /usr/lib/go - # The use of cp is deliberate in order to retain permissions - cp -R . "${ED}"/usr/lib/go - einstalldocs - - # testdata directories are not needed on the installed system - # The other files we remove are installed by einstalldocs - rm -r $(find "${ED}"/usr/lib/go -iname testdata -type d -print) || die - rm "${ED}"/usr/lib/go/{CONTRIBUTING.md,PATENTS,README.md} || die - rm "${ED}"/usr/lib/go/{SECURITY.md,codereview.cfg,LICENSE} || die - - local bin_path - if go_cross_compile; then - bin_path="bin/$(go_tuple)" - else - bin_path=bin - fi - local f x - for x in ${bin_path}/*; do - f=${x##*/} - dosym ../lib/go/${bin_path}/${f} /usr/bin/${f} - done -} diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/go/go-1.25.9.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/go/go-1.25.9.ebuild deleted file mode 100644 index 7920d9cab23..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-lang/go/go-1.25.9.ebuild +++ /dev/null @@ -1,149 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -export CBUILD=${CBUILD:-${CHOST}} -export CTARGET=${CTARGET:-${CHOST}} - -# See "Bootstrap" in release notes -GO_BOOTSTRAP_MIN=1.22.12 -MY_PV=${PV/_/} - -inherit flag-o-matic go-env toolchain-funcs - -case ${PV} in -*9999*) - EGIT_REPO_URI="https://github.com/golang/go.git" - inherit git-r3 - ;; -*) - SRC_URI="https://go.dev/dl/go${MY_PV}.src.tar.gz " - S="${WORKDIR}"/go - KEYWORDS="-* amd64 ~arm arm64 ~loong ~mips ppc64 ~riscv ~s390 x86 ~x64-macos ~x64-solaris" - ;; -esac - -DESCRIPTION="A concurrent garbage collected and typesafe programming language" -HOMEPAGE="https://go.dev" - -LICENSE="BSD" -SLOT="0/${PV}" -IUSE="cpu_flags_x86_sse2" - -BDEPEND="|| ( - >=dev-lang/go-${GO_BOOTSTRAP_MIN} - >=dev-lang/go-bootstrap-${GO_BOOTSTRAP_MIN} )" - -# the *.syso files have writable/executable stacks -QA_EXECSTACK='*.syso' - -# Do not complain about CFLAGS, etc, since Go doesn't use them. -QA_FLAGS_IGNORED='.*' - -# The tools in /usr/lib/go should not cause the multilib-strict check to fail. -QA_MULTILIB_PATHS="usr/lib/go/pkg/tool/.*/.*" - -# This package triggers "unrecognized elf file(s)" notices on riscv. -# https://bugs.gentoo.org/794046 -QA_PREBUILT="*" -QA_PRESTRIPPED="*.syso" - -# The Go data race detector (go test -race) requires an unstripped Go toolchain. -# https://bugs.gentoo.org/961618 -RESTRICT="strip" - -DOCS=( - CONTRIBUTING.md - PATENTS - README.md - SECURITY.md -) - -go_tuple() { - echo "$(go-env_goos $@)_$(go-env_goarch $@)" -} - -go_cross_compile() { - [[ $(go_tuple ${CBUILD}) != $(go_tuple) ]] -} - -PATCHES=( - "${FILESDIR}"/go-1.24-skip-gdb-tests.patch - "${FILESDIR}"/go-1.24-dont-force-gold-arm.patch - "${FILESDIR}"/go-1.25-no-dwarf5.patch - "${FILESDIR}"/go-1.25-strip-top-level-const.patch - "${FILESDIR}"/go-never-download-newer-toolchains.patch -) - -src_compile() { - if has_version -b ">=dev-lang/go-${GO_BOOTSTRAP_MIN}"; then - export GOROOT_BOOTSTRAP="${BROOT}/usr/lib/go" - elif has_version -b ">=dev-lang/go-bootstrap-${GO_BOOTSTRAP_MIN}"; then - export GOROOT_BOOTSTRAP="${BROOT}/usr/lib/go-bootstrap" - else - eerror "Go cannot be built without go or go-bootstrap installed" - die "Should not be here, please report a bug" - fi - - if tc-is-gcc ; then - # XXX: Hack for checking ICE (bug #912152, gcc PR113204) - # - # For either USE=debug or an unreleased compiler, non-default - # checking will trigger. - if has_version -b "sys-devel/gcc[debug]" || [[ $(gcc-minor-version) -eq 0 ]] ; then - rm src/cmd/link/cgo_test.go || die - fi - - # bug #929219 - replace-flags -g3 -g - replace-flags -ggdb3 -ggdb - fi - - # Go's build script does not use BUILD/HOST/TARGET consistently. :( - export GOHOSTARCH=$(go-env_goarch ${CBUILD}) - export GOHOSTOS=$(go-env_goos ${CBUILD}) - export CC=$(tc-getBUILD_CC) - - export GOARCH=$(go-env_goarch) - export GOOS=$(go-env_goos) - export CC_FOR_TARGET=$(tc-getCC) - export CXX_FOR_TARGET=$(tc-getCXX) - use arm && export GOARM=$(go-env_goarm) - use x86 && export GO386=$(go-env_go386) - - cd src - bash -x ./make.bash || die "build failed" -} - -src_test() { - go_cross_compile && return 0 - cd src - PATH="${GOBIN}:${PATH}" \ - ./run.bash -no-rebuild -k || die "tests failed" -} - -src_install() { - dodir /usr/lib/go - # The use of cp is deliberate in order to retain permissions - cp -R . "${ED}"/usr/lib/go - einstalldocs - - # testdata directories are not needed on the installed system - # The other files we remove are installed by einstalldocs - rm -r $(find "${ED}"/usr/lib/go -iname testdata -type d -print) || die - rm "${ED}"/usr/lib/go/{CONTRIBUTING.md,PATENTS,README.md} || die - rm "${ED}"/usr/lib/go/{SECURITY.md,codereview.cfg,LICENSE} || die - - local bin_path - if go_cross_compile; then - bin_path="bin/$(go_tuple)" - else - bin_path=bin - fi - local f x - for x in ${bin_path}/*; do - f=${x##*/} - dosym ../lib/go/${bin_path}/${f} /usr/bin/${f} - done -} diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/go/go-1.26.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/go/go-1.26.1.ebuild deleted file mode 100644 index 0a5414fbe0e..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-lang/go/go-1.26.1.ebuild +++ /dev/null @@ -1,148 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -export CBUILD=${CBUILD:-${CHOST}} -export CTARGET=${CTARGET:-${CHOST}} - -# See "Bootstrap" in release notes -GO_BOOTSTRAP_MIN=1.24.6 -MY_PV=${PV/_/} - -inherit flag-o-matic go-env toolchain-funcs - -case ${PV} in -*9999*) - EGIT_REPO_URI="https://github.com/golang/go.git" - inherit git-r3 - ;; -*) - SRC_URI="https://go.dev/dl/go${MY_PV}.src.tar.gz " - S="${WORKDIR}"/go - KEYWORDS="-* ~amd64 ~arm ~arm64 ~loong ~mips ~ppc64 ~riscv ~s390 ~x86 ~x64-macos ~x64-solaris" - ;; -esac - -DESCRIPTION="A concurrent garbage collected and typesafe programming language" -HOMEPAGE="https://go.dev" - -LICENSE="BSD" -SLOT="0/${PV}" -IUSE="cpu_flags_x86_sse2" - -BDEPEND="|| ( - >=dev-lang/go-${GO_BOOTSTRAP_MIN} - >=dev-lang/go-bootstrap-${GO_BOOTSTRAP_MIN} )" - -# the *.syso files have writable/executable stacks -QA_EXECSTACK='*.syso' - -# Do not complain about CFLAGS, etc, since Go doesn't use them. -QA_FLAGS_IGNORED='.*' - -# The tools in /usr/lib/go should not cause the multilib-strict check to fail. -QA_MULTILIB_PATHS="usr/lib/go/pkg/tool/.*/.*" - -# This package triggers "unrecognized elf file(s)" notices on riscv. -# https://bugs.gentoo.org/794046 -QA_PREBUILT="*" -QA_PRESTRIPPED="*.syso" - -# The Go data race detector (go test -race) requires an unstripped Go toolchain. -# https://bugs.gentoo.org/961618 -RESTRICT="strip" - -DOCS=( - CONTRIBUTING.md - PATENTS - README.md - SECURITY.md -) - -go_tuple() { - echo "$(go-env_goos $@)_$(go-env_goarch $@)" -} - -go_cross_compile() { - [[ $(go_tuple ${CBUILD}) != $(go_tuple) ]] -} - -PATCHES=( - "${FILESDIR}"/go-1.24-skip-gdb-tests.patch - "${FILESDIR}"/go-1.24-dont-force-gold-arm.patch - "${FILESDIR}"/go-1.25-no-dwarf5.patch - "${FILESDIR}"/go-never-download-newer-toolchains.patch -) - -src_compile() { - if has_version -b ">=dev-lang/go-${GO_BOOTSTRAP_MIN}"; then - export GOROOT_BOOTSTRAP="${BROOT}/usr/lib/go" - elif has_version -b ">=dev-lang/go-bootstrap-${GO_BOOTSTRAP_MIN}"; then - export GOROOT_BOOTSTRAP="${BROOT}/usr/lib/go-bootstrap" - else - eerror "Go cannot be built without go or go-bootstrap installed" - die "Should not be here, please report a bug" - fi - - if tc-is-gcc ; then - # XXX: Hack for checking ICE (bug #912152, gcc PR113204) - # - # For either USE=debug or an unreleased compiler, non-default - # checking will trigger. - if has_version -b "sys-devel/gcc[debug]" || [[ $(gcc-minor-version) -eq 0 ]] ; then - rm src/cmd/link/cgo_test.go || die - fi - - # bug #929219 - replace-flags -g3 -g - replace-flags -ggdb3 -ggdb - fi - - # Go's build script does not use BUILD/HOST/TARGET consistently. :( - export GOHOSTARCH=$(go-env_goarch ${CBUILD}) - export GOHOSTOS=$(go-env_goos ${CBUILD}) - export CC=$(tc-getBUILD_CC) - - export GOARCH=$(go-env_goarch) - export GOOS=$(go-env_goos) - export CC_FOR_TARGET=$(tc-getCC) - export CXX_FOR_TARGET=$(tc-getCXX) - use arm && export GOARM=$(go-env_goarm) - use x86 && export GO386=$(go-env_go386) - - cd src - bash -x ./make.bash || die "build failed" -} - -src_test() { - go_cross_compile && return 0 - cd src - PATH="${GOBIN}:${PATH}" \ - ./run.bash -no-rebuild -k || die "tests failed" -} - -src_install() { - dodir /usr/lib/go - # The use of cp is deliberate in order to retain permissions - cp -R . "${ED}"/usr/lib/go - einstalldocs - - # testdata directories are not needed on the installed system - # The other files we remove are installed by einstalldocs - rm -r $(find "${ED}"/usr/lib/go -iname testdata -type d -print) || die - rm "${ED}"/usr/lib/go/{CONTRIBUTING.md,PATENTS,README.md} || die - rm "${ED}"/usr/lib/go/{SECURITY.md,codereview.cfg,LICENSE} || die - - local bin_path - if go_cross_compile; then - bin_path="bin/$(go_tuple)" - else - bin_path=bin - fi - local f x - for x in ${bin_path}/*; do - f=${x##*/} - dosym ../lib/go/${bin_path}/${f} /usr/bin/${f} - done -} diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/go/go-1.26.2.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/go/go-1.26.2.ebuild deleted file mode 100644 index 746935ca16a..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-lang/go/go-1.26.2.ebuild +++ /dev/null @@ -1,148 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -export CBUILD=${CBUILD:-${CHOST}} -export CTARGET=${CTARGET:-${CHOST}} - -# See "Bootstrap" in release notes -GO_BOOTSTRAP_MIN=1.24.6 -MY_PV=${PV/_/} - -inherit flag-o-matic go-env toolchain-funcs - -case ${PV} in -*9999*) - EGIT_REPO_URI="https://github.com/golang/go.git" - inherit git-r3 - ;; -*) - SRC_URI="https://go.dev/dl/go${MY_PV}.src.tar.gz " - S="${WORKDIR}"/go - KEYWORDS="-* amd64 arm arm64 ~loong ~mips ppc64 ~riscv ~s390 x86 ~x64-macos ~x64-solaris" - ;; -esac - -DESCRIPTION="A concurrent garbage collected and typesafe programming language" -HOMEPAGE="https://go.dev" - -LICENSE="BSD" -SLOT="0/${PV}" -IUSE="cpu_flags_x86_sse2" - -BDEPEND="|| ( - >=dev-lang/go-${GO_BOOTSTRAP_MIN} - >=dev-lang/go-bootstrap-${GO_BOOTSTRAP_MIN} )" - -# the *.syso files have writable/executable stacks -QA_EXECSTACK='*.syso' - -# Do not complain about CFLAGS, etc, since Go doesn't use them. -QA_FLAGS_IGNORED='.*' - -# The tools in /usr/lib/go should not cause the multilib-strict check to fail. -QA_MULTILIB_PATHS="usr/lib/go/pkg/tool/.*/.*" - -# This package triggers "unrecognized elf file(s)" notices on riscv. -# https://bugs.gentoo.org/794046 -QA_PREBUILT="*" -QA_PRESTRIPPED="*.syso" - -# The Go data race detector (go test -race) requires an unstripped Go toolchain. -# https://bugs.gentoo.org/961618 -RESTRICT="strip" - -DOCS=( - CONTRIBUTING.md - PATENTS - README.md - SECURITY.md -) - -go_tuple() { - echo "$(go-env_goos $@)_$(go-env_goarch $@)" -} - -go_cross_compile() { - [[ $(go_tuple ${CBUILD}) != $(go_tuple) ]] -} - -PATCHES=( - "${FILESDIR}"/go-1.24-skip-gdb-tests.patch - "${FILESDIR}"/go-1.24-dont-force-gold-arm.patch - "${FILESDIR}"/go-1.25-no-dwarf5.patch - "${FILESDIR}"/go-never-download-newer-toolchains.patch -) - -src_compile() { - if has_version -b ">=dev-lang/go-${GO_BOOTSTRAP_MIN}"; then - export GOROOT_BOOTSTRAP="${BROOT}/usr/lib/go" - elif has_version -b ">=dev-lang/go-bootstrap-${GO_BOOTSTRAP_MIN}"; then - export GOROOT_BOOTSTRAP="${BROOT}/usr/lib/go-bootstrap" - else - eerror "Go cannot be built without go or go-bootstrap installed" - die "Should not be here, please report a bug" - fi - - if tc-is-gcc ; then - # XXX: Hack for checking ICE (bug #912152, gcc PR113204) - # - # For either USE=debug or an unreleased compiler, non-default - # checking will trigger. - if has_version -b "sys-devel/gcc[debug]" || [[ $(gcc-minor-version) -eq 0 ]] ; then - rm src/cmd/link/cgo_test.go || die - fi - - # bug #929219 - replace-flags -g3 -g - replace-flags -ggdb3 -ggdb - fi - - # Go's build script does not use BUILD/HOST/TARGET consistently. :( - export GOHOSTARCH=$(go-env_goarch ${CBUILD}) - export GOHOSTOS=$(go-env_goos ${CBUILD}) - export CC=$(tc-getBUILD_CC) - - export GOARCH=$(go-env_goarch) - export GOOS=$(go-env_goos) - export CC_FOR_TARGET=$(tc-getCC) - export CXX_FOR_TARGET=$(tc-getCXX) - use arm && export GOARM=$(go-env_goarm) - use x86 && export GO386=$(go-env_go386) - - cd src - bash -x ./make.bash || die "build failed" -} - -src_test() { - go_cross_compile && return 0 - cd src - PATH="${GOBIN}:${PATH}" \ - ./run.bash -no-rebuild -k || die "tests failed" -} - -src_install() { - dodir /usr/lib/go - # The use of cp is deliberate in order to retain permissions - cp -R . "${ED}"/usr/lib/go - einstalldocs - - # testdata directories are not needed on the installed system - # The other files we remove are installed by einstalldocs - rm -r $(find "${ED}"/usr/lib/go -iname testdata -type d -print) || die - rm "${ED}"/usr/lib/go/{CONTRIBUTING.md,PATENTS,README.md} || die - rm "${ED}"/usr/lib/go/{SECURITY.md,codereview.cfg,LICENSE} || die - - local bin_path - if go_cross_compile; then - bin_path="bin/$(go_tuple)" - else - bin_path=bin - fi - local f x - for x in ${bin_path}/*; do - f=${x##*/} - dosym ../lib/go/${bin_path}/${f} /usr/bin/${f} - done -} diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/go/go-1.26.3.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/go/go-1.26.3.ebuild deleted file mode 100644 index 46284fe0ab2..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-lang/go/go-1.26.3.ebuild +++ /dev/null @@ -1,147 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=9 - -export CBUILD=${CBUILD:-${CHOST}} -export CTARGET=${CTARGET:-${CHOST}} - -# See "Bootstrap" in release notes -GO_BOOTSTRAP_MIN=1.24.6 -MY_PV=${PV/_/} - -inherit flag-o-matic go-env toolchain-funcs - -case ${PV} in -*9999*) - EGIT_REPO_URI="https://github.com/golang/go.git" - inherit git-r3 - ;; -*) - SRC_URI="https://go.dev/dl/go${MY_PV}.src.tar.gz " - S="${WORKDIR}"/go - KEYWORDS="-* amd64 arm arm64 ~loong ~mips ppc64 ~riscv ~s390 x86 ~x64-macos ~x64-solaris" - ;; -esac - -DESCRIPTION="A concurrent garbage collected and typesafe programming language" -HOMEPAGE="https://go.dev" - -LICENSE="BSD" -SLOT="0/${PV}" -IUSE="cpu_flags_x86_sse2" - -BDEPEND="|| ( - >=dev-lang/go-${GO_BOOTSTRAP_MIN} - >=dev-lang/go-bootstrap-${GO_BOOTSTRAP_MIN} )" - -# the *.syso files have writable/executable stacks -QA_EXECSTACK='*.syso' - -# Do not complain about CFLAGS, etc, since Go doesn't use them. -QA_FLAGS_IGNORED='.*' - -# The tools in /usr/lib/go should not cause the multilib-strict check to fail. -QA_MULTILIB_PATHS="usr/lib/go/pkg/tool/.*/.*" - -# This package triggers "unrecognized elf file(s)" notices on riscv. -# https://bugs.gentoo.org/794046 -QA_PREBUILT="*" -QA_PRESTRIPPED="*.syso" - -# The Go data race detector (go test -race) requires an unstripped Go toolchain. -# https://bugs.gentoo.org/961618 -RESTRICT="strip" - -DOCS=( - CONTRIBUTING.md - PATENTS - README.md - SECURITY.md -) - -go_tuple() { - echo "$(go-env_goos $@)_$(go-env_goarch $@)" -} - -go_cross_compile() { - [[ $(go_tuple ${CBUILD}) != $(go_tuple) ]] -} - -PATCHES=( - "${FILESDIR}"/go-1.24-skip-gdb-tests.patch - "${FILESDIR}"/go-1.25-no-dwarf5.patch - "${FILESDIR}"/go-never-download-newer-toolchains.patch -) - -src_compile() { - if has_version -b ">=dev-lang/go-${GO_BOOTSTRAP_MIN}"; then - export GOROOT_BOOTSTRAP="${BROOT}/usr/lib/go" - elif has_version -b ">=dev-lang/go-bootstrap-${GO_BOOTSTRAP_MIN}"; then - export GOROOT_BOOTSTRAP="${BROOT}/usr/lib/go-bootstrap" - else - eerror "Go cannot be built without go or go-bootstrap installed" - die "Should not be here, please report a bug" - fi - - if tc-is-gcc ; then - # XXX: Hack for checking ICE (bug #912152, gcc PR113204) - # - # For either USE=debug or an unreleased compiler, non-default - # checking will trigger. - if has_version -b "sys-devel/gcc[debug]" || [[ $(gcc-minor-version) -eq 0 ]] ; then - rm src/cmd/link/cgo_test.go || die - fi - - # bug #929219 - replace-flags -g3 -g - replace-flags -ggdb3 -ggdb - fi - - # Go's build script does not use BUILD/HOST/TARGET consistently. :( - export GOHOSTARCH=$(go-env_goarch ${CBUILD}) - export GOHOSTOS=$(go-env_goos ${CBUILD}) - export CC=$(tc-getBUILD_CC) - - export GOARCH=$(go-env_goarch) - export GOOS=$(go-env_goos) - export CC_FOR_TARGET=$(tc-getCC) - export CXX_FOR_TARGET=$(tc-getCXX) - use arm && export GOARM=$(go-env_goarm) - use x86 && export GO386=$(go-env_go386) - - cd src - bash -x ./make.bash || die "build failed" -} - -src_test() { - go_cross_compile && return 0 - cd src - PATH="${GOBIN}:${PATH}" \ - ./run.bash -no-rebuild -k || die "tests failed" -} - -src_install() { - dodir /usr/lib/go - # The use of cp is deliberate in order to retain permissions - cp -R . "${ED}"/usr/lib/go - einstalldocs - - # testdata directories are not needed on the installed system - # The other files we remove are installed by einstalldocs - rm -r $(find "${ED}"/usr/lib/go -iname testdata -type d -print) || die - rm "${ED}"/usr/lib/go/{CONTRIBUTING.md,PATENTS,README.md} || die - rm "${ED}"/usr/lib/go/{SECURITY.md,codereview.cfg,LICENSE} || die - - local bin_path - if go_cross_compile; then - bin_path="bin/$(go_tuple)" - else - bin_path=bin - fi - local f x - for x in ${bin_path}/*; do - f=${x##*/} - dosym ../lib/go/${bin_path}/${f} /usr/bin/${f} - done -} diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/go/go-1.26.5.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/go/go-1.26.5.ebuild index 452231977fd..bde6f7b0403 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/go/go-1.26.5.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/go/go-1.26.5.ebuild @@ -20,7 +20,7 @@ case ${PV} in *) SRC_URI="https://go.dev/dl/go${MY_PV}.src.tar.gz " S="${WORKDIR}"/go - KEYWORDS="-* ~amd64 ~arm ~arm64 ~loong ~mips ~ppc64 ~riscv ~s390 ~x86 ~x64-macos ~x64-solaris" + KEYWORDS="-* amd64 arm arm64 ~loong ~mips ppc64 ~riscv ~s390 x86 ~x64-macos ~x64-solaris" ;; esac diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/go/go-1.27.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/go/go-1.27.0.ebuild deleted file mode 100644 index 89c75b000c3..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-lang/go/go-1.27.0.ebuild +++ /dev/null @@ -1,151 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=9 - -export CBUILD=${CBUILD:-${CHOST}} -export CTARGET=${CTARGET:-${CHOST}} - -# See "Bootstrap" in release notes -GO_BOOTSTRAP_MIN=1.24.6 -MY_PV=${PV/_/} - -inherit flag-o-matic go-env toolchain-funcs - -case ${PV} in -*9999*) - EGIT_REPO_URI="https://github.com/golang/go.git" - inherit git-r3 - ;; -*) - SRC_URI="https://go.dev/dl/go${MY_PV}.src.tar.gz " - S="${WORKDIR}"/go - #KEYWORDS="-* ~amd64 ~arm ~arm64 ~loong ~mips ~ppc64 ~riscv ~s390 ~x86 ~x64-macos ~x64-solaris" - ;; -esac - -DESCRIPTION="A concurrent garbage collected and typesafe programming language" -HOMEPAGE="https://go.dev" - -LICENSE="BSD" -SLOT="0/${PV}" -IUSE="cpu_flags_x86_sse2" - -BDEPEND="|| ( - >=dev-lang/go-${GO_BOOTSTRAP_MIN} - >=dev-lang/go-bootstrap-${GO_BOOTSTRAP_MIN} )" - -# the *.syso files have writable/executable stacks -QA_EXECSTACK='*.syso' - -# Do not complain about CFLAGS, etc, since Go doesn't use them. -QA_FLAGS_IGNORED='.*' - -# The tools in /usr/lib/go should not cause the multilib-strict check to fail. -QA_MULTILIB_PATHS="usr/lib/go/pkg/tool/.*/.*" - -# This package triggers "unrecognized elf file(s)" notices on riscv. -# https://bugs.gentoo.org/794046 -QA_PREBUILT="*" -QA_PRESTRIPPED="*.syso" - -# The Go data race detector (go test -race) requires an unstripped Go toolchain. -# https://bugs.gentoo.org/961618 -RESTRICT="strip" - -DOCS=( - CONTRIBUTING.md - PATENTS - README.md - SECURITY.md -) - -go_tuple() { - echo "$(go-env_goos $@)_$(go-env_goarch $@)" -} - -go_cross_compile() { - [[ $(go_tuple ${CBUILD}) != $(go_tuple) ]] -} - -PATCHES=( - "${FILESDIR}"/go-1.24-skip-gdb-tests.patch - "${FILESDIR}"/go-1.25-no-dwarf5.patch - "${FILESDIR}"/go-never-download-newer-toolchains.patch -) - -src_compile() { - if has_version -b ">=dev-lang/go-${GO_BOOTSTRAP_MIN}"; then - export GOROOT_BOOTSTRAP="${BROOT}/usr/lib/go" - elif has_version -b ">=dev-lang/go-bootstrap-${GO_BOOTSTRAP_MIN}"; then - export GOROOT_BOOTSTRAP="${BROOT}/usr/lib/go-bootstrap" - else - eerror "Go cannot be built without go or go-bootstrap installed" - die "Should not be here, please report a bug" - fi - - if tc-is-gcc ; then - # XXX: Hack for checking ICE (bug #912152, gcc PR113204) - # - # For either USE=debug or an unreleased compiler, non-default - # checking will trigger. - if has_version -b "sys-devel/gcc[debug]" || [[ $(gcc-minor-version) -eq 0 ]] ; then - rm src/cmd/link/cgo_test.go || die - fi - - # bug #929219 - replace-flags -g3 -g - replace-flags -ggdb3 -ggdb - fi - - # Go's build script does not use BUILD/HOST/TARGET consistently. :( - export GOHOSTARCH=$(go-env_goarch ${CBUILD}) - export GOHOSTOS=$(go-env_goos ${CBUILD}) - export CC=$(tc-getBUILD_CC) - - export GOARCH=$(go-env_goarch) - export GOOS=$(go-env_goos) - export CC_FOR_TARGET=$(tc-getCC) - export CXX_FOR_TARGET=$(tc-getCXX) - use arm && export GOARM=$(go-env_goarm) - use x86 && export GO386=$(go-env_go386) - - cd src - bash -x ./make.bash || die "build failed" -} - -src_test() { - go_cross_compile && return 0 - cd src || die - - # remove bad test because of ebuild toolchain environment - rm -v cmd/go/testdata/script/autocgo.txt || die - - PATH="${GOBIN}:${PATH}" \ - ./run.bash -no-rebuild -k || die "tests failed" -} - -src_install() { - dodir /usr/lib/go - # The use of cp is deliberate in order to retain permissions - cp -R . "${ED}"/usr/lib/go - einstalldocs - - # testdata directories are not needed on the installed system - # The other files we remove are installed by einstalldocs - rm -r $(find "${ED}"/usr/lib/go -iname testdata -type d -print) || die - rm "${ED}"/usr/lib/go/{CONTRIBUTING.md,PATENTS,README.md} || die - rm "${ED}"/usr/lib/go/{SECURITY.md,codereview.cfg,LICENSE} || die - - local bin_path - if go_cross_compile; then - bin_path="bin/$(go_tuple)" - else - bin_path=bin - fi - local f x - for x in ${bin_path}/*; do - f=${x##*/} - dosym ../lib/go/${bin_path}/${f} /usr/bin/${f} - done -} diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/go/go-1.25.11.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/go/go-1.27.1.ebuild similarity index 97% rename from sdk_container/src/third_party/portage-stable/dev-lang/go/go-1.25.11.ebuild rename to sdk_container/src/third_party/portage-stable/dev-lang/go/go-1.27.1.ebuild index 4fae67fcf5a..452231977fd 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/go/go-1.25.11.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/go/go-1.27.1.ebuild @@ -1,13 +1,13 @@ # Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=8 +EAPI=9 export CBUILD=${CBUILD:-${CHOST}} export CTARGET=${CTARGET:-${CHOST}} # See "Bootstrap" in release notes -GO_BOOTSTRAP_MIN=1.22.12 +GO_BOOTSTRAP_MIN=1.24.6 MY_PV=${PV/_/} inherit flag-o-matic go-env toolchain-funcs @@ -71,7 +71,6 @@ go_cross_compile() { PATCHES=( "${FILESDIR}"/go-1.24-skip-gdb-tests.patch "${FILESDIR}"/go-1.25-no-dwarf5.patch - "${FILESDIR}"/go-1.25-strip-top-level-const.patch "${FILESDIR}"/go-never-download-newer-toolchains.patch ) diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/go/metadata.xml b/sdk_container/src/third_party/portage-stable/dev-lang/go/metadata.xml index 5e00214a73f..c9267d99be0 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/go/metadata.xml +++ b/sdk_container/src/third_party/portage-stable/dev-lang/go/metadata.xml @@ -5,10 +5,14 @@ williamh@gentoo.org William Hubbs + + arthurzam@gentoo.org + Arthur Zamarin + Go is a new systems programming language developed at google by Rob Pike. It has garbage collection, coroutines, communication - channels and a clean syntax. + channels and a clean syntax. cpe:/a:golang:go diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/python/Manifest b/sdk_container/src/third_party/portage-stable/dev-lang/python/Manifest index 9bb90e21edc..9d2cecf604f 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/python/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-lang/python/Manifest @@ -28,6 +28,8 @@ DIST Python-3.15.0b4.tar.xz 35509544 BLAKE2B d7fb1fb55cb75ab28971dc4ce575a61213b DIST Python-3.15.0b4.tar.xz.sigstore 7105 BLAKE2B 78f8667ab32ae1353cb1475a9318e669922d475e0c31fd5e5bd86f944dc318d33299b9fbb6d00eb833cfa0f33dd0f043a6301f3e09f25fb1af892f3bb3a633b2 SHA512 df6545bc6899bcaafa056066b25a35de010a64587af223060f14ae35313b18c9e221f8bced7e256d2b3f9f13fa56c86a1cb8feefe0e24c7ad2efc41e4bf115b9 DIST Python-3.15.0rc1.tar.xz 35516700 BLAKE2B 97bcfd712f442c0811591c4e23b29840de9755893f5ac03c3a10eaf68682a9620b39d147cf857c319b047b1d816b521b9e1e9b7cb21321974d50bbc1b8ce8c3b SHA512 70dfe0b18bf769206d50d1efa2d3c5d3da7b8333139d9d7f8f404bc8273cdf86348714a7c94869b4af4a38c0ee45559ad0bac6e90e434f11f1ee07ebbda0618a DIST Python-3.15.0rc1.tar.xz.sigstore 7297 BLAKE2B bc1c314774909316c1860e3bb947740ed9beaa00821416459b9f66eb681a2467a19ca0187ab515f54829a3df8fb3214ac2bf8c68d1b6ead09b5c810c96253fd4 SHA512 1ce9eebc29918a5a74378f3af893104b957a5565cd7f3878e099b799787cc731caccd70f6e8fc450bc4f6a6690e1e1570fdc9ee6722b67fad455e3b075881f7b +DIST Python-3.15.0rc2.tar.xz 35544464 BLAKE2B bd5e1203f2c65bd6cb20f822927b77b65b1f13e2cfd08b295e966f92f3c6c7d9ad9178224fe6cc6d07900c41b5083ce25a8cd1fd896bf50a905b699da4a37fe2 SHA512 afef5f1aa89e7cd875ec99a7b6681c9f1ce18474955b7bbd1cc0def9a3cf69163bc028d06263a008b48b12361d67943289967914a1503e2ccc4e724be7e06c6f +DIST Python-3.15.0rc2.tar.xz.sigstore 7011 BLAKE2B 1a48036e37fc1cc218e9be491303239953b83259947a6ca76241f1a16af3626edefdec270666c0ba6f7835578486872b171e75fbedc24171188609e1b8caa230 SHA512 dcec0764b89abc84e3220448b17d3612c4ddf2ab8dddd282860faf8159cda1b4fae2e7583f4936ed3c62e752289f561efd9cbef9c3f42df71fddfbe17fa9e8a9 DIST Python-3.8.20.tar.xz 18962788 BLAKE2B 715c75e0c0a3d3b77af7f07478311bb0554b80aac72915be703aa2d0dd6459a972e5669808e64da14a0b91bb183e00655055c1726f302dc3ccd8721e3b4ae3e6 SHA512 3c9341ee1fd33cb687958dcf2b7c0c7700489726c4d530c3e9d9537d46a6ab534541a4b312232d8505bea395a07e4518c42d75fb7571103e6b266f8f44115c61 DIST Python-3.8.20.tar.xz.asc 833 BLAKE2B 5c86c15a1090b42e42bb7512565b1a7ad9d2137d59e9fd1ab0f83fdfc37dfcf184389418d6703db809e9c8c04a169af292665a2b58bf5dc61b7724ecbb4132d9 SHA512 a751ae0407a593d97acac4d5f8a0456580c753efa12a7d960125c219b4897fdb26fc1ffd43d8ea33ad1449162dd3b2904c16b6c51c57561ba73de3ffa62e0eed DIST Python-3.9.25.tar.xz 20183236 BLAKE2B 01c5af78659324e2a596611c11c0fa982f81faf9b401afe1a96399b58321e39c41e46a932e1e4437f3f2bb2d76d8482e852fc66e6f960a4928f7fc99b62dfb7e SHA512 33fd65952cc3ce5df83825aa32a103935815bdd5a016e5fd9896cafb068a3f89b3a6134458a2694e4f0f4f8a9fbe84739b53116264728b32cde0f03ab210cb19 @@ -49,5 +51,6 @@ DIST python-gentoo-patches-3.15.0b3.tar.xz 3432 BLAKE2B 994e9339e00dfa4b40395e76 DIST python-gentoo-patches-3.15.0b4_p1.tar.xz 4272 BLAKE2B 850ff2a20381a562da3e727fcbf4d2de88682b9ec086c31359de8a31e0aaf2b87da91d55ec7ceb690c7969d75683bd07e43f88d3bf6f33448f98674c49b404b2 SHA512 7baa9b19cb01bf6c1fc5ca5a62cd08967d4be3f697931ffc7e56da150d4d9a038b1ed212543ae334cb826f59a20ec6cc5d329db72e62fd152271817f5ded1975 DIST python-gentoo-patches-3.15.0rc1.tar.xz 3432 BLAKE2B ecd250cefb140de9b9072e4fc256a21c0f2b0a372a4fc715cf954e04c8b5ed8932f9729e14fa1c31edbca3db72b6c9fade2bb4571544e26425bfa841cbd9acad SHA512 2d587b31bafe712f87b79c93fc197e7232da29a14df218ec495a57a50a92d1543dc5fb32214a5ef83dc2b0dac22dad493a03cac39b25566f1b4688d810dacefa DIST python-gentoo-patches-3.15.0rc1_p1.tar.xz 5204 BLAKE2B 088022af757ebcb93a6fed65211147f5e1b4fc3cf319aa4fd6ca18998a96a579711cc18ba392e91a58cbea44fc71facca47ace333fc79957ae779876b30e0349 SHA512 c72a2a312c97e67962b06a2fa2da6292b11fa19cb8fe237e9a100c85672a230acf2f74b47832a601513a100358bcfd70296501652a9692e86a53447f5962fdfa +DIST python-gentoo-patches-3.15.0rc2.tar.xz 3428 BLAKE2B 9bd66e1faff64ddf07367e22c606ea893d073ff6641f443e6dcca88455ae3b9fbca0eaaedfd99a0359eef4ff9b335351dc9b27ac70c4635dfeeaad208d5b2867 SHA512 fe24da1974f6bf25d65c39051584b6b8463d3aad19a7841ee6d16534ab06825acba02842b56e4e93871da6c046d6e5cfa23bad9e1e7b0d23e1a7047c13eb1b97 DIST python-gentoo-patches-3.8.20_p7.tar.xz 54544 BLAKE2B e31fc9fb5e98b62b0f70165670ec58ed4fa932cfc95d5287c249015a3a372fdbf0d1ba08cb98f63c2dc500700edfd6ffea6db670385d2c86a4fdb92ffb991192 SHA512 a9e7e4976be226931a503af2c986da207d060d4ce436af61f5e8427da513639adbed32bb0061963b83fef275a5de91707ab13b7a9abf3a7472ee0e2c5310eda1 DIST python-gentoo-patches-3.9.25.tar.xz 36604 BLAKE2B 11d35dcbc8979fe37e27a00dfef9683f0bf40514415be416d322f0509109edeb58a2e0b9218cfa3b3326654f5923d165511d203504ca2b52971ad136f8a454d1 SHA512 234bae116b2a5af00506cb76a0b86dfb8cf1f84ee980a358f3642bb717cff4d6f10388b2a07f12118588a174de4d2fd6ad2e3ab24704f9c85f36cb33d51f0c65 diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-0.3.15.0_rc2.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-0.3.15.0_rc2.ebuild new file mode 100644 index 00000000000..b011e6ecc26 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-0.3.15.0_rc2.ebuild @@ -0,0 +1,662 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="8" + +VERIFY_SIG_METHOD=sigstore +WANT_LIBTOOL="none" + +inherit autotools check-reqs eapi9-ver flag-o-matic linux-info +inherit multiprocessing pax-utils python-utils-r1 toolchain-funcs +inherit verify-sig + +REAL_PV=${PV#0.} +MY_PV=${REAL_PV/_} +MY_P="Python-${MY_PV%_p*}" +PYVER="$(ver_cut 2-3)t" +PATCHSET="python-gentoo-patches-${MY_PV}" + +DESCRIPTION="Freethreading (no-GIL) version of Python programming language" +HOMEPAGE=" + https://www.python.org/ + https://github.com/python/cpython/ +" +SRC_URI=" + https://www.python.org/ftp/python/${REAL_PV%%_*}/${MY_P}.tar.xz + https://distfiles.gentoo.org/pub/proj/python/patchsets/${PYVER%t}/${PATCHSET}.tar.xz + verify-sig? ( + https://www.python.org/ftp/python/${REAL_PV%%_*}/${MY_P}.tar.xz.sigstore + ) +" +S="${WORKDIR}/${MY_P}" + +LICENSE="PSF-2" +SLOT="${PYVER}" +IUSE=" + bluetooth build debug +ensurepip examples gdbm libedit +ncurses pgo + +readline +sqlite +ssl tail-call-interp test tk valgrind +" +RESTRICT="!test? ( test )" + +# Do not add a dependency on dev-lang/python to this ebuild. +# If you need to apply a patch which requires python for bootstrapping, please +# run the bootstrap code on your dev box and include the results in the +# patchset. See bug 447752. + +RDEPEND=" + app-arch/bzip2:= + app-arch/xz-utils:= + app-misc/mime-types + >=dev-libs/expat-2.1:= + dev-libs/libffi:= + dev-libs/mpdecimal:= + dev-python/gentoo-common + sys-apps/util-linux + >=virtual/zlib-1.1.3:= + virtual/libintl + !build? ( app-arch/zstd:= ) + gdbm? ( sys-libs/gdbm:=[berkdb] ) + ncurses? ( >=sys-libs/ncurses-5.2:= ) + readline? ( + !libedit? ( >=sys-libs/readline-4.1:= ) + libedit? ( dev-libs/libedit:= ) + ) + sqlite? ( >=dev-db/sqlite-3.3.8:3= ) + ssl? ( >=dev-libs/openssl-1.1.1:= ) + tk? ( + >=dev-lang/tcl-8.0:= + >=dev-lang/tk-8.0:= + dev-tcltk/blt:= + dev-tcltk/tix + ) +" +# bluetooth requires headers from bluez +DEPEND=" + ${RDEPEND} + bluetooth? ( net-wireless/bluez ) + test? ( + dev-python/ensurepip-pip + dev-python/ensurepip-setuptools + dev-python/ensurepip-wheel + ) + valgrind? ( dev-debug/valgrind ) +" +# autoconf-archive needed to eautoreconf +BDEPEND=" + dev-build/autoconf-archive + app-alternatives/awk + virtual/pkgconfig + tail-call-interp? ( + || ( + >=sys-devel/gcc-16:* + >=llvm-core/clang-19:* + ) + ) +" +if [[ ${PV} != *_alpha* ]]; then + RDEPEND+=" + dev-lang/python-exec[python_targets_python${PYVER/./_}(-)] + " +fi +PDEPEND=" + ensurepip? ( dev-python/ensurepip-pip ) +" + +# https://www.python.org/downloads/metadata/sigstore/ +VERIFY_SIG_CERT_IDENTITY=hugo@python.org +VERIFY_SIG_CERT_OIDC_ISSUER=https://github.com/login/oauth + +# large file tests involve a 2.5G file being copied (duplicated) +CHECKREQS_DISK_BUILD=5500M + +QA_PKGCONFIG_VERSION=${PYVER%t} +# false positives -- functions specific to *BSD +QA_CONFIG_IMPL_DECL_SKIP=( chflags lchflags ) + +declare -rgA PYTHON_KERNEL_CHECKS=( + ["CROSS_MEMORY_ATTACH"]="test_external_inspection" #bug 938589 + ["DNOTIFY"]="test_fcntl" # bug 938662 +) + +pkg_pretend() { + if use pgo || use test; then + check-reqs_pkg_pretend + fi + + ewarn "Freethreading build is considered experimental upstream. Using it" + ewarn "could lead to unexpected breakage, including race conditions" + ewarn "and crashes, respectively. Please do not file Gentoo bugs, unless" + ewarn "you can reproduce the problem with dev-lang/python. Instead," + ewarn "please consider reporting freethreading problems upstream." + + if [[ ${MERGE_TYPE} != buildonly ]] && ver_replacing -lt 0.3.15.0_beta4; then + ewarn + ewarn "Python 3.15.0b4 has broken its extension ABI. The extensions built" + ewarn "with older versions may crash at runtime or worse after upgrading." + ewarn "A rebuild is recommended after the merge is complete, e.g. using:" + ewarn + ewarn " emerge -1v \$(find /usr/lib/python3.15t/site-packages -name '*.cpython-315t-*.so')" + ewarn + ewarn "Note that if you enabled both python3_15 and python3_15t, then" + ewarn "the 3.15 rebuild should cover all 3.15t packages as well." + ewarn "If you do not wish to perform the rebuild at the time, it is" + ewarn "recommended to abort the upgrade." + ewarn + fi +} + +pkg_setup() { + if [[ ${MERGE_TYPE} != binary ]]; then + if use test || use pgo; then + check-reqs_pkg_setup + + local CONFIG_CHECK + for f in "${!PYTHON_KERNEL_CHECKS[@]}"; do + CONFIG_CHECK+="~${f} " + done + linux-info_pkg_setup + fi + if use tail-call-interp; then + tc-check-min_ver gcc 16 + tc-check-min_ver clang 19 + fi + fi +} + +src_unpack() { + if use verify-sig; then + verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.sigstore} + fi + default +} + +src_prepare() { + # Ensure that internal copies of expat and libffi are not used. + # TODO: Makefile has annoying deps on expat headers + #rm -r Modules/expat || die + + local PATCHES=( + "${WORKDIR}/${PATCHSET}" + ) + + default + + # force the correct number of jobs + # https://bugs.gentoo.org/737660 + sed -i -e "s:-j0:-j$(makeopts_jobs):" Makefile.pre.in || die + + # breaks tests when using --with-wheel-pkg-dir + rm -r Lib/test/wheeldata || die + + eautoreconf +} + +build_cbuild_python() { + # Hack to workaround get_libdir not being able to handle CBUILD, bug #794181 + local cbuild_libdir=$(unset PKG_CONFIG_PATH ; $(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libffi) + + # pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get + # propagated to sysconfig for built extensions + # + # -fno-lto to avoid bug #700012 (not like it matters for mini-CBUILD Python anyway) + local -x CFLAGS_NODIST="${BUILD_CFLAGS} -fno-lto" + local -x LDFLAGS_NODIST="${BUILD_LDFLAGS} -fno-lto" + local -x CFLAGS= LDFLAGS= + local -x BUILD_CFLAGS="${CFLAGS_NODIST}" + local -x BUILD_LDFLAGS="${LDFLAGS_NODIST}" + + # We need to build our own Python on CBUILD first, and feed it in. + # bug #847910 + local myeconfargs_cbuild=( + "${myeconfargs[@]}" + + --prefix="${BROOT}"/usr + --libdir="${cbuild_libdir:2}" + + # Avoid needing to load the right libpython.so. + --disable-shared + + # As minimal as possible for the mini CBUILD Python + # we build just for cross to satisfy --with-build-python. + --without-lto + --without-readline + --disable-optimizations + ) + + mkdir "${WORKDIR}"/${P}-${CBUILD} || die + pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die + + # Avoid as many dependencies as possible for the cross build. + mkdir Modules || die + cat > Modules/Setup.local <<-EOF || die + *disabled* + nis + _dbm _gdbm + _sqlite3 + _hashlib _ssl + _curses _curses_panel + readline + _tkinter + pyexpat + zlib + # We disabled these for CBUILD because Python's setup.py can't handle locating + # libdir correctly for cross. This should be rechecked for the pure Makefile approach, + # and uncommented if needed. + #_ctypes + EOF + + ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}" + + # Unfortunately, we do have to build this immediately, and + # not in src_compile, because CHOST configure for Python + # will check the existence of the --with-build-python value + # immediately. + emake + popd &> /dev/null || die +} + +src_configure() { + # disable automagic bluetooth headers detection + if ! use bluetooth; then + local -x ac_cv_header_bluetooth_bluetooth_h=no + fi + + filter-flags -malign-double + + # Export CXX so it ends up in /usr/lib/python3.X/config/Makefile. + # PKG_CONFIG needed for cross. + tc-export CXX PKG_CONFIG + + local dbmliborder= + if use gdbm; then + dbmliborder+="${dbmliborder:+:}gdbm" + fi + + # Set baseline test skip flags. + COMMON_TEST_SKIPS=( + # running gdb inside an ebuild as non-root, within sandbox, + # and possibly within a container is unreliable + -x test_gdb + # this is actually test_gdb.test_pretty_print + -x test_pretty_print + # https://bugs.gentoo.org/933840 + -x test_perf_profiler + ) + + # Arch-specific skips. See #931888 for a collection of these. + case ${CHOST} in + alpha*) + COMMON_TEST_SKIPS+=( + -x test_builtin + -x test_capi + -x test_cmath + -x test_float + # timeout + -x test_free_threading + -x test_math + -x test_numeric_tower + -x test_random + -x test_statistics + # bug 653850 + -x test_resource + -x test_strtod + ) + ;; + mips*) + COMMON_TEST_SKIPS+=( + -x test_ctypes + -x test_external_inspection + -x test_statistics + ) + ;; + riscv*) + COMMON_TEST_SKIPS+=( + -x test_urllib2 + ) + ;; + sparc*) + COMMON_TEST_SKIPS+=( + # bug 788022 + -x test_multiprocessing_fork + -x test_multiprocessing_forkserver + -x test_multiprocessing_spawn + + -x test_ctypes + # bug 931908 + -x test_exceptions + ) + ;; + esac + + # Kernel-config specific skips + for option in "${!PYTHON_KERNEL_CHECKS[@]}"; do + if ! linux_config_exists || ! linux_chkconfig_present "${option}" + then + COMMON_TEST_SKIPS+=( -x "${PYTHON_KERNEL_CHECKS[${option}]}" ) + fi + done + + # musl-specific skips + use elibc_musl && COMMON_TEST_SKIPS+=( + # various musl locale deficiencies + -x test__locale + -x test_c_locale_coercion + -x test_locale + -x test_re + + # known issues with find_library on musl + # https://bugs.python.org/issue21622 + -x test_ctypes + + # fpathconf, ttyname errno values + -x test_os + ) + + if use pgo; then + local profile_task_flags=( + -m test + "-j$(makeopts_jobs)" + --pgo-extended + --verbose3 + -u-network + + # We use a timeout because of how often we've had hang issues + # here. It also matches the default upstream PROFILE_TASK. + --timeout 1200 + + "${COMMON_TEST_SKIPS[@]}" + + -x test_dtrace + + # All of these seem to occasionally hang for PGO inconsistently + # They'll even hang here but be fine in src_test sometimes. + # bug #828535 (and related: bug #788022) + -x test_asyncio + -x test_httpservers + -x test_logging + -x test_multiprocessing_fork + -x test_socket + -x test_xmlrpc + + # Hangs (actually runs indefinitely executing itself w/ many cpython builds) + # bug #900429 + -x test_tools + + # Test terminates abruptly which corrupts written profile data + # bug #964023 + -x test_pyrepl + ) + + if has_version "app-arch/rpm" ; then + # Avoid sandbox failure (attempts to write to /var/lib/rpm) + profile_task_flags+=( + -x test_distutils + ) + fi + # PGO sometimes fails randomly + local -x PROFILE_TASK="${profile_task_flags[*]} || true" + fi + + local myeconfargs=( + # glibc-2.30 removes it; since we can't cleanly force-rebuild + # Python on glibc upgrade, remove it proactively to give + # a chance for users rebuilding python before glibc + ac_cv_header_stropts_h=no + + --enable-shared + --without-static-libpython + --enable-ipv6 + --infodir='${prefix}/share/info' + --mandir='${prefix}/share/man' + --with-dbmliborder="${dbmliborder}" + --with-libc= + --enable-loadable-sqlite-extensions + --without-ensurepip + --without-lto + --with-system-expat + --with-system-libmpdec + --with-platlibdir=lib + --with-pkg-config=yes + --with-wheel-pkg-dir="${EPREFIX}"/usr/lib/python/ensurepip + --disable-gil + + $(use_with debug assertions) + $(use_enable pgo optimizations) + $(use_with readline readline "$(usex libedit editline readline)") + $(use_with tail-call-interp) + $(use_with valgrind) + ) + + if tc-is-lto; then + myeconfargs+=( + --with-lto + ) + fi + + # Force-disable modules we don't want built. + # See Modules/Setup for docs on how this works. Setup.local contains our local deviations. + cat > Modules/Setup.local <<-EOF || die + *disabled* + nis + $(usev build '_zstd') + $(usev !gdbm '_gdbm _dbm') + $(usev !sqlite '_sqlite3') + $(usev !ssl '_hashlib _ssl') + $(usev !ncurses '_curses _curses_panel') + $(usev !readline 'readline') + $(usev !tk '_tkinter') + EOF + + # disable implicit optimization/debugging flags + local -x OPT= + + if tc-is-cross-compiler ; then + build_cbuild_python + myeconfargs+=( + # Point the imminent CHOST build to the Python we just + # built for CBUILD. + --with-build-python="${WORKDIR}"/${P}-${CBUILD}/python + ) + fi + + # pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get + # propagated to sysconfig for built extensions + local -x CFLAGS_NODIST=${CFLAGS} + local -x LDFLAGS_NODIST=${LDFLAGS} + local -x CFLAGS= LDFLAGS= + + # Fix implicit declarations on cross and prefix builds. Bug #674070. + if use ncurses; then + append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw + fi + + econf "${myeconfargs[@]}" + + if grep -q "#define POSIX_SEMAPHORES_NOT_ENABLED 1" pyconfig.h; then + eerror "configure has detected that the sem_open function is broken." + eerror "Please ensure that /dev/shm is mounted as a tmpfs with mode 1777." + die "Broken sem_open function (bug 496328)" + fi + + # install epython.py as part of stdlib + echo "EPYTHON='python${PYVER}'" > Lib/epython.py || die +} + +src_compile() { + # Ensure sed works as expected + # https://bugs.gentoo.org/594768 + local -x LC_ALL=C + export PYTHONSTRICTEXTENSIONBUILD=1 + + # Save PYTHONDONTWRITEBYTECODE so that 'has_version' doesn't + # end up writing bytecode & violating sandbox. + # bug #831897 + local -x _PYTHONDONTWRITEBYTECODE=${PYTHONDONTWRITEBYTECODE} + + # Gentoo hack to disable accessing system site-packages + export GENTOO_CPYTHON_BUILD=1 + + if use pgo ; then + # bug 660358 + local -x COLUMNS=80 + local -x PYTHONDONTWRITEBYTECODE= + local -x TMPDIR=/var/tmp + fi + + # also need to clear the flags explicitly here or they end up + # in _sysconfigdata* + emake CPPFLAGS= CFLAGS= LDFLAGS= + + # Restore saved value from above. + local -x PYTHONDONTWRITEBYTECODE=${_PYTHONDONTWRITEBYTECODE} + + # Work around bug 329499. See also bug 413751 and 457194. + if has_version dev-libs/libffi[pax-kernel]; then + pax-mark E python + else + pax-mark m python + fi +} + +src_test() { + # Tests will not work when cross compiling. + if tc-is-cross-compiler; then + elog "Disabling tests due to crosscompiling." + return + fi + + # this just happens to skip test_support.test_freeze that is broken + # without bundled expat + # TODO: get a proper skip for it upstream + local -x LOGNAME=buildbot + + local test_opts=( + --verbose3 + -u-network + -j "$(makeopts_jobs)" + "${COMMON_TEST_SKIPS[@]}" + ) + + # bug 660358 + local -x COLUMNS=80 + local -x PYTHONDONTWRITEBYTECODE= + local -x TMPDIR=/var/tmp + + nonfatal emake -Onone test EXTRATESTOPTS="${test_opts[*]}" \ + CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty + local ret=${?} + + [[ ${ret} -eq 0 ]] || die "emake test failed" +} + +src_install() { + local libdir=${ED}/usr/lib/python${PYVER} + local build_dir=$(/dev/null + ) + newins Tools/gdb/libpython.py "${libname}"-gdb.py + + newconfd "${FILESDIR}/pydoc.conf" pydoc-${PYVER} + newinitd "${FILESDIR}/pydoc.init" pydoc-${PYVER} + sed \ + -e "s:@PYDOC_PORT_VARIABLE@:PYDOC${PYVER/./_}_PORT:" \ + -e "s:@PYDOC@:pydoc${PYVER}:" \ + -i "${ED}/etc/conf.d/pydoc-${PYVER}" \ + "${ED}/etc/init.d/pydoc-${PYVER}" || die "sed failed" + + # python-exec wrapping support + local pymajor=${PYVER%.*} + local EPYTHON=python${PYVER} + local scriptdir=${D}$(python_get_scriptdir) + mkdir -p "${scriptdir}" || die + # python and pythonX + ln -s "../../../bin/${abiver}" "${scriptdir}/python${pymajor}" || die + ln -s "python${pymajor}" "${scriptdir}/python" || die + # python-config and pythonX-config + # note: we need to create a wrapper rather than symlinking it due + # to some random dirname(argv[0]) magic performed by python-config + cat > "${scriptdir}/python${pymajor}-config" <<-EOF || die + #!/bin/sh + exec "${abiver}-config" "\${@}" + EOF + chmod +x "${scriptdir}/python${pymajor}-config" || die + ln -s "python${pymajor}-config" "${scriptdir}/python-config" || die + # pydoc + ln -s "../../../bin/pydoc${PYVER}" "${scriptdir}/pydoc" || die + # idle + if use tk; then + ln -s "../../../bin/idle${PYVER}" "${scriptdir}/idle" || die + fi +} + +pkg_postinst() { + if ver_replacing -lt 0.3.15.0_beta4; then + ewarn "Python 3.15.0b4 has broken its extension ABI. The extensions built" + ewarn "with older versions may crash at runtime or worse. To prevent this," + ewarn "please rebuild all extensions using the versoned ABI, e.g. using:" + ewarn + ewarn " emerge -1v \$(find /usr/lib/python3.15t/site-packages -name '*.cpython-315t-*.so')" + ewarn + ewarn "Note that if you enabled both python3_15 and python3_15t, then" + ewarn "the 3.15 rebuild should cover all 3.15t packages already." + fi +} diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.10.21.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.10.21.ebuild index 3b5799d53f6..7b1f2281cfa 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.10.21.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.10.21.ebuild @@ -28,7 +28,7 @@ S="${WORKDIR}/${MY_P}" LICENSE="PSF-2" SLOT="${PYVER}" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" IUSE=" bluetooth debug +ensurepip examples gdbm libedit +ncurses pgo +readline +sqlite +ssl test tk valgrind diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.11.16.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.11.16.ebuild index 58e364bf25a..b9fd028a4e3 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.11.16.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.11.16.ebuild @@ -28,7 +28,7 @@ S="${WORKDIR}/${MY_P}" LICENSE="PSF-2" SLOT="${PYVER}" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" IUSE=" bluetooth debug +ensurepip examples gdbm libedit +ncurses pgo +readline +sqlite +ssl test tk valgrind diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.12.14.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.12.14.ebuild index f31347ad28b..8aa2da3b30b 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.12.14.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.12.14.ebuild @@ -28,7 +28,7 @@ S="${WORKDIR}/${MY_P}" LICENSE="PSF-2" SLOT="${PYVER}" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" IUSE=" bluetooth debug +ensurepip examples gdbm libedit +ncurses pgo +readline +sqlite +ssl test tk valgrind diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.13.15.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.13.15.ebuild index d1ccb0f535b..99c2aa09511 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.13.15.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.13.15.ebuild @@ -32,7 +32,7 @@ S="${WORKDIR}/${MY_P}" LICENSE="PSF-2" SLOT="${PYVER}" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" IUSE=" bluetooth debug +ensurepip examples gdbm jit libedit +ncurses pgo +readline +sqlite +ssl test tk valgrind diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.14.7.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.14.7.ebuild index 1b4baba3a56..19200cef0e7 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.14.7.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.14.7.ebuild @@ -34,7 +34,7 @@ S="${WORKDIR}/${MY_P}" LICENSE="PSF-2" SLOT="${PYVER}" if [[ ${PV} != *_rc* ]]; then - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" fi IUSE=" bluetooth build debug +ensurepip examples gdbm jit libedit +ncurses pgo diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.15.0_rc2.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.15.0_rc2.ebuild new file mode 100644 index 00000000000..32f16d24f06 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.15.0_rc2.ebuild @@ -0,0 +1,667 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="8" + +LLVM_COMPAT=( 21 ) +LLVM_OPTIONAL=1 +VERIFY_SIG_METHOD=sigstore +WANT_LIBTOOL="none" + +inherit autotools check-reqs eapi9-ver flag-o-matic linux-info llvm-r2 +inherit multiprocessing pax-utils python-utils-r1 toolchain-funcs +inherit verify-sig + +MY_PV=${PV/_} +MY_P="Python-${MY_PV%_p*}" +PYVER=$(ver_cut 1-2) +PATCHSET="python-gentoo-patches-${MY_PV}" + +DESCRIPTION="An interpreted, interactive, object-oriented programming language" +HOMEPAGE=" + https://www.python.org/ + https://github.com/python/cpython/ +" +SRC_URI=" + https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz + https://distfiles.gentoo.org/pub/proj/python/patchsets/${PYVER%t}/${PATCHSET}.tar.xz + verify-sig? ( + https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz.sigstore + ) +" +S="${WORKDIR}/${MY_P}" + +LICENSE="PSF-2" +SLOT="${PYVER}" +IUSE=" + bluetooth build debug +ensurepip examples gdbm jit libedit +ncurses pgo + +readline +sqlite +ssl tail-call-interp test tk valgrind +" +REQUIRED_USE="jit? ( ${LLVM_REQUIRED_USE} )" +RESTRICT="!test? ( test )" + +# Do not add a dependency on dev-lang/python to this ebuild. +# If you need to apply a patch which requires python for bootstrapping, please +# run the bootstrap code on your dev box and include the results in the +# patchset. See bug 447752. + +RDEPEND=" + app-arch/bzip2:= + app-arch/xz-utils:= + app-misc/mime-types + >=dev-libs/expat-2.1:= + dev-libs/libffi:= + dev-libs/mpdecimal:= + dev-python/gentoo-common + sys-apps/util-linux + >=virtual/zlib-1.1.3:= + virtual/libintl + !build? ( app-arch/zstd:= ) + gdbm? ( sys-libs/gdbm:=[berkdb] ) + ncurses? ( >=sys-libs/ncurses-5.2:= ) + readline? ( + !libedit? ( >=sys-libs/readline-4.1:= ) + libedit? ( dev-libs/libedit:= ) + ) + sqlite? ( >=dev-db/sqlite-3.3.8:3= ) + ssl? ( >=dev-libs/openssl-1.1.1:= ) + tk? ( + >=dev-lang/tcl-8.0:= + >=dev-lang/tk-8.0:= + dev-tcltk/blt:= + dev-tcltk/tix + ) +" +# bluetooth requires headers from bluez +DEPEND=" + ${RDEPEND} + bluetooth? ( net-wireless/bluez ) + test? ( + dev-python/ensurepip-pip + dev-python/ensurepip-setuptools + dev-python/ensurepip-wheel + ) + valgrind? ( dev-debug/valgrind ) +" +# autoconf-archive needed to eautoreconf +BDEPEND=" + dev-build/autoconf-archive + app-alternatives/awk + virtual/pkgconfig + jit? ( + $(llvm_gen_dep ' + llvm-core/clang:${LLVM_SLOT} + llvm-core/llvm:${LLVM_SLOT} + ') + ) + tail-call-interp? ( + || ( + >=sys-devel/gcc-16:* + >=llvm-core/clang-19:* + ) + ) +" +if [[ ${PV} != *_alpha* ]]; then + RDEPEND+=" + dev-lang/python-exec[python_targets_python${PYVER/./_}(-)] + " +fi +PDEPEND=" + ensurepip? ( dev-python/ensurepip-pip ) +" + +# https://www.python.org/downloads/metadata/sigstore/ +VERIFY_SIG_CERT_IDENTITY=hugo@python.org +VERIFY_SIG_CERT_OIDC_ISSUER=https://github.com/login/oauth + +# large file tests involve a 2.5G file being copied (duplicated) +CHECKREQS_DISK_BUILD=5500M + +QA_PKGCONFIG_VERSION=${PYVER%t} +# false positives -- functions specific to *BSD +QA_CONFIG_IMPL_DECL_SKIP=( chflags lchflags ) + +declare -rgA PYTHON_KERNEL_CHECKS=( + ["CROSS_MEMORY_ATTACH"]="test_external_inspection" #bug 938589 + ["DNOTIFY"]="test_fcntl" # bug 938662 +) + +pkg_pretend() { + if use pgo || use test; then + check-reqs_pkg_pretend + fi + + if use jit; then + ewarn "USE=jit is considered experimental upstream. Using it" + ewarn "could lead to unexpected breakage, including race conditions" + ewarn "and crashes, respectively. Please do not file Gentoo bugs, unless" + ewarn "you can reproduce the problem with dev-lang/python[-jit]. Instead," + ewarn "please consider reporting JIT problems upstream." + fi + + if [[ ${MERGE_TYPE} != buildonly ]] && ver_replacing -lt 3.15.0_beta4; then + ewarn + ewarn "Python 3.15.0b4 has broken its extension ABI. The extensions built" + ewarn "with older versions may crash at runtime or worse after upgrading." + ewarn "A rebuild is recommended after the merge is complete, e.g. using:" + ewarn + ewarn " emerge -1v \$(find /usr/lib/python3.15/site-packages -name '*.cpython-315-*.so')" + ewarn + ewarn "Note that if you enabled both python3_15 and python3_15t, then" + ewarn "the 3.15 rebuild should cover all 3.15t packages already." + ewarn "If you do not wish to perform the rebuild at the time, it is" + ewarn "recommended to abort the upgrade." + ewarn + fi +} + +pkg_setup() { + if [[ ${MERGE_TYPE} != binary ]]; then + use jit && llvm-r2_pkg_setup + if use test || use pgo; then + check-reqs_pkg_setup + + local CONFIG_CHECK + for f in "${!PYTHON_KERNEL_CHECKS[@]}"; do + CONFIG_CHECK+="~${f} " + done + linux-info_pkg_setup + fi + if use tail-call-interp; then + tc-check-min_ver gcc 16 + tc-check-min_ver clang 19 + fi + fi +} + +src_unpack() { + if use verify-sig; then + verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.sigstore} + fi + default +} + +src_prepare() { + # Ensure that internal copies of expat and libffi are not used. + # TODO: Makefile has annoying deps on expat headers + #rm -r Modules/expat || die + + local PATCHES=( + "${WORKDIR}/${PATCHSET}" + ) + + default + + # force the correct number of jobs + # https://bugs.gentoo.org/737660 + sed -i -e "s:-j0:-j$(makeopts_jobs):" Makefile.pre.in || die + + # breaks tests when using --with-wheel-pkg-dir + rm -r Lib/test/wheeldata || die + + eautoreconf +} + +build_cbuild_python() { + # Hack to workaround get_libdir not being able to handle CBUILD, bug #794181 + local cbuild_libdir=$(unset PKG_CONFIG_PATH ; $(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libffi) + + # pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get + # propagated to sysconfig for built extensions + # + # -fno-lto to avoid bug #700012 (not like it matters for mini-CBUILD Python anyway) + local -x CFLAGS_NODIST="${BUILD_CFLAGS} -fno-lto" + local -x LDFLAGS_NODIST="${BUILD_LDFLAGS} -fno-lto" + local -x CFLAGS= LDFLAGS= + local -x BUILD_CFLAGS="${CFLAGS_NODIST}" + local -x BUILD_LDFLAGS="${LDFLAGS_NODIST}" + + # We need to build our own Python on CBUILD first, and feed it in. + # bug #847910 + local myeconfargs_cbuild=( + "${myeconfargs[@]}" + + --prefix="${BROOT}"/usr + --libdir="${cbuild_libdir:2}" + + # Avoid needing to load the right libpython.so. + --disable-shared + + # As minimal as possible for the mini CBUILD Python + # we build just for cross to satisfy --with-build-python. + --without-lto + --without-readline + --disable-optimizations + ) + + mkdir "${WORKDIR}"/${P}-${CBUILD} || die + pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die + + # Avoid as many dependencies as possible for the cross build. + mkdir Modules || die + cat > Modules/Setup.local <<-EOF || die + *disabled* + nis + _dbm _gdbm + _sqlite3 + _hashlib _ssl + _curses _curses_panel + readline + _tkinter + pyexpat + zlib + # We disabled these for CBUILD because Python's setup.py can't handle locating + # libdir correctly for cross. This should be rechecked for the pure Makefile approach, + # and uncommented if needed. + #_ctypes + EOF + + ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}" + + # Unfortunately, we do have to build this immediately, and + # not in src_compile, because CHOST configure for Python + # will check the existence of the --with-build-python value + # immediately. + emake + popd &> /dev/null || die +} + +src_configure() { + # disable automagic bluetooth headers detection + if ! use bluetooth; then + local -x ac_cv_header_bluetooth_bluetooth_h=no + fi + + filter-flags -malign-double + + # Export CXX so it ends up in /usr/lib/python3.X/config/Makefile. + # PKG_CONFIG needed for cross. + tc-export CXX PKG_CONFIG + + local dbmliborder= + if use gdbm; then + dbmliborder+="${dbmliborder:+:}gdbm" + fi + + # Set baseline test skip flags. + COMMON_TEST_SKIPS=( + # running gdb inside an ebuild as non-root, within sandbox, + # and possibly within a container is unreliable + -x test_gdb + # this is actually test_gdb.test_pretty_print + -x test_pretty_print + # https://bugs.gentoo.org/933840 + -x test_perf_profiler + ) + + # Arch-specific skips. See #931888 for a collection of these. + case ${CHOST} in + alpha*) + COMMON_TEST_SKIPS+=( + -x test_builtin + -x test_capi + -x test_cmath + -x test_float + # timeout + -x test_free_threading + -x test_math + -x test_numeric_tower + -x test_random + -x test_statistics + # bug 653850 + -x test_resource + -x test_strtod + ) + ;; + mips*) + COMMON_TEST_SKIPS+=( + -x test_ctypes + -x test_external_inspection + -x test_statistics + ) + ;; + riscv*) + COMMON_TEST_SKIPS+=( + -x test_urllib2 + ) + ;; + sparc*) + COMMON_TEST_SKIPS+=( + # bug 788022 + -x test_multiprocessing_fork + -x test_multiprocessing_forkserver + -x test_multiprocessing_spawn + + -x test_ctypes + # bug 931908 + -x test_exceptions + ) + ;; + esac + + # Kernel-config specific skips + for option in "${!PYTHON_KERNEL_CHECKS[@]}"; do + if ! linux_config_exists || ! linux_chkconfig_present "${option}" + then + COMMON_TEST_SKIPS+=( -x "${PYTHON_KERNEL_CHECKS[${option}]}" ) + fi + done + + # musl-specific skips + use elibc_musl && COMMON_TEST_SKIPS+=( + # various musl locale deficiencies + -x test__locale + -x test_c_locale_coercion + -x test_locale + -x test_re + + # known issues with find_library on musl + # https://bugs.python.org/issue21622 + -x test_ctypes + + # fpathconf, ttyname errno values + -x test_os + ) + + if use pgo; then + local profile_task_flags=( + -m test + "-j$(makeopts_jobs)" + --pgo-extended + --verbose3 + -u-network + + # We use a timeout because of how often we've had hang issues + # here. It also matches the default upstream PROFILE_TASK. + --timeout 1200 + + "${COMMON_TEST_SKIPS[@]}" + + -x test_dtrace + + # All of these seem to occasionally hang for PGO inconsistently + # They'll even hang here but be fine in src_test sometimes. + # bug #828535 (and related: bug #788022) + -x test_asyncio + -x test_httpservers + -x test_logging + -x test_multiprocessing_fork + -x test_socket + -x test_xmlrpc + + # Hangs (actually runs indefinitely executing itself w/ many cpython builds) + # bug #900429 + -x test_tools + + # Test terminates abruptly which corrupts written profile data + # bug #964023 + -x test_pyrepl + ) + + if has_version "app-arch/rpm" ; then + # Avoid sandbox failure (attempts to write to /var/lib/rpm) + profile_task_flags+=( + -x test_distutils + ) + fi + # PGO sometimes fails randomly + local -x PROFILE_TASK="${profile_task_flags[*]} || true" + fi + + local myeconfargs=( + # glibc-2.30 removes it; since we can't cleanly force-rebuild + # Python on glibc upgrade, remove it proactively to give + # a chance for users rebuilding python before glibc + ac_cv_header_stropts_h=no + + --enable-shared + --without-static-libpython + --enable-ipv6 + --infodir='${prefix}/share/info' + --mandir='${prefix}/share/man' + --with-dbmliborder="${dbmliborder}" + --with-libc= + --enable-loadable-sqlite-extensions + --without-ensurepip + --without-lto + --with-system-expat + --with-system-libmpdec + --with-platlibdir=lib + --with-pkg-config=yes + --with-wheel-pkg-dir="${EPREFIX}"/usr/lib/python/ensurepip + --enable-gil + + $(use_with debug assertions) + $(use_enable jit experimental-jit) + $(use_enable pgo optimizations) + $(use_with readline readline "$(usex libedit editline readline)") + $(use_with tail-call-interp) + $(use_with valgrind) + ) + + if tc-is-lto; then + myeconfargs+=( + --with-lto + ) + fi + + # Force-disable modules we don't want built. + # See Modules/Setup for docs on how this works. Setup.local contains our local deviations. + cat > Modules/Setup.local <<-EOF || die + *disabled* + nis + $(usev build '_zstd') + $(usev !gdbm '_gdbm _dbm') + $(usev !sqlite '_sqlite3') + $(usev !ssl '_hashlib _ssl') + $(usev !ncurses '_curses _curses_panel') + $(usev !readline 'readline') + $(usev !tk '_tkinter') + EOF + + # disable implicit optimization/debugging flags + local -x OPT= + + if tc-is-cross-compiler ; then + build_cbuild_python + myeconfargs+=( + # Point the imminent CHOST build to the Python we just + # built for CBUILD. + --with-build-python="${WORKDIR}"/${P}-${CBUILD}/python + ) + fi + + # pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get + # propagated to sysconfig for built extensions + local -x CFLAGS_NODIST=${CFLAGS} + local -x LDFLAGS_NODIST=${LDFLAGS} + local -x CFLAGS= LDFLAGS= + + # Fix implicit declarations on cross and prefix builds. Bug #674070. + if use ncurses; then + append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw + fi + + econf "${myeconfargs[@]}" + + if grep -q "#define POSIX_SEMAPHORES_NOT_ENABLED 1" pyconfig.h; then + eerror "configure has detected that the sem_open function is broken." + eerror "Please ensure that /dev/shm is mounted as a tmpfs with mode 1777." + die "Broken sem_open function (bug 496328)" + fi + + # install epython.py as part of stdlib + echo "EPYTHON='python${PYVER}'" > Lib/epython.py || die +} + +src_compile() { + # Ensure sed works as expected + # https://bugs.gentoo.org/594768 + local -x LC_ALL=C + export PYTHONSTRICTEXTENSIONBUILD=1 + + # Save PYTHONDONTWRITEBYTECODE so that 'has_version' doesn't + # end up writing bytecode & violating sandbox. + # bug #831897 + local -x _PYTHONDONTWRITEBYTECODE=${PYTHONDONTWRITEBYTECODE} + + # Gentoo hack to disable accessing system site-packages + export GENTOO_CPYTHON_BUILD=1 + + if use pgo ; then + # bug 660358 + local -x COLUMNS=80 + local -x PYTHONDONTWRITEBYTECODE= + local -x TMPDIR=/var/tmp + fi + + # also need to clear the flags explicitly here or they end up + # in _sysconfigdata* + emake CPPFLAGS= CFLAGS= LDFLAGS= + + # Restore saved value from above. + local -x PYTHONDONTWRITEBYTECODE=${_PYTHONDONTWRITEBYTECODE} + + # Work around bug 329499. See also bug 413751 and 457194. + if has_version dev-libs/libffi[pax-kernel]; then + pax-mark E python + else + pax-mark m python + fi +} + +src_test() { + # Tests will not work when cross compiling. + if tc-is-cross-compiler; then + elog "Disabling tests due to crosscompiling." + return + fi + + # this just happens to skip test_support.test_freeze that is broken + # without bundled expat + # TODO: get a proper skip for it upstream + local -x LOGNAME=buildbot + + local test_opts=( + --verbose3 + -u-network + -j "$(makeopts_jobs)" + "${COMMON_TEST_SKIPS[@]}" + ) + + # bug 660358 + local -x COLUMNS=80 + local -x PYTHONDONTWRITEBYTECODE= + local -x TMPDIR=/var/tmp + + nonfatal emake -Onone test EXTRATESTOPTS="${test_opts[*]}" \ + CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty + local ret=${?} + + [[ ${ret} -eq 0 ]] || die "emake test failed" +} + +src_install() { + local libdir=${ED}/usr/lib/python${PYVER} + local build_dir=$(/dev/null + ) + newins Tools/gdb/libpython.py "${libname}"-gdb.py + + newconfd "${FILESDIR}/pydoc.conf" pydoc-${PYVER} + newinitd "${FILESDIR}/pydoc.init" pydoc-${PYVER} + sed \ + -e "s:@PYDOC_PORT_VARIABLE@:PYDOC${PYVER/./_}_PORT:" \ + -e "s:@PYDOC@:pydoc${PYVER}:" \ + -i "${ED}/etc/conf.d/pydoc-${PYVER}" \ + "${ED}/etc/init.d/pydoc-${PYVER}" || die "sed failed" + + # python-exec wrapping support + local pymajor=${PYVER%.*} + local EPYTHON=python${PYVER} + local scriptdir=${D}$(python_get_scriptdir) + mkdir -p "${scriptdir}" || die + # python and pythonX + ln -s "../../../bin/${abiver}" "${scriptdir}/python${pymajor}" || die + ln -s "python${pymajor}" "${scriptdir}/python" || die + # python-config and pythonX-config + # note: we need to create a wrapper rather than symlinking it due + # to some random dirname(argv[0]) magic performed by python-config + cat > "${scriptdir}/python${pymajor}-config" <<-EOF || die + #!/bin/sh + exec "${abiver}-config" "\${@}" + EOF + chmod +x "${scriptdir}/python${pymajor}-config" || die + ln -s "python${pymajor}-config" "${scriptdir}/python-config" || die + # pydoc + ln -s "../../../bin/pydoc${PYVER}" "${scriptdir}/pydoc" || die + # idle + if use tk; then + ln -s "../../../bin/idle${PYVER}" "${scriptdir}/idle" || die + fi +} + +pkg_postinst() { + if ver_replacing -lt 3.15.0_beta4; then + ewarn "Python 3.15.0b4 has broken its extension ABI. The extensions built" + ewarn "with older versions may crash at runtime or worse. To prevent this," + ewarn "please rebuild all extensions using the versoned ABI, e.g. using:" + ewarn + ewarn " emerge -1v \$(find /usr/lib/python3.15/site-packages -name '*.cpython-315-*.so')" + ewarn + ewarn "Note that if you enabled both python3_15 and python3_15t, then" + ewarn "the 3.15 rebuild should cover all 3.15t packages already." + fi +} diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/Manifest b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/Manifest index 89d85c82ff9..c29831f637f 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/Manifest @@ -969,6 +969,41 @@ DIST rust-1.97.1-x86_64-unknown-linux-gnu.tar.xz 201303968 BLAKE2B b34681966c6d1 DIST rust-1.97.1-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B bd7e3ff768fc85127b05149bcea780946655dc9739c16890b91ac5c072c447e95e017e48dbd923f1f72707c6d58a90c6d94afa0a8bf9f5180fcdff1fa9915595 SHA512 a956a6ab9380d4ced3b2936cb21a08df53b12207255ef1bbd7449fbdb05e5c3be7700fd66b742391721b45c66740f3e577f7b82531ed54a063cf337bbb6bba20 DIST rust-1.97.1-x86_64-unknown-linux-musl.tar.xz 303757716 BLAKE2B 3f5f348946480dde1914d4c34c7dd8f8a4b0a1e8fab3080f30d52abd5b57a11f855a14e338bdfc1cfbd3fc23ab46f12d343d0dd94aebb012166b263eceb6706e SHA512 4e041737709981d4dd9f16fd542eab4c44de46df8f14bb59d73592c394ea94d44ed9dcdf4796b85ed2a056d573d078975909484b6676467ddd56edd5925d45af DIST rust-1.97.1-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 29f54843b77cf4f94c5d023b554c6e48d7ae3b7d8759a499e940deb0a00e649f38f97f6af59581d40930caba1fba782b1c075d300d2e91a9fb67725b6cf76dac SHA512 eae2c10c61ae3f399376bda5db6f87f963be1d1dcb840ea39b6168af83807b97dc9ddcd7573717fcd573e0d83485ff55deded33221176d033df7f770450ae80e +DIST rust-1.98.1-aarch64-unknown-linux-gnu.tar.xz 182826816 BLAKE2B b4a312b85ddb8b15399ea9eb1f5b769bef746d96aae1beceb608eb09d1c5f2ae536e30242f3413b109b3e660f2ab0dcda3cfedaeb6e50ff58e0f58e15f41e28c SHA512 cd8dbce47aa8af3cc21c0ba1784c4a4b733bf636dc5d8c5a6e5474fe7ce6c9594671c2c738ca9da8cbe2e80307f3aa62facf972e672967380ae18655c11c2182 +DIST rust-1.98.1-aarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 22d1b6c08bffc2a0799dc81270cd55cf98f867d15249e9fc862ff328f89d6a58b820d3261143829dcbbb8ec2a18a16827a9c440314e7860938c5db9136a21998 SHA512 81d7e26d830630d8776e1e76f3c02114fe479bca69fe42091710727b035d4acfb6f06bdbdc637b896f5cce0440fa68ac299eb292ab4b94486c2553a9a91f4ed7 +DIST rust-1.98.1-aarch64-unknown-linux-musl.tar.xz 277938252 BLAKE2B 00c852bc550256e04eafff8f95d689feb47d097c73bfd40fafc4248023ffd8ebf31b56d43352adb7d325de3b4c0b03041a5b13ad2279a42c134f0a29b87e7b02 SHA512 1f532c70293ed70f2909d1dab5e1b2cbc6f5691eceb9a85c4ee6a1e773df0f3086c96433940f984f4ace850208543f3bde4f404c43e2d149dbecba74d162d66e +DIST rust-1.98.1-aarch64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B ea19c9c544d204c69a292e1b4af5a8ce236292d322b80f2eb5147b39c117cab1451f6ae3a900bfcc6f01b31ea1fc42b07da04a34b952b67a29642b0d105b0977 SHA512 d7551e1fba3d1fb2fe44ff001641aa966c65ddff1a0d0db9043e14bfc83553df26d855fda1892719c548efb3d22ff2bcbee70855f1adbf66180164abc1591f32 +DIST rust-1.98.1-arm-unknown-linux-gnueabi.tar.xz 256579464 BLAKE2B 9dc3e5ccaa4a1ce124d2d42a662efd360682d6c7ad659e7381ef80c2700e9b3b9f99aaa2abd965e177832d776ed7f6d7ab38f36e3559dd05e5975327e56f65bb SHA512 932467bd810f89543e8d77f41045133804583817e439005c26b270557167edee9f8f06cdaee7ef8824410154478008bc793c5be8a040c76a810a89abf8e03c6d +DIST rust-1.98.1-arm-unknown-linux-gnueabi.tar.xz.asc 801 BLAKE2B 5a2d21e686e9ff1932a2cbefc84061d2b6a2fc286ce337b90224bfe8fb93af98f0288b704578945d7b4d449ea3f76296c142d17c749efe08fb79ef883cff615b SHA512 05dd2c84ffe98b8e846f300f50882295b6c1f3e90b15d8bf99a1550792dbf4e7177ab244778345099c560c906920a0803e32116f318c17117d24240328f837fa +DIST rust-1.98.1-arm-unknown-linux-gnueabihf.tar.xz 254940280 BLAKE2B 32bd562f6f91939f7423d3859962ecd95359f06ee7ccc62ae09a304d05cced785672c7cb81d355d67357a2c6c532b7d1c787172fe72a9d2d19a19015ba90bdf6 SHA512 5efc5aeed53b52ea9133628055c57df8b65eae9cbf661f096e076478c75628fd1795b10e4d5751220eb2ec574058dede011ba1568352d424c22b983f786a72d5 +DIST rust-1.98.1-arm-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B 569cd931c5e1b26314b8c635e679c2ddba72c44e7b2349f6e73f5f7c078fe9f74bb49e87b1e83a93a4c94fb4dc88218637aa8e43b5590facdafc7468be11c191 SHA512 b884a77c3ad6ded0c7ea170dfb4239a9569c626a70087aecb4d729fe3fcdedc8e9163fd9e7161881287c58ebff8a21407ec303a006afc310c89eb0d25a73f8e9 +DIST rust-1.98.1-armv7-unknown-linux-gnueabihf.tar.xz 258744412 BLAKE2B c7cd8736196dd605e5d2cbe671b85e40765184d0b63834a424adba7d15c754a7f6db513e693108f660743ff79471a04097cb09fa767ffa6e1f24057fb2909256 SHA512 fcd49bba8cf1d66cc5f5e9e9254b8fdb4af039b69a0272b225406fecd56df6ea6d7c0a093885d2c993fe5f50c671ce086790fddc00f90a1843a2a4ece11284fb +DIST rust-1.98.1-armv7-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B c4d5f923a793081c6d8a299e72ce7e2f157ebf5fa3806e38314cf99c792b72d9c63b7f31253f7c5dc80c64ef609bb027af190d01e40d8885a83267cb5fc19958 SHA512 0d6f7283a8a1f18cf9d7a905d6ddbc6953f2392f502247e6ae37744d31e56c10ebf1042fd1bfc4feebff9e9cdd34279e3ac45a000aef55eb42487633ba21bbe9 +DIST rust-1.98.1-i686-unknown-linux-gnu.tar.xz 294851320 BLAKE2B d93f9578882254eaff7309cb59f509224a3c33437311f4225e081f66187ee4a942e1af114b32f2dd2dfc60133106ba706a863741301438d2218a2c11ae48f560 SHA512 d9a89aacaf90238c78e484ea0683ebf193695a9f230606e8fe8250b0b0956194cf4e0fb1709ea18d6acfc9db791aeacaf736cc1b5322ea1d9b02a406396ee850 +DIST rust-1.98.1-i686-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B e5dfb9dbfa7c123b7dc61e25dc7765287f80a96800a65b35bedec27751a7f3ef656f29cfcbc37908c8e56180c0c01252e678c2f769d44bc5b58bba6348cab6ba SHA512 5294995edb70043ad6abecdfd7a9d4e4520d8b48bc4f210f1c76d0260690560bc7d547e64d20913045698b61344d43dbca20d5eb4cb7b96791f673d7503a02f3 +DIST rust-1.98.1-loongarch64-unknown-linux-gnu.tar.xz 292178716 BLAKE2B 40fefd2e591afb0a7764667fca3781efc148ea34949f2186524d66c52f5a2b2e8098abd955076ca95fb6df7ac066435404f3cc7cead5e22fb620a6523826aac6 SHA512 55a597368e9138c45d64aff148f5883256795b0d9b1a124d50e4fbb0fc148a1b66a8a959faffc8e18bcb547f709d5db8189b74e3fc54e7569dac722a42805f77 +DIST rust-1.98.1-loongarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 78d49f0d35338784ce3c24d6563ab4d7901223b95fa4ec19015d1fa119d03c31cffec242b2413b2ad8cbf76bd6a981d11070cf73a26b92bc781ebd607e435626 SHA512 151dea3d985dcdb0d7717b2c8b08c15fa49b301bfb17f4f6b5ce73eb86e578d51f53ce200b18827c33ca98527f8f103d07d2322ba5353a52e14430d03359da98 +DIST rust-1.98.1-mips-unknown-linux-gnu.tar.xz 82998968 BLAKE2B d3c3eba8ab9a763fa4078ccc6423a4f6a7ca47f26c48616ec9853107ffafbfc8ff5f2be322d2f7838a032b9a3d724a1fb6e507618326f11c1692424ead99b0e3 SHA512 d01f525e0780385e3bc98247cc702a48192fd8876b9a87684d5712e7146cd78ffc7707beb98aaf78a4d8f189865777bbd1ff43181c5c3aeb659b3d16826e4896 +DIST rust-1.98.1-mips64-unknown-linux-gnuabi64.tar.xz 82829200 BLAKE2B b62db04df84b965165c17625e59d56b5f91e18331d50e63dc08e3810551bee474b922ef793661e1fe2fe44840c82e89cbf4b41b3238deb100323a6591be34f18 SHA512 ba1a89ce0267b8d9c3eca1336c1d35738102568ce390553fc077b3c7c1e3abdb0c8bbb793c79e4839b2c3076e0c0b480e33f467dd4164675aa5ad6efe4c990c3 +DIST rust-1.98.1-mips64el-unknown-linux-gnuabi64.tar.xz 84489728 BLAKE2B ca071c9a83be8d3a5bee44fed412fd835e3a8cdb389267c08c5cc9b29e9566d96d879e500ab1b01364e6cc46a3faec7ca5ea8d6e215c6050877a923f47889260 SHA512 cee6cc4bf53d231169a2b89e36aea5fdb9f10bc46378e2dd5a17e15b9bc27945c975e1fa26ee3c39bb968e6b63fa218fb8fc30dea7abba1c474412e57fefa453 +DIST rust-1.98.1-mipsel-unknown-linux-gnu.tar.xz 84777848 BLAKE2B aa5753908f4f8f9a4f65653781b1527776c3b09947c9e9044d52ab22361d3cf5f1d1f80d72551c8835d65e0fa709fdeacf31a2ad3c9b471fb93c7d34b36a86a1 SHA512 9f575694aa89f8bb743c6541ebb1c4b05e6cf4ee95e5f1df6ce0edf75a7059fa78c4cd88d5e083649d7d39f27bb04522389b80591eca1f03d91bd8ebf95de7c2 +DIST rust-1.98.1-powerpc-unknown-linux-gnu.tar.xz 282546556 BLAKE2B 569f002068bc2627bef4e46021061b8b948035dc16df1fa7a5815f835d9b5ae7cb40d2af32608db5a25527e5f2a9df3340ee8866da5954889f680baf2d81d5a7 SHA512 07747ae5f43e4faabcfb19cb53c8f2c1254d5197ca594171278f0d523cd05b894ecf5634735f4e53f937c0b792fff4b3043bc85368176f5b98bdac6946f42ea1 +DIST rust-1.98.1-powerpc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 174e6da5cfd771f3f9ca24a55083f9698ba6c8d8e6736be0dce0f19860b361ea336b82c854cf6d5dece92fddd340e853c32acbb5ac6b6a1223f35b114bafe0b6 SHA512 dafffd4ab16ccd2a73fec23f7931e2c9f4e8ec469c8dee79b0c5267ed3262240ba99e6c36ac404627ad666a350d86947900d461f2ff185581a5b23d5de9444e5 +DIST rust-1.98.1-powerpc64-unknown-linux-gnu.tar.xz 283751128 BLAKE2B 9137602ea2371ef02dc2950547be2e2c9781093a65fc485d8f8cfa5041ea910948f6e6a6c8fd1b5ea12efd34e1a2b8c31bd391eedba7fade746417c10505339f SHA512 a8f21059f296308b6be99865e20e8d4cf443c8d6c8a336184b7e598a776fa0468eb62d06176b5e457a2466b86a7ed54918d6212ae7a021657259f98cde1ebdc5 +DIST rust-1.98.1-powerpc64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 1da50601219c6a51b4edce60d67a07d416ab8822ec979564b2b1d373abbbcec01f8f92cf2745e08b155ec1351ec58c4b3305f05fed13b3eb554b827e53eccc23 SHA512 eef45fa634c8e255ffcc1f30d5f1dc2c42b1d679411e1798f51772bff4922f25d0b2ca07e112a0c5eda36b004fd4d3607ec60a026f14b4169ef8fefcc0564406 +DIST rust-1.98.1-powerpc64-unknown-linux-musl.tar.xz 87345456 BLAKE2B 7854c98aeb68136719351bd4ebae4d353cb3607fdf42ed48c574366c14699202bcffbb66a79413c09e7a1bd3dcd24bdb1617f39857b0b428a283a12292ae627a SHA512 1e3c8518637edd2ab0bc0b8c7794a1c233d31663d8182ee86d4e49ce2954f31822b421de23c104c6de45dfc96fded300336a1cae05078993eaba97ec67586802 +DIST rust-1.98.1-powerpc64le-unknown-linux-gnu.tar.xz 302535636 BLAKE2B 67936077c5f482fc490e581f78f86a8429b74e7bdf66312fdfec2f2cd6fd8cf726178718f0453b52a0ecb2964f288b8851657c935906b9e0c3125583a7ddc2e6 SHA512 03a947c8cd268eda39de3c8558eba52a71b07e7b620ed87798500959ac33b7c221b3e8847a62093057e9ffe123ea577209bd527fdfc5e212d3112da9bd7a54d7 +DIST rust-1.98.1-powerpc64le-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 08b886bf164070d201dde10b2dd664823114229c0e61666faaa6892c81422ac1a9aac939c89a42fc41e186d837f6b7e026e71942fcaf85dea795b45cf6881900 SHA512 888d63591c13bbfa778df2b3fc296e53af7d2c6c74b57143ee1f350bfaa181cf39f275ead71476d374432fdd5fac367c519f591291ebbc734da3fe9ab4fb9f82 +DIST rust-1.98.1-riscv64gc-unknown-linux-gnu.tar.xz 276387076 BLAKE2B 3cf93f837c91ea769f24fdc718d240ff731754459bba55cee20ed19490f166bd10c0fd400a2e31c792a644f460e19984d23d80c49af722ad671198b4e8cbcf47 SHA512 7bd7e9d48c5f96c0256fdf7aa8950f86863ba11613da8417821eaefce0dc9c69013314e48cf610974d14bbfe990403b98949369abfd28d655f16f3046a7d0742 +DIST rust-1.98.1-riscv64gc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 0e2437c3aafc02edf9e9c11681ecdf710ffc5c788197945d4e5914f2b1367e079452d968db412619729f4073ffd7651924351972c2ba3a53107813e8bcf3a9ac SHA512 cb0b8af11e3ca95dcd5312ef87c6b1336d86d6485b659c8043d54e6f99bd800ccfb0171fc7ac8c3299078769f81910cea20585129ce6f5e7621472cdf28928b7 +DIST rust-1.98.1-riscv64gc-unknown-linux-musl.tar.xz 91871692 BLAKE2B 15f1f42860e85dc3dde5a68818be7e8fe441c585cf97b3326e55f26aefc3c04e257134094956dc59754da553bcc63ca7e1fc3c27c80393aef5bbe8be461bf891 SHA512 d17877eb32aef1e6888e3925165441489e1398b3b5e023dc8d61a77de469cbdef491fc07dc6cf0f23946cea08683051431926c68ed4550af76e5c1f87cb63a28 +DIST rust-1.98.1-s390x-unknown-linux-gnu.tar.xz 274406204 BLAKE2B 7e845bbba27f51fbdd585af2efebf2a325161456d7e0fcf37b001d5f2aef5f74485b36c6d64cfcfbb614b00b2db77b650e0dc7821503abe6a4471ad036a4e0ad SHA512 4d35f6f5ddd9bab933e8e43bd5e207023d3c2f3c88e0ba0fd0387c9b714a6b5eef1e2b1c0c7f4215d061e015940f9ca25b57fdb965c486500b32522652f89108 +DIST rust-1.98.1-s390x-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B ed1ca8f191b35da0cde979e556f379be45a5394c15b0260f3d81514308b6a9a09982bf7982b3ae011f7842434aa10c632d65f7ac7b694990e7cd2663e34ee131 SHA512 9d741f9c30ec1562e976a5264da3664a351677427cf69fccd310441ee9e8803c11eaa684f5a9b6055b609938419b897edce55747a3121de31628d58d3ef42796 +DIST rust-1.98.1-sparc64-unknown-linux-gnu.tar.xz 80476244 BLAKE2B 5b9c70486bc9a7bdba2cc61095b03cc778a544b7e3e1d402dea075a17eb356b033f38fda1129899f6edf41c831e83447bd2775bbefcfc3aebb8870571cf050bc SHA512 3d4091bed3c1ec1e74cc40b1f60f3b1fd5ae582e05025054933dbdd94a4ffd8337b18ac64f0836598326719936e40c2565581105f77231b26a5c934542d52753 +DIST rust-1.98.1-x86_64-unknown-linux-gnu.tar.xz 202560136 BLAKE2B 7418f0b386ef4ccd111e44e35cb08b7f85814f85bfa46d8e38d7156582c2c3cc9db3f0b9df97531cfa57f1873f1135bfe70fbb1ba5a04b11a7467b2559edec36 SHA512 eb66023aa9014091485e9dc400969040283c54de62a7ad8bbf3510d239c2756a4c47da79c2829e2769531ed128eece8f549cb4d79384cce3d629054e51ea7dcf +DIST rust-1.98.1-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 8b80744332642bf008fee49c5bca353077745a57a34cb2ee032f399bd3318cd75fd9a2d43b1eb55a91d1bdd2923f67af19ce2f38e5378281b3b990974a7c6a36 SHA512 80b0f668b4581b9dd27657473c495604656b2d62ed99613ceb66a2b8e2992067c8c4a96fe542be87c4930e45ddf975ce6983de329d7bf87f83df50eea528cc28 +DIST rust-1.98.1-x86_64-unknown-linux-musl.tar.xz 323672928 BLAKE2B 933a3ec8a17dd4ec68c6a1afb1724b87870b1ebdd342825f7ebe44a7f380bcf4584fa8db661ccf50dd54889417559874ab803e4b359fc63dadd6f7c84c112b0c SHA512 a0aeb4730c63023b49fe00b30dea9f7db79f671b429f4b78cb5fd8c3eb21359b68ed88f602e1624952ff4d81828873c8bb63c9c7883966af71801d9017eb9fd6 +DIST rust-1.98.1-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B e900be29f69f99944b0b42ed87dba207358f2bc6001712c014bb2b904bcd221e6d756e15a09af1fe950244168abff6df16594830639f25c10793b3750c884cee SHA512 e021d13de96b82e2af5f89e509d2974c65df736f09ad31fcc770d68f8bf3df5576abcf06ff4f417ea850036e3a3187b49177baa4724085c7bf49887ea03eaabb DIST rust-src-1.74.1.tar.xz 2544036 BLAKE2B d95431b69f102782f51878ff73ce8802cac6dab7909497c3231d1c479b95dc2a618cc6efd8bac9c6bd59a2b10dc6be05199f1e1bd74e45cc640ee52352c29268 SHA512 11467d0936193c5a5be8c2eba1aefe2b7028af48494698863de2c4057d68ce33dcee1fc66dc2d68b1d32f0202ce49e9b906727849de8f8d904dd07930e76d5a4 DIST rust-src-1.75.0.tar.xz 2570256 BLAKE2B 9db7ccff07ffe6991233e9f530321fd6ba48c561dcf1226537afa70c7d045421d8e83c5300b0866ec6fccfaae96dd67b9f204e9e0e12108c0c766d467cd78909 SHA512 e7565cea2f1658a05237a698e38880df2544319b41b6d8b0805db5f1f94fd3bb4f986967d0440fcdfe3a135e33246f3c747665b964f57ff5942f56133af78cdd DIST rust-src-1.76.0.tar.xz 2590884 BLAKE2B d1a6215dab34d7b10c3177d2b248f997d3a846388f3442567572880aa5c5bc51b56398f5d4dc32727cee7c9dbef494430d6534a76b66c4ae5ac4fed07266644d SHA512 39d2fe58fae8c8c5a6cb3fb1ef2a1c7548c018fef6ccea531659fdfecd68a4aa77125299d2cbe5b58e500337b4d074928318fa9ebce358af500d0ef27260e3ca @@ -997,3 +1032,4 @@ DIST rust-src-1.94.1.tar.xz 3751284 BLAKE2B fd15a40f67fd4180adf48c4a4972858f68d7 DIST rust-src-1.95.0.tar.xz 3827368 BLAKE2B b19d0c6043b405fc5d1889f58cbeb8c4b00226ba8ccfb139ff8d3e3c86196a3ebcac5145e9b6befe3e193d1934766d16c190299afa4d87343dc76570c1eb2069 SHA512 7936cd86c35c5283e0845cf848470fb96b142020a43a7a632c646a0bc3e7eb7d7c6f934b84d2a583747decc03be5ef5318de0c7974c8286ba2951cd60db217b2 DIST rust-src-1.96.1.tar.xz 3868228 BLAKE2B f509efa5be0be11da292a9b2d9f4ae87667ea69293fdf81329ae6fb1790437fe3f01c5c7c0691e4e535d5386bca0e1dd090a4b74f7e55f58db4d63be27fff419 SHA512 daca9d4df578682c1a92e0addf4fcb258e135ff9610c81826004089d4ffdf41b3f0b3dbfa2a1562f9531d4e5a58f744e87655f011ff9bbafe04ac5bc63e16639 DIST rust-src-1.97.1.tar.xz 5660384 BLAKE2B 23357e49cc9ba35d1f9f1999af32589fd6e12790cb16ec1895aa9272a8f73a4bea93b0ad4d2b0d330ba46bc5458ca9ade9b5a2400d7f96ef093d4f537a567672 SHA512 fe1ba24325d63c66de18c5bd877cd247173ee3bbb67f6fdc54519c52841658f602d28b3b648849ac9a916b9b5c5f7684415bd8c05556137d717bf73367650db7 +DIST rust-src-1.98.1.tar.xz 5741168 BLAKE2B b5d80e3f45b4d36da9ea2cf6262e41f0213a7c3903a9011850f3ecd4d56de29a1da2e9a98c6da910a786ca21df2ade52e8703a8749b224ac9680a82812cd15ab SHA512 9b3536ecedc719e151c51c11ff1a3f67972ccfbadaa57a5d395f436ab45db78a27e1cb55268cdc72389c333080de08cdf9af0012c4cdda7e384fd24369518198 diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.74.1-r102.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.74.1-r102.ebuild index 20b48004955..926c71350c4 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.74.1-r102.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.74.1-r102.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -6,7 +6,7 @@ EAPI=8 LLVM_COMPAT=( 17 ) LLVM_OPTIONAL="yes" -inherit llvm-r1 multilib prefix rust-toolchain verify-sig multilib-minimal +inherit llvm-r2 multilib prefix rust-toolchain verify-sig multilib-minimal MY_P="rust-${PV}" # curl -L static.rust-lang.org/dist/channel-rust-${PV}.toml 2>/dev/null | grep "xz_url.*rust-src" diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.75.0-r102.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.75.0-r102.ebuild index dc5f4451279..d243a911c0a 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.75.0-r102.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.75.0-r102.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -6,7 +6,7 @@ EAPI=8 LLVM_COMPAT=( 17 ) LLVM_OPTIONAL="yes" -inherit llvm-r1 multilib prefix rust-toolchain verify-sig multilib-minimal +inherit llvm-r2 multilib prefix rust-toolchain verify-sig multilib-minimal MY_P="rust-${PV}" # curl -L static.rust-lang.org/dist/channel-rust-${PV}.toml 2>/dev/null | grep "xz_url.*rust-src" diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.76.0-r101.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.76.0-r101.ebuild index 6139f1a663e..c0592a7b74f 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.76.0-r101.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.76.0-r101.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -6,7 +6,7 @@ EAPI=8 LLVM_COMPAT=( 17 ) LLVM_OPTIONAL="yes" -inherit llvm-r1 multilib prefix rust-toolchain verify-sig multilib-minimal +inherit llvm-r2 multilib prefix rust-toolchain verify-sig multilib-minimal MY_P="rust-${PV}" # curl -L static.rust-lang.org/dist/channel-rust-${PV}.toml 2>/dev/null | grep "xz_url.*rust-src" diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.77.1-r102.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.77.1-r102.ebuild index 7745f61b130..1a1e722f6fd 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.77.1-r102.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.77.1-r102.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -6,7 +6,7 @@ EAPI=8 LLVM_COMPAT=( 17 ) LLVM_OPTIONAL="yes" -inherit llvm-r1 multilib prefix rust-toolchain verify-sig multilib-minimal +inherit llvm-r2 multilib prefix rust-toolchain verify-sig multilib-minimal MY_P="rust-${PV}" # curl -L static.rust-lang.org/dist/channel-rust-${PV}.toml 2>/dev/null | grep "xz_url.*rust-src" diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.78.0-r102.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.78.0-r102.ebuild index 521b6975943..aa8fda0df37 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.78.0-r102.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.78.0-r102.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -6,7 +6,7 @@ EAPI=8 LLVM_COMPAT=( 18 ) LLVM_OPTIONAL="yes" -inherit llvm-r1 multilib prefix rust-toolchain verify-sig multilib-minimal +inherit llvm-r2 multilib prefix rust-toolchain verify-sig multilib-minimal MY_P="rust-${PV}-r101" # curl -L static.rust-lang.org/dist/channel-rust-${PV}.toml 2>/dev/null | grep "xz_url.*rust-src" diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.79.0-r103.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.79.0-r103.ebuild index c0d017c5e11..aa17d1d08f3 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.79.0-r103.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.79.0-r103.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -6,7 +6,7 @@ EAPI=8 LLVM_COMPAT=( 18 ) LLVM_OPTIONAL="yes" -inherit llvm-r1 multilib prefix rust-toolchain verify-sig multilib-minimal +inherit llvm-r2 multilib prefix rust-toolchain verify-sig multilib-minimal MY_P="rust-${PV}-r101" # curl -L static.rust-lang.org/dist/channel-rust-${PV}.toml 2>/dev/null | grep "xz_url.*rust-src" diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.80.1-r103.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.80.1-r103.ebuild index ad310d47e0c..e0fc6507b1b 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.80.1-r103.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.80.1-r103.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -6,7 +6,7 @@ EAPI=8 LLVM_COMPAT=( 18 ) LLVM_OPTIONAL="yes" -inherit llvm-r1 multilib prefix rust-toolchain verify-sig multilib-minimal +inherit llvm-r2 multilib prefix rust-toolchain verify-sig multilib-minimal MY_P="rust-${PV}-r101" # curl -L static.rust-lang.org/dist/channel-rust-${PV}.toml 2>/dev/null | grep "xz_url.*rust-src" diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.81.0-r103.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.81.0-r103.ebuild index 531e352af7e..fa6fb59d2cc 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.81.0-r103.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.81.0-r103.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -6,7 +6,7 @@ EAPI=8 LLVM_COMPAT=( 18 ) LLVM_OPTIONAL="yes" -inherit llvm-r1 multilib prefix rust-toolchain verify-sig multilib-minimal optfeature +inherit llvm-r2 multilib prefix rust-toolchain verify-sig multilib-minimal optfeature MY_P="rust-${PV}-r101" # curl -L static.rust-lang.org/dist/channel-rust-${PV}.toml 2>/dev/null | grep "xz_url.*rust-src" diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.82.0-r103.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.82.0-r103.ebuild index fd4f820c9fd..dfd58e6f99c 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.82.0-r103.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.82.0-r103.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -6,7 +6,7 @@ EAPI=8 LLVM_COMPAT=( 19 ) LLVM_OPTIONAL="yes" -inherit llvm-r1 multilib prefix rust-toolchain verify-sig multilib-minimal optfeature +inherit llvm-r2 multilib prefix rust-toolchain verify-sig multilib-minimal optfeature MY_P="rust-${PV}-r102" # curl -L static.rust-lang.org/dist/channel-rust-${PV}.toml 2>/dev/null | grep "xz_url.*rust-src" diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.83.0-r2.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.83.0-r2.ebuild index 3fe611ebc37..a20e18b4739 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.83.0-r2.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.83.0-r2.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -6,7 +6,7 @@ EAPI=8 LLVM_COMPAT=( 19 ) LLVM_OPTIONAL="yes" -inherit llvm-r1 multilib prefix rust-toolchain verify-sig multilib-minimal optfeature +inherit llvm-r2 multilib prefix rust-toolchain verify-sig multilib-minimal optfeature MY_P="rust-${PV}-r2" # curl -L static.rust-lang.org/dist/channel-rust-${PV}.toml 2>/dev/null | grep "xz_url.*rust-src" diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.84.0-r2.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.84.0-r2.ebuild index b58f47c4690..c86ba101bcd 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.84.0-r2.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.84.0-r2.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -6,7 +6,7 @@ EAPI=8 LLVM_COMPAT=( 19 ) LLVM_OPTIONAL="yes" -inherit llvm-r1 multilib prefix rust-toolchain verify-sig multilib-minimal optfeature +inherit llvm-r2 multilib prefix rust-toolchain verify-sig multilib-minimal optfeature MY_P="rust-${PV}-r1" # curl -L static.rust-lang.org/dist/channel-rust-${PV}.toml 2>/dev/null | grep "xz_url.*rust-src" diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.84.1-r2.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.84.1-r2.ebuild index 16acc41fa15..b6e8f8ea614 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.84.1-r2.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.84.1-r2.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -6,7 +6,7 @@ EAPI=8 LLVM_COMPAT=( 19 ) LLVM_OPTIONAL="yes" -inherit llvm-r1 multilib prefix rust-toolchain verify-sig multilib-minimal optfeature +inherit llvm-r2 multilib prefix rust-toolchain verify-sig multilib-minimal optfeature MY_P="rust-${PV}-r1" # curl -L static.rust-lang.org/dist/channel-rust-${PV}.toml 2>/dev/null | grep "xz_url.*rust-src" diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.85.0-r1.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.85.0-r1.ebuild index bfe1fc7943e..656c836c957 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.85.0-r1.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.85.0-r1.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -6,7 +6,7 @@ EAPI=8 LLVM_COMPAT=( 19 ) LLVM_OPTIONAL="yes" -inherit edo llvm-r1 multilib prefix rust-toolchain verify-sig multilib-minimal optfeature +inherit edo llvm-r2 multilib prefix rust-toolchain verify-sig multilib-minimal optfeature if [[ ${PV} == *9999* ]]; then # We need to fetch a tarball in src_unpack diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.85.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.85.1.ebuild index 06f21e8aa5f..cd1ff018660 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.85.1.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.85.1.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -6,7 +6,7 @@ EAPI=8 LLVM_COMPAT=( 19 ) LLVM_OPTIONAL="yes" -inherit edo llvm-r1 multilib prefix rust-toolchain verify-sig multilib-minimal optfeature +inherit edo llvm-r2 multilib prefix rust-toolchain verify-sig multilib-minimal optfeature if [[ ${PV} == *9999* ]]; then # We need to fetch a tarball in src_unpack diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.86.0-r1.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.86.0-r1.ebuild index a210bc4536e..69c61c57abc 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.86.0-r1.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.86.0-r1.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -6,7 +6,7 @@ EAPI=8 LLVM_COMPAT=( 19 ) LLVM_OPTIONAL="yes" -inherit edo llvm-r1 multilib prefix rust-toolchain verify-sig multilib-minimal optfeature +inherit edo llvm-r2 multilib prefix rust-toolchain verify-sig multilib-minimal optfeature if [[ ${PV} == *9999* ]]; then # We need to fetch a tarball in src_unpack diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.87.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.87.0.ebuild index 5b54e8d7672..035399a2381 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.87.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.87.0.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -6,7 +6,7 @@ EAPI=8 LLVM_COMPAT=( 20 ) LLVM_OPTIONAL="yes" -inherit edo llvm-r1 multilib prefix rust-toolchain verify-sig multilib-minimal optfeature +inherit edo llvm-r2 multilib prefix rust-toolchain verify-sig multilib-minimal optfeature if [[ ${PV} == *9999* ]]; then # We need to fetch a tarball in src_unpack diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.88.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.88.0.ebuild index bb543295597..0d810d11ed0 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.88.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.88.0.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -6,7 +6,7 @@ EAPI=8 LLVM_COMPAT=( 20 ) LLVM_OPTIONAL="yes" -inherit edo llvm-r1 multilib prefix rust-toolchain verify-sig multilib-minimal optfeature +inherit edo llvm-r2 multilib prefix rust-toolchain verify-sig multilib-minimal optfeature if [[ ${PV} == *9999* ]]; then # We need to fetch a tarball in src_unpack diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.89.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.89.0.ebuild index ad51a3927fb..c8f548df471 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.89.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.89.0.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -6,7 +6,7 @@ EAPI=8 LLVM_COMPAT=( 20 ) LLVM_OPTIONAL="yes" -inherit edo llvm-r1 multilib prefix rust-toolchain verify-sig multilib-minimal optfeature +inherit edo llvm-r2 multilib prefix rust-toolchain verify-sig multilib-minimal optfeature if [[ ${PV} == *9999* ]]; then # We need to fetch a tarball in src_unpack diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.90.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.90.0.ebuild index f6a4d93ce57..2550e87791f 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.90.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.90.0.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -6,7 +6,7 @@ EAPI=8 LLVM_COMPAT=( 20 ) LLVM_OPTIONAL="yes" -inherit edo llvm-r1 multilib prefix rust-toolchain verify-sig multilib-minimal optfeature +inherit edo llvm-r2 multilib prefix rust-toolchain verify-sig multilib-minimal optfeature if [[ ${PV} == *9999* ]]; then # We need to fetch a tarball in src_unpack diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.91.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.91.0.ebuild index a475876a763..9ea25fc76c8 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.91.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.91.0.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -6,7 +6,7 @@ EAPI=8 LLVM_COMPAT=( 21 ) LLVM_OPTIONAL="yes" -inherit edo llvm-r1 multilib prefix rust-toolchain verify-sig multilib-minimal optfeature +inherit edo llvm-r2 multilib prefix rust-toolchain verify-sig multilib-minimal optfeature if [[ ${PV} == *9999* ]]; then # We need to fetch a tarball in src_unpack diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.92.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.92.0.ebuild index 11515dfa5df..c0f8153dc65 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.92.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.92.0.ebuild @@ -6,7 +6,7 @@ EAPI=8 LLVM_COMPAT=( 21 ) LLVM_OPTIONAL="yes" -inherit edo llvm-r1 multilib prefix rust-toolchain verify-sig multilib-minimal optfeature +inherit edo llvm-r2 multilib prefix rust-toolchain verify-sig multilib-minimal optfeature if [[ ${PV} == *9999* ]]; then # We need to fetch a tarball in src_unpack diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.93.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.93.0.ebuild index edbb857a50c..bf77e61a2d2 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.93.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.93.0.ebuild @@ -6,7 +6,7 @@ EAPI=8 LLVM_COMPAT=( 21 ) LLVM_OPTIONAL="yes" -inherit edo llvm-r1 multilib prefix rust-toolchain verify-sig multilib-minimal optfeature +inherit edo llvm-r2 multilib prefix rust-toolchain verify-sig multilib-minimal optfeature if [[ ${PV} == *9999* ]]; then # We need to fetch a tarball in src_unpack diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.93.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.93.1.ebuild index 672cbfd6fe1..9d3a91f2899 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.93.1.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.93.1.ebuild @@ -6,7 +6,7 @@ EAPI=8 LLVM_COMPAT=( 21 ) LLVM_OPTIONAL="yes" -inherit edo llvm-r1 multilib prefix rust-toolchain verify-sig multilib-minimal optfeature +inherit edo llvm-r2 multilib prefix rust-toolchain verify-sig multilib-minimal optfeature if [[ ${PV} == *9999* ]]; then # We need to fetch a tarball in src_unpack diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.94.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.94.0.ebuild index 36df7dd9c6f..ac0f1abb93f 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.94.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.94.0.ebuild @@ -6,7 +6,7 @@ EAPI=8 LLVM_COMPAT=( 21 ) LLVM_OPTIONAL="yes" -inherit edo llvm-r1 multilib prefix rust-toolchain verify-sig multilib-minimal optfeature +inherit edo llvm-r2 multilib prefix rust-toolchain verify-sig multilib-minimal optfeature if [[ ${PV} == *9999* ]]; then # We need to fetch a tarball in src_unpack @@ -24,7 +24,7 @@ else SRC_URI="$(rust_all_arch_uris "rust-${PV}") rust-src? ( ${RUST_TOOLCHAIN_BASEURL%/}/2026-03-05/rust-src-${PV}.tar.xz ) " - KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~x86" # "~mips ~sparc" + KEYWORDS=""~mips # ~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"" fi GENTOO_BIN_BASEURI="https://github.com/projg2/rust-bootstrap/releases/download/${PVR}" # omit trailing slash diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.94.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.94.1.ebuild index 19c5557b74e..d8922717ed6 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.94.1.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.94.1.ebuild @@ -6,7 +6,7 @@ EAPI=8 LLVM_COMPAT=( 21 ) LLVM_OPTIONAL="yes" -inherit edo llvm-r1 multilib prefix rust-toolchain verify-sig multilib-minimal optfeature +inherit edo llvm-r2 multilib prefix rust-toolchain verify-sig multilib-minimal optfeature if [[ ${PV} == *9999* ]]; then # We need to fetch a tarball in src_unpack diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.95.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.95.0.ebuild index 6e56692792f..7cf7f7bc131 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.95.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.95.0.ebuild @@ -6,7 +6,7 @@ EAPI=8 LLVM_COMPAT=( 22 ) LLVM_OPTIONAL="yes" -inherit edo llvm-r1 multilib prefix rust-toolchain verify-sig multilib-minimal optfeature +inherit edo llvm-r2 multilib prefix rust-toolchain verify-sig multilib-minimal optfeature if [[ ${PV} == *9999* ]]; then # We need to fetch a tarball in src_unpack diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.96.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.96.1.ebuild index 4b46e5cd725..57aafd16a0d 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.96.1.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.96.1.ebuild @@ -6,7 +6,7 @@ EAPI=8 LLVM_COMPAT=( 22 ) LLVM_OPTIONAL="yes" -inherit edo llvm-r1 multilib prefix rust-toolchain verify-sig multilib-minimal optfeature +inherit edo llvm-r2 multilib prefix rust-toolchain verify-sig multilib-minimal optfeature if [[ ${PV} == *9999* ]]; then # We need to fetch a tarball in src_unpack diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.97.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.97.1.ebuild index eca8d155fa2..6a2fe3faac6 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.97.1.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.97.1.ebuild @@ -6,7 +6,7 @@ EAPI=8 LLVM_COMPAT=( 22 ) LLVM_OPTIONAL="yes" -inherit edo llvm-r1 multilib prefix rust-toolchain verify-sig multilib-minimal optfeature +inherit edo llvm-r2 multilib prefix rust-toolchain verify-sig multilib-minimal optfeature if [[ ${PV} == *9999* ]]; then # We need to fetch a tarball in src_unpack @@ -24,7 +24,7 @@ else SRC_URI="$(rust_all_arch_uris "rust-${PV}") rust-src? ( ${RUST_TOOLCHAIN_BASEURL%/}/2026-07-16/rust-src-${PV}.tar.xz ) " - KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" fi GENTOO_BIN_BASEURI="https://github.com/projg2/rust-bootstrap/releases/download/${PVR}" # omit trailing slash diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.98.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.98.1.ebuild new file mode 100644 index 00000000000..4c1ae303bd2 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.98.1.ebuild @@ -0,0 +1,336 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +LLVM_COMPAT=( 22 ) +LLVM_OPTIONAL="yes" + +inherit edo llvm-r2 multilib prefix rust-toolchain verify-sig multilib-minimal optfeature + +if [[ ${PV} == *9999* ]]; then + # We need to fetch a tarball in src_unpack + PROPERTIES+=" live" +elif [[ ${PV} == *beta* ]]; then + # curl -Ls static.rust-lang.org/dist/channel-rust-beta.toml | grep "xz_url.*rust-src" + betaver=${PV//*beta} + BETA_SNAPSHOT="${betaver:0:4}-${betaver:4:2}-${betaver:6:2}" + RUST_TOOLCHAIN_BASEURL=https://static.rust-lang.org/dist/${BETA_SNAPSHOT}/ + SRC_URI="$(rust_all_arch_uris rust-beta rust-${PV}) + rust-src? ( ${RUST_TOOLCHAIN_BASEURL%/}/rust-src-beta.tar.xz -> rust-src-${PV}.tar.xz ) + " +else + # curl -Ls static.rust-lang.org/dist/channel-rust-${PV}.toml | grep "xz_url.*rust-src" + SRC_URI="$(rust_all_arch_uris "rust-${PV}") + rust-src? ( ${RUST_TOOLCHAIN_BASEURL%/}/2026-09-03/rust-src-${PV}.tar.xz ) + " + KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +fi + +GENTOO_BIN_BASEURI="https://github.com/projg2/rust-bootstrap/releases/download/${PVR}" # omit trailing slash + +DESCRIPTION="Systems programming language from Mozilla" +HOMEPAGE="https://www.rust-lang.org/" + +if [[ ${PV} != *9999* && ${PV} != *beta* ]] ; then + # Keep this separate to allow easy commenting out if not yet built + SRC_URI+=" sparc? ( ${GENTOO_BIN_BASEURI}/rust-${PVR}-sparc64-unknown-linux-gnu.tar.xz ) " + SRC_URI+=" mips? ( + abi_mips_o32? ( + big-endian? ( ${GENTOO_BIN_BASEURI}/rust-${PVR}-mips-unknown-linux-gnu.tar.xz ) + !big-endian? ( ${GENTOO_BIN_BASEURI}/rust-${PVR}-mipsel-unknown-linux-gnu.tar.xz ) + ) + abi_mips_n64? ( + big-endian? ( ${GENTOO_BIN_BASEURI}/rust-${PVR}-mips64-unknown-linux-gnuabi64.tar.xz ) + !big-endian? ( ${GENTOO_BIN_BASEURI}/rust-${PVR}-mips64el-unknown-linux-gnuabi64.tar.xz ) + ) + )" + SRC_URI+=" riscv? ( + elibc_musl? ( ${GENTOO_BIN_BASEURI}/rust-${PVR}-riscv64gc-unknown-linux-musl.tar.xz ) + )" + SRC_URI+=" ppc64? ( elibc_musl? ( + big-endian? ( ${GENTOO_BIN_BASEURI}/rust-${PVR}-powerpc64-unknown-linux-musl.tar.xz ) + ) )" +fi + +LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4" +SLOT="${PV%%_*}" # Beta releases get to share the same SLOT as the eventual stable +IUSE="big-endian +clippy cpu_flags_x86_sse2 doc prefix rust-analyzer rust-src +rustfmt" + +# net-misc/curl is needed for our own bootstrapped rustc, since cross-compiling bundled curl is not supported +RDEPEND=" + >=app-eselect/eselect-rust-20190311 + dev-libs/openssl + net-misc/curl + sys-apps/lsb-release + || ( + llvm-runtimes/libgcc + sys-devel/gcc:* + ) + !dev-lang/rust:stable + !dev-lang/rust-bin:stable +" +BDEPEND=" + prefix? ( dev-util/patchelf ) + verify-sig? ( sec-keys/openpgp-keys-rust ) +" +[[ ${PV} == *9999* ]] && BDEPEND+=" net-misc/curl" + +REQUIRED_USE="x86? ( cpu_flags_x86_sse2 )" + +# stripping rust may break it (at least on x86_64) +# https://github.com/rust-lang/rust/issues/112286 +RESTRICT="strip" + +QA_PREBUILT=" + opt/rust-bin-${SLOT}/bin/.* + opt/rust-bin-${SLOT}/lib/.*.so* + opt/rust-bin-${SLOT}/libexec/.* + opt/rust-bin-${SLOT}/lib/rustlib/.*/bin/.* + opt/rust-bin-${SLOT}/lib/rustlib/.*/lib/.* +" + +# An rmeta file is custom binary format that contains the metadata for the crate. +# rmeta files do not support linking, since they do not contain compiled object files. +# so we can safely silence the warning for this QA check. +QA_EXECSTACK="opt/${PN}-${SLOT}/lib/rustlib/*/lib*.rlib:lib.rmeta" + +VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/rust.asc" + +src_unpack() { + if [[ ${PV} == *9999* ]]; then + # We need to fetch the latest nightly listing and get the apprapriate src_uri for our arch + local rust_bin_url rustc_src_url + # Cut down on webrequests by fetching the nightly toml once + curl -Ls static.rust-lang.org/dist/channel-rust-nightly.toml > "${WORKDIR}/channel-rust-nightly.toml" || + die "Failed to fetch nightly revision info" + rustc_src_url=$(grep 'xz_url.*rust-src' "${WORKDIR}/channel-rust-nightly.toml" | cut -d '"' -f 2) + + if use rust-src; then + einfo "Using nightly Rust-src from: ${rustc_src_url}" + # We need to fetch the rust-src tarball + einfo "Fetching nightly rust-src tarball ..." + curl --progress-bar -L "${rustc_src_url}" -o "${WORKDIR}/rust-src-${PV}.tar.xz" || + die "Failed to fetch nightly rust-src tarball." + # no verify-sig here, just unpack it + tar -xf "${WORKDIR}/rust-src-${PV}.tar.xz" || die "Failed to unpack nightly rust-src tarball" + fi + + local v + for v in $(multilib_get_enabled_abi_pairs); do + rust_target="$(rust_abi $(get_abi_CHOST ${v##*.}))" + rust_bin_url=$(grep "xz_url.*rust-nightly-${rust_target}" "${WORKDIR}/channel-rust-nightly.toml" | cut -d '"' -f 2) + einfo "Using nightly Rust from ${rust_bin_url} for ${rust_target}" + + einfo "Fetching nightly Rust tarball for ${rust_target} ..." + curl --progress-bar -L "${rust_bin_url}" -O || die "Failed to fetch nightly tarball for ${rust_target}" + if use verify-sig; then + einfo "Fetching nightly signature for ${rust_target} ..." + curl --progress-bar -L "${rust_bin_url}.asc" -O || die "Failed to fetch nightly signature for ${rust_target}" + verify-sig_verify_detached "${WORKDIR}/rust-nightly-${rust_target}.tar.xz" \ + "${WORKDIR}/rust-nightly-${rust_target}.tar.xz.asc" + fi + + tar -xf "${WORKDIR}/rust-nightly-${rust_target}.tar.xz" || die "Failed to unpack nightly tarball for ${rust_target}" + done + else + # sadly rust-src tarball does not have corresponding .asc file + # so do partial verification + if use verify-sig; then + for f in ${A}; do + if [[ -f ${DISTDIR}/${f}.asc ]]; then + verify-sig_verify_detached "${DISTDIR}/${f}" "${DISTDIR}/${f}.asc" + fi + done + fi + + default_src_unpack + fi + + # We only want to do this for the native ABI. Non-native ABIs are + # handled differently in multilib_src_install. + case ${PV} in + *9999*) + mv "${WORKDIR}/rust-nightly-$(rust_abi)" "${S}" || die + ;; + *beta*) + mv "${WORKDIR}/rust-beta-$(rust_abi)" "${S}" || die + ;; + *) + mv "${WORKDIR}/rust-${PV}-$(rust_abi)" "${S}" || die + ;; + esac +} + +patchelf_for_bin() { + local filetype=$(file -b ${1}) + if [[ ${filetype} == *ELF*interpreter* ]]; then + einfo "${1}'s interpreter changed" + patchelf ${1} --set-interpreter ${2} || die + elif [[ ${filetype} == *script* ]]; then + hprefixify ${1} + fi +} + +rust_native_abi_install() { + pushd "${S}" >/dev/null || die + local std="$(grep 'std' ./components || die "std not found in components")" + local components=( "rustc" "cargo" "${std}" ) + use doc && components+=( "rust-docs" ) + use clippy && components+=( "clippy-preview" ) + use rustfmt && components+=( "rustfmt-preview" ) + if use rust-analyzer; then + local analysis="$(grep 'analysis' ./components || die "analysis not found in components")" + components+=( "rust-analyzer-preview" "${analysis}" ) + fi + # Rust component 'rust-src' is extracted from separate archive + if use rust-src; then + einfo "Combining rust and rust-src installers" + case ${PV} in + *9999*) + mv -v "${WORKDIR}/rust-src-nightly/rust-src" "${S}" || die + ;; + *beta*) + mv -v "${WORKDIR}/rust-src-beta/rust-src" "${S}" || die + ;; + *) + mv -v "${WORKDIR}/rust-src-${PV}/rust-src" "${S}" || die + ;; + esac + echo rust-src >> ./components || die + components+=( "rust-src" ) + fi + edo ./install.sh \ + --components="$(IFS=,; echo "${components[*]}")" \ + --disable-verify \ + --prefix="${ED}/opt/rust-bin-${SLOT}" \ + --mandir="${ED}/opt/rust-bin-${SLOT}/man" \ + --disable-ldconfig + + docompress /opt/${P}/man/ + + if use prefix; then + local interpreter=$(patchelf --print-interpreter "${EPREFIX}"/bin/bash) + ebegin "Changing interpreter to ${interpreter} for Gentoo prefix at ${ED}/opt/rust-bin-${SLOT}/bin" + find "${ED}/opt/rust-bin-${SLOT}/bin" -type f -print0 | \ + while IFS= read -r -d '' filename; do + patchelf_for_bin ${filename} ${interpreter} \; || die + done + eend $? + fi + + local symlinks=( + cargo + rustc + rustdoc + rust-gdb + rust-gdbgui + rust-lldb + ) + + use clippy && symlinks+=( clippy-driver cargo-clippy ) + use rustfmt && symlinks+=( rustfmt cargo-fmt ) + use rust-analyzer && symlinks+=( rust-analyzer ) + + einfo "installing eselect-rust symlinks and paths" + local i + for i in "${symlinks[@]}"; do + # we need realpath on /usr/bin/* symlink return version-appended binary path. + # so /usr/bin/rustc should point to /opt/rust-bin-/bin/rustc- + local ver_i="${i}-bin-${SLOT}" + ln -v "${ED}/opt/rust-bin-${SLOT}/bin/${i}" "${ED}/opt/rust-bin-${SLOT}/bin/${ver_i}" || die + dosym -r "/opt/rust-bin-${SLOT}/bin/${ver_i}" "/usr/bin/${ver_i}" + done + + # symlinks to switch components to active rust in eselect + dosym -r "/opt/rust-bin-${SLOT}/lib" "/usr/lib/rust/lib-bin-${SLOT}" + dosym -r "/opt/rust-bin-${SLOT}/man" "/usr/lib/rust/man-bin-${SLOT}" + dosym -r "/opt/rust-bin-${SLOT}/lib/rustlib" "/usr/lib/rustlib-bin-${SLOT}" + dosym -r "/opt/rust-bin-${SLOT}/share/doc/rust" "/usr/share/doc/rust-bin-${SLOT}" + + # make all capital underscored variable + local CARGO_TRIPLET="$(rust_abi)" + CARGO_TRIPLET="${CARGO_TRIPLET//-/_}" + CARGO_TRIPLET="${CARGO_TRIPLET^^}" + cat <<-_EOF_ > "${T}/50${P}" + MANPATH="${EPREFIX}/usr/lib/rust/man-bin-${SLOT}" + $(usev elibc_musl "CARGO_TARGET_${CARGO_TRIPLET}_RUSTFLAGS=\"-C target-feature=-crt-static\"") + _EOF_ + doenvd "${T}/50${P}" + + # note: eselect-rust adds EROOT to all paths below + cat <<-_EOF_ > "${T}/provider-${PN}-${SLOT}" + /usr/bin/cargo + /usr/bin/rustdoc + /usr/bin/rust-gdb + /usr/bin/rust-gdbgui + /usr/bin/rust-lldb + /usr/lib/rustlib + /usr/lib/rust/lib + /usr/lib/rust/man + /usr/share/doc/rust + _EOF_ + + if use clippy; then + echo /usr/bin/clippy-driver >> "${T}/provider-${PN}-${SLOT}" + echo /usr/bin/cargo-clippy >> "${T}/provider-${PN}-${SLOT}" + fi + if use rustfmt; then + echo /usr/bin/rustfmt >> "${T}/provider-${PN}-${SLOT}" + echo /usr/bin/cargo-fmt >> "${T}/provider-${PN}-${SLOT}" + fi + if use rust-analyzer; then + echo /usr/bin/rust-analyzer >> "${T}/provider-${PN}-${SLOT}" + fi + + insinto /etc/env.d/rust + doins "${T}/provider-${PN}-${SLOT}" + popd >/dev/null || die +} + +multilib_src_install() { + if multilib_is_native_abi; then + rust_native_abi_install + else + local rust_target version + case ${PV} in + *9999*) + version=nightly + ;; + *beta*) + version=beta + ;; + *) + version=${PV} + ;; + esac + rust_target="$(rust_abi $(get_abi_CHOST ${v##*.}))" + dodir "/opt/${P}/lib/rustlib" + cp -vr "${WORKDIR}/rust-${version}-${rust_target}/rust-std-${rust_target}/lib/rustlib/${rust_target}"\ + "${ED}/opt/${P}/lib/rustlib" || die + fi + + # BUG: installs x86_64 binary on other arches + rm -f "${ED}/opt/${P}/lib/rustlib/"*/bin/rust-llvm-dwp || die +} + +pkg_postinst() { + eselect rust update + + if has_version dev-debug/gdb || has_version llvm-core/lldb; then + elog "Rust installs helper scripts for calling GDB and LLDB," + elog "for convenience they are installed under /usr/bin/rust-{gdb,lldb}-${PV}." + fi + + if has_version app-editors/emacs; then + optfeature "emacs support for rust" app-emacs/rust-mode + fi + + if has_version app-editors/gvim || has_version app-editors/vim; then + optfeature "vim support for rust" app-vim/rust-vim + fi +} + +pkg_postrm() { + eselect rust cleanup +} diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-9999.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-9999.ebuild index 34306db7d42..6aca3a30107 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-9999.ebuild @@ -6,7 +6,7 @@ EAPI=8 LLVM_COMPAT=( 22 ) LLVM_OPTIONAL="yes" -inherit edo llvm-r1 multilib prefix rust-toolchain verify-sig multilib-minimal optfeature +inherit edo llvm-r2 multilib prefix rust-toolchain verify-sig multilib-minimal optfeature if [[ ${PV} == *9999* ]]; then # We need to fetch a tarball in src_unpack @@ -24,7 +24,7 @@ else SRC_URI="$(rust_all_arch_uris "rust-${PV}") rust-src? ( ${RUST_TOOLCHAIN_BASEURL%/}/2026-03-26/rust-src-${PV}.tar.xz ) " - KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~x86" # "~mips ~sparc" + KEYWORDS=""~mips # ~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"" fi GENTOO_BIN_BASEURI="https://github.com/projg2/rust-bootstrap/releases/download/${PVR}" # omit trailing slash diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust-common/Manifest b/sdk_container/src/third_party/portage-stable/dev-lang/rust-common/Manifest index 63ea5f330b3..a02a9957513 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/rust-common/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust-common/Manifest @@ -36,3 +36,5 @@ DIST rustc-1.96.1-src.tar.xz 241602032 BLAKE2B b8a489293a232faf24a7eaaa439f752bc DIST rustc-1.96.1-src.tar.xz.asc 801 BLAKE2B b54bed57d90fed66806fe0b16c6d81d880bf0398030d639cdc440d7df5a8699d1d0ec5803baee9f0ffd9503be11be3b202f6f4ec86a2167f5349317a714bd265 SHA512 1765666d2509d93cbbad5f47507ba7510fc07cf650689238a8d39d33be0d85a06c4cd67281d78a1b5e29258002d7dd6da912c9015a8d0e942ee01fc46fa0dca3 DIST rustc-1.97.1-src.tar.xz 242787896 BLAKE2B d54e89d84b25d68761663f1c243480f1bb061c30ee17e731f3d9cd1ff52639cf198647347884d7325f2dbc1582a3d8095908352edcb944a49e5b0581160d5fb6 SHA512 a04178bf0f2c43cbb503a5ea48145eebfee371766a589c0855079ae6a7f3945223850dcc6bce2a94b9f9ead1595d99de09bb00cd6180300e0da58dc247f043eb DIST rustc-1.97.1-src.tar.xz.asc 801 BLAKE2B d0841e9decf17d18c13c33bf0bdb8a51873799465bafa402090f7f680046d141eea0a633278a7387ee741a8a5dd6ceac40384b4a06132e99b34bb7e22f740d04 SHA512 9d3ca698b1a1a453cac8758622609414f10868e8890491d8cd8c0eed796b689623f91cc28377c1e4c33095f02e92af7d1230458fe4e1fd830b6139799af50f32 +DIST rustc-1.98.1-src.tar.xz 244440824 BLAKE2B a055c8341556f29a6e2ca5137ca7943365d61d3b7dc30b182c5c62907659d16ad0caf8c5e884ce2bcf79a01844e19563c9c208fecbebe0c38f8ae6473f60e0eb SHA512 58941e5606651d5a254f36d9771bf6524347068a69ad6fcfb72d0f02b066b16fb415e5d54c8e1266fef777a64ede69c47042f13525a29e39be3e9da84dbccdf4 +DIST rustc-1.98.1-src.tar.xz.asc 801 BLAKE2B abee669a3b9545a50cbc8e4c604a8ff167bf4f0ebf77ef5efebe2c38141e22930ab11ec6c54cd2892bca5295510cb4b65a5a28eba5f70b148cd474921e4fd140 SHA512 2c030148eca74e2d1e5f497b6dc0725a3d3d5dc328ad9f854d46067f24b682f99e7cee9de415b3450e8c315015dd73c1945dd2785163d12dfd0119d089b78276 diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust-common/rust-common-1.97.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust-common/rust-common-1.97.1.ebuild index 1037d635a09..44d5013f245 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/rust-common/rust-common-1.97.1.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust-common/rust-common-1.97.1.ebuild @@ -32,7 +32,7 @@ else verify-sig? ( https://static.rust-lang.org/dist/rustc-${PV}-src.tar.xz.asc ) " S="${WORKDIR}/rustc-${MY_PV}-src" - KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86" + KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~sparc x86" fi LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4" diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust-common/rust-common-1.98.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust-common/rust-common-1.98.1.ebuild new file mode 100644 index 00000000000..1037d635a09 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust-common/rust-common-1.98.1.ebuild @@ -0,0 +1,73 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/rust.asc +inherit shell-completion verify-sig + +DESCRIPTION="Common files shared between multiple slots of Rust" +HOMEPAGE="https://www.rust-lang.org/" + +if [[ ${PV} = *9999* ]]; then + inherit git-r3 + # In case cargo is not in sync we'll fetch it as a submodule + # Nightly users will probably already have the repo cloned and up-to-date anyway. + EGIT_REPO_URI="https://github.com/rust-lang/rust.git" + EGIT_SUBMODULES=( "-*" "src/tools/cargo" ) +elif [[ ${PV} == *beta* ]]; then + # Identify the snapshot date of the beta release: + # curl -Ls static.rust-lang.org/dist/channel-rust-beta.toml | grep beta-src.tar.xz + MY_PV=beta + betaver=${PV//*beta} + BETA_SNAPSHOT="${betaver:0:4}-${betaver:4:2}-${betaver:6:2}" + SRC_URI="https://static.rust-lang.org/dist/${BETA_SNAPSHOT}/rustc-beta-src.tar.xz -> rustc-${PV}-src.tar.xz + verify-sig? ( https://static.rust-lang.org/dist/${BETA_SNAPSHOT}/rustc-beta-src.tar.xz.asc + -> rustc-${PV}-src.tar.xz.asc ) + " + S="${WORKDIR}/rustc-${MY_PV}-src" +else + MY_PV=${PV} + SRC_URI="https://static.rust-lang.org/dist/rustc-${PV}-src.tar.xz + verify-sig? ( https://static.rust-lang.org/dist/rustc-${PV}-src.tar.xz.asc ) + " + S="${WORKDIR}/rustc-${MY_PV}-src" + KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86" +fi + +LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4" +SLOT="0" + +# Legacy non-slotted versions bash completions will collide. +RDEPEND=" + !dev-lang/rust:stable + !dev-lang/rust-bin:stable +" +BDEPEND="verify-sig? ( sec-keys/openpgp-keys-rust )" + +src_unpack() { + if [[ ${PV} == *9999* ]]; then + git-r3_src_unpack + else + if use verify-sig ; then + verify-sig_verify_detached "${DISTDIR}"/rustc-${PV}-src.tar.xz "${DISTDIR}"/rustc-${PV}-src.tar.xz.asc + fi + + # Avoid unpacking the whole tarball which would need check-reqs + tar -xf "${DISTDIR}"/rustc-${PV}-src.tar.xz \ + "rustc-${MY_PV}-src/src/tools/cargo/src/etc/"{_cargo,cargo.bashcomp.sh} || die + fi +} + +src_configure() { + : +} + +src_compile() { + : +} + +src_install() { + newbashcomp src/tools/cargo/src/etc/cargo.bashcomp.sh cargo + dozshcomp src/tools/cargo/src/etc/_cargo +} diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust/Manifest b/sdk_container/src/third_party/portage-stable/dev-lang/rust/Manifest index f46c2a8d986..7545061c2a7 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/rust/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust/Manifest @@ -26,6 +26,7 @@ DIST rust-patches-1.94.1.tar.bz2 3152 BLAKE2B 211eb9785b231225f02673967b05cb0f1f DIST rust-patches-1.95.0.tar.bz2 2972 BLAKE2B f826baad880a245f9baa9c7ba4a2a7c70fe3d594c8ffb94e58633e5f4149e96a07ce561562cd3d9b303507d7299e535e7031165c108b53a962f8b848682e0c96 SHA512 0fb6662f20490b5fb0512bc670a98fa7d661476de2387fa8025edfbb8359fcef11c7e917e46750ea92231fb49a91b0228fbbe94dbf0427e7a5a924498328f3ce DIST rust-patches-1.96.1.tar.bz2 2993 BLAKE2B e0e908bc33d6876e491291c6db012f3b670a84c4199faada379f49f2022b74b6f439a7bf26ef945a8f3c868e0493b4b95477ee51a403cafc21ca31449219c635 SHA512 dafbccc233fffad6a294164e536fc6c8d9fe803892ae3462731439ca02fd6e6dcbe17633eca55b308c2bab2436eabbd2bb7ecd2acc57ffb75a63a35f0d27b361 DIST rust-patches-1.97.1.tar.bz2 2987 BLAKE2B 0db863f0c51612a619b74d08818987c18d13270f808db844f002c0eb0799430a7bfeefe026082584baa8cf0f3e1a0f5f018f94297d94ae9291e48a180ec90678 SHA512 6fec796d4c98b23814d0237e0cb5baa514dcd100ec875dd94a56f4d5d9614af4ba44d805fdf385cf36a8ffbdcf54e5f994c5b8212512c4dfb7f929be1f6494d3 +DIST rust-patches-1.98.1.tar.bz2 2980 BLAKE2B 3f5f4c76dd2a23d74f4b00b89a269157a930fd30309cf2bd04c6f8bc8861e648ed092d138fee6315e6031855b2cb425dfdd0c5f89eba260d259b8bf974c145ae SHA512 ad5614457553b803858108432591e1a404a555e68fc374dbbb9e52a781a7f6705560028d9c92dac2852e604abb63bb6f4975d6b9856f2dd05d3efe00506c1bd1 DIST rustc-1.74.1-src.tar.xz 155968724 BLAKE2B e05f2379ac94b286f85791a138e1928e5b5b5a7749f0981d82c40c2a12860f55bf96bb2f0e924e35a0f8b2447b13052d38adea909aaa3199105787bb5a4861b3 SHA512 14c7e7ed2f38ab60299d8c7d41d78f042b6b57ef822d577b5138e60bdde31cf141eccd4332a25bc5da3d58eb5313d63c1448b5dfe9e11b8055bb8ea133a9038d DIST rustc-1.74.1-src.tar.xz.asc 801 BLAKE2B ddf73175b164233babf31ca3a381b03e20c0f36d017c1d5f85d6ab11f0986d861ab23b11c061e6b2444ced70c3d6a494cc3de4ec86f0deb221a805491bd75420 SHA512 9a96ff9ba9a4e2af4e267b2ec126fc0675c78d0eb767703daa2f28491c3d85c2ab00fbd8584390bf658812ec6c4ab6c57e43b386db59fd505bd3134a8873a09e DIST rustc-1.75.0-src.tar.xz 159624388 BLAKE2B 8937b80585eddaa3e1f1ef948899d14a170308518c6fef9fe569560cdd870053776956743f796055f2119399b9ca6c0df12fedd789ae46324d071e5126c4e495 SHA512 7b0f25d91b1b5c317980fc88e059200bd43b56a70b445fbc72fb9b96e09775bfd3a98e9bd9d662af80f0ce3aef527c777ee82777e96ca876f47a972d63da8606 @@ -82,3 +83,5 @@ DIST rustc-1.96.1-src.tar.xz 241602032 BLAKE2B b8a489293a232faf24a7eaaa439f752bc DIST rustc-1.96.1-src.tar.xz.asc 801 BLAKE2B b54bed57d90fed66806fe0b16c6d81d880bf0398030d639cdc440d7df5a8699d1d0ec5803baee9f0ffd9503be11be3b202f6f4ec86a2167f5349317a714bd265 SHA512 1765666d2509d93cbbad5f47507ba7510fc07cf650689238a8d39d33be0d85a06c4cd67281d78a1b5e29258002d7dd6da912c9015a8d0e942ee01fc46fa0dca3 DIST rustc-1.97.1-src.tar.xz 242787896 BLAKE2B d54e89d84b25d68761663f1c243480f1bb061c30ee17e731f3d9cd1ff52639cf198647347884d7325f2dbc1582a3d8095908352edcb944a49e5b0581160d5fb6 SHA512 a04178bf0f2c43cbb503a5ea48145eebfee371766a589c0855079ae6a7f3945223850dcc6bce2a94b9f9ead1595d99de09bb00cd6180300e0da58dc247f043eb DIST rustc-1.97.1-src.tar.xz.asc 801 BLAKE2B d0841e9decf17d18c13c33bf0bdb8a51873799465bafa402090f7f680046d141eea0a633278a7387ee741a8a5dd6ceac40384b4a06132e99b34bb7e22f740d04 SHA512 9d3ca698b1a1a453cac8758622609414f10868e8890491d8cd8c0eed796b689623f91cc28377c1e4c33095f02e92af7d1230458fe4e1fd830b6139799af50f32 +DIST rustc-1.98.1-src.tar.xz 244440824 BLAKE2B a055c8341556f29a6e2ca5137ca7943365d61d3b7dc30b182c5c62907659d16ad0caf8c5e884ce2bcf79a01844e19563c9c208fecbebe0c38f8ae6473f60e0eb SHA512 58941e5606651d5a254f36d9771bf6524347068a69ad6fcfb72d0f02b066b16fb415e5d54c8e1266fef777a64ede69c47042f13525a29e39be3e9da84dbccdf4 +DIST rustc-1.98.1-src.tar.xz.asc 801 BLAKE2B abee669a3b9545a50cbc8e4c604a8ff167bf4f0ebf77ef5efebe2c38141e22930ab11ec6c54cd2892bca5295510cb4b65a5a28eba5f70b148cd474921e4fd140 SHA512 2c030148eca74e2d1e5f497b6dc0725a3d3d5dc328ad9f854d46067f24b682f99e7cee9de415b3450e8c315015dd73c1945dd2785163d12dfd0119d089b78276 diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.74.1-r101.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.74.1-r101.ebuild index dd40dc1b1b8..ffd221dc88f 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.74.1-r101.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.74.1-r101.ebuild @@ -1,10 +1,10 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 LLVM_COMPAT=( 17 ) -PYTHON_COMPAT=( python3_{11..12} ) +PYTHON_COMPAT=( python3_12 ) RUST_PATCH_VER=${PVR} @@ -15,7 +15,7 @@ RUST_OPTIONAL=1 MRUSTC_VERSION="0.11.2" MRUSTC_RUST_VERSION="1.74.0" -inherit check-reqs cmake edo estack flag-o-matic llvm-r1 multiprocessing multilib multilib-build \ +inherit check-reqs cmake edo estack flag-o-matic llvm-r2 multiprocessing multilib multilib-build \ optfeature python-any-r1 rust rust-toolchain toolchain-funcs verify-sig if [[ ${PV} = *9999* ]]; then @@ -247,7 +247,7 @@ pkg_setup() { fi if use system-llvm; then - llvm-r1_pkg_setup + llvm-r2_pkg_setup local llvm_config="$(get_llvm_prefix)/bin/llvm-config" export LLVM_LINK_SHARED=1 diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.75.0-r101.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.75.0-r101.ebuild index 541ba75d048..b34467d7a9c 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.75.0-r101.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.75.0-r101.ebuild @@ -1,17 +1,17 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 LLVM_COMPAT=( 17 ) -PYTHON_COMPAT=( python3_{11..12} ) +PYTHON_COMPAT=( python3_12 ) RUST_PATCH_VER=${PVR} RUST_MAX_VER=${PV} RUST_MIN_VER="$(ver_cut 1).$(($(ver_cut 2) - 1)).0" -inherit check-reqs estack flag-o-matic llvm-r1 multiprocessing multilib multilib-build \ +inherit check-reqs estack flag-o-matic llvm-r2 multiprocessing multilib multilib-build \ optfeature python-any-r1 rust rust-toolchain toolchain-funcs verify-sig if [[ ${PV} = *9999* ]]; then @@ -224,7 +224,7 @@ pkg_setup() { rust_pkg_setup if use system-llvm; then - llvm-r1_pkg_setup + llvm-r2_pkg_setup local llvm_config="$(get_llvm_prefix)/bin/llvm-config" export LLVM_LINK_SHARED=1 diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.76.0-r101.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.76.0-r101.ebuild index 8e022217281..8428fb02285 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.76.0-r101.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.76.0-r101.ebuild @@ -1,17 +1,17 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 LLVM_COMPAT=( 17 ) -PYTHON_COMPAT=( python3_{11..12} ) +PYTHON_COMPAT=( python3_12 ) RUST_PATCH_VER=${PVR} RUST_MAX_VER=${PV} RUST_MIN_VER="$(ver_cut 1).$(($(ver_cut 2) - 1)).0" -inherit check-reqs estack flag-o-matic llvm-r1 multiprocessing multilib multilib-build \ +inherit check-reqs estack flag-o-matic llvm-r2 multiprocessing multilib multilib-build \ optfeature python-any-r1 rust rust-toolchain toolchain-funcs verify-sig if [[ ${PV} = *9999* ]]; then @@ -224,7 +224,7 @@ pkg_setup() { rust_pkg_setup if use system-llvm; then - llvm-r1_pkg_setup + llvm-r2_pkg_setup local llvm_config="$(get_llvm_prefix)/bin/llvm-config" export LLVM_LINK_SHARED=1 diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.77.1-r101.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.77.1-r101.ebuild index 7dafd001e85..7e5b05bbd52 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.77.1-r101.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.77.1-r101.ebuild @@ -1,17 +1,17 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 LLVM_COMPAT=( 17 ) -PYTHON_COMPAT=( python3_{11..12} ) +PYTHON_COMPAT=( python3_12 ) RUST_PATCH_VER=${PVR} RUST_MAX_VER=${PV} RUST_MIN_VER="$(ver_cut 1).$(($(ver_cut 2) - 1)).0" -inherit check-reqs estack flag-o-matic llvm-r1 multiprocessing multilib multilib-build \ +inherit check-reqs estack flag-o-matic llvm-r2 multiprocessing multilib multilib-build \ optfeature python-any-r1 rust rust-toolchain toolchain-funcs verify-sig if [[ ${PV} = *9999* ]]; then @@ -224,7 +224,7 @@ pkg_setup() { rust_pkg_setup if use system-llvm; then - llvm-r1_pkg_setup + llvm-r2_pkg_setup local llvm_config="$(get_llvm_prefix)/bin/llvm-config" export LLVM_LINK_SHARED=1 diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.78.0-r101.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.78.0-r101.ebuild index 17fbc77f4c7..0ddc3ded2ad 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.78.0-r101.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.78.0-r101.ebuild @@ -1,17 +1,17 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 LLVM_COMPAT=( 18 ) -PYTHON_COMPAT=( python3_{11..13} ) +PYTHON_COMPAT=( python3_{12..13} ) RUST_PATCH_VER=${PVR} RUST_MAX_VER=${PV} RUST_MIN_VER="$(ver_cut 1).$(($(ver_cut 2) - 1)).0" -inherit check-reqs estack flag-o-matic llvm-r1 multiprocessing multilib multilib-build \ +inherit check-reqs estack flag-o-matic llvm-r2 multiprocessing multilib multilib-build \ optfeature python-any-r1 rust rust-toolchain toolchain-funcs verify-sig if [[ ${PV} = *9999* ]]; then @@ -224,7 +224,7 @@ pkg_setup() { rust_pkg_setup if use system-llvm; then - llvm-r1_pkg_setup + llvm-r2_pkg_setup local llvm_config="$(get_llvm_prefix)/bin/llvm-config" export LLVM_LINK_SHARED=1 diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.79.0-r101.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.79.0-r101.ebuild index 39445323634..989b8bcfbd9 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.79.0-r101.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.79.0-r101.ebuild @@ -1,17 +1,17 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 LLVM_COMPAT=( 18 ) -PYTHON_COMPAT=( python3_{11..13} ) +PYTHON_COMPAT=( python3_{12..13} ) RUST_PATCH_VER=${PVR} RUST_MAX_VER=${PV} RUST_MIN_VER="$(ver_cut 1).$(($(ver_cut 2) - 1)).0" -inherit check-reqs estack flag-o-matic llvm-r1 multiprocessing multilib multilib-build \ +inherit check-reqs estack flag-o-matic llvm-r2 multiprocessing multilib multilib-build \ optfeature python-any-r1 rust rust-toolchain toolchain-funcs verify-sig if [[ ${PV} = *9999* ]]; then @@ -224,7 +224,7 @@ pkg_setup() { rust_pkg_setup if use system-llvm; then - llvm-r1_pkg_setup + llvm-r2_pkg_setup local llvm_config="$(get_llvm_prefix)/bin/llvm-config" export LLVM_LINK_SHARED=1 diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.80.1-r101.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.80.1-r101.ebuild index 84f73da8f6f..d18fadee768 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.80.1-r101.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.80.1-r101.ebuild @@ -1,17 +1,17 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 LLVM_COMPAT=( 18 ) -PYTHON_COMPAT=( python3_{11..13} ) +PYTHON_COMPAT=( python3_{12..13} ) RUST_PATCH_VER=${PVR} RUST_MAX_VER=${PV} RUST_MIN_VER="$(ver_cut 1).$(($(ver_cut 2) - 1)).0" -inherit check-reqs estack flag-o-matic llvm-r1 multiprocessing multilib multilib-build \ +inherit check-reqs estack flag-o-matic llvm-r2 multiprocessing multilib multilib-build \ optfeature python-any-r1 rust rust-toolchain toolchain-funcs verify-sig if [[ ${PV} = *9999* ]]; then @@ -224,7 +224,7 @@ pkg_setup() { rust_pkg_setup if use system-llvm; then - llvm-r1_pkg_setup + llvm-r2_pkg_setup local llvm_config="$(get_llvm_prefix)/bin/llvm-config" export LLVM_LINK_SHARED=1 diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.81.0-r101.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.81.0-r101.ebuild index 4d9c54bb0bd..ba529abc0bc 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.81.0-r101.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.81.0-r101.ebuild @@ -1,17 +1,17 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 LLVM_COMPAT=( 18 ) -PYTHON_COMPAT=( python3_{11..13} ) +PYTHON_COMPAT=( python3_{12..13} ) RUST_PATCH_VER=${PVR} RUST_MAX_VER=${PV} RUST_MIN_VER="$(ver_cut 1).$(($(ver_cut 2) - 1)).0" -inherit check-reqs estack flag-o-matic llvm-r1 multiprocessing optfeature \ +inherit check-reqs estack flag-o-matic llvm-r2 multiprocessing optfeature \ multilib multilib-build python-any-r1 rust rust-toolchain toolchain-funcs verify-sig if [[ ${PV} = *9999* ]]; then @@ -225,7 +225,7 @@ pkg_setup() { rust_pkg_setup if use system-llvm; then - llvm-r1_pkg_setup + llvm-r2_pkg_setup local llvm_config="$(get_llvm_prefix)/bin/llvm-config" export LLVM_LINK_SHARED=1 diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.82.0-r103.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.82.0-r103.ebuild index 010f9429b4a..814176ee9c4 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.82.0-r103.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.82.0-r103.ebuild @@ -1,17 +1,17 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 LLVM_COMPAT=( 19 ) -PYTHON_COMPAT=( python3_{11..13} ) +PYTHON_COMPAT=( python3_{12..13} ) RUST_PATCH_VER=${PVR} RUST_MAX_VER=${PV} RUST_MIN_VER="$(ver_cut 1).$(($(ver_cut 2) - 1)).0" -inherit check-reqs estack flag-o-matic llvm-r1 multiprocessing optfeature \ +inherit check-reqs estack flag-o-matic llvm-r2 multiprocessing optfeature \ multilib multilib-build python-any-r1 rust rust-toolchain toolchain-funcs verify-sig if [[ ${PV} = *9999* ]]; then @@ -224,7 +224,7 @@ pkg_setup() { rust_pkg_setup if use system-llvm; then - llvm-r1_pkg_setup + llvm-r2_pkg_setup local llvm_config="$(get_llvm_prefix)/bin/llvm-config" export LLVM_LINK_SHARED=1 diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.83.0-r3.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.83.0-r3.ebuild index 1f52e17022d..a63cd37f50d 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.83.0-r3.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.83.0-r3.ebuild @@ -1,17 +1,17 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 LLVM_COMPAT=( 19 ) -PYTHON_COMPAT=( python3_{11..13} ) +PYTHON_COMPAT=( python3_{12..13} ) RUST_PATCH_VER=${PVR} RUST_MAX_VER=${PV} RUST_MIN_VER="$(ver_cut 1).$(($(ver_cut 2) - 1)).0" -inherit check-reqs estack flag-o-matic llvm-r1 multiprocessing optfeature \ +inherit check-reqs estack flag-o-matic llvm-r2 multiprocessing optfeature \ multilib multilib-build python-any-r1 rust rust-toolchain toolchain-funcs verify-sig if [[ ${PV} = *9999* ]]; then @@ -224,7 +224,7 @@ pkg_setup() { rust_pkg_setup if use system-llvm; then - llvm-r1_pkg_setup + llvm-r2_pkg_setup local llvm_config="$(get_llvm_prefix)/bin/llvm-config" export LLVM_LINK_SHARED=1 diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.84.0-r2.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.84.0-r2.ebuild index 24b815f9d0f..14676c2f875 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.84.0-r2.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.84.0-r2.ebuild @@ -1,17 +1,17 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 LLVM_COMPAT=( 19 ) -PYTHON_COMPAT=( python3_{11..13} ) +PYTHON_COMPAT=( python3_{12..13} ) RUST_PATCH_VER=${PVR} RUST_MAX_VER=${PV} RUST_MIN_VER="$(ver_cut 1).$(($(ver_cut 2) - 1)).0" -inherit check-reqs estack flag-o-matic llvm-r1 multiprocessing optfeature \ +inherit check-reqs estack flag-o-matic llvm-r2 multiprocessing optfeature \ multilib multilib-build python-any-r1 rust rust-toolchain toolchain-funcs verify-sig if [[ ${PV} = *9999* ]]; then @@ -230,7 +230,7 @@ pkg_setup() { rust_pkg_setup if use system-llvm; then - llvm-r1_pkg_setup + llvm-r2_pkg_setup local llvm_config="$(get_llvm_prefix)/bin/llvm-config" export LLVM_LINK_SHARED=1 diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.84.1-r2.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.84.1-r2.ebuild index 24b815f9d0f..14676c2f875 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.84.1-r2.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.84.1-r2.ebuild @@ -1,17 +1,17 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 LLVM_COMPAT=( 19 ) -PYTHON_COMPAT=( python3_{11..13} ) +PYTHON_COMPAT=( python3_{12..13} ) RUST_PATCH_VER=${PVR} RUST_MAX_VER=${PV} RUST_MIN_VER="$(ver_cut 1).$(($(ver_cut 2) - 1)).0" -inherit check-reqs estack flag-o-matic llvm-r1 multiprocessing optfeature \ +inherit check-reqs estack flag-o-matic llvm-r2 multiprocessing optfeature \ multilib multilib-build python-any-r1 rust rust-toolchain toolchain-funcs verify-sig if [[ ${PV} = *9999* ]]; then @@ -230,7 +230,7 @@ pkg_setup() { rust_pkg_setup if use system-llvm; then - llvm-r1_pkg_setup + llvm-r2_pkg_setup local llvm_config="$(get_llvm_prefix)/bin/llvm-config" export LLVM_LINK_SHARED=1 diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.85.0-r2.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.85.0-r2.ebuild index 5f97575485e..ce5dc3e2dff 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.85.0-r2.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.85.0-r2.ebuild @@ -1,10 +1,10 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 LLVM_COMPAT=( 19 ) -PYTHON_COMPAT=( python3_{11..13} ) +PYTHON_COMPAT=( python3_{12..13} ) RUST_PATCH_VER=${PVR} @@ -22,7 +22,7 @@ else RUST_MIN_VER="$(ver_cut 1).$(($(ver_cut 2) - 1)).0" fi -inherit check-reqs estack flag-o-matic llvm-r1 multiprocessing optfeature \ +inherit check-reqs estack flag-o-matic llvm-r2 multiprocessing optfeature \ multilib multilib-build python-any-r1 rust rust-toolchain toolchain-funcs verify-sig if [[ ${PV} = *9999* ]]; then @@ -246,7 +246,7 @@ pkg_setup() { rust_pkg_setup if use system-llvm; then - llvm-r1_pkg_setup + llvm-r2_pkg_setup local llvm_config="$(get_llvm_prefix)/bin/llvm-config" export LLVM_LINK_SHARED=1 diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.85.1-r1.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.85.1-r1.ebuild index 5f97575485e..ce5dc3e2dff 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.85.1-r1.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.85.1-r1.ebuild @@ -1,10 +1,10 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 LLVM_COMPAT=( 19 ) -PYTHON_COMPAT=( python3_{11..13} ) +PYTHON_COMPAT=( python3_{12..13} ) RUST_PATCH_VER=${PVR} @@ -22,7 +22,7 @@ else RUST_MIN_VER="$(ver_cut 1).$(($(ver_cut 2) - 1)).0" fi -inherit check-reqs estack flag-o-matic llvm-r1 multiprocessing optfeature \ +inherit check-reqs estack flag-o-matic llvm-r2 multiprocessing optfeature \ multilib multilib-build python-any-r1 rust rust-toolchain toolchain-funcs verify-sig if [[ ${PV} = *9999* ]]; then @@ -246,7 +246,7 @@ pkg_setup() { rust_pkg_setup if use system-llvm; then - llvm-r1_pkg_setup + llvm-r2_pkg_setup local llvm_config="$(get_llvm_prefix)/bin/llvm-config" export LLVM_LINK_SHARED=1 diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.86.0-r2.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.86.0-r2.ebuild index 610e7649303..1136e3ca148 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.86.0-r2.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.86.0-r2.ebuild @@ -1,10 +1,10 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 LLVM_COMPAT=( 19 ) -PYTHON_COMPAT=( python3_{11..13} ) +PYTHON_COMPAT=( python3_{12..13} ) RUST_PATCH_VER="${PVR}-1" @@ -22,7 +22,7 @@ else RUST_MIN_VER="$(ver_cut 1).$(($(ver_cut 2) - 1)).0" fi -inherit check-reqs estack flag-o-matic llvm-r1 multiprocessing optfeature \ +inherit check-reqs estack flag-o-matic llvm-r2 multiprocessing optfeature \ multilib multilib-build python-any-r1 rust rust-toolchain toolchain-funcs verify-sig if [[ ${PV} = *9999* ]]; then @@ -247,7 +247,7 @@ pkg_setup() { rust_pkg_setup if use system-llvm; then - llvm-r1_pkg_setup + llvm-r2_pkg_setup local llvm_config="$(get_llvm_prefix)/bin/llvm-config" export LLVM_LINK_SHARED=1 diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.87.0-r1.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.87.0-r1.ebuild index f6082c35657..3a0cab165a8 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.87.0-r1.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.87.0-r1.ebuild @@ -1,10 +1,10 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 LLVM_COMPAT=( 20 ) -PYTHON_COMPAT=( python3_{11..14} ) +PYTHON_COMPAT=( python3_{12..14} ) RUST_PATCH_VER="${PVR}-1" @@ -22,7 +22,7 @@ else RUST_MIN_VER="$(ver_cut 1).$(($(ver_cut 2) - 1)).0" fi -inherit check-reqs estack flag-o-matic llvm-r1 multiprocessing optfeature \ +inherit check-reqs estack flag-o-matic llvm-r2 multiprocessing optfeature \ multilib multilib-build python-any-r1 rust rust-toolchain toolchain-funcs verify-sig if [[ ${PV} = *9999* ]]; then @@ -248,7 +248,7 @@ pkg_setup() { rust_pkg_setup if use system-llvm; then - llvm-r1_pkg_setup + llvm-r2_pkg_setup local llvm_config="$(get_llvm_prefix)/bin/llvm-config" export LLVM_LINK_SHARED=1 diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.88.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.88.0.ebuild index dfd6438b22c..2e12ad5f29b 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.88.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.88.0.ebuild @@ -1,10 +1,10 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 LLVM_COMPAT=( 20 ) -PYTHON_COMPAT=( python3_{11..14} ) +PYTHON_COMPAT=( python3_{12..14} ) RUST_PATCH_VER=${PVR} @@ -18,7 +18,7 @@ else RUST_MIN_VER="$(ver_cut 1).$(($(ver_cut 2) - 1)).0" fi -inherit check-reqs estack flag-o-matic llvm-r1 multiprocessing optfeature \ +inherit check-reqs estack flag-o-matic llvm-r2 multiprocessing optfeature \ multilib multilib-build python-any-r1 rust rust-toolchain toolchain-funcs verify-sig if [[ ${PV} = *9999* ]]; then @@ -239,7 +239,7 @@ pkg_setup() { rust_pkg_setup if use system-llvm; then - llvm-r1_pkg_setup + llvm-r2_pkg_setup local llvm_config="$(get_llvm_prefix)/bin/llvm-config" export LLVM_LINK_SHARED=1 diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.89.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.89.0.ebuild index dfd6438b22c..2e12ad5f29b 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.89.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.89.0.ebuild @@ -1,10 +1,10 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 LLVM_COMPAT=( 20 ) -PYTHON_COMPAT=( python3_{11..14} ) +PYTHON_COMPAT=( python3_{12..14} ) RUST_PATCH_VER=${PVR} @@ -18,7 +18,7 @@ else RUST_MIN_VER="$(ver_cut 1).$(($(ver_cut 2) - 1)).0" fi -inherit check-reqs estack flag-o-matic llvm-r1 multiprocessing optfeature \ +inherit check-reqs estack flag-o-matic llvm-r2 multiprocessing optfeature \ multilib multilib-build python-any-r1 rust rust-toolchain toolchain-funcs verify-sig if [[ ${PV} = *9999* ]]; then @@ -239,7 +239,7 @@ pkg_setup() { rust_pkg_setup if use system-llvm; then - llvm-r1_pkg_setup + llvm-r2_pkg_setup local llvm_config="$(get_llvm_prefix)/bin/llvm-config" export LLVM_LINK_SHARED=1 diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.90.0-r1.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.90.0-r1.ebuild index 4b90ea471c6..b68ccd35e2a 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.90.0-r1.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.90.0-r1.ebuild @@ -4,7 +4,7 @@ EAPI=8 LLVM_COMPAT=( 20 ) -PYTHON_COMPAT=( python3_{11..14} ) +PYTHON_COMPAT=( python3_{12..14} ) MRUSTC_VERSION="0.12.0" MRUSTC_RUST_VERSION="1.90.0" @@ -25,7 +25,7 @@ else RUST_MIN_VER="$(ver_cut 1).$(($(ver_cut 2) - 1)).0" fi -inherit check-reqs estack edo flag-o-matic llvm-r1 multiprocessing optfeature \ +inherit check-reqs estack edo flag-o-matic llvm-r2 multiprocessing optfeature \ multilib multilib-build python-any-r1 rust rust-toolchain toolchain-funcs verify-sig if [[ ${PV} = *9999* ]]; then @@ -269,7 +269,7 @@ pkg_setup() { fi if use system-llvm; then - llvm-r1_pkg_setup + llvm-r2_pkg_setup local llvm_config="$(get_llvm_prefix)/bin/llvm-config" export LLVM_LINK_SHARED=1 diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.91.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.91.0.ebuild index 47a1f638f60..3764554c3e7 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.91.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.91.0.ebuild @@ -6,7 +6,7 @@ EAPI=8 # Bump notes: https://wiki.gentoo.org/wiki/Project:Rust/Rust_bump LLVM_COMPAT=( 21 ) -PYTHON_COMPAT=( python3_{11..14} ) +PYTHON_COMPAT=( python3_{12..14} ) RUST_PATCH_VER=${PV#*_p} RUST_MAX_VER=${PV%%_*} @@ -20,7 +20,7 @@ else RUST_MIN_VER="$(ver_cut 1).$(($(ver_cut 2) - 1)).0" fi -inherit check-reqs estack flag-o-matic llvm-r1 multiprocessing optfeature \ +inherit check-reqs estack flag-o-matic llvm-r2 multiprocessing optfeature \ multilib multilib-build python-any-r1 rust rust-toolchain toolchain-funcs verify-sig if [[ ${PV} = *9999* ]]; then @@ -248,7 +248,7 @@ pkg_setup() { rust_pkg_setup if use system-llvm; then - llvm-r1_pkg_setup + llvm-r2_pkg_setup local llvm_config="$(get_llvm_prefix)/bin/llvm-config" export LLVM_LINK_SHARED=1 diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.92.0_p1-r1.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.92.0_p1-r1.ebuild index 2cdc9ca8516..584519c2cc4 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.92.0_p1-r1.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.92.0_p1-r1.ebuild @@ -6,7 +6,7 @@ EAPI=8 # Bump notes: https://wiki.gentoo.org/wiki/Project:Rust/Rust_bump LLVM_COMPAT=( 21 ) -PYTHON_COMPAT=( python3_{11..14} ) +PYTHON_COMPAT=( python3_{12..14} ) # Patches are kept in rust-patches.git, see its README.rst for the versioning # scheme. @@ -32,7 +32,7 @@ else RUST_MIN_VER="$(ver_cut 1).$(($(ver_cut 2) - 1)).0" fi -inherit check-reqs estack flag-o-matic llvm-r1 multiprocessing optfeature +inherit check-reqs estack flag-o-matic llvm-r2 multiprocessing optfeature inherit multilib multilib-build python-any-r1 rust rust-toolchain toolchain-funcs inherit verify-sig @@ -272,7 +272,7 @@ pkg_setup() { rust_pkg_setup if use system-llvm; then - llvm-r1_pkg_setup + llvm-r2_pkg_setup local llvm_config="$(get_llvm_prefix)/bin/llvm-config" export LLVM_LINK_SHARED=1 diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.93.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.93.0.ebuild index 31f7c7642a5..8163551d315 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.93.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.93.0.ebuild @@ -6,7 +6,7 @@ EAPI=8 # Bump notes: https://wiki.gentoo.org/wiki/Project:Rust/Rust_bump LLVM_COMPAT=( 21 ) -PYTHON_COMPAT=( python3_{11..14} ) +PYTHON_COMPAT=( python3_{12..14} ) # Patches are kept in rust-patches.git, see its README.rst for the versioning # scheme. @@ -31,7 +31,7 @@ else RUST_MIN_VER="$(ver_cut 1).$(($(ver_cut 2) - 1)).0" fi -inherit check-reqs estack flag-o-matic llvm-r1 multiprocessing optfeature +inherit check-reqs estack flag-o-matic llvm-r2 multiprocessing optfeature inherit multilib multilib-build python-any-r1 rust rust-toolchain toolchain-funcs inherit verify-sig @@ -271,7 +271,7 @@ pkg_setup() { rust_pkg_setup if use system-llvm; then - llvm-r1_pkg_setup + llvm-r2_pkg_setup local llvm_config="$(get_llvm_prefix)/bin/llvm-config" export LLVM_LINK_SHARED=1 diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.93.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.93.1.ebuild index 278509838b8..cd1dcf4ed9d 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.93.1.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.93.1.ebuild @@ -6,7 +6,7 @@ EAPI=8 # Bump notes: https://wiki.gentoo.org/wiki/Project:Rust/Rust_bump LLVM_COMPAT=( 21 ) -PYTHON_COMPAT=( python3_{11..14} ) +PYTHON_COMPAT=( python3_{12..14} ) # Patches are kept in rust-patches.git, see its README.rst for the versioning # scheme. @@ -31,7 +31,7 @@ else RUST_MIN_VER="$(ver_cut 1).$(($(ver_cut 2) - 1)).0" fi -inherit check-reqs estack flag-o-matic llvm-r1 multiprocessing optfeature +inherit check-reqs estack flag-o-matic llvm-r2 multiprocessing optfeature inherit multilib multilib-build python-any-r1 rust rust-toolchain toolchain-funcs inherit verify-sig @@ -271,7 +271,7 @@ pkg_setup() { rust_pkg_setup if use system-llvm; then - llvm-r1_pkg_setup + llvm-r2_pkg_setup local llvm_config="$(get_llvm_prefix)/bin/llvm-config" export LLVM_LINK_SHARED=1 diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.94.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.94.0.ebuild index 2d7e21b406c..b8039a70b49 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.94.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.94.0.ebuild @@ -6,7 +6,7 @@ EAPI=8 # Bump notes: https://wiki.gentoo.org/wiki/Project:Rust/Rust_bump LLVM_COMPAT=( 21 ) -PYTHON_COMPAT=( python3_{11..14} ) +PYTHON_COMPAT=( python3_{12..14} ) # Patches are kept in rust-patches.git, see its README.rst for the versioning # scheme. @@ -31,7 +31,7 @@ else RUST_MIN_VER="$(ver_cut 1).$(($(ver_cut 2) - 1)).0" fi -inherit check-reqs estack flag-o-matic llvm-r1 multiprocessing optfeature +inherit check-reqs estack flag-o-matic llvm-r2 multiprocessing optfeature inherit multilib multilib-build python-any-r1 rust rust-toolchain toolchain-funcs inherit verify-sig @@ -271,7 +271,7 @@ pkg_setup() { rust_pkg_setup if use system-llvm; then - llvm-r1_pkg_setup + llvm-r2_pkg_setup local llvm_config="$(get_llvm_prefix)/bin/llvm-config" export LLVM_LINK_SHARED=1 diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.94.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.94.1.ebuild index 1eb2475685b..82f0ed7eab0 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.94.1.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.94.1.ebuild @@ -31,7 +31,7 @@ else RUST_MIN_VER="$(ver_cut 1).$(($(ver_cut 2) - 1)).0" fi -inherit check-reqs estack flag-o-matic llvm-r1 multiprocessing optfeature +inherit check-reqs estack flag-o-matic llvm-r2 multiprocessing optfeature inherit multilib multilib-build python-any-r1 rust rust-toolchain toolchain-funcs inherit verify-sig @@ -273,7 +273,7 @@ pkg_setup() { rust_pkg_setup if use system-llvm; then - llvm-r1_pkg_setup + llvm-r2_pkg_setup local llvm_config="$(get_llvm_prefix)/bin/llvm-config" export LLVM_LINK_SHARED=1 diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.95.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.95.0.ebuild index beb7d9344c9..c566bf1ae9b 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.95.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.95.0.ebuild @@ -6,7 +6,7 @@ EAPI=8 # Bump notes: https://wiki.gentoo.org/wiki/Project:Rust/Rust_bump LLVM_COMPAT=( 22 ) -PYTHON_COMPAT=( python3_{11..14} ) +PYTHON_COMPAT=( python3_{12..14} ) # Patches are kept in rust-patches.git, see its README.rst for the versioning # scheme. @@ -31,7 +31,7 @@ else RUST_MIN_VER="$(ver_cut 1).$(($(ver_cut 2) - 1)).0" fi -inherit check-reqs estack flag-o-matic llvm-r1 multiprocessing optfeature +inherit check-reqs estack flag-o-matic llvm-r2 multiprocessing optfeature inherit multilib multilib-build python-any-r1 rust rust-toolchain toolchain-funcs inherit verify-sig @@ -273,7 +273,7 @@ pkg_setup() { rust_pkg_setup if use system-llvm; then - llvm-r1_pkg_setup + llvm-r2_pkg_setup local llvm_config="$(get_llvm_prefix)/bin/llvm-config" export LLVM_LINK_SHARED=1 diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.96.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.96.1.ebuild index a42821af523..358aa195846 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.96.1.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.96.1.ebuild @@ -31,7 +31,7 @@ else RUST_MIN_VER="$(ver_cut 1).$(($(ver_cut 2) - 1)).0" fi -inherit check-reqs estack flag-o-matic llvm-r1 multiprocessing optfeature +inherit check-reqs estack flag-o-matic llvm-r2 multiprocessing optfeature inherit multilib multilib-build python-any-r1 rust rust-toolchain toolchain-funcs inherit verify-sig @@ -273,7 +273,7 @@ pkg_setup() { rust_pkg_setup if use system-llvm; then - llvm-r1_pkg_setup + llvm-r2_pkg_setup local llvm_config="$(get_llvm_prefix)/bin/llvm-config" export LLVM_LINK_SHARED=1 diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.97.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.97.1.ebuild index 905eb46cf0e..e3529d07f69 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.97.1.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.97.1.ebuild @@ -31,7 +31,7 @@ else RUST_MIN_VER="$(ver_cut 1).$(($(ver_cut 2) - 1)).0" fi -inherit check-reqs estack flag-o-matic llvm-r1 multiprocessing optfeature +inherit check-reqs estack flag-o-matic llvm-r2 multiprocessing optfeature inherit multilib multilib-build python-any-r1 rust rust-toolchain toolchain-funcs inherit verify-sig @@ -61,7 +61,7 @@ else " S="${WORKDIR}/${MY_P}-src" - KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86" + KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~sparc x86" fi DESCRIPTION="Systems programming language originally developed by Mozilla" @@ -262,6 +262,17 @@ pkg_setup() { pre_build_checks python-any-r1_pkg_setup + if ! [[ -v _RUST_LLVM_MAP[${SLOT}] ]] ; then + die "${SLOT} is missing from rust.eclass's RUST_LLVM_MAP! Please fix the eclass." + fi + local found_slot i + for (( i = 0; i < ${#_RUST_SLOTS_ORDERED[@]} ; i++ )) ; do + [[ ${_RUST_SLOTS_ORDERED[i]} == ${SLOT} ]] && found_slot=1 + done + if ! [[ -v found_slot ]] ; then + die "${SLOT} is missing from rust.eclass's _RUST_SLOTS_ORDERED! Please fix the eclass." + fi + export LIBGIT2_NO_PKG_CONFIG=1 #749381 if tc-is-cross-compiler; then use system-llvm && die "USE=system-llvm not allowed when cross-compiling" @@ -273,7 +284,7 @@ pkg_setup() { rust_pkg_setup if use system-llvm; then - llvm-r1_pkg_setup + llvm-r2_pkg_setup local llvm_config="$(get_llvm_prefix)/bin/llvm-config" export LLVM_LINK_SHARED=1 diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.98.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.98.1.ebuild new file mode 100644 index 00000000000..13235c9c4cd --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.98.1.ebuild @@ -0,0 +1,963 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Bump notes: https://wiki.gentoo.org/wiki/Project:Rust/Rust_bump + +LLVM_COMPAT=( 22 ) +PYTHON_COMPAT=( python3_{12..15} ) + +# Patches are kept in rust-patches.git, see its README.rst for the versioning +# scheme. +# +# We use _pN from the ebuild version for the patchset but it can be overridden +# in the ebuild for changes that don't require a revbump. +# +# Uncomment this line when the ebuild needs a patchset update but no revbump. +# RUST_PATCH_VER=${PV}-1 + +RUST_MAX_VER=${PV%%_*} +RUST_PV=${PV%%_p*} +RUST_P=${PN}-${RUST_PV} +[[ -z ${RUST_PATCH_VER} ]] && RUST_PATCH_VER=${PV} + +if [[ ${PV} == *9999* ]]; then + # Update this as new `beta` releases come out. + RUST_MIN_VER="1.93.0" +elif [[ ${PV} == *beta* ]]; then + RUST_MIN_VER="$(ver_cut 1).$(($(ver_cut 2) - 1)).0" +else + RUST_MIN_VER="$(ver_cut 1).$(($(ver_cut 2) - 1)).0" +fi + +inherit check-reqs estack flag-o-matic llvm-r2 multiprocessing optfeature +inherit multilib multilib-build python-any-r1 rust rust-toolchain toolchain-funcs +inherit verify-sig + +if [[ ${PV} = *9999* ]]; then + inherit git-r3 +elif [[ ${PV} == *beta* ]]; then + # Identify the snapshot date of the beta release: + # curl -Ls static.rust-lang.org/dist/channel-rust-beta.toml | grep beta-src.tar.xz + betaver=${PV//*beta} + BETA_SNAPSHOT="${betaver:0:4}-${betaver:4:2}-${betaver:6:2}" + MY_P="rustc-beta" + SRC_URI=" + https://static.rust-lang.org/dist/${BETA_SNAPSHOT}/rustc-beta-src.tar.xz -> rustc-${RUST_PV}-src.tar.xz + https://gitweb.gentoo.org/proj/rust-patches.git/snapshot/rust-patches-${RUST_PATCH_VER}.tar.bz2 + verify-sig? ( + https://static.rust-lang.org/dist/${BETA_SNAPSHOT}/rustc-beta-src.tar.xz.asc + -> rustc-${RUST_PV}-src.tar.xz.asc + ) + " + S="${WORKDIR}/${MY_P}-src" +else + MY_P="rustc-${RUST_PV}" + SRC_URI=" + https://static.rust-lang.org/dist/${MY_P}-src.tar.xz + https://gitweb.gentoo.org/proj/rust-patches.git/snapshot/rust-patches-${RUST_PATCH_VER}.tar.bz2 + verify-sig? ( https://static.rust-lang.org/dist/${MY_P}-src.tar.xz.asc ) + " + S="${WORKDIR}/${MY_P}-src" + + KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86" +fi + +DESCRIPTION="Systems programming language originally developed by Mozilla" +HOMEPAGE="https://www.rust-lang.org/" + +# keep in sync with llvm ebuild of the same version as bundled one. +ALL_LLVM_TARGETS=( AArch64 AMDGPU ARC ARM AVR BPF CSKY DirectX Hexagon Lanai ) +ALL_LLVM_TARGETS+=( LoongArch M68k Mips MSP430 NVPTX PowerPC RISCV Sparc SPIRV ) +ALL_LLVM_TARGETS+=( SystemZ VE WebAssembly X86 XCore Xtensa ) +ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" ) +LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/(-)?} + +# https://github.com/rust-lang/llvm-project/blob/rustc-1.87.0/llvm/CMakeLists.txt +_ALL_RUST_EXPERIMENTAL_TARGETS=( ARC CSKY DirectX M68k Xtensa ) +declare -A ALL_RUST_EXPERIMENTAL_TARGETS +for _x in "${_ALL_RUST_EXPERIMENTAL_TARGETS[@]}"; do + ALL_RUST_EXPERIMENTAL_TARGETS["llvm_targets_${_x}"]=0 +done + +# Bare metal targets which can be built on the host system and have no +# dependency on compiler runtime, libc and unwinder. +ALL_RUST_SYSROOTS=( bpf wasm ) +ALL_RUST_SYSROOTS=( "${ALL_RUST_SYSROOTS[@]/#/rust_sysroots_}" ) + +LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4" +SLOT="${PV%%_*}" # Beta releases get to share the same SLOT as the eventual stable + +IUSE="big-endian +clippy cpu_flags_x86_sse2 debug dist doc llvm-libunwind lto" +IUSE+=" +rustfmt rust-analyzer rust-src +system-llvm test" +IUSE+=" ${ALL_LLVM_TARGETS[*]} ${ALL_RUST_SYSROOTS[*]}" + +if [[ ${PV} = *9999* ]]; then + # These USE flags require nightly rust + IUSE+=" miri" +fi + +LLVM_DEPEND=() +# splitting usedeps needed to avoid CI/pkgcheck's UncheckableDep limitation +for _x in "${ALL_LLVM_TARGETS[@]}"; do + LLVM_DEPEND+=( " ${_x}? ( $(llvm_gen_dep "llvm-core/llvm:\${LLVM_SLOT}[${_x}=]") )" ) + if [[ -v ALL_RUST_EXPERIMENTAL_TARGETS["${_x}"] ]] ; then + ALL_RUST_EXPERIMENTAL_TARGETS["${_x}"]=1 + fi +done +LLVM_DEPEND+=( " rust_sysroots_wasm? ( $(llvm_gen_dep 'llvm-core/lld:${LLVM_SLOT}') )" ) +LLVM_DEPEND+=( " $(llvm_gen_dep 'llvm-core/llvm:${LLVM_SLOT}')" ) + +# dev-libs/oniguruma is used for documentation +BDEPEND=" + ${PYTHON_DEPS} + app-eselect/eselect-rust + dev-libs/oniguruma + || ( + >=sys-devel/gcc-4.7[cxx] + >=llvm-core/clang-3.5 + ) + lto? ( system-llvm? ( + || ( + $(llvm_gen_dep 'llvm-core/lld:${LLVM_SLOT}') + sys-devel/mold + ) + ) ) + rust_sysroots_wasm? ( llvm-core/clang ) + !system-llvm? ( + >=dev-build/cmake-3.13.4 + app-alternatives/ninja + ) + test? ( dev-debug/gdb ) + verify-sig? ( sec-keys/openpgp-keys-rust ) +" + +DEPEND=" + >=app-arch/xz-utils-5.2 + dev-db/sqlite:3 + net-misc/curl[http2,ssl] + virtual/zlib:= + dev-libs/openssl:0= + system-llvm? ( + ${LLVM_DEPEND[*]} + llvm-libunwind? ( llvm-runtimes/libunwind:= ) + ) + !system-llvm? ( + !llvm-libunwind? ( + elibc_musl? ( sys-libs/libunwind:= ) + ) + ) +" + +RDEPEND=" + ${DEPEND} + app-eselect/eselect-rust + dev-lang/rust-common + sys-apps/lsb-release + !dev-lang/rust:stable + !dev-lang/rust-bin:stable +" + +REQUIRED_USE=" + || ( ${ALL_LLVM_TARGETS[*]} ) + rust-analyzer? ( rust-src ) + test? ( ${ALL_LLVM_TARGETS[*]} ) + rust_sysroots_bpf? ( llvm_targets_BPF ) + rust_sysroots_wasm? ( llvm_targets_WebAssembly ) + x86? ( cpu_flags_x86_sse2 ) +" + +# we don't use cmake.eclass, but can get a warning +CMAKE_WARN_UNUSED_CLI=no + +QA_FLAGS_IGNORED=" + usr/lib/${PN}/${SLOT}/bin/.* + usr/lib/${PN}/${SLOT}/libexec/.* + usr/lib/${PN}/${SLOT}/lib/lib.*.so + usr/lib/${PN}/${SLOT}/lib/rustlib/.*/bin/.* + usr/lib/${PN}/${SLOT}/lib/rustlib/.*/lib/lib.*.so +" + +QA_SONAME=" + usr/lib/${PN}/${SLOT}/lib/lib.*.so.* + usr/lib/${PN}/${SLOT}/lib/rustlib/.*/lib/lib.*.so +" + +QA_PRESTRIPPED=" + usr/lib/${PN}/${SLOT}/lib/rustlib/.*/bin/rust-llvm-dwp + usr/lib/${PN}/${SLOT}/lib/rustlib/.*/bin/rust-objcopy + usr/lib/${PN}/${SLOT}/lib/rustlib/.*/lib/self-contained/crtn.o +" + +# An rmeta file is custom binary format that contains the metadata for the crate. +# rmeta files do not support linking, since they do not contain compiled object files. +# so we can safely silence the warning for this QA check. +QA_EXECSTACK="usr/lib/${PN}/${SLOT}/lib/rustlib/*/lib*.rlib:lib.rmeta" + +# causes double bootstrap +RESTRICT="test" + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/rust.asc + +clear_vendor_checksums() { + sed -i 's/\("files":{\)[^}]*/\1/' "vendor/${1}/.cargo-checksum.json" || die +} + +toml_usex() { + usex "${1}" true false +} + +pre_build_checks() { + local M=9216 + # multiply requirements by 1.3 if we are doing x86-multilib + if use amd64; then + M=$(( $(usex abi_x86_32 13 10) * ${M} / 10 )) + fi + M=$(( $(usex clippy 128 0) + ${M} )) + if [[ ${PV} == *9999* ]]; then + M=$(( $(usex miri 128 0) + ${M} )) + fi + M=$(( $(usex rustfmt 256 0) + ${M} )) + # add 2G if we compile llvm and 256M per llvm_target + if ! use system-llvm; then + M=$(( 2048 + ${M} )) + local ltarget + for ltarget in ${ALL_LLVM_TARGETS[@]}; do + M=$(( $(usex ${ltarget} 256 0) + ${M} )) + done + fi + M=$(( $(usex rust_sysroots_bpf 256 0) + ${M} )) + M=$(( $(usex rust_sysroots_wasm 256 0) + ${M} )) + M=$(( $(usex debug 2 1) * ${M} )) + eshopts_push -s extglob + if is-flagq '-g?(gdb)?([1-9])'; then + M=$(( 15 * ${M} / 10 )) + fi + eshopts_pop + M=$(( $(usex doc 256 0) + ${M} )) + CHECKREQS_DISK_BUILD=${M}M check-reqs_pkg_${EBUILD_PHASE} +} + +llvm_check_deps() { + has_version -r "llvm-core/llvm:${LLVM_SLOT}[${LLVM_TARGET_USEDEPS// /,}]" +} + +# Is LLVM being linked against libc++? +is_libcxx_linked() { + local code='#include +#if defined(_LIBCPP_VERSION) + HAVE_LIBCXX +#endif +' + local out=$($(tc-getCXX) ${CXXFLAGS} ${CPPFLAGS} -x c++ -E -P - <<<"${code}") || return 1 + [[ ${out} == *HAVE_LIBCXX* ]] +} + +pkg_pretend() { + pre_build_checks +} + +pkg_setup() { + pre_build_checks + python-any-r1_pkg_setup + + if ! [[ -v _RUST_LLVM_MAP[${SLOT}] ]] ; then + die "${SLOT} is missing from rust.eclass's RUST_LLVM_MAP! Please fix the eclass." + fi + local found_slot i + for (( i = 0; i < ${#_RUST_SLOTS_ORDERED[@]} ; i++ )) ; do + [[ ${_RUST_SLOTS_ORDERED[i]} == ${SLOT} ]] && found_slot=1 + done + if ! [[ -v found_slot ]] ; then + die "${SLOT} is missing from rust.eclass's _RUST_SLOTS_ORDERED! Please fix the eclass." + fi + + export LIBGIT2_NO_PKG_CONFIG=1 #749381 + if tc-is-cross-compiler; then + use system-llvm && die "USE=system-llvm not allowed when cross-compiling" + local cross_llvm_target="$(llvm_tuple_to_target "${CBUILD}")" + use "llvm_targets_${cross_llvm_target}" || \ + die "Must enable LLVM_TARGETS=${cross_llvm_target} matching CBUILD=${CBUILD} when cross-compiling" + fi + + rust_pkg_setup + + if use system-llvm; then + llvm-r2_pkg_setup + + local llvm_config="$(get_llvm_prefix)/bin/llvm-config" + export LLVM_LINK_SHARED=1 + export RUSTFLAGS="${RUSTFLAGS} -Lnative=$("${llvm_config}" --libdir)" + fi +} + +rust_live_get_sources() { + EGIT_REPO_URI=" + https://anongit.gentoo.org/git/proj/rust-patches.git + " + EGIT_CHECKOUT_DIR="${WORKDIR}/rust-patches-${RUST_PATCH_VER}" + git-r3_src_unpack + + EGIT_REPO_URI=" + https://github.com/rust-lang/rust.git + " + EGIT_SUBMODULES=( + "*" + "-src/gcc" + ) + S="${WORKDIR}/rust" + EGIT_CHECKOUT_DIR="${S}" + git-r3_src_unpack +} + +src_unpack() { + if [[ ${PV} == *9999* ]] ; then + rust_live_get_sources + + # Vendor dependencies + mkdir "${S}/.cargo" || die # The vendor script has a check for .cargo/config{,.toml} + touch "${S}/.cargo/bootstrap.toml" || die + local rust_stage0_root="$(${RUSTC} --print sysroot || die "Can't determine rust's sysroot")" + # Configure vendor to use the portage-provided toolchain. This prevents it from + # attempting to fetch a `beta` toolchain from the internet. + cat <<- _EOF_ > "${T}/vendor-bootstrap.toml" + # Suppresses a warning about tracking changes which we don't care about. + change-id = "ignore" + [build] + build = "$(rust_abi "${CBUILD}")" + host = ["$(rust_abi "${CHOST}")"] + target = ["$(rust_abi "${CHOST}")"] + cargo = "${rust_stage0_root}/bin/cargo" + rustc = "${rust_stage0_root}/bin/rustc" + rustfmt = "${rust_stage0_root}/bin/rustfmt" + _EOF_ + # We're using git sources so we need to run the Vendor script + # to ensure that all dependencies are present and up-to-date + mkdir "${S}/vendor" || die + # This also compiles the 'build helper', there's no way to avoid this. + ${EPYTHON} "${S}"/x.py vendor -v --config="${T}"/vendor-bootstrap.toml \ + -j$(get_makeopts_jobs) || + die "Failed to vendor dependencies" + # TODO: This has to be generated somehow, this is from a 1.84.x tarball I had lying around. + cat <<- _EOF_ > "${S}/.cargo/config.toml" + [source.crates-io] + replace-with = "vendored-sources" + + [source."git+https://github.com/rust-lang/team"] + git = "https://github.com/rust-lang/team" + replace-with = "vendored-sources" + + [source.vendored-sources] + directory = "vendor" + _EOF_ + elif use verify-sig ; then + # Patch tarballs are not signed (but we trust Gentoo infra) + verify-sig_verify_detached "${DISTDIR}"/rustc-${RUST_PV}-src.tar.xz{,.asc} + default + else + default + fi +} + +src_prepare() { + # Commit patches to the appropriate branch in proj/rust-patches.git + # then cut a new tag / tarball. Don't add patches to ${FILESDIR} + PATCHES=( + "${WORKDIR}/rust-patches-${RUST_PATCH_VER}/" + ) + + if use lto && tc-is-clang && ! tc-ld-is-lld && ! tc-ld-is-mold; then + export RUSTFLAGS+=" -C link-arg=-fuse-ld=lld" + fi + + default +} + +src_configure() { + if tc-is-cross-compiler; then + export PKG_CONFIG_ALLOW_CROSS=1 + + local rust_host_triple="$(rust_abi "${CHOST}")" + + # https://docs.rs/pkg-config/latest/pkg_config/#cross-compilation + local pcvar + for pcvar in PKG_CONFIG_{PATH,LIBDIR} ; do + pcvar="${pcvar}_${rust_host_triple//-/_}" + + [[ -n ${!pcvar} ]] && continue + + case ${pcvar} in + *PKG_CONFIG_PATH*) + printf -v "${pcvar}" "${ESYSROOT}/usr/$(get_libdir)/pkgconfig" + ;; + *PKG_CONFIG_LIBDIR*) + printf -v "${pcvar}" "${ESYSROOT}/usr/$(get_libdir)" + ;; + *) + continue + ;; + esac + + export "${pcvar}" + done + + # https://docs.rs/openssl/latest/openssl/#manual + local osslvar + for osslvar in OPENSSL_{INCLUDE_,LIB_,}DIR ; do + osslvar="${rust_host_triple}_${osslvar}" + osslvar="${osslvar^^}" + osslvar="${osslvar//-/_}" + + [[ -n ${!osslvar} ]] && continue + + case ${osslvar} in + *OPENSSL_DIR*) + printf -v "${osslvar}" "${ESYSROOT}/usr" + ;; + *OPENSSL_INCLUDE_DIR*) + printf -v "${osslvar}" "${ESYSROOT}/usr/include" + ;; + *OPENSSL_LIB_DIR*) + printf -v "${osslvar}" "${ESYSROOT}/usr/$(get_libdir)" + ;; + *) + continue + ;; + esac + + export "${osslvar}" + done + + # https://issues.chromium.org/issues/357917328 + # https://github.com/rust-lang/libz-sys/blob/1.1.18/build.rs#L25 + export LIBZ_SYS_STATIC=1 + fi + + # Avoid bundled copies of libraries + export RUSTONIG_SYSTEM_LIBONIG=1 + export LIBSQLITE3_SYS_USE_PKG_CONFIG=1 + + filter-lto # https://bugs.gentoo.org/862109 https://bugs.gentoo.org/866231 + + local rust_target="" rust_targets="" arch_cflags + + # Collect rust target names to compile standard libs for all ABIs. + for v in $(multilib_get_enabled_abi_pairs); do + rust_targets+=",\"$(rust_abi $(get_abi_CHOST ${v##*.}))\"" + done + if use rust_sysroots_bpf; then + rust_targets+=",\"bpfeb-unknown-none\",\"bpfel-unknown-none\"" + fi + if use rust_sysroots_wasm; then + rust_targets+=",\"wasm32-unknown-unknown\"" + if use system-llvm; then + # un-hardcode rust-lld linker for this target + # https://bugs.gentoo.org/715348 + sed -i '/linker:/ s/rust-lld/wasm-ld/' compiler/rustc_target/src/spec/base/wasm.rs || die + fi + fi + rust_targets="${rust_targets#,}" + + # cargo and rustdoc are mandatory and should always be included + local tools='"cargo","rustdoc"' + use clippy && tools+=',"clippy"' + use rustfmt && tools+=',"rustfmt"' + use rust-analyzer && tools+=',"rust-analyzer","rust-analyzer-proc-macro-srv"' + use rust-src && tools+=',"src"' + + if [[ ${PV} == *9999* ]]; then + use miri && tools+=',"miri"' + fi + + local rust_stage0_root="$(${RUSTC} --print sysroot || die "Can't determine rust's sysroot")" + # in case of prefix it will be already prefixed, as --print sysroot returns full path + [[ -d ${rust_stage0_root} ]] || die "${rust_stage0_root} is not a directory" + + rust_target="$(rust_abi)" + rust_build="$(rust_abi "${CBUILD}")" + rust_host="$(rust_abi "${CHOST}")" + + RUST_EXPERIMENTAL_TARGETS=() + for _x in "${!ALL_RUST_EXPERIMENTAL_TARGETS[@]}"; do + if [[ ${ALL_RUST_EXPERIMENTAL_TARGETS[${_x}]} == 1 ]] && use ${_x} ; then + RUST_EXPERIMENTAL_TARGETS+=( ${_x#llvm_targets_} ) + fi + done + RUST_EXPERIMENTAL_TARGETS=${RUST_EXPERIMENTAL_TARGETS[@]} + + local cm_btype="$(usex debug DEBUG RELEASE)" + local build_channel + local build_miri="false" + case "${PV}" in + *9999*) + build_channel="nightly" + ;; + *beta*) + build_channel="beta" + ;; + *) + build_channel="stable" + ;; + esac + + # TODO: Add optimized-compiler-builtins for system-llvm to avoid + # building bundled compiler-rt. + cat <<- _EOF_ > "${S}"/bootstrap.toml + # Suppresses a warning about tracking changes which we don't care about. + change-id = "ignore" + # https://github.com/rust-lang/rust/issues/135358 (bug #947897) + profile = "dist" + [llvm] + download-ci-llvm = false + optimize = $(toml_usex !debug) + release-debuginfo = $(toml_usex debug) + assertions = $(toml_usex debug) + ninja = true + targets = "${LLVM_TARGETS// /;}" + experimental-targets = "${RUST_EXPERIMENTAL_TARGETS// /;}" + link-shared = $(toml_usex system-llvm) + $(if is_libcxx_linked; then + # https://bugs.gentoo.org/732632 + echo "use-libcxx = true" + echo "static-libstdcpp = false" + fi) + $(case "${rust_target}" in + i586-*-linux-*) + # https://github.com/rust-lang/rust/issues/93059 + echo 'cflags = "-fcf-protection=none"' + echo 'cxxflags = "-fcf-protection=none"' + echo 'ldflags = "-fcf-protection=none"' + ;; + *) + ;; + esac) + enable-warnings = false + [llvm.build-config] + CMAKE_VERBOSE_MAKEFILE = "ON" + $(if ! tc-is-cross-compiler; then + # When cross-compiling, LLVM is compiled twice, once for host and + # once for target. Unfortunately, this build configuration applies + # to both, which means any flags applicable to one target but not + # the other will break. Conditionally disable respecting user + # flags when cross-compiling. + echo "CMAKE_C_FLAGS_${cm_btype} = \"${CFLAGS}\"" + echo "CMAKE_CXX_FLAGS_${cm_btype} = \"${CXXFLAGS}\"" + echo "CMAKE_EXE_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\"" + echo "CMAKE_MODULE_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\"" + echo "CMAKE_SHARED_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\"" + echo "CMAKE_STATIC_LINKER_FLAGS_${cm_btype} = \"${ARFLAGS}\"" + fi) + [build] + build-stage = 2 + test-stage = 2 + build = "${rust_build}" + host = ["${rust_host}"] + target = [${rust_targets}] + cargo = "${rust_stage0_root}/bin/cargo" + rustc = "${rust_stage0_root}/bin/rustc" + rustfmt = "${rust_stage0_root}/bin/rustfmt" + description = "gentoo" + docs = $(toml_usex doc) + compiler-docs = false + submodules = false + python = "${EPYTHON}" + locked-deps = true + vendor = true + extended = true + tools = [${tools}] + verbose = 2 + sanitizers = false + profiler = true + cargo-native-static = false + [install] + prefix = "${EPREFIX}/usr/lib/${PN}/${SLOT}" + sysconfdir = "etc" + docdir = "share/doc/rust" + bindir = "bin" + libdir = "lib" + mandir = "share/man" + [rust] + # https://github.com/rust-lang/rust/issues/54872 + codegen-units-std = 1 + optimize = true + debug = $(toml_usex debug) + debug-assertions = $(toml_usex debug) + debug-assertions-std = $(toml_usex debug) + debuginfo-level = $(usex debug 2 0) + debuginfo-level-rustc = $(usex debug 2 0) + debuginfo-level-std = $(usex debug 2 0) + debuginfo-level-tools = $(usex debug 2 0) + debuginfo-level-tests = 0 + backtrace = true + incremental = false + $(if ! tc-is-cross-compiler; then + echo "default-linker = \"${CHOST}-cc\"" + fi) + channel = "${build_channel}" + rpath = true + verbose-tests = true + optimize-tests = $(toml_usex !debug) + codegen-tests = true + omit-git-hash = false + dist-src = false + remap-debuginfo = true + lld = $(usex system-llvm false $(toml_usex rust_sysroots_wasm)) + $(if use lto && tc-is-clang && ! tc-ld-is-mold; then + echo "use-lld = true" + fi) + # only deny warnings if doc+wasm are NOT requested, documenting stage0 wasm std fails without it + # https://github.com/rust-lang/rust/issues/74976 + # https://github.com/rust-lang/rust/issues/76526 + deny-warnings = $(usex rust_sysroots_wasm $(usex doc false true) true) + backtrace-on-ice = true + jemalloc = false + # See https://github.com/rust-lang/rust/issues/121124 + lto = "$(usex lto thin off)" + [dist] + src-tarball = false + compression-formats = ["xz"] + compression-profile = "balanced" + _EOF_ + + for v in $(multilib_get_enabled_abi_pairs); do + rust_target=$(rust_abi $(get_abi_CHOST ${v##*.})) + arch_cflags="$(get_abi_CFLAGS ${v##*.})" + + export CFLAGS_${rust_target//-/_}="${arch_cflags}" + + cat <<- _EOF_ >> "${S}"/bootstrap.toml + [target.${rust_target}] + ar = "$(tc-getAR)" + cc = "$(tc-getCC)" + cxx = "$(tc-getCXX)" + linker = "$(tc-getCC)" + ranlib = "$(tc-getRANLIB)" + llvm-libunwind = "$(usex llvm-libunwind $(usex system-llvm system in-tree) no)" + _EOF_ + if use system-llvm; then + cat <<- _EOF_ >> "${S}"/bootstrap.toml + llvm-config = "$(get_llvm_prefix)/bin/llvm-config" + _EOF_ + fi + # by default librustc_target/spec/linux_musl_base.rs sets base.crt_static_default = true; + # but we patch it and set to false here as well + if use elibc_musl; then + cat <<- _EOF_ >> "${S}"/bootstrap.toml + crt-static = false + musl-root = "$($(tc-getCC) -print-sysroot)/usr" + _EOF_ + fi + done + if use rust_sysroots_wasm; then + wasm_target="wasm32-unknown-unknown" + if tc-is-clang; then + local wasm_cc=$(tc-getCC) + local wasm_cxx=$(tc-getCXX) + else + local wasm_cc=${CHOST}-clang + local wasm_cxx=${CHOST}-clang++ + fi + export CFLAGS_${wasm_target//-/_}="$( + CC="${wasm_cc} --target=wasm32-unknown-unknown" + filter-flags '-mcpu*' '-march*' '-mtune*' + strip-unsupported-flags + echo "${CFLAGS}" + )" + cat <<- _EOF_ >> "${S}"/bootstrap.toml + [target.wasm32-unknown-unknown] + cc = "${wasm_cc}" + cxx = "${wasm_cxx}" + linker = "$(usex system-llvm lld rust-lld)" + # wasm target does not have profiler_builtins https://bugs.gentoo.org/848483 + profiler = false + _EOF_ + fi + + if [[ -n ${I_KNOW_WHAT_I_AM_DOING_CROSS} ]]; then # whitespace intentionally shifted below + # experimental cross support + # discussion: https://bugs.gentoo.org/679878 + # TODO: c*flags, clang, system-llvm, cargo.eclass target support + # it would be much better if we could split out stdlib + # complilation to separate ebuild and abuse CATEGORY to + # just install to /usr/lib/rustlib/ + + # extra targets defined as a bash array + # spec format: :: + # best place would be /etc/portage/env/dev-lang/rust + # Example: + # RUST_CROSS_TARGETS=( + # "AArch64:aarch64-unknown-linux-gnu:aarch64-unknown-linux-gnu" + # ) + # no extra hand holding is done, no target transformations, all + # values are passed as-is with just basic checks, so it's up to user to supply correct values + # valid rust targets can be obtained with + # rustc --print target-list + # matching cross toolchain has to be installed + # matching LLVM_TARGET has to be enabled for both rust and llvm (if using system one) + # only gcc toolchains installed with crossdev are checked for now. + + # BUG: we can't pass host flags to cross compiler, so just filter for now + # BUG: this should be more fine-grained. + filter-flags '-mcpu=*' '-march=*' '-mtune=*' + + local cross_target_spec + for cross_target_spec in "${RUST_CROSS_TARGETS[@]}";do + # extracts first element form :: + local cross_llvm_target="${cross_target_spec%%:*}" + # extracts toolchain triples, : + local cross_triples="${cross_target_spec#*:}" + # extracts first element after before : separator + local cross_rust_target="${cross_triples%%:*}" + # extracts last element after : separator + local cross_toolchain="${cross_triples##*:}" + use llvm_targets_${cross_llvm_target} || die "need llvm_targets_${cross_llvm_target} target enabled" + command -v ${cross_toolchain}-gcc > /dev/null 2>&1 || die "need ${cross_toolchain} cross toolchain" + + cat <<- _EOF_ >> "${S}"/bootstrap.toml + [target.${cross_rust_target}] + ar = "${cross_toolchain}-ar" + cc = "${cross_toolchain}-gcc" + cxx = "${cross_toolchain}-g++" + linker = "${cross_toolchain}-gcc" + ranlib = "${cross_toolchain}-ranlib" + _EOF_ + if use system-llvm; then + cat <<- _EOF_ >> "${S}"/bootstrap.toml + llvm-config = "$(get_llvm_prefix)/bin/llvm-config" + _EOF_ + fi + if [[ "${cross_toolchain}" == *-musl* ]]; then + cat <<- _EOF_ >> "${S}"/bootstrap.toml + musl-root = "$(${cross_toolchain}-gcc -print-sysroot)/usr" + _EOF_ + fi + if [[ "${cross_rust_target}" == *-uefi ]]; then + # Profiler is not supported on bare-metal + cat <<- _EOF_ >> "${S}"/bootstrap.toml + profiler = false + _EOF_ + fi + + # append cross target to "normal" target list + # example 'target = ["powerpc64le-unknown-linux-gnu"]' + # becomes 'target = ["powerpc64le-unknown-linux-gnu","aarch64-unknown-linux-gnu"]' + + rust_targets="${rust_targets},\"${cross_rust_target}\"" + sed -i "/^target = \[/ s#\[.*\]#\[${rust_targets}\]#" bootstrap.toml || die + + ewarn + ewarn "Enabled ${cross_rust_target} rust target" + ewarn "Using ${cross_toolchain} cross toolchain" + ewarn + if ! has_version -b 'sys-devel/binutils[multitarget]' ; then + ewarn "'sys-devel/binutils[multitarget]' is not installed" + ewarn "'strip' will be unable to strip cross libraries" + ewarn "cross targets will be installed with full debug information" + ewarn "enable 'multitarget' USE flag for binutils to be able to strip object files" + ewarn + ewarn "Alternatively llvm-strip can be used, it supports stripping any target" + ewarn "define STRIP=\"llvm-strip\" to use it (experimental)" + ewarn + fi + done + fi # I_KNOW_WHAT_I_AM_DOING_CROSS + + einfo "Rust configured with the following flags:" + echo + echo RUSTFLAGS="\"${RUSTFLAGS}\"" + echo RUSTFLAGS_BOOTSTRAP="\"${RUSTFLAGS_BOOTSTRAP}\"" + echo RUSTFLAGS_NOT_BOOTSTRAP="\"${RUSTFLAGS_NOT_BOOTSTRAP}\"" + echo MAGIC_EXTRA_RUSTFLAGS="\"${MAGIC_EXTRA_RUSTFLAGS}\"" + env | grep "CARGO_TARGET_.*_RUSTFLAGS=" + env | grep "CFLAGS_.*" + echo + einfo "bootstrap.toml contents:" + cat "${S}"/bootstrap.toml || die + echo +} + +src_compile() { + # -v will show invocations, -vv "very verbose" is overkill, -vvv "very very verbose" is insane + RUST_BACKTRACE=1 "${EPYTHON}" ./x.py build -v \ + --config="${S}"/bootstrap.toml -j$(get_makeopts_jobs) || die +} + +src_test() { + # https://rustc-dev-guide.rust-lang.org/tests/intro.html + + # those are basic and codegen tests. + local tests=( + codegen-units + crashes + codegen-llvm + incremental + mir-opt + pretty + run-make + run-make-cargo + ) + + # tests for standard and core library + local std_tests=( + std + core + ) + + # fails if llvm is not built with ALL targets. + # and known to fail with system llvm sometimes. + use system-llvm || tests+=( assembly-llvm ) + + # fragile/expensive/less important tests + # or tests that require extra builds + # TODO: instead of skipping, just make some nonfatal. + if [[ ${ERUST_RUN_EXTRA_TESTS:-no} != no ]]; then + tests+=( + rustdoc + rustdoc-js + rustdoc-js-std + rustdoc-ui + ui + ui-fulldeps + ) + fi + + local i failed=() + einfo "rust_src_test: enabled tests ${tests[@]} ${std_tests[@]}" + for i in "tests/${tests[@]}" "library/${std_tests[@]}"; do + local t="${i}" + einfo "rust_src_test: running ${t}" + if ! RUST_BACKTRACE=1 "${EPYTHON}" ./x.py test -vv --config="${S}"/bootstrap.toml \ + -j$(get_makeopts_jobs) --no-doc --no-fail-fast "${t}" + then + failed+=( "${t}" ) + eerror "rust_src_test: ${t} failed" + fi + done + + if [[ ${#failed[@]} -ne 0 ]]; then + eerror "rust_src_test: failure summary: ${failed[@]}" + die "aborting due to test failures" + fi +} + +src_install() { + DESTDIR="${D}" "${EPYTHON}" ./x.py install -v \ + --config="${S}"/bootstrap.toml -j$(get_makeopts_jobs) || die + + docompress /usr/lib/${PN}/${SLOT}/share/man/ + + # bash-completion files are installed by dev-lang/rust-common instead + # bug #689562, #689160. + rm -v "${ED}/usr/lib/${PN}/${SLOT}/etc/bash_completion.d/cargo" || die + rmdir -v "${ED}/usr/lib/${PN}/${SLOT}/etc/bash_completion.d" || die + + local symlinks=( + cargo + rustc + rustdoc + rust-gdb + rust-gdbgui + rust-lldb + ) + + use clippy && symlinks+=( clippy-driver cargo-clippy ) + if [[ ${PV} = *9999* ]]; then + use miri && symlinks+=( miri cargo-miri ) + fi + use rustfmt && symlinks+=( rustfmt cargo-fmt ) + use rust-analyzer && symlinks+=( rust-analyzer ) + + einfo "installing eselect-rust symlinks and paths: ${symlinks[@]}" + local i + for i in "${symlinks[@]}"; do + # we need realpath on /usr/bin/* symlink return version-appended binary path. + # so /usr/bin/rustc should point to /usr/lib/rust//bin/rustc- + # need to fix eselect-rust to remove this hack. + local ver_i="${i}-${RUST_PV%%_*}" + if [[ -f "${ED}/usr/lib/${PN}/${SLOT}/bin/${i}" ]]; then + einfo "Installing ${i} symlink" + ln -v "${ED}/usr/lib/${PN}/${SLOT}/bin/${i}" "${ED}/usr/lib/${PN}/${SLOT}/bin/${ver_i}" || die + else + ewarn "${i} symlink requested, but source file not found" + ewarn "please report this" + fi + dosym "../lib/${PN}/${SLOT}/bin/${ver_i}" "/usr/bin/${ver_i}" + done + + # symlinks to switch components to active rust in eselect + dosym "${SLOT}/lib" "/usr/lib/${PN}/lib-${SLOT}" + use rust-analyzer && dosym "${SLOT}/libexec" "/usr/lib/${PN}/libexec-${SLOT}" + dosym "${SLOT}/share/man" "/usr/lib/${PN}/man-${SLOT}" + dosym "rust/${SLOT}/lib/rustlib" "/usr/lib/rustlib-${SLOT}" + dosym "../../lib/${PN}/${SLOT}/share/doc/rust" "/usr/share/doc/${RUST_P}" + + newenvd - "50${RUST_P}" <<-_EOF_ + MANPATH="${EPREFIX}/usr/lib/rust/man-${SLOT}" + _EOF_ + + rm -rf "${ED}/usr/lib/${PN}/${SLOT}"/*.old || die + rm -rf "${ED}/usr/lib/${PN}/${SLOT}/bin"/*.old || die + rm -rf "${ED}/usr/lib/${PN}/${SLOT}/doc"/*.old || die + + # note: eselect-rust adds EROOT to all paths below + cat <<-_EOF_ > "${T}/provider-${PN}-${SLOT}" + /usr/bin/cargo + /usr/bin/rustdoc + /usr/bin/rust-gdb + /usr/bin/rust-gdbgui + /usr/bin/rust-lldb + /usr/lib/rustlib + /usr/lib/rust/lib + /usr/lib/rust/man + /usr/share/doc/rust + _EOF_ + + if use clippy; then + echo /usr/bin/clippy-driver >> "${T}/provider-${RUST_P}" + echo /usr/bin/cargo-clippy >> "${T}/provider-${RUST_P}" + fi + if [[ ${SLOT} == *9999* ]] && use miri; then + echo /usr/bin/miri >> "${T}/provider-${RUST_P}" + echo /usr/bin/cargo-miri >> "${T}/provider-${RUST_P}" + fi + if use rustfmt; then + echo /usr/bin/rustfmt >> "${T}/provider-${RUST_P}" + echo /usr/bin/cargo-fmt >> "${T}/provider-${RUST_P}" + fi + if use rust-analyzer; then + echo /usr/lib/rust/libexec >> "${T}/provider-${RUST_P}" + echo /usr/bin/rust-analyzer >> "${T}/provider-${RUST_P}" + fi + + insinto /etc/env.d/rust + doins "${T}/provider-${PN}-${SLOT}" + + if use dist; then + "${EPYTHON}" ./x.py dist -v --config="${S}"/bootstrap.toml \ + -j$(get_makeopts_jobs) || die + insinto "/usr/lib/${PN}/${SLOT}/dist" + doins -r "${S}/build/dist/." + fi +} + +pkg_postinst() { + eselect rust update + + if has_version dev-debug/gdb || has_version llvm-core/lldb; then + elog "Rust installs helper scripts for calling GDB and LLDB," + elog "for convenience they are installed under /usr/bin/rust-{gdb,lldb}-${RUST_PV}." + fi + + if has_version app-editors/emacs; then + optfeature "emacs support for rust" app-emacs/rust-mode + fi + + if has_version app-editors/gvim || has_version app-editors/vim; then + optfeature "vim support for rust" app-vim/rust-vim + fi +} + +pkg_postrm() { + eselect rust cleanup +} diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-9999.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-9999.ebuild index a4c4ae082f7..14acbdf0302 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-9999.ebuild @@ -31,7 +31,7 @@ else RUST_MIN_VER="$(ver_cut 1).$(($(ver_cut 2) - 1)).0" fi -inherit check-reqs estack flag-o-matic llvm-r1 multiprocessing optfeature +inherit check-reqs estack flag-o-matic llvm-r2 multiprocessing optfeature inherit multilib multilib-build python-any-r1 rust rust-toolchain toolchain-funcs inherit verify-sig @@ -262,6 +262,17 @@ pkg_setup() { pre_build_checks python-any-r1_pkg_setup + if ! [[ -v _RUST_LLVM_MAP[${SLOT}] ]] ; then + die "${SLOT} is missing from rust.eclass's RUST_LLVM_MAP! Please fix the eclass." + fi + local found_slot i + for (( i = 0; i < ${#_RUST_SLOTS_ORDERED[@]} ; i++ )) ; do + [[ ${_RUST_SLOTS_ORDERED[i]} == ${SLOT} ]] && found_slot=1 + done + if ! [[ -v found_slot ]] ; then + die "${SLOT} is missing from rust.eclass's _RUST_SLOTS_ORDERED! Please fix the eclass." + fi + export LIBGIT2_NO_PKG_CONFIG=1 #749381 if tc-is-cross-compiler; then use system-llvm && die "USE=system-llvm not allowed when cross-compiling" @@ -273,7 +284,7 @@ pkg_setup() { rust_pkg_setup if use system-llvm; then - llvm-r1_pkg_setup + llvm-r2_pkg_setup local llvm_config="$(get_llvm_prefix)/bin/llvm-config" export LLVM_LINK_SHARED=1 diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/swig/swig-4.3.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/swig/swig-4.3.1.ebuild index 3ed12cb19f2..f0003666928 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/swig/swig-4.3.1.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/swig/swig-4.3.1.ebuild @@ -11,7 +11,7 @@ SRC_URI="https://downloads.sourceforge.net/${PN}/${P}.tar.gz" LICENSE="GPL-3+ BSD BSD-2" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" IUSE="ccache doc pcre test" # tests are automagic for many languages and quite brittle RESTRICT="!test? ( test ) test" diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/expat/Manifest b/sdk_container/src/third_party/portage-stable/dev-libs/expat/Manifest index c6a5b25362f..247bd962e78 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/expat/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-libs/expat/Manifest @@ -1,2 +1,2 @@ -DIST expat-2.8.2.tar.xz 515504 BLAKE2B f037cb75f86652fbddd3474f2b7a1293e9b77b540475fa34432a8304ddc58b3eafbab5150a5b591fc4a889d895507b0d379032cdd0c474445ac0aa9e518bef18 SHA512 68ee856b3eeefeb6bb800004951bbbe89a9a144354ae12bc9d670888fd89e8513243e0053c61674430c78e2beeeb85a3c86ac7644576a5bb9867fbce3643ff8d DIST expat-2.8.3.tar.xz 517264 BLAKE2B 4dc1173f3458320278b6776aa9342aec4eec3e2e5d8806e52dec59b9a40d5fdad5b8930708bace06a5c9a33fd7451df67c5c822954fa3d7f763babab62989390 SHA512 f6f08f9e4591077c9ed625ea6108d58f2541c3a35bc55e09a8654868c407b82ffaed65e1a437b08ea34783f72f6e453d53647f5b89c8ac59a0bf14902335dad1 +DIST expat-2.8.4.tar.xz 519688 BLAKE2B bec06d3c3179115692edb5e9366412361abae5355b131a005ef91aaa041bf4ebf74a86cc2fac29c44730a07cba6fbda988a6bfdafafc9eeba25a00fb98e43d24 SHA512 00a34340b4fdc3baee6dbd83df3e41710ebffb38dc23664406be187a73f1e948451568fea07b6f33532b6b6244650808ce157255bcf6216d98267535cc97f3cd diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/expat/expat-2.8.2.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/expat/expat-2.8.4.ebuild similarity index 100% rename from sdk_container/src/third_party/portage-stable/dev-libs/expat/expat-2.8.2.ebuild rename to sdk_container/src/third_party/portage-stable/dev-libs/expat/expat-2.8.4.ebuild diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/glib/files/glib-2.84.4-fix-const-attribute.patch b/sdk_container/src/third_party/portage-stable/dev-libs/glib/files/glib-2.84.4-fix-const-attribute.patch deleted file mode 100644 index a8ddf97c35a..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-libs/glib/files/glib-2.84.4-fix-const-attribute.patch +++ /dev/null @@ -1,99 +0,0 @@ -https://bugs.gentoo.org/970774 -https://gitlab.gnome.org/GNOME/glib/-/merge_requests/5145 - -From 9f5903a96f419058d457de7b7544c2bc9e73e510 Mon Sep 17 00:00:00 2001 -From: Sam James -Date: Fri, 10 Apr 2026 02:28:48 +0100 -Subject: [PATCH] gvarianttype: use pure attribute, not inappropriate const - -As found in https://gcc.gnu.org/PR124837, it is wrong to use the const -attribute [0] for g_variant_type_*is* because it may be called repeatedly -with different pointed-to data. The pure attribute [1] is what we want -here because it allows pointed-to data to change, so change to that. - -const would be OK here if it pointed to a constant buffer, but it doesn't, -it points to newly malloc'd memory from all over the place. - -[0] https://gcc.gnu.org/onlinedocs/gcc-15.2.0/gcc/Common-Function-Attributes.html#index-const-function-attribute -[1] https://gcc.gnu.org/onlinedocs/gcc-15.2.0/gcc/Common-Function-Attributes.html#index-pure-function-attribute - -Fixes: 49bfa7b9cf8b16f7f6a5b1db565575d61a37100f -Signed-off-by: Sam James ---- - glib/gvarianttype.h | 32 ++++++++++++++++---------------- - 1 file changed, 16 insertions(+), 16 deletions(-) - -diff --git a/glib/gvarianttype.h b/glib/gvarianttype.h -index 38980af829..3a57b9131a 100644 ---- a/glib/gvarianttype.h -+++ b/glib/gvarianttype.h -@@ -302,7 +302,7 @@ typedef struct _GVariantType GVariantType; - - /* type string checking */ - GLIB_AVAILABLE_IN_ALL --gboolean g_variant_type_string_is_valid (const gchar *type_string) G_GNUC_CONST; -+gboolean g_variant_type_string_is_valid (const gchar *type_string) G_GNUC_PURE; - GLIB_AVAILABLE_IN_ALL - gboolean g_variant_type_string_scan (const gchar *string, - const gchar *limit, -@@ -326,21 +326,21 @@ gchar * g_variant_type_dup_string (const G - - /* classification */ - GLIB_AVAILABLE_IN_ALL --gboolean g_variant_type_is_definite (const GVariantType *type) G_GNUC_CONST; -+gboolean g_variant_type_is_definite (const GVariantType *type) G_GNUC_PURE; - GLIB_AVAILABLE_IN_ALL --gboolean g_variant_type_is_container (const GVariantType *type) G_GNUC_CONST; -+gboolean g_variant_type_is_container (const GVariantType *type) G_GNUC_PURE; - GLIB_AVAILABLE_IN_ALL --gboolean g_variant_type_is_basic (const GVariantType *type) G_GNUC_CONST; -+gboolean g_variant_type_is_basic (const GVariantType *type) G_GNUC_PURE; - GLIB_AVAILABLE_IN_ALL --gboolean g_variant_type_is_maybe (const GVariantType *type) G_GNUC_CONST; -+gboolean g_variant_type_is_maybe (const GVariantType *type) G_GNUC_PURE; - GLIB_AVAILABLE_IN_ALL --gboolean g_variant_type_is_array (const GVariantType *type) G_GNUC_CONST; -+gboolean g_variant_type_is_array (const GVariantType *type) G_GNUC_PURE; - GLIB_AVAILABLE_IN_ALL --gboolean g_variant_type_is_tuple (const GVariantType *type) G_GNUC_CONST; -+gboolean g_variant_type_is_tuple (const GVariantType *type) G_GNUC_PURE; - GLIB_AVAILABLE_IN_ALL --gboolean g_variant_type_is_dict_entry (const GVariantType *type) G_GNUC_CONST; -+gboolean g_variant_type_is_dict_entry (const GVariantType *type) G_GNUC_PURE; - GLIB_AVAILABLE_IN_ALL --gboolean g_variant_type_is_variant (const GVariantType *type) G_GNUC_CONST; -+gboolean g_variant_type_is_variant (const GVariantType *type) G_GNUC_PURE; - - /* for hash tables */ - GLIB_AVAILABLE_IN_ALL -@@ -352,21 +352,21 @@ gboolean g_variant_type_equal (gconstp - /* subtypes */ - GLIB_AVAILABLE_IN_ALL - gboolean g_variant_type_is_subtype_of (const GVariantType *type, -- const GVariantType *supertype) G_GNUC_CONST; -+ const GVariantType *supertype) G_GNUC_PURE; - - /* type iterator interface */ - GLIB_AVAILABLE_IN_ALL --const GVariantType * g_variant_type_element (const GVariantType *type) G_GNUC_CONST; -+const GVariantType * g_variant_type_element (const GVariantType *type) G_GNUC_PURE; - GLIB_AVAILABLE_IN_ALL --const GVariantType * g_variant_type_first (const GVariantType *type) G_GNUC_CONST; -+const GVariantType * g_variant_type_first (const GVariantType *type) G_GNUC_PURE; - GLIB_AVAILABLE_IN_ALL --const GVariantType * g_variant_type_next (const GVariantType *type) G_GNUC_CONST; -+const GVariantType * g_variant_type_next (const GVariantType *type) G_GNUC_PURE; - GLIB_AVAILABLE_IN_ALL --gsize g_variant_type_n_items (const GVariantType *type) G_GNUC_CONST; -+gsize g_variant_type_n_items (const GVariantType *type) G_GNUC_PURE; - GLIB_AVAILABLE_IN_ALL --const GVariantType * g_variant_type_key (const GVariantType *type) G_GNUC_CONST; -+const GVariantType * g_variant_type_key (const GVariantType *type) G_GNUC_PURE; - GLIB_AVAILABLE_IN_ALL --const GVariantType * g_variant_type_value (const GVariantType *type) G_GNUC_CONST; -+const GVariantType * g_variant_type_value (const GVariantType *type) G_GNUC_PURE; - - /* constructors */ - GLIB_AVAILABLE_IN_ALL --- -GitLab diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/glib/files/glib-2.84.4-libpcre2-10.47.patch b/sdk_container/src/third_party/portage-stable/dev-libs/glib/files/glib-2.84.4-libpcre2-10.47.patch deleted file mode 100644 index 69d80f81d95..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-libs/glib/files/glib-2.84.4-libpcre2-10.47.patch +++ /dev/null @@ -1,101 +0,0 @@ -https://gitlab.gnome.org/GNOME/glib/-/issues/3809 -https://gitlab.gnome.org/GNOME/glib/-/merge_requests/4884 - -From 8dceb68e6e6d6e205f70c7800c01e1fc23c04616 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= -Date: Thu, 23 Oct 2025 22:35:42 +0200 -Subject: [PATCH 1/3] gregex: Handle PCRE2_ERROR_MISSING_NUMBER_TERMINATOR if - defined - -When the error is defined in a new enough PCRE2 we should handle it. - -However let's not define an error message for this in this commit (just -let's use the old one that is generic enough), so that it can be backported -to stable versions without having to require new translations. - -Closes: #3809 ---- - glib/gregex.c | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/glib/gregex.c b/glib/gregex.c -index 969c702b4d..fac3f58fe1 100644 ---- a/glib/gregex.c -+++ b/glib/gregex.c -@@ -770,6 +770,9 @@ translate_compile_error (gint *errcode, const gchar **errmsg) - *errmsg = _("inconsistent NEWLINE options"); - break; - case PCRE2_ERROR_BACKSLASH_G_SYNTAX: -+#ifdef PCRE2_ERROR_MISSING_NUMBER_TERMINATOR -+ case PCRE2_ERROR_MISSING_NUMBER_TERMINATOR: -+#endif - *errcode = G_REGEX_ERROR_MISSING_BACK_REFERENCE; - *errmsg = _("\\g is not followed by a braced, angle-bracketed, or quoted name or " - "number, or by a plain number"); --- -GitLab - - -From ea5aa5419468c7c030a86b52878005bed7a31c60 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= -Date: Thu, 23 Oct 2025 22:37:35 +0200 -Subject: [PATCH 2/3] tests/regex: Add the error messages to tests - -It can be useful for debugging purposes ---- - glib/tests/regex.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/glib/tests/regex.c b/glib/tests/regex.c -index d7a698ec67..a052db9758 100644 ---- a/glib/tests/regex.c -+++ b/glib/tests/regex.c -@@ -131,6 +131,8 @@ test_new_fail (gconstpointer d) - - g_assert (regex == NULL); - g_assert_error (error, G_REGEX_ERROR, data->expected_error); -+ g_test_message ("Compiling pattern /%s/ failed with error: %s", -+ data->pattern, error->message); - g_error_free (error); - } - --- -GitLab - - -From ef512a3f58ff4f918df0701d5bcfcd7de51775e3 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= -Date: Thu, 23 Oct 2025 22:38:35 +0200 -Subject: [PATCH 3/3] gregex: Add translatable message for - PCRE2_ERROR_MISSING_NUMBER_TERMINATOR - ---- - glib/gregex.c | 9 ++++++--- - 1 file changed, 6 insertions(+), 3 deletions(-) - -diff --git a/glib/gregex.c b/glib/gregex.c -index fac3f58fe1..6dfb05f613 100644 ---- a/glib/gregex.c -+++ b/glib/gregex.c -@@ -770,13 +770,16 @@ translate_compile_error (gint *errcode, const gchar **errmsg) - *errmsg = _("inconsistent NEWLINE options"); - break; - case PCRE2_ERROR_BACKSLASH_G_SYNTAX: --#ifdef PCRE2_ERROR_MISSING_NUMBER_TERMINATOR -- case PCRE2_ERROR_MISSING_NUMBER_TERMINATOR: --#endif - *errcode = G_REGEX_ERROR_MISSING_BACK_REFERENCE; - *errmsg = _("\\g is not followed by a braced, angle-bracketed, or quoted name or " - "number, or by a plain number"); - break; -+#ifdef PCRE2_ERROR_MISSING_NUMBER_TERMINATOR -+ case PCRE2_ERROR_MISSING_NUMBER_TERMINATOR: -+ *errcode = G_REGEX_ERROR_MISSING_BACK_REFERENCE; -+ *errmsg = _("syntax error in subpattern number (missing terminator?)"); -+ break; -+#endif - case PCRE2_ERROR_VERB_ARGUMENT_NOT_ALLOWED: - *errcode = G_REGEX_ERROR_BACKTRACKING_CONTROL_VERB_ARGUMENT_FORBIDDEN; - *errmsg = _("an argument is not allowed for (*ACCEPT), (*FAIL), or (*COMMIT)"); --- -GitLab diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/glib/files/glib-2.84.4-setlocale-glibc-2.43.patch b/sdk_container/src/third_party/portage-stable/dev-libs/glib/files/glib-2.84.4-setlocale-glibc-2.43.patch deleted file mode 100644 index 5ccaf21b093..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-libs/glib/files/glib-2.84.4-setlocale-glibc-2.43.patch +++ /dev/null @@ -1,78 +0,0 @@ -https://bugs.gentoo.org/969959 -https://gitlab.gnome.org/GNOME/glib/-/merge_requests/5035 - -From 7c837a520f51db74e482bc8196ed5ff40e432307 Mon Sep 17 00:00:00 2001 -From: Philip Withnall -Date: Mon, 23 Feb 2026 12:30:08 +0000 -Subject: [PATCH] gdatetime: Fix comparison against cached LC_TIME value -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -The string pointer returned by `setlocale (LC_TIME, NULL)` may change if -other code calls `setlocale()` again. But because internally glibc -implements it using `strdup()`, the pointer value itself may actually -stay the same even if the string contents change. - -This started happening more commonly in glibc 2.43, due to an internal -`malloc()` change which happened to trigger this latent bug. - -In the situations where this happened, it resulted in an outdated cached -era value being used. - -Fix it by taking a copy of the `LC_TIME` string. Unfortunately this -means a reachable (‘leaked’) static string allocation at the end of the -process’ life, but tooling should ignore that if we mark it with -`g_ignore_leak()`. - -Debugged by Sam James, Wilco and Douglas R. Reno. See also -https://sourceware.org/bugzilla/show_bug.cgi?id=33899#c6. - -Signed-off-by: Philip Withnall -Fixes: #3895 ---- - glib/gdatetime.c | 9 ++++++--- - 1 file changed, 6 insertions(+), 3 deletions(-) - -diff --git a/glib/gdatetime.c b/glib/gdatetime.c -index c4d7445432..8d67354cf2 100644 ---- a/glib/gdatetime.c -+++ b/glib/gdatetime.c -@@ -65,6 +65,7 @@ - #include - #endif - -+#include "glib-private.h" - #include "gatomic.h" - #include "gcharset.h" - #include "gcharsetprivate.h" -@@ -2981,14 +2982,14 @@ date_time_lookup_era (GDateTime *datetime, - { - static GMutex era_mutex; - static GPtrArray *static_era_description = NULL; /* (mutex era_mutex) (element-type GEraDescriptionSegment) */ -- static const char *static_era_description_locale = NULL; /* (mutex era_mutex) */ -+ static char *static_era_description_locale = NULL; /* (mutex era_mutex) (owned) */ - const char *current_lc_time = setlocale (LC_TIME, NULL); - GPtrArray *local_era_description; /* (element-type GEraDescriptionSegment) */ - GEraDate datetime_date; - - g_mutex_lock (&era_mutex); - -- if (static_era_description_locale != current_lc_time) -+ if (g_strcmp0 (static_era_description_locale, current_lc_time) != 0) - { - const char *era_description_str; - size_t era_description_str_len; -@@ -3061,7 +3062,9 @@ date_time_lookup_era (GDateTime *datetime, - - g_free (tmp); - -- static_era_description_locale = current_lc_time; -+ g_free (static_era_description_locale); -+ static_era_description_locale = g_strdup (current_lc_time); -+ g_ignore_leak (static_era_description_locale); - } - - if (static_era_description == NULL) --- -GitLab diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/glib/files/glib-2.86-MR-4912.patch b/sdk_container/src/third_party/portage-stable/dev-libs/glib/files/glib-2.86-MR-4912.patch deleted file mode 100644 index 4fdbb3a3119..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-libs/glib/files/glib-2.86-MR-4912.patch +++ /dev/null @@ -1,186 +0,0 @@ -From d3a16bc03c58a4f7c3222462110509e39c209ebf Mon Sep 17 00:00:00 2001 -From: Jehan -Date: Fri, 7 Nov 2025 12:09:43 +0100 -Subject: [PATCH] Issue #3819: G_FILE_MONITOR_WATCH_HARD_LINK does not monitor - files on Windows. - -Current code was clearly considering the case of having only a filename -as a directory monitoring, instead of a hard-link monitoring. As I -assume that hard links don't exist on Windows, this case should simply -revert back to the basic file monitoring code path. ---- - gio/win32/gwin32fsmonitorutils.c | 121 ++++++++++++++++--------------- - 1 file changed, 63 insertions(+), 58 deletions(-) - -diff --git a/gio/win32/gwin32fsmonitorutils.c b/gio/win32/gwin32fsmonitorutils.c -index d06dc458a0..cc2a60b116 100644 ---- a/gio/win32/gwin32fsmonitorutils.c -+++ b/gio/win32/gwin32fsmonitorutils.c -@@ -245,9 +245,9 @@ g_win32_fs_monitor_init (GWin32FSMonitorPrivate *monitor, - const gchar *filename, - gboolean isfile) - { -- wchar_t *wdirname_with_long_prefix = NULL; -+ gchar *dirname_with_long_prefix; -+ wchar_t *wdirname_with_long_prefix; - const gchar LONGPFX[] = "\\\\?\\"; -- gchar *fullpath_with_long_prefix, *dirname_with_long_prefix; - DWORD notify_filter = isfile ? - (FILE_NOTIFY_CHANGE_FILE_NAME | - FILE_NOTIFY_CHANGE_ATTRIBUTES | -@@ -260,83 +260,88 @@ g_win32_fs_monitor_init (GWin32FSMonitorPrivate *monitor, - gboolean success_attribs; - WIN32_FILE_ATTRIBUTE_DATA attrib_data = {0, }; - -+ g_return_if_fail ((filename && isfile) || (dirname && ! isfile)); - - if (dirname != NULL) - { - dirname_with_long_prefix = g_strconcat (LONGPFX, dirname, NULL); -- wdirname_with_long_prefix = g_utf8_to_utf16 (dirname_with_long_prefix, -1, NULL, NULL, NULL); -- -- if (isfile) -- { -- gchar *fullpath; -- wchar_t wlongname[MAX_PATH_LONG]; -- wchar_t wshortname[MAX_PATH_LONG]; -- wchar_t *wfullpath, *wbasename_long, *wbasename_short; -+ } -+ else -+ { -+ gchar *tmp_dirname = g_path_get_dirname (filename); -+ dirname_with_long_prefix = g_strconcat (LONGPFX, tmp_dirname, NULL); -+ g_free (tmp_dirname); -+ } -+ wdirname_with_long_prefix = g_utf8_to_utf16 (dirname_with_long_prefix, -1, NULL, NULL, NULL); - -- fullpath = g_build_filename (dirname, filename, NULL); -- fullpath_with_long_prefix = g_strconcat (LONGPFX, fullpath, NULL); -+ if (isfile) -+ { -+ gchar *fullpath; -+ gchar *fullpath_with_long_prefix; -+ wchar_t wlongname[MAX_PATH_LONG]; -+ wchar_t wshortname[MAX_PATH_LONG]; -+ wchar_t *wfullpath, *wbasename_long, *wbasename_short; -+ -+ if (dirname) -+ fullpath = g_build_filename (dirname, filename, NULL); -+ else -+ fullpath = g_strdup (filename); - -- wfullpath = g_utf8_to_utf16 (fullpath, -1, NULL, NULL, NULL); -+ fullpath_with_long_prefix = g_strconcat (LONGPFX, fullpath, NULL); - -- monitor->wfullpath_with_long_prefix = -- g_utf8_to_utf16 (fullpath_with_long_prefix, -1, NULL, NULL, NULL); -+ wfullpath = g_utf8_to_utf16 (fullpath, -1, NULL, NULL, NULL); - -- /* ReadDirectoryChangesW() can return the normal filename or the -- * "8.3" format filename, so we need to keep track of both these names -- * so that we can check against them later when it returns -- */ -- if (GetLongPathNameW (monitor->wfullpath_with_long_prefix, wlongname, MAX_PATH_LONG) == 0) -- { -- wbasename_long = wcsrchr (monitor->wfullpath_with_long_prefix, L'\\'); -- monitor->wfilename_long = wbasename_long != NULL ? -- wcsdup (wbasename_long + 1) : -- wcsdup (wfullpath); -- } -- else -- { -- wbasename_long = wcsrchr (wlongname, L'\\'); -- monitor->wfilename_long = wbasename_long != NULL ? -- wcsdup (wbasename_long + 1) : -- wcsdup (wlongname); -+ monitor->wfullpath_with_long_prefix = -+ g_utf8_to_utf16 (fullpath_with_long_prefix, -1, NULL, NULL, NULL); - -- } -+ /* ReadDirectoryChangesW() can return the normal filename or the -+ * "8.3" format filename, so we need to keep track of both these names -+ * so that we can check against them later when it returns -+ */ -+ if (GetLongPathNameW (monitor->wfullpath_with_long_prefix, wlongname, MAX_PATH_LONG) == 0) -+ { -+ wbasename_long = wcsrchr (monitor->wfullpath_with_long_prefix, L'\\'); -+ monitor->wfilename_long = wbasename_long != NULL ? -+ wcsdup (wbasename_long + 1) : -+ wcsdup (wfullpath); -+ } -+ else -+ { -+ wbasename_long = wcsrchr (wlongname, L'\\'); -+ monitor->wfilename_long = wbasename_long != NULL ? -+ wcsdup (wbasename_long + 1) : -+ wcsdup (wlongname); - -- if (GetShortPathNameW (monitor->wfullpath_with_long_prefix, wshortname, MAX_PATH_LONG) == 0) -- { -- wbasename_short = wcsrchr (monitor->wfullpath_with_long_prefix, L'\\'); -- monitor->wfilename_short = wbasename_short != NULL ? -- wcsdup (wbasename_short + 1) : -- wcsdup (wfullpath); -- } -- else -- { -- wbasename_short = wcsrchr (wshortname, L'\\'); -- monitor->wfilename_short = wbasename_short != NULL ? -- wcsdup (wbasename_short + 1) : -- wcsdup (wshortname); -- } -+ } - -- g_free (wfullpath); -- g_free (fullpath); -+ if (GetShortPathNameW (monitor->wfullpath_with_long_prefix, wshortname, MAX_PATH_LONG) == 0) -+ { -+ wbasename_short = wcsrchr (monitor->wfullpath_with_long_prefix, L'\\'); -+ monitor->wfilename_short = wbasename_short != NULL ? -+ wcsdup (wbasename_short + 1) : -+ wcsdup (wfullpath); - } - else - { -- monitor->wfilename_short = NULL; -- monitor->wfilename_long = NULL; -- monitor->wfullpath_with_long_prefix = g_utf8_to_utf16 (dirname_with_long_prefix, -1, NULL, NULL, NULL); -+ wbasename_short = wcsrchr (wshortname, L'\\'); -+ monitor->wfilename_short = wbasename_short != NULL ? -+ wcsdup (wbasename_short + 1) : -+ wcsdup (wshortname); - } - -- monitor->isfile = isfile; -+ g_free (wfullpath); -+ g_free (fullpath); -+ g_free (fullpath_with_long_prefix); - } - else - { -- dirname_with_long_prefix = g_strconcat (LONGPFX, filename, NULL); -- monitor->wfullpath_with_long_prefix = g_utf8_to_utf16 (dirname_with_long_prefix, -1, NULL, NULL, NULL); -- monitor->wfilename_long = NULL; - monitor->wfilename_short = NULL; -- monitor->isfile = FALSE; -+ monitor->wfilename_long = NULL; -+ monitor->wfullpath_with_long_prefix = g_utf8_to_utf16 (dirname_with_long_prefix, -1, NULL, NULL, NULL); - } - -+ monitor->isfile = isfile; -+ - success_attribs = GetFileAttributesExW (monitor->wfullpath_with_long_prefix, - GetFileExInfoStandard, - &attrib_data); -@@ -345,7 +350,7 @@ g_win32_fs_monitor_init (GWin32FSMonitorPrivate *monitor, - else - monitor->file_attribs = INVALID_FILE_ATTRIBUTES; - monitor->pfni_prev = NULL; -- monitor->hDirectory = CreateFileW (wdirname_with_long_prefix != NULL ? wdirname_with_long_prefix : monitor->wfullpath_with_long_prefix, -+ monitor->hDirectory = CreateFileW (wdirname_with_long_prefix, - FILE_LIST_DIRECTORY, - FILE_SHARE_DELETE | FILE_SHARE_READ | FILE_SHARE_WRITE, - NULL, --- -GitLab - diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/glib/files/glib-2.86-MR-4915-CVE-2025-13601.patch b/sdk_container/src/third_party/portage-stable/dev-libs/glib/files/glib-2.86-MR-4915-CVE-2025-13601.patch deleted file mode 100644 index acba3fd7bd2..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-libs/glib/files/glib-2.86-MR-4915-CVE-2025-13601.patch +++ /dev/null @@ -1,261 +0,0 @@ -From 9bcd65ba5fa1b92ff0fb8380faea335ccef56253 Mon Sep 17 00:00:00 2001 -From: Philip Withnall -Date: Thu, 13 Nov 2025 18:27:22 +0000 -Subject: [PATCH 1/2] gconvert: Error out if g_escape_uri_string() would - overflow -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -If the string to escape contains a very large number of unacceptable -characters (which would need escaping), the calculation of the length of -the escaped string could overflow, leading to a potential write off the -end of the newly allocated string. - -In addition to that, the number of unacceptable characters was counted -in a signed integer, which would overflow to become negative, making it -easier for an attacker to craft an input string which would cause an -out-of-bounds write. - -Fix that by validating the allocation length, and using an unsigned -integer to count the number of unacceptable characters. - -Spotted by treeplus. Thanks to the Sovereign Tech Resilience programme -from the Sovereign Tech Agency. ID: #YWH-PGM9867-134 - -Signed-off-by: Philip Withnall - -Fixes: #3827 - -Backport 2.86: Changed the translatable error message to re-use an -existing translatable string, to avoid adding new translatable strings -to a stable branch. The re-used string doesn’t perfectly match the -error, but it’s good enough given that no users will ever see it. ---- - glib/gconvert.c | 36 +++++++++++++++++++++++++----------- - 1 file changed, 25 insertions(+), 11 deletions(-) - -diff --git a/glib/gconvert.c b/glib/gconvert.c -index 7ad8ca018f..367e9b4661 100644 ---- a/glib/gconvert.c -+++ b/glib/gconvert.c -@@ -1336,8 +1336,9 @@ static const gchar hex[] = "0123456789ABCDEF"; - /* Note: This escape function works on file: URIs, but if you want to - * escape something else, please read RFC-2396 */ - static gchar * --g_escape_uri_string (const gchar *string, -- UnsafeCharacterSet mask) -+g_escape_uri_string (const gchar *string, -+ UnsafeCharacterSet mask, -+ GError **error) - { - #define ACCEPTABLE(a) ((a)>=32 && (a)<128 && (acceptable[(a)-32] & use_mask)) - -@@ -1345,7 +1346,7 @@ g_escape_uri_string (const gchar *string, - gchar *q; - gchar *result; - int c; -- gint unacceptable; -+ size_t unacceptable; - UnsafeCharacterSet use_mask; - - g_return_val_if_fail (mask == UNSAFE_ALL -@@ -1362,7 +1363,14 @@ g_escape_uri_string (const gchar *string, - if (!ACCEPTABLE (c)) - unacceptable++; - } -- -+ -+ if (unacceptable >= (G_MAXSIZE - (p - string)) / 2) -+ { -+ g_set_error_literal (error, G_CONVERT_ERROR, G_CONVERT_ERROR_BAD_URI, -+ _("Invalid hostname")); -+ return NULL; -+ } -+ - result = g_malloc (p - string + unacceptable * 2 + 1); - - use_mask = mask; -@@ -1387,12 +1395,13 @@ g_escape_uri_string (const gchar *string, - - - static gchar * --g_escape_file_uri (const gchar *hostname, -- const gchar *pathname) -+g_escape_file_uri (const gchar *hostname, -+ const gchar *pathname, -+ GError **error) - { - char *escaped_hostname = NULL; -- char *escaped_path; -- char *res; -+ char *escaped_path = NULL; -+ char *res = NULL; - - #ifdef G_OS_WIN32 - char *p, *backslash; -@@ -1413,10 +1422,14 @@ g_escape_file_uri (const gchar *hostname, - - if (hostname && *hostname != '\0') - { -- escaped_hostname = g_escape_uri_string (hostname, UNSAFE_HOST); -+ escaped_hostname = g_escape_uri_string (hostname, UNSAFE_HOST, error); -+ if (escaped_hostname == NULL) -+ goto out; - } - -- escaped_path = g_escape_uri_string (pathname, UNSAFE_PATH); -+ escaped_path = g_escape_uri_string (pathname, UNSAFE_PATH, error); -+ if (escaped_path == NULL) -+ goto out; - - res = g_strconcat ("file://", - (escaped_hostname) ? escaped_hostname : "", -@@ -1424,6 +1437,7 @@ g_escape_file_uri (const gchar *hostname, - escaped_path, - NULL); - -+out: - #ifdef G_OS_WIN32 - g_free ((char *) pathname); - #endif -@@ -1757,7 +1771,7 @@ g_filename_to_uri (const gchar *filename, - hostname = NULL; - #endif - -- escaped_uri = g_escape_file_uri (hostname, filename); -+ escaped_uri = g_escape_file_uri (hostname, filename, error); - - return escaped_uri; - } --- -GitLab - - -From 7e5489cb921d0531ee4ebc9938da30a02084b2fa Mon Sep 17 00:00:00 2001 -From: Philip Withnall -Date: Thu, 13 Nov 2025 18:31:43 +0000 -Subject: [PATCH 2/2] fuzzing: Add fuzz tests for g_filename_{to,from}_uri() - -These functions could be called on untrusted input data, and since they -do URI escaping/unescaping, they have non-trivial string handling code. - -Signed-off-by: Philip Withnall - -See: #3827 ---- - fuzzing/fuzz_filename_from_uri.c | 40 ++++++++++++++++++++++++++++++++ - fuzzing/fuzz_filename_to_uri.c | 40 ++++++++++++++++++++++++++++++++ - fuzzing/meson.build | 2 ++ - 3 files changed, 82 insertions(+) - create mode 100644 fuzzing/fuzz_filename_from_uri.c - create mode 100644 fuzzing/fuzz_filename_to_uri.c - -diff --git a/fuzzing/fuzz_filename_from_uri.c b/fuzzing/fuzz_filename_from_uri.c -new file mode 100644 -index 0000000000..9b7a715f07 ---- /dev/null -+++ b/fuzzing/fuzz_filename_from_uri.c -@@ -0,0 +1,40 @@ -+/* -+ * Copyright 2025 GNOME Foundation, Inc. -+ * -+ * SPDX-License-Identifier: LGPL-2.1-or-later -+ * -+ * This library is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU Lesser General Public -+ * License as published by the Free Software Foundation; either -+ * version 2.1 of the License, or (at your option) any later version. -+ * -+ * This library is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ * Lesser General Public License for more details. -+ * -+ * You should have received a copy of the GNU Lesser General Public -+ * License along with this library; if not, see . -+ */ -+ -+#include "fuzz.h" -+ -+int -+LLVMFuzzerTestOneInput (const unsigned char *data, size_t size) -+{ -+ unsigned char *nul_terminated_data = NULL; -+ char *filename = NULL; -+ GError *local_error = NULL; -+ -+ fuzz_set_logging_func (); -+ -+ /* ignore @size (g_filename_from_uri() doesn’t support it); ensure @data is nul-terminated */ -+ nul_terminated_data = (unsigned char *) g_strndup ((const char *) data, size); -+ filename = g_filename_from_uri ((const char *) nul_terminated_data, NULL, &local_error); -+ g_free (nul_terminated_data); -+ -+ g_free (filename); -+ g_clear_error (&local_error); -+ -+ return 0; -+} -diff --git a/fuzzing/fuzz_filename_to_uri.c b/fuzzing/fuzz_filename_to_uri.c -new file mode 100644 -index 0000000000..acb3192035 ---- /dev/null -+++ b/fuzzing/fuzz_filename_to_uri.c -@@ -0,0 +1,40 @@ -+/* -+ * Copyright 2025 GNOME Foundation, Inc. -+ * -+ * SPDX-License-Identifier: LGPL-2.1-or-later -+ * -+ * This library is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU Lesser General Public -+ * License as published by the Free Software Foundation; either -+ * version 2.1 of the License, or (at your option) any later version. -+ * -+ * This library is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ * Lesser General Public License for more details. -+ * -+ * You should have received a copy of the GNU Lesser General Public -+ * License along with this library; if not, see . -+ */ -+ -+#include "fuzz.h" -+ -+int -+LLVMFuzzerTestOneInput (const unsigned char *data, size_t size) -+{ -+ unsigned char *nul_terminated_data = NULL; -+ char *uri = NULL; -+ GError *local_error = NULL; -+ -+ fuzz_set_logging_func (); -+ -+ /* ignore @size (g_filename_to_uri() doesn’t support it); ensure @data is nul-terminated */ -+ nul_terminated_data = (unsigned char *) g_strndup ((const char *) data, size); -+ uri = g_filename_to_uri ((const char *) nul_terminated_data, NULL, &local_error); -+ g_free (nul_terminated_data); -+ -+ g_free (uri); -+ g_clear_error (&local_error); -+ -+ return 0; -+} -diff --git a/fuzzing/meson.build b/fuzzing/meson.build -index addbe90717..05f936eeb2 100644 ---- a/fuzzing/meson.build -+++ b/fuzzing/meson.build -@@ -25,6 +25,8 @@ fuzz_targets = [ - 'fuzz_date_parse', - 'fuzz_date_time_new_from_iso8601', - 'fuzz_dbus_message', -+ 'fuzz_filename_from_uri', -+ 'fuzz_filename_to_uri', - 'fuzz_get_locale_variants', - 'fuzz_inet_address_mask_new_from_string', - 'fuzz_inet_address_new_from_string', --- -GitLab - diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/glib/files/glib-2.86-MR-4934-CVE-2025-14087.patch b/sdk_container/src/third_party/portage-stable/dev-libs/glib/files/glib-2.86-MR-4934-CVE-2025-14087.patch deleted file mode 100644 index 018c4fbffcd..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-libs/glib/files/glib-2.86-MR-4934-CVE-2025-14087.patch +++ /dev/null @@ -1,459 +0,0 @@ -From 3e72fe0fbb32c18a66486c4da8bc851f656af287 Mon Sep 17 00:00:00 2001 -From: Philip Withnall -Date: Tue, 25 Nov 2025 19:02:56 +0000 -Subject: [PATCH 1/3] gvariant-parser: Fix potential integer overflow parsing - (byte)strings - -The termination condition for parsing string and bytestring literals in -GVariant text format input was subject to an integer overflow for input -string (or bytestring) literals longer than `INT_MAX`. - -Fix that by counting as a `size_t` rather than as an `int`. The counter -can never correctly be negative. - -Spotted by treeplus. Thanks to the Sovereign Tech Resilience programme -from the Sovereign Tech Agency. ID: #YWH-PGM9867-145 - -Signed-off-by: Philip Withnall -Fixes: #3834 ---- - glib/gvariant-parser.c | 10 +++++----- - 1 file changed, 5 insertions(+), 5 deletions(-) - -diff --git a/glib/gvariant-parser.c b/glib/gvariant-parser.c -index 2f1d3db9f6..2d6e9856f8 100644 ---- a/glib/gvariant-parser.c -+++ b/glib/gvariant-parser.c -@@ -609,7 +609,7 @@ ast_resolve (AST *ast, - { - GVariant *value; - gchar *pattern; -- gint i, j = 0; -+ size_t i, j = 0; - - pattern = ast_get_pattern (ast, error); - -@@ -1637,9 +1637,9 @@ string_free (AST *ast) - */ - static gboolean - unicode_unescape (const gchar *src, -- gint *src_ofs, -+ size_t *src_ofs, - gchar *dest, -- gint *dest_ofs, -+ size_t *dest_ofs, - gsize length, - SourceRef *ref, - GError **error) -@@ -1700,7 +1700,7 @@ string_parse (TokenStream *stream, - gsize length; - gchar quote; - gchar *str; -- gint i, j; -+ size_t i, j; - - token_stream_start_ref (stream, &ref); - token = token_stream_get (stream); -@@ -1833,7 +1833,7 @@ bytestring_parse (TokenStream *stream, - gsize length; - gchar quote; - gchar *str; -- gint i, j; -+ size_t i, j; - - token_stream_start_ref (stream, &ref); - token = token_stream_get (stream); --- -GitLab - - -From 6fe481cec709ec65b5846113848723bc25a8782a Mon Sep 17 00:00:00 2001 -From: Philip Withnall -Date: Tue, 25 Nov 2025 19:19:16 +0000 -Subject: [PATCH 2/3] gvariant-parser: Use size_t to count numbers of child - elements -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Rather than using `gint`, which could overflow for arrays (or dicts, or -tuples) longer than `INT_MAX`. There may be other limits which prevent -parsed containers becoming that long, but we might as well make the type -system reflect the programmer’s intention as best it can anyway. - -For arrays and tuples this is straightforward. For dictionaries, it’s -slightly complicated by the fact that the code used -`dict->n_children == -1` to indicate that the `Dictionary` struct in -question actually represented a single freestanding dict entry. In -GVariant text format, that would be `{1, "one"}`. - -The implementation previously didn’t define the semantics of -`dict->n_children < -1`. - -Now, instead, change `Dictionary.n_children` to `size_t`, and define a -magic value `DICTIONARY_N_CHILDREN_FREESTANDING_ENTRY` to indicate that -the `Dictionary` represents a single freestanding dict entry. - -This magic value is `SIZE_MAX`, and given that a dictionary entry takes -more than one byte to represent in GVariant text format, that means it’s -not possible to have that many entries in a parsed dictionary, so this -magic value won’t be hit by a normal dictionary. An assertion checks -this anyway. - -Spotted while working on #3834. - -Signed-off-by: Philip Withnall ---- - glib/gvariant-parser.c | 58 ++++++++++++++++++++++++------------------ - 1 file changed, 33 insertions(+), 25 deletions(-) - -diff --git a/glib/gvariant-parser.c b/glib/gvariant-parser.c -index 2d6e9856f8..519baa3f36 100644 ---- a/glib/gvariant-parser.c -+++ b/glib/gvariant-parser.c -@@ -662,9 +662,9 @@ static AST *parse (TokenStream *stream, - GError **error); - - static void --ast_array_append (AST ***array, -- gint *n_items, -- AST *ast) -+ast_array_append (AST ***array, -+ size_t *n_items, -+ AST *ast) - { - if ((*n_items & (*n_items - 1)) == 0) - *array = g_renew (AST *, *array, *n_items ? 2 ** n_items : 1); -@@ -673,10 +673,10 @@ ast_array_append (AST ***array, - } - - static void --ast_array_free (AST **array, -- gint n_items) -+ast_array_free (AST **array, -+ size_t n_items) - { -- gint i; -+ size_t i; - - for (i = 0; i < n_items; i++) - ast_free (array[i]); -@@ -685,11 +685,11 @@ ast_array_free (AST **array, - - static gchar * - ast_array_get_pattern (AST **array, -- gint n_items, -+ size_t n_items, - GError **error) - { - gchar *pattern; -- gint i; -+ size_t i; - - /* Find the pattern which applies to all children in the array, by l-folding a - * coalesce operation. -@@ -721,7 +721,7 @@ ast_array_get_pattern (AST **array, - * pair of values. - */ - { -- int j = 0; -+ size_t j = 0; - - while (TRUE) - { -@@ -969,7 +969,7 @@ typedef struct - AST ast; - - AST **children; -- gint n_children; -+ size_t n_children; - } Array; - - static gchar * -@@ -1002,7 +1002,7 @@ array_get_value (AST *ast, - Array *array = (Array *) ast; - const GVariantType *childtype; - GVariantBuilder builder; -- gint i; -+ size_t i; - - if (!g_variant_type_is_array (type)) - return ast_type_error (ast, type, error); -@@ -1088,7 +1088,7 @@ typedef struct - AST ast; - - AST **children; -- gint n_children; -+ size_t n_children; - } Tuple; - - static gchar * -@@ -1098,7 +1098,7 @@ tuple_get_pattern (AST *ast, - Tuple *tuple = (Tuple *) ast; - gchar *result = NULL; - gchar **parts; -- gint i; -+ size_t i; - - parts = g_new (gchar *, tuple->n_children + 4); - parts[tuple->n_children + 1] = (gchar *) ")"; -@@ -1128,7 +1128,7 @@ tuple_get_value (AST *ast, - Tuple *tuple = (Tuple *) ast; - const GVariantType *childtype; - GVariantBuilder builder; -- gint i; -+ size_t i; - - if (!g_variant_type_is_tuple (type)) - return ast_type_error (ast, type, error); -@@ -1320,9 +1320,16 @@ typedef struct - - AST **keys; - AST **values; -- gint n_children; -+ -+ /* Iff this is DICTIONARY_N_CHILDREN_FREESTANDING_ENTRY then this struct -+ * represents a single freestanding dict entry (`{1, "one"}`) rather than a -+ * full dict. In the freestanding case, @keys and @values have exactly one -+ * member each. */ -+ size_t n_children; - } Dictionary; - -+#define DICTIONARY_N_CHILDREN_FREESTANDING_ENTRY ((size_t) -1) -+ - static gchar * - dictionary_get_pattern (AST *ast, - GError **error) -@@ -1337,7 +1344,7 @@ dictionary_get_pattern (AST *ast, - return g_strdup ("Ma{**}"); - - key_pattern = ast_array_get_pattern (dict->keys, -- abs (dict->n_children), -+ (dict->n_children == DICTIONARY_N_CHILDREN_FREESTANDING_ENTRY) ? 1 : dict->n_children, - error); - - if (key_pattern == NULL) -@@ -1368,7 +1375,7 @@ dictionary_get_pattern (AST *ast, - return NULL; - - result = g_strdup_printf ("M%s{%c%s}", -- dict->n_children > 0 ? "a" : "", -+ (dict->n_children > 0 && dict->n_children != DICTIONARY_N_CHILDREN_FREESTANDING_ENTRY) ? "a" : "", - key_char, value_pattern); - g_free (value_pattern); - -@@ -1382,7 +1389,7 @@ dictionary_get_value (AST *ast, - { - Dictionary *dict = (Dictionary *) ast; - -- if (dict->n_children == -1) -+ if (dict->n_children == DICTIONARY_N_CHILDREN_FREESTANDING_ENTRY) - { - const GVariantType *subtype; - GVariantBuilder builder; -@@ -1415,7 +1422,7 @@ dictionary_get_value (AST *ast, - { - const GVariantType *entry, *key, *val; - GVariantBuilder builder; -- gint i; -+ size_t i; - - if (!g_variant_type_is_subtype_of (type, G_VARIANT_TYPE_DICTIONARY)) - return ast_type_error (ast, type, error); -@@ -1456,12 +1463,12 @@ static void - dictionary_free (AST *ast) - { - Dictionary *dict = (Dictionary *) ast; -- gint n_children; -+ size_t n_children; - -- if (dict->n_children > -1) -- n_children = dict->n_children; -- else -+ if (dict->n_children == DICTIONARY_N_CHILDREN_FREESTANDING_ENTRY) - n_children = 1; -+ else -+ n_children = dict->n_children; - - ast_array_free (dict->keys, n_children); - ast_array_free (dict->values, n_children); -@@ -1479,7 +1486,7 @@ dictionary_parse (TokenStream *stream, - maybe_wrapper, dictionary_get_value, - dictionary_free - }; -- gint n_keys, n_values; -+ size_t n_keys, n_values; - gboolean only_one; - Dictionary *dict; - AST *first; -@@ -1522,7 +1529,7 @@ dictionary_parse (TokenStream *stream, - goto error; - - g_assert (n_keys == 1 && n_values == 1); -- dict->n_children = -1; -+ dict->n_children = DICTIONARY_N_CHILDREN_FREESTANDING_ENTRY; - - return (AST *) dict; - } -@@ -1555,6 +1562,7 @@ dictionary_parse (TokenStream *stream, - } - - g_assert (n_keys == n_values); -+ g_assert (n_keys != DICTIONARY_N_CHILDREN_FREESTANDING_ENTRY); - dict->n_children = n_keys; - - return (AST *) dict; --- -GitLab - - -From dd333a40aa95819720a01caf6de564cd8a4a6310 Mon Sep 17 00:00:00 2001 -From: Philip Withnall -Date: Tue, 25 Nov 2025 19:25:58 +0000 -Subject: [PATCH 3/3] gvariant-parser: Convert error handling code to use - size_t - -The error handling code allows for printing out the range of input bytes -related to a parsing error. This was previously done using `gint`, but -the input could be longer than `INT_MAX`, so it should really be done -using `size_t`. - -Spotted while working on #3834. - -Signed-off-by: Philip Withnall ---- - glib/gvariant-parser.c | 36 +++++++++++++++++++++++------------- - 1 file changed, 23 insertions(+), 13 deletions(-) - -diff --git a/glib/gvariant-parser.c b/glib/gvariant-parser.c -index 519baa3f36..1b1ddd654b 100644 ---- a/glib/gvariant-parser.c -+++ b/glib/gvariant-parser.c -@@ -91,7 +91,9 @@ g_variant_parser_get_error_quark (void) - - typedef struct - { -- gint start, end; -+ /* Offsets from the start of the input, in bytes. Can be equal when referring -+ * to a point rather than a range. The invariant `end >= start` always holds. */ -+ size_t start, end; - } SourceRef; - - G_GNUC_PRINTF(5, 0) -@@ -106,14 +108,16 @@ parser_set_error_va (GError **error, - GString *msg = g_string_new (NULL); - - if (location->start == location->end) -- g_string_append_printf (msg, "%d", location->start); -+ g_string_append_printf (msg, "%" G_GSIZE_FORMAT, location->start); - else -- g_string_append_printf (msg, "%d-%d", location->start, location->end); -+ g_string_append_printf (msg, "%" G_GSIZE_FORMAT "-%" G_GSIZE_FORMAT, -+ location->start, location->end); - - if (other != NULL) - { - g_assert (other->start != other->end); -- g_string_append_printf (msg, ",%d-%d", other->start, other->end); -+ g_string_append_printf (msg, ",%" G_GSIZE_FORMAT "-%" G_GSIZE_FORMAT, -+ other->start, other->end); - } - g_string_append_c (msg, ':'); - -@@ -140,11 +144,15 @@ parser_set_error (GError **error, - - typedef struct - { -+ /* We should always have the following ordering constraint: -+ * start <= this <= stream <= end -+ * Additionally, unless in an error or EOF state, `this < stream`. -+ */ - const gchar *start; - const gchar *stream; - const gchar *end; - -- const gchar *this; -+ const gchar *this; /* (nullable) */ - } TokenStream; - - -@@ -175,7 +183,7 @@ token_stream_set_error (TokenStream *stream, - static gboolean - token_stream_prepare (TokenStream *stream) - { -- gint brackets = 0; -+ gssize brackets = 0; - const gchar *end; - - if (stream->this != NULL) -@@ -407,7 +415,7 @@ static void - pattern_copy (gchar **out, - const gchar **in) - { -- gint brackets = 0; -+ gssize brackets = 0; - - while (**in == 'a' || **in == 'm' || **in == 'M') - *(*out)++ = *(*in)++; -@@ -2765,7 +2773,7 @@ g_variant_builder_add_parsed (GVariantBuilder *builder, - static gboolean - parse_num (const gchar *num, - const gchar *limit, -- guint *result) -+ size_t *result) - { - gchar *endptr; - gint64 bignum; -@@ -2775,10 +2783,12 @@ parse_num (const gchar *num, - if (endptr != limit) - return FALSE; - -+ /* The upper bound here is more restrictive than it technically needs to be, -+ * but should be enough for any practical situation: */ - if (bignum < 0 || bignum > G_MAXINT) - return FALSE; - -- *result = (guint) bignum; -+ *result = (size_t) bignum; - - return TRUE; - } -@@ -2789,7 +2799,7 @@ add_last_line (GString *err, - { - const gchar *last_nl; - gchar *chomped; -- gint i; -+ size_t i; - - /* This is an error at the end of input. If we have a file - * with newlines, that's probably the empty string after the -@@ -2934,7 +2944,7 @@ g_variant_parse_error_print_context (GError *error, - - if (dash == NULL || colon < dash) - { -- guint point; -+ size_t point; - - /* we have a single point */ - if (!parse_num (error->message, colon, &point)) -@@ -2952,7 +2962,7 @@ g_variant_parse_error_print_context (GError *error, - /* We have one or two ranges... */ - if (comma && comma < colon) - { -- guint start1, end1, start2, end2; -+ size_t start1, end1, start2, end2; - const gchar *dash2; - - /* Two ranges */ -@@ -2968,7 +2978,7 @@ g_variant_parse_error_print_context (GError *error, - } - else - { -- guint start, end; -+ size_t start, end; - - /* One range */ - if (!parse_num (error->message, dash, &start) || !parse_num (dash + 1, colon, &end)) --- -GitLab - diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/glib/files/glib-2.86-MR-4936.patch b/sdk_container/src/third_party/portage-stable/dev-libs/glib/files/glib-2.86-MR-4936.patch deleted file mode 100644 index ce1d9b1328f..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-libs/glib/files/glib-2.86-MR-4936.patch +++ /dev/null @@ -1,69 +0,0 @@ -From 4f0399c0aaf3ffc86b5625424580294bc7460404 Mon Sep 17 00:00:00 2001 -From: Philip Withnall -Date: Thu, 4 Dec 2025 16:37:19 +0000 -Subject: [PATCH] gfileattribute: Fix integer overflow calculating escaping for - byte strings - -The number of invalid characters in the byte string (characters which -would have to be percent-encoded) was only stored in an `int`, which -gave the possibility of a long string largely full of invalid -characters overflowing this and allowing an attacker-controlled buffer -size to be allocated. - -This could be triggered by an attacker controlled file attribute (of -type `G_FILE_ATTRIBUTE_TYPE_BYTE_STRING`), such as -`G_FILE_ATTRIBUTE_THUMBNAIL_PATH` or `G_FILE_ATTRIBUTE_STANDARD_NAME`, -being read by user code. - -Spotted by Codean Labs. - -Signed-off-by: Philip Withnall - -Fixes: #3845 ---- - gio/gfileattribute.c | 11 +++++++++-- - 1 file changed, 9 insertions(+), 2 deletions(-) - -diff --git a/gio/gfileattribute.c b/gio/gfileattribute.c -index c6fde60fa9..d3083e5bd8 100644 ---- a/gio/gfileattribute.c -+++ b/gio/gfileattribute.c -@@ -22,6 +22,7 @@ - - #include "config.h" - -+#include - #include - - #include "gfileattribute.h" -@@ -166,11 +167,12 @@ valid_char (char c) - return c >= 32 && c <= 126 && c != '\\'; - } - -+/* Returns NULL on error */ - static char * - escape_byte_string (const char *str) - { - size_t i, len; -- int num_invalid; -+ size_t num_invalid; - char *escaped_val, *p; - unsigned char c; - const char hex_digits[] = "0123456789abcdef"; -@@ -188,7 +190,12 @@ escape_byte_string (const char *str) - return g_strdup (str); - else - { -- escaped_val = g_malloc (len + num_invalid*3 + 1); -+ /* Check for overflow. We want to check the inequality: -+ * !(len + num_invalid * 3 + 1 > SIZE_MAX) */ -+ if (num_invalid >= (SIZE_MAX - len) / 3) -+ return NULL; -+ -+ escaped_val = g_malloc (len + num_invalid * 3 + 1); - - p = escaped_val; - for (i = 0; i < len; i++) --- -GitLab - diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/glib/glib-2.88.3.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/glib/glib-2.88.3.ebuild index a7e616b2390..245527f3b29 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/glib/glib-2.88.3.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/glib/glib-2.88.3.ebuild @@ -23,7 +23,7 @@ INTROSPECTION_BUILD_DIR="${WORKDIR}/${INTROSPECTION_P}-build" LICENSE="LGPL-2.1+" SLOT="2" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha ~amd64 ~arm arm64 ~hppa ~loong ~m68k ~mips ~ppc ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" IUSE="dbus debug +elf doc +introspection +mime selinux static-libs sysprof systemtap test utils xattr" RESTRICT="!test? ( test )" diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/jansson/files/jansson-2.14-default-symver-test.patch b/sdk_container/src/third_party/portage-stable/dev-libs/jansson/files/jansson-2.14-default-symver-test.patch deleted file mode 100644 index 5b73aea5c94..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-libs/jansson/files/jansson-2.14-default-symver-test.patch +++ /dev/null @@ -1,57 +0,0 @@ -https://github.com/akheron/jansson/pull/666 - -From https://github.com/akheron/jansson/pull/666/commits/1e2ac681e5f39fc7a7e8b8deb2162a93976d4622 Mon Sep 17 00:00:00 2001 -From: Violet Purcell -Date: Wed, 11 Oct 2023 20:51:57 -0400 -Subject: [PATCH] Port check for --default-symver to autoconf - -This commit ports the configure check for -Wl,--default-symver that is -present in CMake to autoconf. This fixes building Jansson via autoconf -with non-bfd linkers on glibc systems. - -Signed-off-by: Violet Purcell ---- a/configure.ac -+++ b/configure.ac -@@ -25,6 +25,9 @@ AC_TYPE_UINT16_T - AC_TYPE_UINT8_T - AC_TYPE_LONG_LONG_INT - -+jansson_soversion="4" -+AC_SUBST([jansson_soversion]) -+ - AC_C_INLINE - case $ac_cv_c_inline in - yes) json_inline=inline;; -@@ -138,8 +141,12 @@ AS_IF([test "x$with_Bsymbolic" = "xyes"], [JSON_BSYMBOLIC_LDFLAGS=-Wl[,]-Bsymbol - AC_SUBST(JSON_BSYMBOLIC_LDFLAGS) - - # Enable symbol versioning on GNU libc -+m4_pattern_forbid([^AX_CHECK_LINK_FLAG$]) - JSON_SYMVER_LDFLAGS= --AC_CHECK_DECL([__GLIBC__], [JSON_SYMVER_LDFLAGS=-Wl,--default-symver]) -+AC_CHECK_DECL([__GLIBC__], -+ [AX_CHECK_LINK_FLAG([-Wl,--default-symver], -+ [JSON_SYMVER_LDFLAGS=-Wl,--default-symver], -+ [JSON_SYMVER_LDFLAGS=-Wl,--version-script,$ac_abs_confdir/jansson.sym])]) - AC_SUBST([JSON_SYMVER_LDFLAGS]) - - AC_ARG_ENABLE([ossfuzzers], -@@ -168,6 +175,7 @@ AC_SUBST([AM_CFLAGS]) - - AC_CONFIG_FILES([ - jansson.pc -+ jansson.sym - Makefile - doc/Makefile - src/Makefile ---- /dev/null -+++ b/jansson.sym.in -@@ -0,0 +1,5 @@ -+JANSSON_@jansson_soversion@ { -+ global: -+ *; -+}; -+ --- -2.42.0 - diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/jansson/files/jansson-2.14-test-symbols.patch b/sdk_container/src/third_party/portage-stable/dev-libs/jansson/files/jansson-2.14-test-symbols.patch deleted file mode 100644 index a5bf5334721..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-libs/jansson/files/jansson-2.14-test-symbols.patch +++ /dev/null @@ -1,25 +0,0 @@ -https://bugs.gentoo.org/814944 -https://github.com/akheron/jansson/commit/0677666f65b988b2dd44d02966a08fea490d5883 - -From 0677666f65b988b2dd44d02966a08fea490d5883 Mon Sep 17 00:00:00 2001 -From: Petri Lehtinen -Date: Thu, 9 Sep 2021 21:53:11 +0300 -Subject: [PATCH] Fix the check-exports tests for versioned symbols - ---- - test/suites/api/check-exports | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/test/suites/api/check-exports b/test/suites/api/check-exports -index 2b6b3c79..5c82064c 100755 ---- a/test/suites/api/check-exports -+++ b/test/suites/api/check-exports -@@ -15,7 +15,7 @@ grep 'json_\|jansson_' $top_srcdir/src/jansson.def \ - nm -D $SOFILE >/dev/null >$test_log/symbols 2>/dev/null \ - || exit 77 # Skip if "nm -D" doesn't seem to work - --grep ' [DT] ' $test_log/symbols | cut -d' ' -f3 | grep -v '^_' | sort >$test_log/output -+grep ' [DT] ' $test_log/symbols | cut -d' ' -f3 | grep -v '^_' | sed 's/@@libjansson.*//' | sort >$test_log/output - - if ! cmp -s $test_log/exports $test_log/output; then - diff -u $test_log/exports $test_log/output >&2 diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/jansson/jansson-2.15.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/jansson/jansson-2.15.1.ebuild index f38b65d49f8..9a609848820 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/jansson/jansson-2.15.1.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/jansson/jansson-2.15.1.ebuild @@ -11,7 +11,7 @@ SRC_URI="https://github.com/akheron/jansson/releases/download/v${PV}/${P}.tar.bz LICENSE="MIT" SLOT="0/4" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos" IUSE="doc static-libs" BDEPEND=" diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libgcrypt/Manifest b/sdk_container/src/third_party/portage-stable/dev-libs/libgcrypt/Manifest index d87beaacad2..b71dc11ecc0 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/libgcrypt/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libgcrypt/Manifest @@ -1,2 +1,4 @@ DIST libgcrypt-1.12.2.tar.bz2 4441855 BLAKE2B f52a10acdbf56a5adc927e22508a30d131a001e8f559d55c72d4ccfea4a514ef7983ab3f985af798c06a9c188639f21c54f1cc0ec6cba968172ddc6bd21ae0bd SHA512 dc1a4a6c00a0d84d90c8d71f4bd121b968c80df74137d6e8867f1f4cc014a539efb5238c1a1429d7cb95e493a40718fc19252edc592ffe0f43057b372896591c DIST libgcrypt-1.12.2.tar.bz2.sig 147 BLAKE2B 74adf984bda98e413f5f31aa3b2a60043773b387758caf3ec5e603ddd358bffdd58ec021c5828d1e45f2747f1766f0d63380ed4a5938565b829851e048b6279d SHA512 5991d26f0d59d646ba29c491e6952f31c970fb80b7928f999095d9f7d1435026c9304614558415c06254a81650ce08376ea09f7d93c657dfdb7ef014e58dbf28 +DIST libgcrypt-1.12.3.tar.bz2 4472486 BLAKE2B 52043c1defdbaf3ed0618bfbac13f4186dd28a4b2507a93bc24f08a7b2e66bb77014ff875801a3e39fcfbc905224f6ff1bcee43dcd53c555c32940305cfa92fe SHA512 84c150730af55669e35d3d9109250ae28175da1b506de84117701464ac5c7e542163977a1eb2e5df4cdaa8c723ea759aa8c004cccc98251902482aff7f847cad +DIST libgcrypt-1.12.3.tar.bz2.sig 147 BLAKE2B 48fbd27b81535caac67f56f71cff08bffcd689963bc7335d807393eb718a14f18e5fede6113a2a582d23ec820d1ef01ad2b6dde00d2163cc905e4710ca934687 SHA512 1a621c62ebe15a706d65b69709d1f415d7c73b68c48f4cf0fed1730e458f49e5e88ef4583514218a76f8c5fb6bb1fd98f2348e12978772af14f8fff7fee04fff diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libgcrypt/files/0001-cipher-rsa-oaep-Validate-all-zero-PS.patch b/sdk_container/src/third_party/portage-stable/dev-libs/libgcrypt/files/0001-cipher-rsa-oaep-Validate-all-zero-PS.patch new file mode 100644 index 00000000000..4833d508d0d --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libgcrypt/files/0001-cipher-rsa-oaep-Validate-all-zero-PS.patch @@ -0,0 +1,32 @@ +From cf55ce42d0268f9cfd7abc43aa4ec62d2e8c3f53 Mon Sep 17 00:00:00 2001 +Message-ID: +From: NIIBE Yutaka +Date: Thu, 27 Aug 2026 13:47:19 +0900 +Subject: [PATCH 1/3] cipher:rsa:oaep: Validate all-zero PS. + +* cipher/rsa-common.c (_gcry_rsa_oaep_decode): Reject non-zero PS. + +-- + +GnuPG-bug-id: 8390 +Reported-by: JEAN Jeremy +Signed-off-by: NIIBE Yutaka +--- + cipher/rsa-common.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/cipher/rsa-common.c b/cipher/rsa-common.c +index 1c36c912..f8d06c72 100644 +--- a/cipher/rsa-common.c ++++ b/cipher/rsa-common.c +@@ -755,6 +755,7 @@ _gcry_rsa_oaep_decode (unsigned char **r_result, size_t *r_resultlen, + { + not_found &= ct_not_equal_byte (db[n], 0x01); + n1 += not_found; ++ failed |= (not_found & ct_not_equal_byte (db[n], 0x00)); + } + failed |= not_found; + failed |= ct_not_equal_byte (frame[0], 0x00); +-- +2.55.0 + diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libgcrypt/files/0002-cipher-rsa-pss-Validate-the-length-of-hashed-input.patch b/sdk_container/src/third_party/portage-stable/dev-libs/libgcrypt/files/0002-cipher-rsa-pss-Validate-the-length-of-hashed-input.patch new file mode 100644 index 00000000000..a0b4f0d42ab --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libgcrypt/files/0002-cipher-rsa-pss-Validate-the-length-of-hashed-input.patch @@ -0,0 +1,43 @@ +From 612eb8c157c057feeaf17d30644fd65b05c5ea25 Mon Sep 17 00:00:00 2001 +Message-ID: <612eb8c157c057feeaf17d30644fd65b05c5ea25.1788185282.git.sam@gentoo.org> +In-Reply-To: +References: +From: NIIBE Yutaka +Date: Thu, 27 Aug 2026 14:36:35 +0900 +Subject: [PATCH 2/3] cipher:rsa:pss: Validate the length of hashed input. + +* cipher/rsa-common.c (_gcry_rsa_pss_verify): Reject invalid input. + +-- + +GnuPG-bug-id: 8391 +Reported-by: JEAN Jeremy +Signed-off-by: NIIBE Yutaka +--- + cipher/rsa-common.c | 10 +++++++++- + 1 file changed, 9 insertions(+), 1 deletion(-) + +diff --git a/cipher/rsa-common.c b/cipher/rsa-common.c +index f8d06c72..8c732f65 100644 +--- a/cipher/rsa-common.c ++++ b/cipher/rsa-common.c +@@ -1094,7 +1094,15 @@ _gcry_rsa_pss_verify (gcry_mpi_t value, int hashed_already, + _gcry_md_reset (hd); + } + else +- memcpy (mhash, p, hlen); ++ { ++ if ((input_nbits+7)/8 != hlen) ++ { ++ rc = GPG_ERR_INV_ARG; ++ goto leave; ++ } ++ ++ memcpy (mhash, p, hlen); ++ } + + /* Convert the signature into an octet string. */ + rc = octet_string_from_mpi (&em, NULL, encoded, emlen); +-- +2.55.0 + diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libgcrypt/files/0003-cipher-rsa-pss-Fix-SALT-LENGTH-handling.patch b/sdk_container/src/third_party/portage-stable/dev-libs/libgcrypt/files/0003-cipher-rsa-pss-Fix-SALT-LENGTH-handling.patch new file mode 100644 index 00000000000..cd3c8e0858b --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libgcrypt/files/0003-cipher-rsa-pss-Fix-SALT-LENGTH-handling.patch @@ -0,0 +1,53 @@ +From 3ed69d3fb85bac0901dc5b4899d7983cf1f7bbe7 Mon Sep 17 00:00:00 2001 +Message-ID: <3ed69d3fb85bac0901dc5b4899d7983cf1f7bbe7.1788185282.git.sam@gentoo.org> +In-Reply-To: +References: +From: NIIBE Yutaka +Date: Fri, 28 Aug 2026 15:25:22 +0900 +Subject: [PATCH 3/3] cipher:rsa:pss: Fix SALT-LENGTH handling. + +* cipher/pubkey-util.c (_gcry_pk_util_data_to_mpi): For +PUBKEY_OP_SIGN, just like for PUBKEY_OP_VERIFY, reject larger +SALT-LENGTH as the comment says. Fix releasing LIST on error. + +-- + +Fixes-commit: 0bd8137e68c201b6c2290710e348aaf57efa2b2e +GnuPG-bug-id: 8377 +Reported-by: JEAN Jeremy +Signed-off-by: NIIBE Yutaka +--- + cipher/pubkey-util.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/cipher/pubkey-util.c b/cipher/pubkey-util.c +index 4e8350a8..aac5c3f8 100644 +--- a/cipher/pubkey-util.c ++++ b/cipher/pubkey-util.c +@@ -1305,10 +1305,15 @@ _gcry_pk_util_data_to_mpi (gcry_sexp_t input, gcry_mpi_t *ret_mpi, + if (!s) + { + rc = GPG_ERR_NO_OBJ; ++ sexp_release (list); + goto leave; + } + ctx->saltlen = (unsigned int)strtoul (s, NULL, 10); ++ if (ctx->saltlen > 16384) ++ rc = GPG_ERR_TOO_LARGE; + sexp_release (list); ++ if (rc) ++ goto leave; + } + + /* Get optional RANDOM-OVERRIDE. */ +@@ -1416,6 +1421,7 @@ _gcry_pk_util_data_to_mpi (gcry_sexp_t input, gcry_mpi_t *ret_mpi, + if (!s) + { + rc = GPG_ERR_NO_OBJ; ++ sexp_release (list); + goto leave; + } + ctx->saltlen = (unsigned int)strtoul (s, NULL, 10); +-- +2.55.0 + diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libgcrypt/libgcrypt-1.12.3-r1.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/libgcrypt/libgcrypt-1.12.3-r1.ebuild new file mode 100644 index 00000000000..7c78e06b8ad --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libgcrypt/libgcrypt-1.12.3-r1.ebuild @@ -0,0 +1,189 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/gnupg.asc +inherit autotools flag-o-matic linux-info multilib-minimal toolchain-funcs verify-sig + +DESCRIPTION="General purpose crypto library based on the code used in GnuPG" +HOMEPAGE="https://www.gnupg.org/" +SRC_URI="mirror://gnupg/${PN}/${P}.tar.bz2" +SRC_URI+=" verify-sig? ( mirror://gnupg/${PN}/${P}.tar.bz2.sig )" + +LICENSE="LGPL-2.1+ GPL-2+ MIT" +SLOT="0/20" # subslot = soname major version +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" +IUSE="+asm doc +getentropy static-libs" +IUSE+=" cpu_flags_arm_neon cpu_flags_arm_aes cpu_flags_arm_sha1 cpu_flags_arm_sha2 cpu_flags_arm_sve" +IUSE+=" cpu_flags_ppc_altivec cpu_flags_ppc_vsx2 cpu_flags_ppc_vsx3" +IUSE+=" cpu_flags_x86_aes cpu_flags_x86_avx cpu_flags_x86_avx2 cpu_flags_x86_avx512f cpu_flags_x86_padlock cpu_flags_x86_sha cpu_flags_x86_sse4_1" + +# Build system only has --disable-arm-crypto-support right now +# If changing this, update src_configure logic too. +# ARM CPUs seem to, right now, support all-or-nothing for crypto extensions, +# but this looks like it might change in future. This is just a safety check +# in case people somehow do have a CPU which only supports some. They must +# for now disable them all if that's the case. +REQUIRED_USE=" + cpu_flags_arm_aes? ( cpu_flags_arm_sha1 cpu_flags_arm_sha2 ) + cpu_flags_arm_sha1? ( cpu_flags_arm_aes cpu_flags_arm_sha2 ) + cpu_flags_arm_sha2? ( cpu_flags_arm_aes cpu_flags_arm_sha1 ) + cpu_flags_ppc_vsx3? ( cpu_flags_ppc_altivec cpu_flags_ppc_vsx2 ) + cpu_flags_ppc_vsx2? ( cpu_flags_ppc_altivec ) +" + +RDEPEND=" + >=dev-libs/libgpg-error-1.56[${MULTILIB_USEDEP}] + getentropy? ( + kernel_linux? ( + elibc_glibc? ( >=sys-libs/glibc-2.25 ) + elibc_musl? ( >=sys-libs/musl-1.1.20 ) + ) + ) +" +DEPEND="${RDEPEND}" +BDEPEND=" + doc? ( virtual/texi2dvi ) + verify-sig? ( sec-keys/openpgp-keys-gnupg ) +" + +PATCHES=( + "${FILESDIR}"/${PN}-1.12.0-multilib-syspath.patch + "${FILESDIR}"/${PN}-powerpc-darwin.patch + # Post-1.12.3 fixes + "${FILESDIR}"/0001-cipher-rsa-oaep-Validate-all-zero-PS.patch + "${FILESDIR}"/0002-cipher-rsa-pss-Validate-the-length-of-hashed-input.patch + "${FILESDIR}"/0003-cipher-rsa-pss-Fix-SALT-LENGTH-handling.patch +) + +MULTILIB_CHOST_TOOLS=( + /usr/bin/libgcrypt-config +) + +pkg_pretend() { + if [[ ${MERGE_TYPE} == buildonly ]]; then + return + fi + if use kernel_linux && use getentropy; then + unset KV_FULL + get_running_version + if [[ -n ${KV_FULL} ]] && kernel_is -lt 3 17; then + eerror "The getentropy function requires the getrandom syscall." + eerror "This was introduced in Linux 3.17." + eerror "Your system is currently running Linux ${KV_FULL}." + eerror "Disable the 'getentropy' USE flag or upgrade your kernel." + die "Kernel is too old for getentropy" + fi + fi +} + +pkg_setup() { + : +} + +src_prepare() { + default + eautoreconf +} + +src_configure() { + # Temporary workaround for a build failure (known gcc issue): + # * https://bugs.gentoo.org/956605 + # * https://gcc.gnu.org/PR110812 + use riscv && filter-lto + + # Temporary workaround for mfpmath=sse on x86 causing issues when -msse is + # stripped as it's not clear cut on how to handle in flag-o-matic we can at + # least solve it the ebuild see https://bugs.gentoo.org/959349 + use x86 && filter-flags -mfpmath=sse + + # Hardcodes the path to FGREP in libgcrypt-config + export ac_cv_path_SED="sed" + export ac_cv_path_EGREP="grep -E" + export ac_cv_path_EGREP_TRADITIONAL="grep -E" + export ac_cv_path_FGREP="grep -F" + export ac_cv_path_GREP="grep" + + multilib-minimal_src_configure +} + +multilib_src_configure() { + if [[ ${CHOST} == powerpc* ]] ; then + # ./configure does a lot of automagic, prevent that + # generic ppc32+ppc64 altivec + use cpu_flags_ppc_altivec || local -x gcry_cv_cc_ppc_altivec=no + use cpu_flags_ppc_altivec || local -x gcry_cv_cc_ppc_altivec_cflags=no + # power8 vector extension, aka arch 2.07 ISA, also checked below via ppc-crypto-support + use cpu_flags_ppc_vsx2 || local -x gcry_cv_gcc_inline_asm_ppc_altivec=no + # power9 vector extension, aka arch 3.00 ISA + use cpu_flags_ppc_vsx3 || local -x gcry_cv_gcc_inline_asm_ppc_arch_3_00=no + fi + + append-ldflags $(test-flags-CCLD -Wl,--undefined-version) + + local myeconfargs=( + CC_FOR_BUILD="$(tc-getBUILD_CC)" + + --enable-noexecstack + $(use_enable cpu_flags_arm_neon neon-support) + # See REQUIRED_USE comment above + $(use_enable cpu_flags_arm_aes arm-crypto-support) + $(use_enable cpu_flags_arm_sve sve-support) + $(use_enable cpu_flags_ppc_vsx2 ppc-crypto-support) + $(use_enable cpu_flags_x86_aes aesni-support) + $(use_enable cpu_flags_x86_avx avx-support) + $(use_enable cpu_flags_x86_avx2 avx2-support) + $(use_enable cpu_flags_x86_avx512f avx512-support) + $(use_enable cpu_flags_x86_padlock padlock-support) + $(use_enable cpu_flags_x86_sha shaext-support) + $(use_enable cpu_flags_x86_sse4_1 sse41-support) + # required for sys-power/suspend[crypt], bug 751568 + $(use_enable static-libs static) + + # disabled due to various applications requiring privileges + # after libgcrypt drops them (bug #468616) + --without-capabilities + + $(use asm || echo "--disable-asm") + + GPG_ERROR_CONFIG="${ESYSROOT}/usr/bin/${CHOST}-gpg-error-config" + GPGRT_CONFIG="${ESYSROOT}/usr/bin/${CHOST}-gpgrt-config" + ) + + if use kernel_linux; then + # --enable-random=getentropy requires getentropy/getrandom. + # --enable-random=linux enables legacy code that tries getrandom + # and falls back to reading /dev/random. + myeconfargs+=( --enable-random=$(usex getentropy getentropy linux) ) + fi + + ECONF_SOURCE="${S}" econf "${myeconfargs[@]}" \ + $("${S}/configure" --help | grep -o -- '--without-.*-prefix') +} + +multilib_src_compile() { + default + multilib_is_native_abi && use doc && VARTEXFONTS="${T}/fonts" emake -C doc gcrypt.pdf +} + +multilib_src_test() { + # t-secmem and t-sexp need mlock which requires extra privileges; nspawn + # at least disallows that by default. + local -x GCRYPT_IN_ASAN_TEST=1 + # Avoid running (very) expensive bench-slope test. On hppa, it + # takes at least 7 hours. + local -x GCRYPT_NO_BENCHMARKS=1 + + default +} + +multilib_src_install() { + emake DESTDIR="${D}" install + multilib_is_native_abi && use doc && dodoc doc/gcrypt.pdf +} + +multilib_src_install_all() { + default + find "${ED}" -type f -name '*.la' -delete || die +} diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libgcrypt/libgcrypt-1.12.3.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/libgcrypt/libgcrypt-1.12.3.ebuild new file mode 100644 index 00000000000..9e9d7fb63e2 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libgcrypt/libgcrypt-1.12.3.ebuild @@ -0,0 +1,185 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/gnupg.asc +inherit autotools flag-o-matic linux-info multilib-minimal toolchain-funcs verify-sig + +DESCRIPTION="General purpose crypto library based on the code used in GnuPG" +HOMEPAGE="https://www.gnupg.org/" +SRC_URI="mirror://gnupg/${PN}/${P}.tar.bz2" +SRC_URI+=" verify-sig? ( mirror://gnupg/${PN}/${P}.tar.bz2.sig )" + +LICENSE="LGPL-2.1+ GPL-2+ MIT" +SLOT="0/20" # subslot = soname major version +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" +IUSE="+asm doc +getentropy static-libs" +IUSE+=" cpu_flags_arm_neon cpu_flags_arm_aes cpu_flags_arm_sha1 cpu_flags_arm_sha2 cpu_flags_arm_sve" +IUSE+=" cpu_flags_ppc_altivec cpu_flags_ppc_vsx2 cpu_flags_ppc_vsx3" +IUSE+=" cpu_flags_x86_aes cpu_flags_x86_avx cpu_flags_x86_avx2 cpu_flags_x86_avx512f cpu_flags_x86_padlock cpu_flags_x86_sha cpu_flags_x86_sse4_1" + +# Build system only has --disable-arm-crypto-support right now +# If changing this, update src_configure logic too. +# ARM CPUs seem to, right now, support all-or-nothing for crypto extensions, +# but this looks like it might change in future. This is just a safety check +# in case people somehow do have a CPU which only supports some. They must +# for now disable them all if that's the case. +REQUIRED_USE=" + cpu_flags_arm_aes? ( cpu_flags_arm_sha1 cpu_flags_arm_sha2 ) + cpu_flags_arm_sha1? ( cpu_flags_arm_aes cpu_flags_arm_sha2 ) + cpu_flags_arm_sha2? ( cpu_flags_arm_aes cpu_flags_arm_sha1 ) + cpu_flags_ppc_vsx3? ( cpu_flags_ppc_altivec cpu_flags_ppc_vsx2 ) + cpu_flags_ppc_vsx2? ( cpu_flags_ppc_altivec ) +" + +RDEPEND=" + >=dev-libs/libgpg-error-1.56[${MULTILIB_USEDEP}] + getentropy? ( + kernel_linux? ( + elibc_glibc? ( >=sys-libs/glibc-2.25 ) + elibc_musl? ( >=sys-libs/musl-1.1.20 ) + ) + ) +" +DEPEND="${RDEPEND}" +BDEPEND=" + doc? ( virtual/texi2dvi ) + verify-sig? ( sec-keys/openpgp-keys-gnupg ) +" + +PATCHES=( + "${FILESDIR}"/${PN}-1.12.0-multilib-syspath.patch + "${FILESDIR}"/${PN}-powerpc-darwin.patch +) + +MULTILIB_CHOST_TOOLS=( + /usr/bin/libgcrypt-config +) + +pkg_pretend() { + if [[ ${MERGE_TYPE} == buildonly ]]; then + return + fi + if use kernel_linux && use getentropy; then + unset KV_FULL + get_running_version + if [[ -n ${KV_FULL} ]] && kernel_is -lt 3 17; then + eerror "The getentropy function requires the getrandom syscall." + eerror "This was introduced in Linux 3.17." + eerror "Your system is currently running Linux ${KV_FULL}." + eerror "Disable the 'getentropy' USE flag or upgrade your kernel." + die "Kernel is too old for getentropy" + fi + fi +} + +pkg_setup() { + : +} + +src_prepare() { + default + eautoreconf +} + +src_configure() { + # Temporary workaround for a build failure (known gcc issue): + # * https://bugs.gentoo.org/956605 + # * https://gcc.gnu.org/PR110812 + use riscv && filter-lto + + # Temporary workaround for mfpmath=sse on x86 causing issues when -msse is + # stripped as it's not clear cut on how to handle in flag-o-matic we can at + # least solve it the ebuild see https://bugs.gentoo.org/959349 + use x86 && filter-flags -mfpmath=sse + + # Hardcodes the path to FGREP in libgcrypt-config + export ac_cv_path_SED="sed" + export ac_cv_path_EGREP="grep -E" + export ac_cv_path_EGREP_TRADITIONAL="grep -E" + export ac_cv_path_FGREP="grep -F" + export ac_cv_path_GREP="grep" + + multilib-minimal_src_configure +} + +multilib_src_configure() { + if [[ ${CHOST} == powerpc* ]] ; then + # ./configure does a lot of automagic, prevent that + # generic ppc32+ppc64 altivec + use cpu_flags_ppc_altivec || local -x gcry_cv_cc_ppc_altivec=no + use cpu_flags_ppc_altivec || local -x gcry_cv_cc_ppc_altivec_cflags=no + # power8 vector extension, aka arch 2.07 ISA, also checked below via ppc-crypto-support + use cpu_flags_ppc_vsx2 || local -x gcry_cv_gcc_inline_asm_ppc_altivec=no + # power9 vector extension, aka arch 3.00 ISA + use cpu_flags_ppc_vsx3 || local -x gcry_cv_gcc_inline_asm_ppc_arch_3_00=no + fi + + append-ldflags $(test-flags-CCLD -Wl,--undefined-version) + + local myeconfargs=( + CC_FOR_BUILD="$(tc-getBUILD_CC)" + + --enable-noexecstack + $(use_enable cpu_flags_arm_neon neon-support) + # See REQUIRED_USE comment above + $(use_enable cpu_flags_arm_aes arm-crypto-support) + $(use_enable cpu_flags_arm_sve sve-support) + $(use_enable cpu_flags_ppc_vsx2 ppc-crypto-support) + $(use_enable cpu_flags_x86_aes aesni-support) + $(use_enable cpu_flags_x86_avx avx-support) + $(use_enable cpu_flags_x86_avx2 avx2-support) + $(use_enable cpu_flags_x86_avx512f avx512-support) + $(use_enable cpu_flags_x86_padlock padlock-support) + $(use_enable cpu_flags_x86_sha shaext-support) + $(use_enable cpu_flags_x86_sse4_1 sse41-support) + # required for sys-power/suspend[crypt], bug 751568 + $(use_enable static-libs static) + + # disabled due to various applications requiring privileges + # after libgcrypt drops them (bug #468616) + --without-capabilities + + $(use asm || echo "--disable-asm") + + GPG_ERROR_CONFIG="${ESYSROOT}/usr/bin/${CHOST}-gpg-error-config" + GPGRT_CONFIG="${ESYSROOT}/usr/bin/${CHOST}-gpgrt-config" + ) + + if use kernel_linux; then + # --enable-random=getentropy requires getentropy/getrandom. + # --enable-random=linux enables legacy code that tries getrandom + # and falls back to reading /dev/random. + myeconfargs+=( --enable-random=$(usex getentropy getentropy linux) ) + fi + + ECONF_SOURCE="${S}" econf "${myeconfargs[@]}" \ + $("${S}/configure" --help | grep -o -- '--without-.*-prefix') +} + +multilib_src_compile() { + default + multilib_is_native_abi && use doc && VARTEXFONTS="${T}/fonts" emake -C doc gcrypt.pdf +} + +multilib_src_test() { + # t-secmem and t-sexp need mlock which requires extra privileges; nspawn + # at least disallows that by default. + local -x GCRYPT_IN_ASAN_TEST=1 + # Avoid running (very) expensive bench-slope test. On hppa, it + # takes at least 7 hours. + local -x GCRYPT_NO_BENCHMARKS=1 + + default +} + +multilib_src_install() { + emake DESTDIR="${D}" install + multilib_is_native_abi && use doc && dodoc doc/gcrypt.pdf +} + +multilib_src_install_all() { + default + find "${ED}" -type f -name '*.la' -delete || die +} diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libksba/Manifest b/sdk_container/src/third_party/portage-stable/dev-libs/libksba/Manifest index a4ce734e320..b9d2c444515 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/libksba/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libksba/Manifest @@ -1,2 +1,4 @@ DIST libksba-1.8.0.tar.bz2 721895 BLAKE2B ce1ceaf4b2542c2ac391fe944e81d0a05d73abf6abbc2637ef2c6c93d0a110a9fd352ae1586eb486148244ec68b0974348f440560991ca96196ab57549ab2cd3 SHA512 d0cfb14131c12e3dbce4b9e5e6026a44570c8f5412099f95180b77a944d4705a2f897cda94764e04ffd9c0aad3772b5e40c81b8e032ff58fbc82e5ad6e2978e9 DIST libksba-1.8.0.tar.bz2.sig 147 BLAKE2B 764eea53d2d42a08e4d39d2df9d51f9b411ccef879c07fe4079ffe3b7c6101c1a1cebfcca90b369f38598b2314bfb483e14cd67bd8bf27dc1333b6cfcb0bb97e SHA512 62a9a71f5f0aa3c4b6c063a9369e2f7a608ae26de1599893881ca112c98678e0dd22b9133a6155a278c2bbcacd08a1ae2ddda907ffc68cb74ee872c225ac885b +DIST libksba-1.8.1.tar.bz2 722040 BLAKE2B d100a709ed16f1ccd19e78d788dc6e929941647029aa539172c1bcdf1312b47183722d2c90b6d438906e977b79fa0219c8289373625eddc40eb77162222a535c SHA512 e5859d796fad35b2eece746b6e5d2c4e2a9f9dcbd93d2fd9638aa4eef625f0b1294d4360024c0d6ea3bc9a75443a3d7b33a20f407d7c245e392cfc0fc1ffb78e +DIST libksba-1.8.1.tar.bz2.sig 147 BLAKE2B b8a1797534a7803ca4669d4cf586ed5dc2ed742df45711a68e2562def4bd9e5f2e80ec177b98c372a574182779af510e2125be334d51206e5c89c28b0fc31f5e SHA512 bf84c43f735ed543783494e9431808b1018935e5f70029fee359b0c7cf0bc26ca48ac8ae2281ad02469e8fee9553fa41ba8f2cd509f421062dce9ff92e0f7508 diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libksba/libksba-1.8.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/libksba/libksba-1.8.1.ebuild new file mode 100644 index 00000000000..954b1167a31 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libksba/libksba-1.8.1.ebuild @@ -0,0 +1,63 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Maintainers should: +# 1. Join the "Gentoo" project at https://dev.gnupg.org/project/view/27/ +# 2. Subscribe to release tasks like https://dev.gnupg.org/T6159 +# (find the one for the current release then subscribe to it + +# any subsequent ones linked within so you're covered for a while.) + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/gnupg.asc +# in-source builds are not supported: https://dev.gnupg.org/T6313#166339 +inherit toolchain-funcs out-of-source verify-sig libtool + +DESCRIPTION="X.509 and CMS (PKCS#7) library" +HOMEPAGE="https://www.gnupg.org/related_software/libksba/" +SRC_URI="mirror://gnupg/${PN}/${P}.tar.bz2" +SRC_URI+=" verify-sig? ( mirror://gnupg/${PN}/${P}.tar.bz2.sig )" + +LICENSE="LGPL-3+ GPL-2+ GPL-3" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" +IUSE="static-libs" + +RDEPEND=">=dev-libs/libgpg-error-1.33" +DEPEND="${RDEPEND}" +BDEPEND=" + app-alternatives/yacc + verify-sig? ( sec-keys/openpgp-keys-gnupg ) +" + +PATCHES=( + "${FILESDIR}"/${PN}-1.6.0-no-fgrep-ksba-config.patch +) + +src_prepare() { + default + + elibtoolize # necessary on Solaris for shared lib support +} + +my_src_configure() { + export CC_FOR_BUILD="$(tc-getBUILD_CC)" + + local myeconfargs=( + --disable-valgrind-tests + $(use_enable static-libs static) + + GPG_ERROR_CONFIG="${ESYSROOT}/usr/bin/${CHOST}-gpg-error-config" + LIBGCRYPT_CONFIG="${ESYSROOT}/usr/bin/${CHOST}-libgcrypt-config" + GPGRT_CONFIG="${ESYSROOT}/usr/bin/${CHOST}-gpgrt-config" + ) + + econf "${myeconfargs[@]}" +} + +my_src_install() { + default + + # People need to use ksba-config for --cflags and --libs + find "${ED}" -type f -name '*.la' -delete || die +} diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libpcre2/Manifest b/sdk_container/src/third_party/portage-stable/dev-libs/libpcre2/Manifest index a051b362802..901152f09c4 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/libpcre2/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libpcre2/Manifest @@ -1,2 +1,4 @@ DIST pcre2-10.47.tar.bz2 2145789 BLAKE2B 9b56eddbc8b6fd6ce925575c337891c4f7790215c77325c1f0ad4a72be07e2a2a6a6b6638a5a2c49d1da6f4715320f240fd17c4ffcb77d1bb00875b990d6ee13 SHA512 889a6fdc80f8a7285e4a75d189c183b4588df81bdf048302cf0830e11bbf9b9eeb387ba43dfd3aff8ffb3aa693291e8c535845c06e8ce92d1028cefa6b474804 DIST pcre2-10.47.tar.bz2.sig 566 BLAKE2B 0bfe968f32c410a49bf1120b05027d3171b38fdd8fd4d9d77e58cad4811770ef9cabcc3275556116a5cfe28784fc5faa0c5f5bf959e7aae9d6ef2f491ffbb936 SHA512 fbea8f001533c700e0adae881d2d13f2a5f32c272cb1323fd6b76530b011fb3e8eafdc6eb762c36d91296f66fe2fe3861887d6f5219045a2dad8de55f3825051 +DIST pcre2-10.48.tar.bz2 2213024 BLAKE2B 7c500b4271e13c8a965a85c2aac4a72d5f29b7a3318b6077fa9de391512669ad26a5a774eee322c966ed38127ca9dfc139e4dacc1c1b23578d0674d882b3d84c SHA512 b350b8bfc909f3ebf9dfe39c535f04cc4618997f0fa025d12b4d92aaaac3c15ae93b6def62ed220eabbe08df9277cda0b80de4eedb7ec7376daf7e6a78a868b8 +DIST pcre2-10.48.tar.bz2.sig 566 BLAKE2B 13e1820f3b4a5c4175447c078c5c6829194681cbf368a67126ef3108ce3988908b1c8a22f3d82563fa9e13b17cb1d5daa5b274c4292fcfe78cae1512c7eddcbe SHA512 07373ddc9f7687caae29ad632cedeb4fb2306bce91c04e29754672ef98e4f37b4f92bfe135c53f0162d7f7d4d654a77aa6341cd1168c630357e0a685ce8c33dc diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libpcre2/libpcre2-10.48.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/libpcre2/libpcre2-10.48.ebuild new file mode 100644 index 00000000000..6a7f13d4727 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libpcre2/libpcre2-10.48.ebuild @@ -0,0 +1,108 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Always bump this package with virtual/libpcre2-internals. + +# https://pcre2project.github.io/pcre2/project/security/ +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/nicholaswilson.asc +inherit dot-a libtool multilib multilib-minimal toolchain-funcs verify-sig + +MY_P="pcre2-${PV/_rc/-RC}" +DESCRIPTION="Perl-compatible regular expression library" +HOMEPAGE="https://pcre2project.github.io/pcre2/ https://www.pcre.org/" +SRC_URI=" + https://github.com/PCRE2Project/pcre2/releases/download/${MY_P}/${MY_P}.tar.bz2 + verify-sig? ( https://github.com/PCRE2Project/pcre2/releases/download/${MY_P}/${MY_P}.tar.bz2.sig ) +" +S="${WORKDIR}"/${MY_P} + +LICENSE="BSD" +SLOT="0/3" # libpcre2-posix.so version +if [[ ${PV} != *_rc* ]] ; then + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" +fi +IUSE="bzip2 +jit libedit +pcre16 +pcre32 +readline static-libs unicode valgrind zlib" +REQUIRED_USE="?? ( libedit readline )" + +RDEPEND=" + bzip2? ( app-arch/bzip2 ) + libedit? ( dev-libs/libedit ) + readline? ( sys-libs/readline:= ) + zlib? ( virtual/zlib:= ) +" +DEPEND=" + ${RDEPEND} + valgrind? ( dev-debug/valgrind ) +" +BDEPEND=" + virtual/pkgconfig + verify-sig? ( >=sec-keys/openpgp-keys-nicholaswilson-20250910 ) +" + +MULTILIB_CHOST_TOOLS=( + /usr/bin/pcre2-config +) + +QA_CONFIG_IMPL_DECL_SKIP=( + # Only exists in MS Visual C++ (bug #954363) + __assume +) + +src_prepare() { + default + elibtoolize +} + +src_configure() { + use static-libs && lto-guarantee-fat + multilib-minimal_src_configure +} + +multilib_src_configure() { + local myeconfargs=( + --enable-pcre2-8 + --enable-shared + $(multilib_native_use_enable bzip2 pcre2grep-libbz2) + $(multilib_native_use_enable libedit pcre2test-libedit) + $(multilib_native_use_enable readline pcre2test-libreadline) + $(multilib_native_use_enable valgrind) + $(multilib_native_use_enable zlib pcre2grep-libz) + $(use_enable jit) + $(use_enable jit pcre2grep-jit) + $(use_enable pcre16 pcre2-16) + $(use_enable pcre32 pcre2-32) + $(use_enable static-libs static) + $(use_enable unicode) + ) + + ECONF_SOURCE="${S}" econf "${myeconfargs[@]}" +} + +multilib_src_compile() { + emake V=1 $(multilib_is_native_abi || echo "bin_PROGRAMS=") +} + +multilib_src_test() { + emake check VERBOSE=yes +} + +multilib_src_install() { + emake \ + DESTDIR="${D}" \ + $(multilib_is_native_abi || echo "bin_PROGRAMS= dist_html_DATA=") \ + install + + # bug #934977 + if ! tc-is-static-only && [[ ! -f "${ED}/usr/$(get_libdir)/libpcre2-8$(get_libname)" ]] ; then + eerror "Sanity check for libpcre2-8$(get_libname) failed." + eerror "Shared library wasn't built, possible libtool bug" + [[ -z ${I_KNOW_WHAT_I_AM_DOING} ]] && die "libpcre2-8$(get_libname) not found in build, aborting" + fi +} + +multilib_src_install_all() { + find "${ED}" -type f -name "*.la" -delete || die + strip-lto-bytecode +} diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libtraceevent/libtraceevent-1.9.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/libtraceevent/libtraceevent-1.9.0.ebuild index ccf1210114b..b3ad9fdb7a5 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/libtraceevent/libtraceevent-1.9.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libtraceevent/libtraceevent-1.9.0.ebuild @@ -13,7 +13,7 @@ if [[ ${PV} =~ [9]{4,} ]]; then inherit git-r3 else SRC_URI="https://git.kernel.org/pub/scm/libs/libtrace/libtraceevent.git/snapshot/${P}.tar.gz" - KEYWORDS="~alpha amd64 ~arm ~arm64 ~loong ppc ppc64 ~riscv ~x86" + KEYWORDS="~alpha amd64 arm ~arm64 ~loong ppc ppc64 ~riscv x86" fi LICENSE="LGPL-2.1" diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/Manifest b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/Manifest index 38c826c83e8..557caa3b144 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/Manifest @@ -4,6 +4,7 @@ DIST libxml2-2.15.0.tar.xz 2004476 BLAKE2B 07a570cd38528eb253d67f1eb88d375c5b3e3 DIST libxml2-2.15.1.tar.xz 2004588 BLAKE2B 73c4d17adacda67d71c5a120c7de2324df1db35963cadbe18166dafe122e1f10dcab9d4fed0e128c077a5ca31432bfaf72f742c42680251660d397ab8bc3538b SHA512 429c7d0dc3cbcb8de1bf6eb588fb8025fee009c9b25e87c96ecc5de57cc12b558b0ab8141f333d73ca687109335f297c9f9776abbb9da9afc9d8e79041c86b7f DIST libxml2-2.15.2.tar.xz 3148720 BLAKE2B e8adec751b6c8c8fd8358bee0c33159813601f6306b318314ffbf85324fa3ebeee2e838608a7fe365ffe4b82c4700f328fc27ae9a75cd7ed67cf256067542c2e SHA512 35f18fee772e63e8ea6220e5f5435ef5aabb5692a4519a993ec9640576d08fa45d5097280add5c5ffb5c280359d05eeecab0df24cce0b7ec35eef102d607b0b8 DIST libxml2-2.15.3.tar.xz 3152452 BLAKE2B 2ff478b46a40957386cd1ed0627bfc0f2433f47e786f20db3942304c90289adaeb1d9c3f12665df312b86cfac42f8e4dbc18e965bf90018f93c230b9b862df66 SHA512 6f7f1aabd012454553e851bd1ee548fbd14d21c576f2b2ab9eeedab3dfba51392083f74b34f060e9b538baeea212cdb462b8669c214c711771fb9a897fdc1c60 +DIST libxml2-2.15.4.tar.xz 3177444 BLAKE2B 92a4fc5179527968b9ac7043669a77d54c85143883749aa497005797bbf8b3d08514f62191437bfd079e0bb965859e456308b90e0ff1da738cc3dbd945c0f0bf SHA512 e162ed16ad6fb6c6ef1c40c6bed66a5f76db177fc24410cc261c9ddc6b19e9b003315db67f67cbcadaf08e546f0672de87bf6f297014af50fe544a781647f584 DIST xmlts20130923.tar.gz 641522 BLAKE2B 63a47bc69278ef510cd0b3779aed729e1b309e30efa0015d28ed051cc03f9dfddb447ab57b07b3393e8f47393d15473b0e199c34cb1f5f746b15ddfaa55670be SHA512 d5c4d26b324ed21f4e0641cd7f8b76dbf9de80df8b519982e44d41c960df29fd03618e02e9693b2d11ad06d19c4a965274c95a048ec3b9653eacb919a7f8b733 DIST xsts-2002-01-16.tar.gz 6894439 BLAKE2B 1e9ec63d2c104655e64249e07440a04d862fcbcd4d4e19745d81b34994319b510a531c9d6df1491fae1e90b5d0764f0f1a827251ca8df5d613178b0eab01ef25 SHA512 43300af6d39c1e2221b0ed7318fe14c7464eeb6eb030ed1e22eb29b4ab17f014e2a4c8887c3a46ae5d243e3072da27f00f4e285498ae6f1288177d38d1108288 DIST xsts-2004-01-14.tar.gz 2761085 BLAKE2B 41545995fb3a65d053257c376c07d45ffd1041a433bfbdb46d4dd87a5afb60c18c8629a3d988323f9e7a1d709775b5a7e5930276a7121c0725a22705c0976e36 SHA512 32854388d7e720ad67156baf50bf2bae7bd878ca3e35fd7e44e57cad3f434f69d56bbbedd61509f8a1faf01c9eae74a078df8fe130780b182c05c05cb1c39ebe diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/libxml2-2.15.4.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/libxml2-2.15.4.ebuild new file mode 100644 index 00000000000..16b574fce6a --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/libxml2-2.15.4.ebuild @@ -0,0 +1,165 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Note: Please bump in sync with dev-libs/libxslt + +PYTHON_COMPAT=( python3_{11..14} ) +PYTHON_REQ_USE="xml(+)" +inherit python-r1 meson-multilib + +DESCRIPTION="XML C parser and toolkit" +HOMEPAGE="https://gitlab.gnome.org/GNOME/libxml2/-/wikis/home" +if [[ ${PV} == 9999 ]] ; then + EGIT_REPO_URI="https://gitlab.gnome.org/GNOME/libxml2" + inherit git-r3 +else + inherit gnome.org + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" +fi + +S="${WORKDIR}/${PN}-${PV%_rc*}" + +LICENSE="MIT" +# see so_version = v_maj + v_min_compat for subslot +SLOT="2/16" +IUSE="doc icu python readline static-libs test" +RESTRICT="!test? ( test )" +REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" + +RDEPEND=" + virtual/libiconv + >=virtual/zlib-1.2.8-r1:=[${MULTILIB_USEDEP}] + icu? ( >=dev-libs/icu-51.2-r1:=[${MULTILIB_USEDEP}] ) + python? ( ${PYTHON_DEPS} ) + readline? ( sys-libs/readline:= ) +" +DEPEND="${RDEPEND}" +BDEPEND=" + virtual/pkgconfig + doc? ( + app-text/docbook-xsl-stylesheets + app-text/doxygen + dev-libs/libxslt + ) + python? ( app-text/doxygen ) +" + +MULTILIB_CHOST_TOOLS=( + /usr/bin/xml2-config +) + +PATCHES=( + "${FILESDIR}"/${PN}-2.14.2-no-git.patch +) + +src_unpack() { + if [[ ${PV} == 9999 ]] ; then + git-r3_src_unpack + else + default + fi + + cd "${S}" || die +} + +src_prepare() { + default + + sed -e "/^dir_doc/ s/meson.project_name()$/\'${PF}\'/" -i meson.build || die +} + +python_configure() { + local emesonargs=( + $(meson_feature icu) + $(meson_native_use_feature readline) + $(meson_native_use_feature readline history) + -Ddocs=disabled + -Dpython=enabled + -Dschematron=enabled + ) + mkdir "${BUILD_DIR}" || die + pushd "${BUILD_DIR}" >/dev/null || die + meson_src_configure + popd >/dev/null || die +} + +multilib_src_configure() { + local emesonargs=( + -Ddefault_library=$(multilib_native_usex static-libs both shared) + $(meson_feature icu) + $(meson_native_use_feature doc docs) + $(meson_native_use_feature readline) + $(meson_native_use_feature readline history) + -Dpython=disabled + -Dschematron=enabled + + # There has been a clean break with a soname bump. + # It's time to deal with the breakage. + # bug #935452 + -Dlegacy=disabled + ) + meson_src_configure + + if multilib_is_native_abi && use python ; then + python_foreach_impl python_configure + fi +} + +python_compile() { + pushd "${BUILD_DIR}" >/dev/null || die + meson_src_compile + popd >/dev/null || die +} + +multilib_src_compile() { + meson_src_compile + + if multilib_is_native_abi && use python ; then + python_foreach_impl python_compile + fi +} + +multilib_src_test() { + meson_src_test + + if multilib_is_native_abi && use python ; then + python_foreach_impl meson_src_test + fi +} + +python_install() { + pushd "${BUILD_DIR}" >/dev/null || die + meson_src_install + python_optimize + popd >/dev/null || die +} + +multilib_src_install() { + if multilib_is_native_abi && use python ; then + python_foreach_impl python_install + fi + + meson_src_install +} + +pkg_postinst() { + # We don't want to do the xmlcatalog during stage1, as xmlcatalog will not + # be in / and stage1 builds to ROOT=/tmp/stage1root. This fixes bug #208887. + if [[ -n "${ROOT}" ]]; then + elog "Skipping XML catalog creation for stage building (bug #208887)." + else + # Need an XML catalog, so no-one writes to a non-existent one + CATALOG="${EROOT}/etc/xml/catalog" + + # We don't want to clobber an existing catalog though, + # only ensure that one is there + # + if [[ ! -e "${CATALOG}" ]]; then + [[ -d "${EROOT}/etc/xml" ]] || mkdir -p "${EROOT}/etc/xml" + "${EPREFIX}"/usr/bin/xmlcatalog --create > "${CATALOG}" + einfo "Created XML catalog in ${CATALOG}" + fi + fi +} diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/opensc/files/opensc-0.26.1-c23-tests.patch b/sdk_container/src/third_party/portage-stable/dev-libs/opensc/files/opensc-0.26.1-c23-tests.patch deleted file mode 100644 index c97726892be..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-libs/opensc/files/opensc-0.26.1-c23-tests.patch +++ /dev/null @@ -1,36 +0,0 @@ -https://github.com/OpenSC/OpenSC/commit/2fee97b35fa8f1b51394540b259768b61e126a15 - -From 2fee97b35fa8f1b51394540b259768b61e126a15 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Veronika=20Hanul=C3=ADkov=C3=A1?= -Date: Thu, 16 Jan 2025 10:39:57 +0100 -Subject: [PATCH] p11test: Fix compiler warning about setting 'true' variable - ---- - src/tests/p11test/p11test_case_wrap.c | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -diff --git a/src/tests/p11test/p11test_case_wrap.c b/src/tests/p11test/p11test_case_wrap.c -index ecb257b565..e9c503d7e8 100644 ---- a/src/tests/p11test/p11test_case_wrap.c -+++ b/src/tests/p11test/p11test_case_wrap.c -@@ -390,15 +390,15 @@ test_unwrap_aes(test_cert_t *o, token_info_t *info, test_mech_t *mech) - CK_ULONG key_padded_len = sizeof(key); - CK_OBJECT_CLASS keyClass = CKO_SECRET_KEY; - CK_KEY_TYPE keyType = CKK_AES; -- CK_BBOOL true = CK_TRUE; -+ CK_BBOOL _true = CK_TRUE; - CK_BYTE new_id[] = {0x00, 0xff, 0x42}; - CK_BYTE new_label[] = "Unwrapped key"; - CK_ATTRIBUTE template[] = { - {CKA_CLASS, &keyClass, sizeof(keyClass)}, - {CKA_KEY_TYPE, &keyType, sizeof(keyType)}, -- {CKA_ENCRYPT, &true, sizeof(true)}, -- {CKA_DECRYPT, &true, sizeof(true)}, -- {CKA_TOKEN, &true, sizeof(true)}, -+ {CKA_ENCRYPT, &_true, sizeof(_true)}, -+ {CKA_DECRYPT, &_true, sizeof(_true)}, -+ {CKA_TOKEN, &_true, sizeof(_true)}, - {CKA_ID, &new_id, sizeof(new_id)}, - {CKA_LABEL, &new_label, sizeof(new_label)}, - {CKA_VALUE_LEN, &key_len, sizeof(key_len)}, /* keep this one last! */ - diff --git a/sdk_container/src/third_party/portage-stable/dev-python/cffi/cffi-2.1.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/cffi/cffi-2.1.1.ebuild index bac5ff9ea2d..75e453800c2 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/cffi/cffi-2.1.1.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-python/cffi/cffi-2.1.1.ebuild @@ -21,7 +21,7 @@ HOMEPAGE=" LICENSE="MIT-0" SLOT="0/${PV}" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" # Needs recent libffi for HPPA fixes DEPEND=" diff --git a/sdk_container/src/third_party/portage-stable/dev-python/cryptography/Manifest b/sdk_container/src/third_party/portage-stable/dev-python/cryptography/Manifest index 80459107a07..44251188209 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/cryptography/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-python/cryptography/Manifest @@ -11,10 +11,14 @@ DIST cryptography-49.0.0.tar.gz 854345 BLAKE2B 735d303659d101bacf967bb2388190052 DIST cryptography-49.0.0.tar.gz.provenance 9824 BLAKE2B b2b08f93894aa7bc9de98185a37e2b90a1e041d7473674752e52724baa8b90759354763eaf5b4403172a2dfe48596653abae79a604d1dbebe7664c2fd71dd6f2 SHA512 4228eaaab0ae7b34763ae3d60cf2d24d5b803efea85718c7eac34073e7fc48aefb7ba2c699c25f82a34f05a050d04f634956f4e717c201608e2f02451ec5a318 DIST cryptography-50.0.0.tar.gz 880201 BLAKE2B b498408edfc15581a8cc7dabb4050edc4d7a214431f28141a65c6c7876cdf2df11fec298de0b5bb3ed71b19f27fd7385822d16efa50632e5921844de82d2005c SHA512 b473d5625aa0367825fdbe771377056b660dbe0e9d155a769098bfa03d77e0e3d9d11c4c0761c66f45ed93857c1410239c0e8e5f558d1d9d603b4b7502a626a4 DIST cryptography-50.0.0.tar.gz.provenance 9836 BLAKE2B ccd8a9ae3d4754f1cad8e59e1bc8c62853d370034d3c9f928e83b1966be11c4b0d7feba9997eaed51f2e88d0a325f036805793de7cb58d188a4b48c0e6710d47 SHA512 f98c9cbe8adbe56ef93fb2a3a033ede5fec2c87561ffc808c09155a12e6ecb22735a7e6a2beb8a186f41f3a5b8e58fdd1e66bdee4ab57caf3ac19f0bc051aaa7 +DIST cryptography-50.0.1.tar.gz 880381 BLAKE2B 04c189aa1ff88ec2828d1a1579da3ec41056ea5824b14b839b678717fe1cf4c6574f82fb9d60a5eb5949e7d564aef13991d8dc989d067b69316f46ad13657f70 SHA512 0f97d1340706e14875160bc234e745a4950602d5258758b7856cf2cb8ad1bbe5aca6a03ca9a5c3e54160384ba9500ff49bf9baddddc92d469c863301444129d7 +DIST cryptography-50.0.1.tar.gz.provenance 9689 BLAKE2B e50d340a5bc687c09f9c999da2ce5773ef06574385f0a6b333104f91e04b1a396d8ad970a781102e30baf9706a71df29cc778a2bd4bf3a469418ee9ad95cd0e9 SHA512 3c22217e69a9203e10d9b6498016248a1ff0724f615aa37c9ca3c313ad669eaef468cdcbf3956043fc3f38790c44f0f9100aa9a69bfe9c351749e73d938b5044 DIST cryptography_vectors-49.0.0.tar.gz 54876507 BLAKE2B 58c4e75c33ee0926a7a0d348356be18884145f0f7bd04c771fdb7fdbc8c779b503cdf6e659e167cc64d20b5d5c2c46fec615e968a9cd49b2e9207945f079ebbb SHA512 dbec0a8198ea7a6ee56d1b5b8079752487cb8c2916c9239d26c664c08402c1ab8832585889ec79313e37f64151a3664b98c6a5e1eb69adceb4caeff32b56f838 DIST cryptography_vectors-49.0.0.tar.gz.provenance 9789 BLAKE2B 66f3e0881b4715dc8304e832b7e976cbc1570cb08b573304935c8625c0fe673602777d6e90fbcd455e97ca32a586350a52e58c8c96a086038fe2aa935db8ed93 SHA512 c8915a33aa32ffd32602f645138cfd3dcb95dcf9bfcebae96ac9ffb9c8c27c7b1df727f44e8fa8f2f21f7b516cd8a142cc58fbc6dccb509afdb697f7e51e5955 DIST cryptography_vectors-50.0.0.tar.gz 54914883 BLAKE2B 9b1b740d9dfdf2a80bf072189768a4e823a4f706f6517e7745c4ab609fb2109aab757937d61eb6b7a2f5db9af78c998537411f2068eceac94e989e4a678ad4a4 SHA512 e0969245a61bb84b992ebc8f53b45191f6d78e2cea228b7d7ee35a6658722028956e6c54414811e0c03cbd6232075904edfcaeaefc7d8e61a4981149ac1e28ef DIST cryptography_vectors-50.0.0.tar.gz.provenance 9801 BLAKE2B e2ba1e2d8eabdd2dd680d78c6d01926a8ecc429008ce180b210330ba0c354d113f5edb05fc7d09b049d490ab4e04c94c5e5532c7114bbd19cd6b1268de37b727 SHA512 a8c69da79a910d65b14917fd6a143959620edb974b8c7de63200130bb0884c393850a7a914a9c19dad5bbfccaa422029ef9ec8c98b4eb1730e4d1ed7cc55ce6a +DIST cryptography_vectors-50.0.1.tar.gz 54914983 BLAKE2B bd361deeaa443897f3da3c80662f66ceaa91ce29bf6856e1584432ef29d5ed7b5fc59f2d75f32a0408dd01a083122feec756142b932a094be872cb5fedd72910 SHA512 7a9dd410e929b8661d56b18edf120b89e004d3305199004d02d9e7f10bf598c3b6ee68dfc99e7ac8a6fceb88df66f8dbfe6a460b79cb6add26042262268fb176 +DIST cryptography_vectors-50.0.1.tar.gz.provenance 9654 BLAKE2B f3a9ea12b078e330a5498d0b94a3ec54eaeed6da953351ca9c5bf5c22d2aae20f35bbdc5e6e50c43548bd2365e564c4ca36c9ab7213099f9c09f06c8cfe505da SHA512 95de8004751682e91065b60eb9efce0c07b89e106b4a2a689f5a1b51710e1fa48f3462e07c8430750d76205d316fcb4d0fe2be9b67286b0dda90d283b9923d4e DIST find-msvc-tools-0.1.9.crate 31493 BLAKE2B 4137592addf8b58f4e4c02be537a72b132b38cecc1c263c2569fe40e2cfe4377e7141679f32661f44ed467cf9723343ab13732b3d6f4a2a84c610d0958e7e30b SHA512 729b3c1c1d520dffe5d88fc8b58e47fb7e86dc26e568fc317eea5ca8de0ee953fbafaa20ab34a6bfb43173bab39a90ff6954c11dab8d545e902305dafc8cd3de DIST foreign-types-0.3.2.crate 7504 BLAKE2B 520818b702d990d296ecd31a8646850202509ccfa18edd0e1b260289619a6c351e758f317ec0824bd76eccb209b6f087057c25f1bd01a47897715013dd834867 SHA512 bf27b8243ed482c202d120383374f19ff09422535e24b9c1aebccc66529bf300ca17b8bbc76d67f98ac092e614497afe3add9dc68aa69c93074df05762f91232 DIST foreign-types-shared-0.1.1.crate 5672 BLAKE2B d2e42e04b6657e7a69fe0bd20c672176629c743e49a55fd007bb30e289710b70045d445ae9cae0eeaa747ee708c90e8abd9b5fc39bad8ec0666befe1b696d4f1 SHA512 bafdb2143e136fb0818e2ffd90b5c862b7181647d6568947d4e4531012bbf7a57b597221ec7056c1b562dfc0c3b5dead26d1a4111ebc15e7863737a873518a4a diff --git a/sdk_container/src/third_party/portage-stable/dev-python/cryptography/cryptography-50.0.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/cryptography/cryptography-50.0.0.ebuild index d4f04bb7e4d..9e7baf85cf9 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/cryptography/cryptography-50.0.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-python/cryptography/cryptography-50.0.0.ebuild @@ -69,7 +69,7 @@ LICENSE+=" Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD MIT Unicode-3.0 " SLOT="0" -KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" RDEPEND=" >=dev-libs/openssl-1.0.2o-r6:0= diff --git a/sdk_container/src/third_party/portage-stable/dev-python/cryptography/cryptography-50.0.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/cryptography/cryptography-50.0.1.ebuild new file mode 100644 index 00000000000..d4f04bb7e4d --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-python/cryptography/cryptography-50.0.1.ebuild @@ -0,0 +1,142 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_EXT=1 +DISTUTILS_USE_PEP517=maturin +PYPI_VERIFY_REPO=https://github.com/pyca/cryptography +PYTHON_COMPAT=( python3_{12..15} python3_{14,15}t ) +PYTHON_REQ_USE="threads(+)" + +CARGO_OPTIONAL=yes +RUST_MIN_VER="1.83.0" +CRATES=" + asn1@0.24.1 + asn1_derive@0.24.1 + base64@0.23.0 + bitflags@2.13.1 + cc@1.4.0 + cfg-if@1.0.4 + find-msvc-tools@0.1.9 + foreign-types-shared@0.1.1 + foreign-types@0.3.2 + heck@0.5.0 + itoa@1.0.18 + libc@0.2.189 + once_cell@1.21.4 + openssl-macros@0.1.1 + openssl-sys@0.9.117 + openssl@0.10.81 + pem@4.0.0 + pkg-config@0.3.33 + portable-atomic@1.14.0 + proc-macro2@1.0.107 + pyo3-build-config@0.29.0 + pyo3-ffi@0.29.0 + pyo3-macros-backend@0.29.0 + pyo3-macros@0.29.0 + pyo3@0.29.0 + quote@1.0.47 + self_cell@1.3.0 + shlex@2.0.1 + syn@2.0.119 + target-lexicon@0.13.5 + unicode-ident@1.0.24 + vcpkg@0.2.15 +" + +inherit cargo distutils-r1 flag-o-matic pypi + +VEC_P=cryptography_vectors-$(ver_cut 1-3) +DESCRIPTION="Library providing cryptographic recipes and primitives" +HOMEPAGE=" + https://github.com/pyca/cryptography/ + https://pypi.org/project/cryptography/ +" +SRC_URI+=" + ${CARGO_CRATE_URIS} + test? ( + $(pypi_sdist_url cryptography_vectors "$(ver_cut 1-3)") + $(pypi_provenance_url "${VEC_P}.tar.gz" cryptography_vectors "$(ver_cut 1-3)") + -> ${VEC_P}.tar.gz.provenance + ) +" + +LICENSE="|| ( Apache-2.0 BSD ) PSF-2" +# Dependent crate licenses +LICENSE+=" + Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD MIT Unicode-3.0 +" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + +RDEPEND=" + >=dev-libs/openssl-1.0.2o-r6:0= + >=dev-python/cffi-2.0.0:=[${PYTHON_USEDEP}] +" +DEPEND=" + ${RDEPEND} +" + +BDEPEND=" + ${RUST_DEPEND} + >=dev-util/maturin-1.9.4[${PYTHON_USEDEP}] + dev-python/setuptools[${PYTHON_USEDEP}] + test? ( + dev-python/certifi[${PYTHON_USEDEP}] + dev-python/iso8601[${PYTHON_USEDEP}] + dev-python/pretend[${PYTHON_USEDEP}] + dev-python/pyasn1-modules[${PYTHON_USEDEP}] + dev-python/pytz[${PYTHON_USEDEP}] + ) +" + +# Files built without CFLAGS/LDFLAGS, acceptable for rust +QA_FLAGS_IGNORED="usr/lib.*/py.*/site-packages/cryptography/hazmat/bindings/_rust.*.so" + +EPYTEST_PLUGINS=( hypothesis ) +EPYTEST_XDIST=1 +distutils_enable_tests pytest + +src_unpack() { + if use verify-provenance; then + pypi_verify_provenance "${DISTDIR}/${P}.tar.gz"{,.provenance} + use test && pypi_verify_provenance "${DISTDIR}/${VEC_P}.tar.gz"{,.provenance} + fi + + cargo_src_unpack +} + +src_prepare() { + distutils-r1_src_prepare + + sed -i -e 's:--benchmark-disable::' pyproject.toml || die + + # work around availability macros not supported in GCC (yet) + if [[ ${CHOST} == *-darwin* ]] ; then + local darwinok=0 + if [[ ${CHOST##*-darwin} -ge 16 ]] ; then + darwinok=1 + fi + sed -i -e 's/__builtin_available(macOS 10\.12, \*)/'"${darwinok}"'/' \ + src/_cffi_src/openssl/src/osrandom_engine.c || die + fi +} + +python_configure_all() { + filter-lto # bug #903908 +} + +python_test() { + local -x PYTHONPATH="${PYTHONPATH}:${WORKDIR}/${VEC_P}" + local EPYTEST_IGNORE=( + tests/bench + ) + local EPYTEST_DESELECT=( + # OOMs depending on overcommit setting and available memory + tests/hazmat/primitives/test_argon2.py::TestArgon2::test_argon2_malloc_failure + ) + + epytest +} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/cython/cython-3.3.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/cython/cython-3.3.0.ebuild index 61ec8f655d6..5a713decf1e 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/cython/cython-3.3.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-python/cython/cython-3.3.0.ebuild @@ -10,7 +10,7 @@ PYTHON_TESTED=( "${PYTHON_FULLY_TESTED[@]}" ) PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" python3_15 python3_{14..15}t ) PYTHON_REQ_USE="threads(+)" -inherit distutils-r1 flag-o-matic multiprocessing pypi toolchain-funcs +inherit distutils-r1 multiprocessing pypi toolchain-funcs DESCRIPTION="A Python to C compiler" HOMEPAGE=" @@ -47,11 +47,6 @@ PATCHES=( # dev-python/sphinx-issues \ # dev-python/sphinx-tabs -python_configure_all() { - # https://gcc.gnu.org/PR125730 (bug #976797) - tc-is-gcc && [[ $(gcc-major-version) -ge 16 ]] && append-cflags -fno-ivopts -} - python_compile() { # Python gets confused when it is in sys.path before build. local -x PYTHONPATH= diff --git a/sdk_container/src/third_party/portage-stable/dev-python/fastjsonschema/Manifest b/sdk_container/src/third_party/portage-stable/dev-python/fastjsonschema/Manifest index 4b7acc7a0a5..287918ebcee 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/fastjsonschema/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-python/fastjsonschema/Manifest @@ -1,3 +1,2 @@ DIST fastjsonschema-2.21.2.tar.gz 374130 BLAKE2B 198cca481d765b43b21101020718b59e3ccba2728a0a2a0ce56c7b73ce1ff6102c2e3916c9fd4c8fe8f2f3e931d87fd7ffc76e6d7983c5a2d87eca2cfa5aa721 SHA512 9e16f533065267ba48eeda70e8a41fdc10b1b99832a3ddaa0d48d01a783e4555d2fb790201ca3f47b959d3e1f06f68b9f83672f90cc1969355d28f0f24cb9837 -DIST fastjsonschema-2.22.1.tar.gz 382291 BLAKE2B 8b526c47da2cdbae32ad3a53e72eea6fd0373c51b79b350c6168ee259c6c1be9cec4a925f5898c81b2e638cc4549cdc02ff1d3780f426da6309ee4a80c7af6c6 SHA512 975246cee87cea677cb87873d3ad7b81dd30370a5c860dd59527bd3793925693cd63e666250fcdcc70d7cbf4deb42733cd0606a63d6665c58b72b53d699fd847 DIST fastjsonschema-2.22.2.tar.gz 385171 BLAKE2B 35f3d6522b545e4d7d1ac83280dba6fd268e43a957899de6b5207bcbab469fa36fe3c0cd50112195f9c504dcb262d13914fd7564f6181b5ffa9f68401e32bd4f SHA512 bb479bab8031e48188fa1a26633c423f81ec9f7f2bdeb93edffcaf8b867aff15f23841bbbf8f17a70fce7dfbf3a15dc5052d1fb5e6a10ccba0253be5cb8ba47c diff --git a/sdk_container/src/third_party/portage-stable/dev-python/flit-core/flit-core-4.0.2.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/flit-core/flit-core-4.0.2.ebuild index 5b299824f53..d3696f70417 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/flit-core/flit-core-4.0.2.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-python/flit-core/flit-core-4.0.2.ebuild @@ -18,7 +18,7 @@ HOMEPAGE=" LICENSE="BSD" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" BDEPEND=" test? ( dev-python/testpath[${PYTHON_USEDEP}] ) diff --git a/sdk_container/src/third_party/portage-stable/dev-python/gpep517/Manifest b/sdk_container/src/third_party/portage-stable/dev-python/gpep517/Manifest index 3910d32b920..3a024bf4844 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/gpep517/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-python/gpep517/Manifest @@ -1,2 +1,3 @@ DIST gpep517-19.gh.tar.gz 29279 BLAKE2B 1f3002e970de1e56004a0c6486c678ee9baa51d76c263d7356b3a63086615bf81c326b0a0ee313389ae046c7c451c17a1eed1b1cada8c61f0875ee007d5caa23 SHA512 463c3812f388ea7ef83aaf6b3b90de4036b0a8200038a654621822c02d46627f7adf2ed4c7accf016293f89b8c3a2080d9ac80d2f82caaa3fdd370aa98c4335b DIST gpep517-20.gh.tar.gz 29306 BLAKE2B 5799cfb351741758a3e195d0496ab1e94dbb53d938ac27e1f00a81aaeb338f058a2b33ddcc4c7b073953b77e20b3d8d729c04f00b7c43928c457590818be2ee8 SHA512 3a8782eb513bb189b6d4d10516a122fa496185960a2970445058030fccde10b841e222cce04ce3bde2c3f1e1186cb8e3f50f44e40be2fd35e7e1b91e937585b0 +DIST gpep517-22.gh.tar.gz 31344 BLAKE2B 1d7fb03dd3b71887dfd0a56a47e3e2220c75dd7f6c84887568731071eb543582ddcfa50c6e4305105ebe194252542752e8b7de673f8731bca2372759758306ff SHA512 421a681e7de79ea06fb89920dbe1e2ba58f5dcb8ecd1bb4043dea5415978621b817c212b001a64d3955a1f7b8156b6a845e2b4c64130ebefc155de20701dcbc9 diff --git a/sdk_container/src/third_party/portage-stable/dev-python/gpep517/gpep517-22.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/gpep517/gpep517-22.ebuild new file mode 100644 index 00000000000..bc06f089d60 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-python/gpep517/gpep517-22.ebuild @@ -0,0 +1,54 @@ +# Copyright 2022-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +# please keep this ebuild at EAPI 8 -- sys-apps/portage dep +EAPI=8 + +DISTUTILS_USE_PEP517=no +PYTHON_COMPAT=( python3_{12..15} python3_{14..15}t ) + +inherit distutils-r1 + +DESCRIPTION="A backend script to aid installing Python packages in Gentoo" +HOMEPAGE=" + https://pypi.org/project/gpep517/ + https://github.com/gentoo/gpep517/ +" +SRC_URI=" + https://github.com/gentoo/gpep517/archive/v${PV}.tar.gz + -> ${P}.gh.tar.gz +" + +LICENSE="GPL-2+" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" + +RDEPEND=" + >=dev-python/installer-0.5.0[${PYTHON_USEDEP}] +" +# 26.1 for abi3t support +PDEPEND=" + >=dev-python/packaging-26.1[${PYTHON_USEDEP}] +" +BDEPEND=" + test? ( + ${PDEPEND} + ) +" + +EPYTEST_PLUGINS=() +distutils_enable_tests pytest + +python_test() { + epytest -o tmp_path_retention_policy=all +} + +python_install() { + python_domodule gpep517 + python_newscript - gpep517 <<-EOF + #!${EPREFIX}/usr/bin/python + import sys + from gpep517.__main__ import main + sys.exit(main()) + EOF +} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/linkify-it-py/Manifest b/sdk_container/src/third_party/portage-stable/dev-python/linkify-it-py/Manifest index 9f8721ced42..3fd3e926563 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/linkify-it-py/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-python/linkify-it-py/Manifest @@ -1,2 +1,6 @@ DIST linkify_it_py-2.1.0.tar.gz 29158 BLAKE2B 6421c09a9018036f97639a164186ff702c9d54d4381f3c9cc51d6bd106a6e5814b32d76d992b7c6981052574758bfc891d5006c34fe953c5cea21580dfc2bc35 SHA512 298d25a9bd9df57b6caf6157b642018e828c2b5fbacaa2ff11c0007b48f2090d7f14680efe3a365d9bb0f2a97660eb9e95424c8b63dfd8f9aeee6a5a5c70211d DIST linkify_it_py-2.1.0.tar.gz.provenance 9582 BLAKE2B f78f211d5ffca6a85f695fb037a0885aedc3caa10801c1165355b3698a7b08b1205de0265eb8f40e83aec3e94294e595196bc1d4fb46022ac4ca7ea055dee5fd SHA512 01ea5d707b170fcdcd8dac6ddb88a5100c4eb7e532b15bb50ae1c0091b1feec7950e331b8ba53477225cc878968e57ea7a113a5472847882c03ac1dce19e1ebd +DIST linkify_it_py-2.1.1.tar.gz 30889 BLAKE2B 3720d7c8711b49057d31ddf8c44fdbaa9b3535ef733d32601cb0ac7b0806dd0c92325167440bd9fbfe31ec3d10cc2fe474f4111c55537f0255195adc49ca0344 SHA512 9786b64f1c17965093a2b17ab26053db9e35d1dd62f3f1ff2a63ac41db81b8a109f38bfe369b2c7c0540d261891308e62cec56d1888c18dcd012736e64686d2a +DIST linkify_it_py-2.1.1.tar.gz.provenance 9615 BLAKE2B b6decd2e3380c7423f4bf51b75f7f522e256335b5c81e94c2b5d55fcdb8971c1ed83ff9257083c5573997d003987f7d959365866df4a09fd8aed3f5b3ed7f2fd SHA512 27a34326bdd7b1f1dae2167eaa7ec4de7726980ef8da7f725357cf823e795c5687ce79bbd8167c46a99536c6a953dc76ba802c283e3909e85b0f7d2ac3b32923 +DIST linkify_it_py-2.2.0.tar.gz 32939 BLAKE2B 84dc5887284eb5620f48e36d4bfe6bb83b327cab81c297315a303c6f19075bd97f183b0cd245bc8f24d175f7a001cb9f64d8debdb11a1a2d6e9f41715e57d997 SHA512 2325d0ada021b49715362492dcb278ae7cdfa593d22c8d1e2c0943cb75a9d8449187513fa39854093bc135b4acfce456f1b07007ab57b8e93d0bffb1d575a173 +DIST linkify_it_py-2.2.0.tar.gz.provenance 9756 BLAKE2B 0dfadc340f4a8fb2d9ec41a22949277bce68f99135abc1dab35bca681a22d478f0beb1b504c6438fa1b792ad15219d856cc9c0ce8fcfee8353899a768240422f SHA512 c451e0cb3ea046c7a3eab637186d6329becdd463e8e86d891aed49b6b1798d0220c0cd2ce63b366f6be832be963cfa3771068f9971c01131d1e0eb93b44a9c73 diff --git a/sdk_container/src/third_party/portage-stable/dev-python/fastjsonschema/fastjsonschema-2.22.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/linkify-it-py/linkify-it-py-2.1.1.ebuild similarity index 53% rename from sdk_container/src/third_party/portage-stable/dev-python/fastjsonschema/fastjsonschema-2.22.1.ebuild rename to sdk_container/src/third_party/portage-stable/dev-python/linkify-it-py/linkify-it-py-2.1.1.ebuild index 945fbcabe5f..95cc8dcd530 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/fastjsonschema/fastjsonschema-2.22.1.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-python/linkify-it-py/linkify-it-py-2.1.1.ebuild @@ -1,27 +1,27 @@ -# Copyright 2020-2026 Gentoo Authors +# Copyright 2022-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 DISTUTILS_USE_PEP517=setuptools +PYPI_VERIFY_REPO=https://github.com/tsutsu3/linkify-it-py PYTHON_COMPAT=( python3_{12..15} python3_{14,15}t ) inherit distutils-r1 pypi -DESCRIPTION="Fast JSON schema validator for Python" +DESCRIPTION="Links recognition library with full unicode support" HOMEPAGE=" - https://github.com/horejsek/python-fastjsonschema/ - https://pypi.org/project/fastjsonschema/ + https://github.com/tsutsu3/linkify-it-py/ + https://pypi.org/project/linkify-it-py/ " -LICENSE="BSD" +LICENSE="MIT" SLOT="0" KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +RDEPEND=" + dev-python/uc-micro-py[${PYTHON_USEDEP}] +" + EPYTEST_PLUGINS=() -EPYTEST_XDIST=1 distutils_enable_tests pytest - -EPYTEST_IGNORE=( - tests/benchmarks -) diff --git a/sdk_container/src/third_party/portage-stable/dev-python/linkify-it-py/linkify-it-py-2.2.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/linkify-it-py/linkify-it-py-2.2.0.ebuild new file mode 100644 index 00000000000..95cc8dcd530 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-python/linkify-it-py/linkify-it-py-2.2.0.ebuild @@ -0,0 +1,27 @@ +# Copyright 2022-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYPI_VERIFY_REPO=https://github.com/tsutsu3/linkify-it-py +PYTHON_COMPAT=( python3_{12..15} python3_{14,15}t ) + +inherit distutils-r1 pypi + +DESCRIPTION="Links recognition library with full unicode support" +HOMEPAGE=" + https://github.com/tsutsu3/linkify-it-py/ + https://pypi.org/project/linkify-it-py/ +" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + +RDEPEND=" + dev-python/uc-micro-py[${PYTHON_USEDEP}] +" + +EPYTEST_PLUGINS=() +distutils_enable_tests pytest diff --git a/sdk_container/src/third_party/portage-stable/dev-python/lxml/Manifest b/sdk_container/src/third_party/portage-stable/dev-python/lxml/Manifest index 07ad2c970af..e59811846f8 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/lxml/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-python/lxml/Manifest @@ -1,2 +1,3 @@ DIST lxml-6.1.1.gh.tar.gz 995492 BLAKE2B 0ddb8b59ad1c6fa237830fed00ee5fd8626930a25baa08ab8343530568ae2917dfc2c8bd72a2f700ac62a1420db628ef63a86178790e4405844ccfd271ca3bdb SHA512 c8bd3825f5b15af8a39b7e0a11b114ad67bcfcaf8fd08928e34918ea194525d26fa498057a30a014e452817d78a839bea7cf5221f089ae8ba0d4f5f4527dc62d DIST lxml-6.1.2.gh.tar.gz 997710 BLAKE2B e2f5176d9e870f2298b7e962c6fe6c672831c11bd67fae4ebdb8f8abe7630ce128792d835236d9b7395a77d888437fb4ecf355811dfc7ba80459eacbc1df1341 SHA512 6352ed0bbfdfa75111b017731a2b522c376d6a620dc954f2636e4038c172c0ef7a54a270486a901c6a0c55d68a09d085f802345e19fa2d3fbca701509df42fac +DIST lxml-6.1.3.gh.tar.gz 998135 BLAKE2B bc4f408dc69b78596d61e168a91b795bb1d2ed3a3bbfc7553d8646689a7d2f72f082363a50fdc3300f207aef9d68446fbcbc5ddfc9edfc11b70b1453ef557435 SHA512 e18963c88d4aae8fba06c7d5d5c8364263eeb3cf8a3f27ea14e1262c6e84449786e5646408066003c1681191001d35bbc766eda7886093903c2777d30d6f82c9 diff --git a/sdk_container/src/third_party/portage-stable/dev-python/lxml/lxml-6.1.3.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/lxml/lxml-6.1.3.ebuild new file mode 100644 index 00000000000..78bb43bd8c7 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-python/lxml/lxml-6.1.3.ebuild @@ -0,0 +1,116 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_EXT=1 +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{12..15} python3_{14,15}t ) + +inherit distutils-r1 optfeature toolchain-funcs + +DESCRIPTION="A Pythonic binding for the libxml2 and libxslt libraries" +HOMEPAGE=" + https://lxml.de/ + https://pypi.org/project/lxml/ + https://github.com/lxml/lxml/ +" +SRC_URI=" + https://github.com/lxml/lxml/archive/${P}.tar.gz + -> ${P}.gh.tar.gz +" +S=${WORKDIR}/lxml-${P} + +LICENSE="BSD ElementTree GPL-2 PSF-2" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" +IUSE="doc examples +threads test" +RESTRICT="!test? ( test )" + +# Note: lib{xml2,xslt} are used as C libraries, not Python modules. +DEPEND=" + >=dev-libs/libxml2-2.10.3:= + >=dev-libs/libxslt-1.1.38 +" +RDEPEND=" + ${DEPEND} +" +BDEPEND=" + virtual/pkgconfig + >=dev-python/cython-3.1.4[${PYTHON_USEDEP}] + doc? ( + $(python_gen_any_dep ' + dev-python/docutils[${PYTHON_USEDEP}] + dev-python/pygments[${PYTHON_USEDEP}] + dev-python/sphinx[${PYTHON_USEDEP}] + dev-python/sphinx-rtd-theme[${PYTHON_USEDEP}] + ') + ) + test? ( + dev-python/cssselect[${PYTHON_USEDEP}] + ) +" + +python_check_deps() { + use doc || return 0 + python_has_version -b "dev-python/docutils[${PYTHON_USEDEP}]" && + python_has_version -b "dev-python/pygments[${PYTHON_USEDEP}]" && + python_has_version -b "dev-python/sphinx[${PYTHON_USEDEP}]" && + python_has_version -b "dev-python/sphinx-rtd-theme[${PYTHON_USEDEP}]" +} + +python_prepare_all() { + # don't use some random SDK on Darwin + sed -i -e '/_ldflags =/s/=.*isysroot.*darwin.*None/= None/' \ + setupinfo.py || die + + distutils-r1_python_prepare_all +} + +python_compile() { + local DISTUTILS_ARGS=( + # by default it adds -w to CFLAGS + --warnings + ) + tc-export PKG_CONFIG + distutils-r1_python_compile +} + +python_compile_all() { + # disable automagic dep on coverage + use doc && emake CYTHON_WITH_COVERAGE= html +} + +python_test() { + local dir=${BUILD_DIR}/test$(python_get_sitedir)/lxml + local -x PATH=${BUILD_DIR}/test/usr/bin:${PATH} + + cp -al "${BUILD_DIR}"/{install,test} || die + cp -al src/lxml/tests "${dir}/" || die + cp -al src/lxml/html/tests "${dir}/html/" || die + mkdir "${dir}"/../../doc || die + # this one needs to be copied, because upstream uses doc/../../../doc + cp -r "${S}"/doc "${dir}"/../../ || die + ln -s "${S}"/doc "${dir}"/../../../../ || die + + "${EPYTHON}" test.py --no-src -vv --all-levels -p || + die "Tests fail on ${EPYTHON}" +} + +python_install_all() { + if use doc; then + local DOCS=( README.rst *.txt doc/*.txt ) + local HTML_DOCS=( doc/html/. ) + fi + if use examples; then + dodoc -r samples + fi + + distutils-r1_python_install_all +} + +pkg_postinst() { + optfeature "Support for BeautifulSoup as a parser backend" dev-python/beautifulsoup4 + optfeature "Translates CSS selectors to XPath 1.0 expressions" dev-python/cssselect + optfeature "Support for lxml.html.clean sanitizer" dev-python/lxml-html-clean +} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/msgpack/Manifest b/sdk_container/src/third_party/portage-stable/dev-python/msgpack/Manifest index 20f8511d9fc..979e9d0746e 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/msgpack/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-python/msgpack/Manifest @@ -2,3 +2,5 @@ DIST msgpack-1.1.2.tar.gz 173581 BLAKE2B f1631eef4699525d58f258194a9ca216294eb0c DIST msgpack-1.1.2.tar.gz.provenance 9256 BLAKE2B 0b8cb372ad31aae1a03e9c9467264b0eea53849a3d291c16426f91eaa8ee61eae69f313da9bad8cd64ed355e787553cfc7deed7aa709671e4296aa153c9c7988 SHA512 64eef61e138039043d7610d3718fb9374bb65704f1c2b7cccabf37c44f316f2cfa9b1695fd5918c1f2b6526332bb570293019a0e59c3aa5f2918905c904b8c53 DIST msgpack-1.2.1.tar.gz 183960 BLAKE2B 3fca10a89d0259ba6bcc26d9e98a69e64b82662f3bec852e26073d581c4df7f6d5f9655d94e23c172d9d8e57de5850da9df87de61fc7ffeae13a9870f21e1488 SHA512 3e018978b2b3ec04508c6b8a12a16daf23e95f7d7c1f846e09e27082197a92566e3c4c5a8a6db51c52b1c8ab66bb55d4d1498373bab99a7fd193efaba53834eb DIST msgpack-1.2.1.tar.gz.provenance 9819 BLAKE2B 2f03d8e995865b73eaf4cf51ba502082f44b16b13960163153e9dfc14019b42fc4678ff7af923642198c7a128afa4388640de4a626c825f82469216fce369cce SHA512 1b9f4202669c4ffa29ef6bb985d860a6b6f58f1b24fd46cc3720eb53beeea629db5d3b627386b2980cb4bcfae51e83d246e0eaceef20b5e92c231f7432d20fac +DIST msgpack-1.2.2.tar.gz 187025 BLAKE2B 7072dad7e36529fb1999c4beeebe714b4120b1fb0ff930f400c379dfccdcb6d7e99233fa222602e3186ddf04b06e3fa8daae0205a4b3b7c847b3a5df3a0a207c SHA512 9cd93a2251328602f6a44a1e110ce637181863508e5a794b78aa78355e0fc129d585766eee8e862aeed9ae5c3f4f7729ca73a618ee30639d31e975e0823b6a38 +DIST msgpack-1.2.2.tar.gz.provenance 9813 BLAKE2B 5960a9b6dbbd7be67f1447cbd7e8eaf099c4c3576aec8e8ec8b52e9b775cd2a40625b2c8ea2bec9aa410d3ce703455e8174e5ad04d79981b32108be45992c976 SHA512 c9e19591ed9f72c1e21226cd02e3db616eda44caeb9cd7845ba83cff0847d435948d4770ef9fe5b746ebc2ee6fb189f3de4efd802d278f82cbb075c478530889 diff --git a/sdk_container/src/third_party/portage-stable/dev-python/msgpack/msgpack-1.2.2.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/msgpack/msgpack-1.2.2.ebuild new file mode 100644 index 00000000000..ebebf739658 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-python/msgpack/msgpack-1.2.2.ebuild @@ -0,0 +1,61 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_EXT=1 +DISTUTILS_USE_PEP517=setuptools +PYPI_VERIFY_REPO=https://github.com/msgpack/msgpack-python +PYTHON_COMPAT=( python3_{12..15} python3_{14..15}t ) + +inherit distutils-r1 pypi + +DESCRIPTION="MessagePack (de)serializer for Python" +HOMEPAGE=" + https://msgpack.org/ + https://github.com/msgpack/msgpack-python/ + https://pypi.org/project/msgpack/ +" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos" +IUSE="+native-extensions" + +# extension code is relying on CPython implementation details +BDEPEND=" + native-extensions? ( + $(python_gen_cond_dep ' + >=dev-python/cython-3.0.8[${PYTHON_USEDEP}] + ' 'python*') + ) +" + +EPYTEST_PLUGINS=() +distutils_enable_tests pytest + +python_prepare_all() { + # Remove pre-generated cython files + rm msgpack/_cmsgpack.c || die + + # native-extensions are always disabled on PyPy + # https://github.com/msgpack/msgpack-python/blob/main/setup.py#L76 + if ! use native-extensions; then + export MSGPACK_PUREPYTHON=1 + fi + + distutils-r1_python_prepare_all +} + +python_configure() { + if [[ ${EPYTHON} == python* && ! -f msgpack/_cmsgpack.c ]] && + use native-extensions + then + cython -v msgpack/_cmsgpack.pyx || die + fi +} + +python_test() { + rm -rf msgpack || die + epytest +} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/packaging/packaging-26.3.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/packaging/packaging-26.3.ebuild index 9f2b636dd3b..1d6a8704c2d 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/packaging/packaging-26.3.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-python/packaging/packaging-26.3.ebuild @@ -19,7 +19,7 @@ HOMEPAGE=" LICENSE="|| ( Apache-2.0 BSD-2 )" SLOT="0" if [[ ${PV} != *_rc* ]]; then - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" + KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" fi RDEPEND=" diff --git a/sdk_container/src/third_party/portage-stable/dev-python/platformdirs/Manifest b/sdk_container/src/third_party/portage-stable/dev-python/platformdirs/Manifest index a0fb51a7193..8e96f9240dc 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/platformdirs/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-python/platformdirs/Manifest @@ -1,6 +1,10 @@ -DIST platformdirs-4.10.0.tar.gz 31224 BLAKE2B 4619bb4609da115660b0747237a4675a148df9a112847cb0b620c2567a24f7d7a85c7e443f92f36c3cd619b31dfacf7a5eaa1dd888548c463c48e28dcd22e178 SHA512 ad3c2dd1d65522be5b5cbd7e22447681ee0a9de80fd3716b64205c229995118ace7e9bd0282e98f9d83106df5d1332bcbebea97bc6433156de22d1e1ef2756f4 -DIST platformdirs-4.10.0.tar.gz.provenance 9894 BLAKE2B 38fc9d69b639f158adc749eabac2c0495f1ce7b7bcc7ec37b95de7e612302b578abf28bdc05a4c0952cc58cd3a45859b1b099d326b67f08b24c120e702b5e05f SHA512 cc3e135570c28ea1bce8447f823723dec2f8e3384b92a598f1b8a5eb521a496a4f2a384331f21f8d6e0e1a03f6d28e54acac293a665cb454fcd338ce547911bc DIST platformdirs-4.10.1.tar.gz 31678 BLAKE2B f856043d7dfd9a1b3e588bd4c5ee4d40edcfe307dd6234b3b21e0d8025e922c383c07535572c2217c04c680a263ff917b172e31c019c6d6155ffd5cf03a1aa0f SHA512 11590c5ede99cf866be4bc6eba7f3c0764b4e2a7d176ba0cb0b967934e0b72388a44e52ff07519637ab87290f7d5aac186be60b58eae65aeb72ca580ac97ff09 DIST platformdirs-4.10.1.tar.gz.provenance 9920 BLAKE2B 514a93e710634d7f9bad01dcb53c7f00c7bf1988247b80d07582596749864647cfc00662de85035a62035b18e3e30c916733d43c540e99fc500c58c3da1a8a6e SHA512 9517b368a04da9b6cf923b96bef99179922cf4e6898cf4d48ff82cc269a6fe1fafbf019c76338d95f848aab628c789139c5768bc337b111b26d0e2ae91bd8b66 DIST platformdirs-4.11.3.tar.gz 33050 BLAKE2B c838822e0d5a9391d13fbf240c3006ade7094c2a2ad7c5b9904fce23c48ea9db6e851d04c887a80f37fee3bd0612e010ae58516751c050fb881c8ec6da1ab22e SHA512 0d90ccbb4f75bc2c0eda42223d475c688c59214fd696ff4690abd022322d9883816bc7c33765da8c9a792afc04ab21faa08c69dcbe027f7cbdcb4087e5baa2a1 DIST platformdirs-4.11.3.tar.gz.provenance 9777 BLAKE2B 9b4f683aaab5b99f085f560e4ff21e3a9533b892e974e8e39aef047ee2021ff416ff88af6db98c6fd284ef592a926b425c8b7c05f5cb0f4b8d5c23bb59ac8229 SHA512 97833d43052e8b2c303f204f8291cfb39bc1b399c2ecfbeabe18b54e5d20bb8920c802013fc43060c9e4f2ed7f359c5a5c763dc8cb14e9ba8bc52f328a64fa34 +DIST platformdirs-4.11.4.tar.gz 34079 BLAKE2B daf5b088aa61382c1cbcbda0eebb23b9b4e7071472589ee1cc61c04f5386952d1be1b3090198104c4749c09c0fe5fcf8677ddfd31c1f8efe34219ef1a9708b3d SHA512 557782bd9f2af016372e9406a05a55194259303ae63ee90f684595f9a5dfbe0cc8ba11252135ebf31cb5a93bef740487581b4ca852f467ef781287cda15e4a0c +DIST platformdirs-4.11.4.tar.gz.provenance 9840 BLAKE2B a0988dc801b4d8bc449aeb7db45e9760e410dc58e9ac8bce7a8e0d48ce2d57deda740312c822b018a517073779af4e105d9f10a5a060eb20465f1ca17d47d71b SHA512 307d1916679a68ec9affd36b1ccd49a331058f87673ab0b630e8b21318561db98aad97d45ee6a0b6d3c9544d557d18330de86718379ccb699432922cd418714e +DIST platformdirs-4.11.5.tar.gz 34823 BLAKE2B f293190f29e9fa5417bd2eb4ce0f1039481abe86729b1a652fabf29e3aa6ad708ed1f962cf96011f764a561d4fb914b6a17baf8f006911fd82a0c99b8826d263 SHA512 6238abd47f5d3ec6f5b87db98bc3a051e521594c280decf3f4f0403e2c43e07fa3b3802d40637b7414d322b8e0ed64853377b0b547a580654a3cbc198bd4f61e +DIST platformdirs-4.11.5.tar.gz.provenance 9871 BLAKE2B 026412ddd8cf20de7dc7b43c2cb02cb4812a537bcba18dcec5680d70ac8bb2deae31798fab48f288009dbf0360f94c72fe04332a38d415bc1cb59353c7de0293 SHA512 69e8fcfb25ac561c65562fa08205876fe47ea59d98f8fa53378871af81a0b213d6f3d13df883b54823687d8e91c031a666fda7588b280aa644ea1c4352c9c812 +DIST platformdirs-4.11.7.tar.gz 35127 BLAKE2B 1cd3f4461c0f1c2c1c7ac62491d23a7d57ad14fb4f1a58f0ce78f72ea6fd9cc7ac2428dad2129a3ca70335377085a7854cd4d45ec229b178c65339377d3f439d SHA512 717cfe7407e3afcbd9a115d4a7758d8e70c96f7b26479c8d3144bc41aebe87852197b534a86c11c0c3ed01687955aacd049c656062fb3ca4e802476872a65197 +DIST platformdirs-4.11.7.tar.gz.provenance 9640 BLAKE2B 2cbc679cbcabea84ba9533d4aedd50a9339f2c727823dab79726aa8d005fb8a4e65995b65b6df3d9924290d4c8f9e3266a459353eb713509af967d4536fe0acd SHA512 814547814683965b3285c82b66747b7c712ef01ec92e90be5ef4b50d9bb0e103cbcdc848dd7b27c2aa95dccbb4f813c64bc3dd76cb51bc9ce69b518cf3540f18 diff --git a/sdk_container/src/third_party/portage-stable/dev-python/platformdirs/platformdirs-4.10.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/platformdirs/platformdirs-4.11.4.ebuild similarity index 84% rename from sdk_container/src/third_party/portage-stable/dev-python/platformdirs/platformdirs-4.10.0.ebuild rename to sdk_container/src/third_party/portage-stable/dev-python/platformdirs/platformdirs-4.11.4.ebuild index 522d7bcb213..42ae74868d3 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/platformdirs/platformdirs-4.10.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-python/platformdirs/platformdirs-4.11.4.ebuild @@ -3,9 +3,9 @@ EAPI=8 -DISTUTILS_USE_PEP517=flit +DISTUTILS_USE_PEP517=flit-core PYPI_VERIFY_REPO=https://github.com/tox-dev/platformdirs -PYTHON_COMPAT=( python3_{11..15} python3_{13..15}t pypy3_11 ) +PYTHON_COMPAT=( python3_{12..15} python3_{14..15}t ) inherit distutils-r1 pypi @@ -17,7 +17,7 @@ HOMEPAGE=" LICENSE="MIT" SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" BDEPEND=" test? ( diff --git a/sdk_container/src/third_party/portage-stable/dev-python/platformdirs/platformdirs-4.11.5.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/platformdirs/platformdirs-4.11.5.ebuild new file mode 100644 index 00000000000..42ae74868d3 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-python/platformdirs/platformdirs-4.11.5.ebuild @@ -0,0 +1,50 @@ +# Copyright 2021-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=flit-core +PYPI_VERIFY_REPO=https://github.com/tox-dev/platformdirs +PYTHON_COMPAT=( python3_{12..15} python3_{14..15}t ) + +inherit distutils-r1 pypi + +DESCRIPTION="A small Python module for determining appropriate platform-specific dirs" +HOMEPAGE=" + https://pypi.org/project/platformdirs/ + https://github.com/tox-dev/platformdirs/ +" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" + +BDEPEND=" + test? ( + dev-python/appdirs[${PYTHON_USEDEP}] + ) +" + +EPYTEST_PLUGINS=( pytest-mock ) +distutils_enable_tests pytest + +src_configure() { + grep -q 'build-backend = "hatchling' pyproject.toml || + die "Upstream changed build-backend, recheck" + # write a custom pyproject.toml to ease setuptools bootstrap + cat > pyproject.toml <<-EOF || die + [build-system] + requires = ["flit_core >=3.2,<4"] + build-backend = "flit_core.buildapi" + + [project] + name = "${PN}" + version = "${PV}" + description = 'A small Python package for determining appropriate platform-specific dirs, e.g. a "user data dir".' + EOF + # sigh + cat > src/platformdirs/version.py <<-EOF || die + __version__ = version = '${PV}' + __version_tuple__ = version_tuple = (${PV//./, }) + EOF +} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/platformdirs/platformdirs-4.11.7.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/platformdirs/platformdirs-4.11.7.ebuild new file mode 100644 index 00000000000..42ae74868d3 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-python/platformdirs/platformdirs-4.11.7.ebuild @@ -0,0 +1,50 @@ +# Copyright 2021-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=flit-core +PYPI_VERIFY_REPO=https://github.com/tox-dev/platformdirs +PYTHON_COMPAT=( python3_{12..15} python3_{14..15}t ) + +inherit distutils-r1 pypi + +DESCRIPTION="A small Python module for determining appropriate platform-specific dirs" +HOMEPAGE=" + https://pypi.org/project/platformdirs/ + https://github.com/tox-dev/platformdirs/ +" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" + +BDEPEND=" + test? ( + dev-python/appdirs[${PYTHON_USEDEP}] + ) +" + +EPYTEST_PLUGINS=( pytest-mock ) +distutils_enable_tests pytest + +src_configure() { + grep -q 'build-backend = "hatchling' pyproject.toml || + die "Upstream changed build-backend, recheck" + # write a custom pyproject.toml to ease setuptools bootstrap + cat > pyproject.toml <<-EOF || die + [build-system] + requires = ["flit_core >=3.2,<4"] + build-backend = "flit_core.buildapi" + + [project] + name = "${PN}" + version = "${PV}" + description = 'A small Python package for determining appropriate platform-specific dirs, e.g. a "user data dir".' + EOF + # sigh + cat > src/platformdirs/version.py <<-EOF || die + __version__ = version = '${PV}' + __version_tuple__ = version_tuple = (${PV//./, }) + EOF +} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/pygments/pygments-2.20.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/pygments/pygments-2.20.0.ebuild index f7a0984deec..72733388670 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/pygments/pygments-2.20.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-python/pygments/pygments-2.20.0.ebuild @@ -19,7 +19,7 @@ HOMEPAGE=" LICENSE="BSD-2" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos" BDEPEND=" test? ( diff --git a/sdk_container/src/third_party/portage-stable/dev-python/setuptools-scm/Manifest b/sdk_container/src/third_party/portage-stable/dev-python/setuptools-scm/Manifest index 51b63d40fc4..3f3c1004ea1 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/setuptools-scm/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-python/setuptools-scm/Manifest @@ -1,8 +1,8 @@ -DIST setuptools_scm-10.0.5.tar.gz 56748 BLAKE2B b41195c9f55f911a8287814ca92216cdc8169f0eec9573f20739d02a2b08fd89eaa268585b589e8e6351e8ec14d1411bf057265c04796891c764abc88a5685bd SHA512 7384b3d27497e298265aadb03dc7edd907c46cce9caf4c086751a84e5ae151e41cd4af7b07e641a5d799374c348585c118bb82a9715568b01a5cc814d71057fa -DIST setuptools_scm-10.0.5.tar.gz.provenance 9960 BLAKE2B a87ce476be89d90cd11ddff5c92bfaae0716f59dd4953f495273cd4a56f1f57f27461fb07c39884ce64c6b8094fa914e2a374580ca301e9b5ac35dc102f61700 SHA512 578aea9cb7238b26fc421fcef9de704598970700967af4f1a94ca9d582a16e408759f2434fe7fa623d69065cca2b795af0eef10ee4faf65fa86bbf84524c82b1 -DIST setuptools_scm-10.1.2.tar.gz 66674 BLAKE2B 236058e5c0ba6299757e3e4693e51ea004eb06d4159a4c4dfc3a1f8af59344772a01ba4dc32cd0e3763e5f55943effd393ccae51901693eb85f8eff891c76d3b SHA512 0791ab22419ef79e5aac1ebb5958a831f08ce0834d5ceab2ec0bdf085c73060d75e81cd6dfce7b29a317a68e444be681465662406247ac3e572a5bf100000362 -DIST setuptools_scm-10.1.2.tar.gz.provenance 10213 BLAKE2B 96096834a2f4cf59f557c7b813adaa4f77f6d9aaacf1695cebeb4a84fe7ff7f26a2c37c20f678fbc8f7bbdb42c255abd6b903310d6369dd36c5429f4513e94b4 SHA512 fa8855840d287a382ecbb8c6292824b11e62640155ffddd178804a0e06374d78b81e6699623fd26613c21f84b47d21a6947f5985b3b2b28be04836c8118b66df DIST setuptools_scm-10.2.1.tar.gz 154237 BLAKE2B 250978fc39815dc05f79aa5da3a688330c5a0a553e62e631f6781dda9551d5b077bb9bd07c70dec0fe340296f66d247a287bfe04dae60051212cd0b11bee1f65 SHA512 9ca752d7b6f56e4ba8d84d619099be04b0711719926e9e0fcbe9776bf42cb9485c78014532d0b787cf625820f664863a086dd7b600e8d1c54ae58ab6725187c0 DIST setuptools_scm-10.2.1.tar.gz.provenance 10217 BLAKE2B 305ce26746d8239bca467956131f6d61b10084218e72e668cdee2108af9c03da6597d663d7bbc8309e056c3865d4808538ac7187c31dcfdeb9f659571754ef4c SHA512 e1620b0da56d77d6ca658e993d7663a86ac3cd5eb7d4e31ce147d156ad3365d922aa28ab42cf61c8c85f0f8e2cc350590d1f5cf4b2a63def8517d963125f870f +DIST setuptools_scm-10.2.2.tar.gz 67111 BLAKE2B ce2f0eb600dbe7c6622bacb7307e8cc49273b516f9b907cb6cc93332c53e1ebdb5eab2e75312632931e7e81d519596dc38a40fb207341882c4aa98a05df3f347 SHA512 6b790910b6658c0843e8dd74ed21a2aa50eee67dbf20648ab7a466f020f871037f7826a0392c6398f515df5e7e57ed7c92bf855245d2e8b6275c73a5147e4dfe +DIST setuptools_scm-10.2.2.tar.gz.provenance 10207 BLAKE2B 4d2aed3ed9bfb79eceeb1ab5dd138afd11452beca54062c7a20523eaef910225e839c3548ef268ff1533697284ccda84fd902641e7c602bb79b5ab49b2103d36 SHA512 93502cdff448756fda9ff9ca45de0480a2250745a5fd63cc57b369d4378baf42755cf942925eb03fff90433b95c603293dd6014c032ccc16fba1edabfbc1bdb7 +DIST setuptools_scm-10.2.3.tar.gz 67696 BLAKE2B 43d36a0ef3221f96d980311b5c4ac884320b7f54665fefe4f56e03ae3172954bd95f29bb881074bbb04f3c248c6140e7281b2ae5232f9fa09770449a5c7e5fcb SHA512 845403e925247c70f9399dc98da08e13fd5bbdbabb339ed380abccc07590eaf35efc592c04f5b8b44e55bbbf63d5c92e423fc12cf06534efafff20fb70c53f57 +DIST setuptools_scm-10.2.3.tar.gz.provenance 10125 BLAKE2B 581394d2844a82bd6f4eabc86a6c77d355a573573140e151a4b0d99525e51ea0df8fec8cbae2c331764f4377b3c4283620d8f1336251218f1c14b58318a2e31a SHA512 304b057feab4715373caff13d24b4599e73711a9de0833b4f0e6422914be997ad63fbb4fb15b14329c03e772c89493c5b68d97d6b0a37e6d99c5907db77c4298 DIST setuptools_scm-9.2.2.tar.gz 203385 BLAKE2B 8577c4c6265ae851212be04b245b3da8b49d541174f5e675dea916c76b3cba5b5ab9f6264a97904e2d5ca02dee4e3f8eb88c9e8badbba2ed53bed531fe9f6b6c SHA512 757ca11a3d13601606b6914ea70e3d271d287f26ada976ec77334fc0f611208669585d2580994f1ddff830cd698a837d3e882dd5cdccdaf9f8eba34fdd8cb708 DIST setuptools_scm-9.2.2.tar.gz.provenance 9705 BLAKE2B b710df7f8cbb324aa2927243ab0416869319813016d64f589b7a9f565576fff58c1aee18da4ea9bc3fb5a969cf74c1fcaa1332812bf88267ec9f2bf437876e53 SHA512 6ac563d0ab5f1afce28976eb030364a451508ec7d47b6e99668c37b8ba09e3b56500b104d62ad6047fad9f6be0b2b6ebea66b561041485b9d15b84c39fe92313 diff --git a/sdk_container/src/third_party/portage-stable/dev-python/setuptools-scm/setuptools-scm-10.2.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/setuptools-scm/setuptools-scm-10.2.1.ebuild index 221cb9f28c4..805a8e888ba 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/setuptools-scm/setuptools-scm-10.2.1.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-python/setuptools-scm/setuptools-scm-10.2.1.ebuild @@ -18,7 +18,7 @@ HOMEPAGE=" LICENSE="MIT" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" # there's an optional dep on rich for cute logs RDEPEND=" diff --git a/sdk_container/src/third_party/portage-stable/dev-python/setuptools-scm/setuptools-scm-10.1.2.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/setuptools-scm/setuptools-scm-10.2.2.ebuild similarity index 83% rename from sdk_container/src/third_party/portage-stable/dev-python/setuptools-scm/setuptools-scm-10.1.2.ebuild rename to sdk_container/src/third_party/portage-stable/dev-python/setuptools-scm/setuptools-scm-10.2.2.ebuild index d814b7862a8..b131085f381 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/setuptools-scm/setuptools-scm-10.1.2.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-python/setuptools-scm/setuptools-scm-10.2.2.ebuild @@ -18,16 +18,18 @@ HOMEPAGE=" LICENSE="MIT" SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~m68k ppc ppc64 ~riscv ~s390 ~sparc x86" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" # there's an optional dep on rich for cute logs RDEPEND=" dev-python/packaging[${PYTHON_USEDEP}] >=dev-python/setuptools-64[${PYTHON_USEDEP}] =dev-python/vcs-versioning-2*[${PYTHON_USEDEP}] + >=dev-python/vcs-versioning-2.3.2[${PYTHON_USEDEP}] " BDEPEND=" =dev-python/vcs-versioning-2*[${PYTHON_USEDEP}] + >=dev-python/vcs-versioning-2.3.2[${PYTHON_USEDEP}] test? ( dev-python/build[${PYTHON_USEDEP}] dev-python/typing-extensions[${PYTHON_USEDEP}] @@ -45,6 +47,8 @@ python_test() { testing_scm/test_functions.py::test_dump_version_mypy testing_scm/test_integration.py::test_xmlsec_download_regression testing_scm/test_regressions.py::test_pip_download + # dependent on ruff version + testing_scm/test_functions.py::test_dump_version_ruff ) if ! has_version "dev-python/pip[${PYTHON_USEDEP}]"; then diff --git a/sdk_container/src/third_party/portage-stable/dev-python/setuptools-scm/setuptools-scm-10.0.5.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/setuptools-scm/setuptools-scm-10.2.3.ebuild similarity index 74% rename from sdk_container/src/third_party/portage-stable/dev-python/setuptools-scm/setuptools-scm-10.0.5.ebuild rename to sdk_container/src/third_party/portage-stable/dev-python/setuptools-scm/setuptools-scm-10.2.3.ebuild index 4d7c9da0714..b131085f381 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/setuptools-scm/setuptools-scm-10.0.5.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-python/setuptools-scm/setuptools-scm-10.2.3.ebuild @@ -6,7 +6,7 @@ EAPI=8 DISTUTILS_USE_PEP517=setuptools PYPI_VERIFY_REPO=https://github.com/pypa/setuptools-scm -PYTHON_COMPAT=( python3_{11..15} python3_{13..15}t pypy3_11 ) +PYTHON_COMPAT=( python3_{12..15} python3_{14..15}t ) inherit distutils-r1 pypi @@ -18,16 +18,18 @@ HOMEPAGE=" LICENSE="MIT" SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~m68k ppc ppc64 ~riscv ~s390 ~sparc x86" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" # there's an optional dep on rich for cute logs RDEPEND=" dev-python/packaging[${PYTHON_USEDEP}] >=dev-python/setuptools-64[${PYTHON_USEDEP}] - >=dev-python/vcs-versioning-1.0.0[${PYTHON_USEDEP}] + =dev-python/vcs-versioning-2*[${PYTHON_USEDEP}] + >=dev-python/vcs-versioning-2.3.2[${PYTHON_USEDEP}] " BDEPEND=" - >=dev-python/vcs-versioning-1.0.0[${PYTHON_USEDEP}] + =dev-python/vcs-versioning-2*[${PYTHON_USEDEP}] + >=dev-python/vcs-versioning-2.3.2[${PYTHON_USEDEP}] test? ( dev-python/build[${PYTHON_USEDEP}] dev-python/typing-extensions[${PYTHON_USEDEP}] @@ -45,6 +47,8 @@ python_test() { testing_scm/test_functions.py::test_dump_version_mypy testing_scm/test_integration.py::test_xmlsec_download_regression testing_scm/test_regressions.py::test_pip_download + # dependent on ruff version + testing_scm/test_functions.py::test_dump_version_ruff ) if ! has_version "dev-python/pip[${PYTHON_USEDEP}]"; then diff --git a/sdk_container/src/third_party/portage-stable/dev-python/snakeoil/Manifest b/sdk_container/src/third_party/portage-stable/dev-python/snakeoil/Manifest index 2e0ccb2fa72..05a81cdc883 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/snakeoil/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-python/snakeoil/Manifest @@ -1,2 +1,6 @@ DIST snakeoil-0.11.4.tar.gz 208686 BLAKE2B 890c953485dc36a46c135ef22966519517c59564f52babe55359ee13626f6414558644c58b09fc1b2dd16e28e552efd8236fc4fdcf720c0429cbad1db9eb68ef SHA512 11c4f0571ca4c0297cc8ce983f1bb9f0d82696e8230d8f0c40da9bfe1cb52a445ba64ca3903ce96fc8f9bad160105f92e7626bb8ea0390c9b3f5234d39d0375c DIST snakeoil-0.11.4.tar.gz.provenance 9701 BLAKE2B 04c4c7afb24bf70f384266322e11cd131fc820aa4ad4fedb05aefc64cf1ef471e27e1f072c32c42444cf1e57d84cdb769f8b406b192af15354057760d0bd1a01 SHA512 4a4cda231e3c12d125871cde42c1b35884a5de093dba1639ef859ab41e098a7f664eea63c9f9c79a4bbcbd6dbdab18ed3b41bb26f1324923215a6c549e8086ba +DIST snakeoil-0.11.5.tar.gz 217382 BLAKE2B eb9aeddd13db012f31632d00b50861cb9c3b9ceae9c76010743fe09b76bf3f66f4c0a9594f1590656798623dfb3aa461cd8e72e9e15bb3140d0e6556093eaec4 SHA512 6315fe261a409f879ac853441f955ebdbd114dcb2995b49da653c5f82e5b320c3cf037fc1978aae83b8e99daed103b26c1441e24db896e88a3d4018a5b52cd1e +DIST snakeoil-0.11.5.tar.gz.provenance 9793 BLAKE2B 0a7c057159eca2b3cfbb13013c67b4525fdd9797f596b3bb62c61d6cbfccc3e7e8f856de152bae2888502d1e7fb88e05a58ee716e24cf4ccbe2291cfe281c6e1 SHA512 e04918ea92f4ce034be9ad1da3e4de08ee7a952a34a32c18ddbabf097f2a74eaf86754058df97cd52e596b08772dba0d71b677336b24c2083a5ddd653cacb3c0 +DIST snakeoil-0.11.6.tar.gz 219046 BLAKE2B f8709dee9f9e55e2a6cd5ebc2106a20a1d16670fb6a11193986970bc2c3e5d5a7914112aaaae13550937a09bb86b15bf1441994d7a8fc2f6a91205bb03af1a50 SHA512 a2e47e815bc8add24d93890c47b64f64de79ce36d9c2a9b3036f4f5cc24b1e59fda3e4e2c6ff4587a93d1d3b720cf2e2b9b39cd0bc725a4d4f679fcc8abf208f +DIST snakeoil-0.11.6.tar.gz.provenance 9699 BLAKE2B ba2a62cc4ba145a2f94c13f33357fcf578fcc8b52bd63bf411890b84d6bc097e2295fe1d97ba572cd4cefdb5e874b6eb09c98155b8e0de1e357654ebb53382fe SHA512 70e2817c03c71b20fc0da47423864dc22d167dac03f4bfca4159ff3395b7b6e47ab4b500426e36e841453aa71ae57f2e84ad08dfa434cda797e6add62322bbc3 diff --git a/sdk_container/src/third_party/portage-stable/dev-python/snakeoil/snakeoil-0.11.5.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/snakeoil/snakeoil-0.11.5.ebuild new file mode 100644 index 00000000000..d5c3f774f53 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-python/snakeoil/snakeoil-0.11.5.ebuild @@ -0,0 +1,36 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=flit +PYPI_VERIFY_REPO=https://github.com/pkgcore/snakeoil +PYTHON_COMPAT=( python3_{12..15} ) +PYTHON_REQ_USE="threads(+)" + +inherit distutils-r1 + +if [[ ${PV} == *9999 ]] ; then + EGIT_REPO_URI="https://anongit.gentoo.org/git/proj/pkgcore/snakeoil.git + https://github.com/pkgcore/snakeoil.git" + inherit git-r3 +else + KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos" + inherit pypi +fi + +DESCRIPTION="misc common functionality and useful optimizations" +HOMEPAGE=" + https://github.com/pkgcore/snakeoil/ + https://pypi.org/project/snakeoil/ +" + +LICENSE="BSD BSD-2 MIT" +SLOT="0" + +BDEPEND=" + test? ( dev-python/sphinx[${PYTHON_USEDEP}] ) +" + +EPYTEST_PLUGINS=() +distutils_enable_tests pytest diff --git a/sdk_container/src/third_party/portage-stable/dev-python/snakeoil/snakeoil-0.11.6.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/snakeoil/snakeoil-0.11.6.ebuild new file mode 100644 index 00000000000..44841966311 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-python/snakeoil/snakeoil-0.11.6.ebuild @@ -0,0 +1,36 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=flit +PYPI_VERIFY_REPO=https://github.com/pkgcore/snakeoil +PYTHON_COMPAT=( python3_{12..15} ) +PYTHON_REQ_USE="threads(+)" + +inherit distutils-r1 + +if [[ ${PV} == *9999 ]] ; then + EGIT_REPO_URI="https://anongit.gentoo.org/git/proj/pkgcore/snakeoil.git + https://github.com/pkgcore/snakeoil.git" + inherit git-r3 +else + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos" + inherit pypi +fi + +DESCRIPTION="misc common functionality and useful optimizations" +HOMEPAGE=" + https://github.com/pkgcore/snakeoil/ + https://pypi.org/project/snakeoil/ +" + +LICENSE="BSD BSD-2 MIT" +SLOT="0" + +BDEPEND=" + test? ( dev-python/sphinx[${PYTHON_USEDEP}] ) +" + +EPYTEST_PLUGINS=() +distutils_enable_tests pytest diff --git a/sdk_container/src/third_party/portage-stable/dev-python/tree-sitter/tree-sitter-0.25.2-r1.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/tree-sitter/tree-sitter-0.25.2-r1.ebuild index 412ba182df7..0de9fa4b554 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/tree-sitter/tree-sitter-0.25.2-r1.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-python/tree-sitter/tree-sitter-0.25.2-r1.ebuild @@ -44,6 +44,7 @@ BDEPEND=" ) " +EPYTEST_PLUGINS=() distutils_enable_tests pytest PATCHES=( diff --git a/sdk_container/src/third_party/portage-stable/dev-python/tree-sitter/tree-sitter-0.26.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/tree-sitter/tree-sitter-0.26.0.ebuild index 63d41ea1bda..7b6b4fa1da6 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/tree-sitter/tree-sitter-0.26.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-python/tree-sitter/tree-sitter-0.26.0.ebuild @@ -40,6 +40,7 @@ BDEPEND=" ) " +EPYTEST_PLUGINS=() distutils_enable_tests pytest PATCHES=( diff --git a/sdk_container/src/third_party/portage-stable/dev-python/trove-classifiers/Manifest b/sdk_container/src/third_party/portage-stable/dev-python/trove-classifiers/Manifest index b395a20e93d..94965125af5 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/trove-classifiers/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-python/trove-classifiers/Manifest @@ -1,12 +1,2 @@ -DIST trove_classifiers-2026.1.14.14.tar.gz 16997 BLAKE2B cdf98684df73c358ab68641a857d869a9c6a7d25b781dd6a0c1a843fb76dbf57e201e9acafc24ff3a3923b5970d4b95196df82369bf1d1d12bfccbae95ef32e5 SHA512 8960c233f6c23d71c33e27d48e0e506314007fb09d5856c4018858f8f28cb4d2e417d16a84e7bb7931489f7f454b41b35a52ff42d88d937fe8447524f07147b5 -DIST trove_classifiers-2026.1.14.14.tar.gz.provenance 9482 BLAKE2B 2cbd78a771b3f8c9da5c6ce0e496cd4168ec5317bd1f6d44ec398e09b2742e18cc2bba5f3754171430a325a4b6e8ddb79478fcef625e56886e09a90bee9f2074 SHA512 c4347b04476c3ee81e8e5cc05610b98b1733bce499f59ea87001df5ae7fb56b50bb5d983473e6f69a5b1ec0137e15ebb9972bfafeef588ccf57bc2eb9271d1b2 -DIST trove_classifiers-2026.4.28.13.tar.gz 17035 BLAKE2B c75222c2f32e597f6246686bda5e0a6b469ab10cdaa460544c3e22fdcb34eddc706bbce27f19f745ee9caefacc7e4660d1c65145590c1c8f5992c1cd9ae8fa88 SHA512 11a852886044658b7cb39f55917811b81edff9ca0798630fad20dd8baa195bea4493c8739d472fd9892eba1022e1bd7d52b952b5df43b04dc635163bcbc91f5b -DIST trove_classifiers-2026.4.28.13.tar.gz.provenance 9063 BLAKE2B e1d464f009e4c82f21f8b0f4457afbdf16aae4eec2ece83420c6ae46e233a32dddd8896917b60fa41220a9176f6e899839a5f4ab3bff9d1a2d8c80b4d0b01e5c SHA512 8a87f7bac5ab26298b88d35548997f581a756060cd3c5072d47237829d70d421bfb25c968ff6d3aa84040a6d86874da17ca692d84d3aacfded94d9b8e9b2f565 -DIST trove_classifiers-2026.5.20.19.tar.gz 17036 BLAKE2B 072c9f570769f17285609ba6003f92fc4e43f3c6deda3b7cdcaa91512e241d6a54005c4b385b72c0d0d252fc5e99feaec02beb3ce7b123c884c01e42371eb40b SHA512 afe24524907f06000ad4c90baa326a42fc5d3b48a9a2773bf93dd97f6e83a393d3b27c9bd6372018ff2b1797b5234822ff0c9a0247bb8d521a368674c68b4413 -DIST trove_classifiers-2026.5.20.19.tar.gz.provenance 9631 BLAKE2B 9891b9858ad49ab4e58684c1788a35446ae1543572482ff4db04630f42499fb604b2c1b684e1b885c6cd510c155e83ed033482c809ab52b9b5f4cb3194f6c4fd SHA512 82990fbf66359b5608c2a286ad65ca08b560c26ba5cc68f53376ab095b6fc0e58505918785f90cb3a49a16ad9ed839c358bdd2eb4cf82e3549c4b3e60cad88db -DIST trove_classifiers-2026.5.22.10.tar.gz 17061 BLAKE2B 5fc50ba21e32ce00d74e3c271635e0eec741205406cde1f9da3883899484bc86cf077b0e3045b5da98aac7a3adf8871d1f04f9dc37ddc7e826f2b5f67e205538 SHA512 e7936f6bc001f11d9212eb68ab6bee2c9264fc6f9e8475d79bca1599fe163e47dc1d28b217f0a444c6a2c24e4398b0a3b4a0cd7b0344cb671eb1d6c348098009 -DIST trove_classifiers-2026.5.22.10.tar.gz.provenance 9157 BLAKE2B fdf62e2effbf0bba485c5268f02a27b6dff50137f5bdf4523e68ec8079a22a148bffa0a9714e7530085ed947a6e2fdaa41422003b69e05c1eb2125cba932ffda SHA512 d47bccb2c46fd51b76835a173af8327628a95397b78c3bc73b7e09a5d7bdbf491c670db5d65d2b8cb3475fbe974d6662764de0a19113b09ab2b14706fa98fe00 -DIST trove_classifiers-2026.5.7.17.tar.gz 17041 BLAKE2B c495ec45bb8f9ace2661d3ad50b75321581845d78ee1eef8b87d7e2bb2c1c316bdf7b19aa2a7eff6983f55dcc23a2df0b6916323fd7bc509ecaaa60f74519f31 SHA512 bc3ea9dd1ad0c110b83a79ec759f12ce4bd0665b220b1d43b04fc438317772f12e203d83163b9a00e3c4600b0dbb0b10c03f6432212aa4ef29a180f516d96764 -DIST trove_classifiers-2026.5.7.17.tar.gz.provenance 9486 BLAKE2B 029612062c1fb148fe13903a0adc14a1078b0d0dc45c8e890dde2e3f715eb94f6c1a7f700580bdc9b5b241b4a35fc2b4f0261d8666ce3a0e1da57e4c1b933cd5 SHA512 7ea52c48c94eda862def238040bdffda67e41c2420dd274bd59a4ddd05c489a02016c5fbed0a805d16681d0803b66607b27bc65b9a8ff5c98d04c5259935a1da DIST trove_classifiers-2026.6.1.19.tar.gz 17059 BLAKE2B ccc2ce8c27b36ebc5fd3c951698ddef25186b0ccced9fd61b6eeeaf04d9f3e4201b8e6dcf4903b2f0ff1b4e46dcfb9a839eadebe6a9740fb2bdd9fb157b67d05 SHA512 3e0d4dabdefe939cf865286ef168e28a0fe7f791fa9321f9822b81bff7c06357ea3eeba9666710867de643ee267ae69f1eb4c20163a9c209b7ba408051cebf08 DIST trove_classifiers-2026.6.1.19.tar.gz.provenance 9832 BLAKE2B f0224488c91fee2b2a3b8a753ca1f7d4ed6de55cc88b2bc8676153f9afb242ceb1084b88bc95176bc7fde62727584f1c2114c20265df0d38ce14dfdd60a6af99 SHA512 57114ca1afbeec73693e6ac362c9c9e43513a187829e93c17afc94bd4aab6bc2ff1d9abb7298cc114eb0903ac1e86a116369daaf25607b7130bfe89d83af8db3 diff --git a/sdk_container/src/third_party/portage-stable/dev-python/trove-classifiers/trove-classifiers-2026.1.14.14.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/trove-classifiers/trove-classifiers-2026.1.14.14.ebuild deleted file mode 100644 index 2301e315624..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/trove-classifiers/trove-classifiers-2026.1.14.14.ebuild +++ /dev/null @@ -1,47 +0,0 @@ -# Copyright 2022-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DISTUTILS_USE_PEP517=flit -PYPI_VERIFY_REPO=https://github.com/pypa/trove-classifiers -PYTHON_COMPAT=( pypy3_11 python3_{11..14} python3_{13,14}t ) - -inherit distutils-r1 pypi - -DESCRIPTION="Canonical source for classifiers on PyPI (pypi.org)" -HOMEPAGE=" - https://github.com/pypa/trove-classifiers/ - https://pypi.org/project/trove-classifiers/ -" - -LICENSE="Apache-2.0" -SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" - -EPYTEST_PLUGINS=() -distutils_enable_tests pytest - -src_configure() { - grep -q 'build-backend = "setuptools' pyproject.toml || - die "Upstream changed build-backend, recheck" - # write a custom pyproject.toml to ease hatchling bootstrap - cat > pyproject.toml <<-EOF || die - [build-system] - requires = ["flit_core >=3.2,<4"] - build-backend = "flit_core.buildapi" - - [project] - name = "trove-classifiers" - version = "${PV}" - description = "Canonical source for classifiers on PyPI (pypi.org)." - - [project.scripts] - trove-classifiers = "trove_classifiers.__main__:cli" - EOF -} - -python_test() { - epytest - "${EPYTHON}" -m tests.lib || die -} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/trove-classifiers/trove-classifiers-2026.4.28.13.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/trove-classifiers/trove-classifiers-2026.4.28.13.ebuild deleted file mode 100644 index 2301e315624..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/trove-classifiers/trove-classifiers-2026.4.28.13.ebuild +++ /dev/null @@ -1,47 +0,0 @@ -# Copyright 2022-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DISTUTILS_USE_PEP517=flit -PYPI_VERIFY_REPO=https://github.com/pypa/trove-classifiers -PYTHON_COMPAT=( pypy3_11 python3_{11..14} python3_{13,14}t ) - -inherit distutils-r1 pypi - -DESCRIPTION="Canonical source for classifiers on PyPI (pypi.org)" -HOMEPAGE=" - https://github.com/pypa/trove-classifiers/ - https://pypi.org/project/trove-classifiers/ -" - -LICENSE="Apache-2.0" -SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" - -EPYTEST_PLUGINS=() -distutils_enable_tests pytest - -src_configure() { - grep -q 'build-backend = "setuptools' pyproject.toml || - die "Upstream changed build-backend, recheck" - # write a custom pyproject.toml to ease hatchling bootstrap - cat > pyproject.toml <<-EOF || die - [build-system] - requires = ["flit_core >=3.2,<4"] - build-backend = "flit_core.buildapi" - - [project] - name = "trove-classifiers" - version = "${PV}" - description = "Canonical source for classifiers on PyPI (pypi.org)." - - [project.scripts] - trove-classifiers = "trove_classifiers.__main__:cli" - EOF -} - -python_test() { - epytest - "${EPYTHON}" -m tests.lib || die -} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/trove-classifiers/trove-classifiers-2026.5.20.19.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/trove-classifiers/trove-classifiers-2026.5.20.19.ebuild deleted file mode 100644 index 4cc695305bf..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/trove-classifiers/trove-classifiers-2026.5.20.19.ebuild +++ /dev/null @@ -1,47 +0,0 @@ -# Copyright 2022-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DISTUTILS_USE_PEP517=flit -PYPI_VERIFY_REPO=https://github.com/pypa/trove-classifiers -PYTHON_COMPAT=( pypy3_11 python3_{11..15} python3_{13..15}t ) - -inherit distutils-r1 pypi - -DESCRIPTION="Canonical source for classifiers on PyPI (pypi.org)" -HOMEPAGE=" - https://github.com/pypa/trove-classifiers/ - https://pypi.org/project/trove-classifiers/ -" - -LICENSE="Apache-2.0" -SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" - -EPYTEST_PLUGINS=() -distutils_enable_tests pytest - -src_configure() { - grep -q 'build-backend = "setuptools' pyproject.toml || - die "Upstream changed build-backend, recheck" - # write a custom pyproject.toml to ease hatchling bootstrap - cat > pyproject.toml <<-EOF || die - [build-system] - requires = ["flit_core >=3.2,<4"] - build-backend = "flit_core.buildapi" - - [project] - name = "trove-classifiers" - version = "${PV}" - description = "Canonical source for classifiers on PyPI (pypi.org)." - - [project.scripts] - trove-classifiers = "trove_classifiers.__main__:cli" - EOF -} - -python_test() { - epytest - "${EPYTHON}" -m tests.lib || die -} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/trove-classifiers/trove-classifiers-2026.5.22.10.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/trove-classifiers/trove-classifiers-2026.5.22.10.ebuild deleted file mode 100644 index 4cc695305bf..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/trove-classifiers/trove-classifiers-2026.5.22.10.ebuild +++ /dev/null @@ -1,47 +0,0 @@ -# Copyright 2022-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DISTUTILS_USE_PEP517=flit -PYPI_VERIFY_REPO=https://github.com/pypa/trove-classifiers -PYTHON_COMPAT=( pypy3_11 python3_{11..15} python3_{13..15}t ) - -inherit distutils-r1 pypi - -DESCRIPTION="Canonical source for classifiers on PyPI (pypi.org)" -HOMEPAGE=" - https://github.com/pypa/trove-classifiers/ - https://pypi.org/project/trove-classifiers/ -" - -LICENSE="Apache-2.0" -SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" - -EPYTEST_PLUGINS=() -distutils_enable_tests pytest - -src_configure() { - grep -q 'build-backend = "setuptools' pyproject.toml || - die "Upstream changed build-backend, recheck" - # write a custom pyproject.toml to ease hatchling bootstrap - cat > pyproject.toml <<-EOF || die - [build-system] - requires = ["flit_core >=3.2,<4"] - build-backend = "flit_core.buildapi" - - [project] - name = "trove-classifiers" - version = "${PV}" - description = "Canonical source for classifiers on PyPI (pypi.org)." - - [project.scripts] - trove-classifiers = "trove_classifiers.__main__:cli" - EOF -} - -python_test() { - epytest - "${EPYTHON}" -m tests.lib || die -} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/trove-classifiers/trove-classifiers-2026.5.7.17.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/trove-classifiers/trove-classifiers-2026.5.7.17.ebuild deleted file mode 100644 index 4cc695305bf..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/trove-classifiers/trove-classifiers-2026.5.7.17.ebuild +++ /dev/null @@ -1,47 +0,0 @@ -# Copyright 2022-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DISTUTILS_USE_PEP517=flit -PYPI_VERIFY_REPO=https://github.com/pypa/trove-classifiers -PYTHON_COMPAT=( pypy3_11 python3_{11..15} python3_{13..15}t ) - -inherit distutils-r1 pypi - -DESCRIPTION="Canonical source for classifiers on PyPI (pypi.org)" -HOMEPAGE=" - https://github.com/pypa/trove-classifiers/ - https://pypi.org/project/trove-classifiers/ -" - -LICENSE="Apache-2.0" -SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" - -EPYTEST_PLUGINS=() -distutils_enable_tests pytest - -src_configure() { - grep -q 'build-backend = "setuptools' pyproject.toml || - die "Upstream changed build-backend, recheck" - # write a custom pyproject.toml to ease hatchling bootstrap - cat > pyproject.toml <<-EOF || die - [build-system] - requires = ["flit_core >=3.2,<4"] - build-backend = "flit_core.buildapi" - - [project] - name = "trove-classifiers" - version = "${PV}" - description = "Canonical source for classifiers on PyPI (pypi.org)." - - [project.scripts] - trove-classifiers = "trove_classifiers.__main__:cli" - EOF -} - -python_test() { - epytest - "${EPYTHON}" -m tests.lib || die -} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/vcs-versioning/Manifest b/sdk_container/src/third_party/portage-stable/dev-python/vcs-versioning/Manifest index 513f83acc9e..ab01c2b4bd5 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/vcs-versioning/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-python/vcs-versioning/Manifest @@ -1,10 +1,10 @@ -DIST vcs_versioning-2.2.2.tar.gz 143135 BLAKE2B a04f2687e8cd34caea599090decb6be74f886020a75582929052cea301a36e086f8ae0917b16007a5cf34103230f99c1bf74f96a45fe7ec4eaa654e9988a36b8 SHA512 b65af99a5078d8b129e34610bbeb7d1fa8f57badb304e00f14c6318a13b2314b7ca739a26fc7729b0d2df6d829769f8b93fee28ae9f0450ab1246a2a4c36fc8f -DIST vcs_versioning-2.2.2.tar.gz.provenance 10134 BLAKE2B 47904c81c239851654bcf0f58326efbaa245fb3e7a673c12e5c8eda809fc403862b4d277d193ad8955072628f5cd7b7127b61fd50142ad9ea85740344df0e509 SHA512 60512914d4701ae0b14896188b0bcce97c9807ef6ae400e60b77225c8bfc6e8c05801a042e4a28cc4ae5f15d832c808bb609d665ec08ba8c6693654c07fcbfb2 DIST vcs_versioning-2.2.3.tar.gz 143653 BLAKE2B a0b1b4a923d775ca62ec60a0c006ee7b98ce047a9eaca2bbda7bdfe81fe945ac1dd4ebeec7f96bb6d8fbe45d1411e149cbbd83174e9f28f58f1937b966d3fbcf SHA512 847d97ffe3262052076876907e2564656dd6caf38ee8587ce2dd6759c22a4f1f7fd052b542ae78aa1baba25dc673e28d1ee8b984272ea25054a92dc94ff53779 DIST vcs_versioning-2.2.3.tar.gz.provenance 10154 BLAKE2B 5fdf3e7f32c762afdcf1bb10b4b4a44c493ffa555a370a356462d54e950f28a7d91a6edf501dd2971967140b76b5356ee538e6ef1de5c26c4bc72be8265daee8 SHA512 d6b3fe687707de6ffbf7dc1036bc94cc1973c555c3e49151ba0393ef9fa13498d7005d71d38202ce0e582f785d76b70d9940f2e1be582f9c22677de4a6508153 DIST vcs_versioning-2.2.4.tar.gz 145243 BLAKE2B 16d123f10c3152f4b544eed83810b3f3696cb0bcd393d987b33dd2fa86455275403e47866c3b3bc95f3e93752eadf3501adc0dcee948d43a944281db3b5f61e6 SHA512 f2fa4536d3f204f291341af3be4ec22c12867fe8bfe4ee5851794bf7a6847c3657f55297a8a42639916115cc4e5b2cb2a14171e3591610dd55ec0035f2c0a347 DIST vcs_versioning-2.2.4.tar.gz.provenance 10291 BLAKE2B e72e9eb5e0d79167d096ab41c490644df810dda5294bec656a3089e46b50aa9ace2abbada783b3d2af16e076e54e836df2a15028a9657661836ad71e029aedd8 SHA512 c13a63480f0985d56a17965cff2e2b41aa1c491be153409d4dcb62a4b578d677718e4c2de98d89b4043d6a547184fda81e15f1ddf663caf95969b77981a2a3ec -DIST vcs_versioning-2.3.0.tar.gz 155949 BLAKE2B 414f9e8b2fedb6bd5cdc12787194fb67323d8e15595afb477b8533f62c1ecda5ec108f0e41daaad09696c6fe62a5c897564c4918dad5f94b1d0ce4d16dbb6ccd SHA512 93f23736f11a79d5b9629de4ce0b8172158096ec701b7e7d3808797f49f06c81218e567640fb73db98ec0b1ec0604545a2db36250e2dbca98a0866f6c4ace86b -DIST vcs_versioning-2.3.0.tar.gz.provenance 10293 BLAKE2B 6f289766625d642f1c87c33a7040ec5b164422ebb1cefadc2bb6281d067f473a49283f5482a7ebd36dcaedfef9a8e7430855c7c8fbd1921a16543ebe76d585fc SHA512 78eb471ee736774c3d8d926f80e7f1e0def8faed82b4843212bf2e9f33d1b2ddade2b0e3dab60dd157b32d2d5ae9c041665b2326f8bfec95af0ad1b95ab3b638 DIST vcs_versioning-2.3.1.tar.gz 156292 BLAKE2B 5d8ceee494d3d048e6e6102455123ff7b41a9ee6237d9788133189f90c77b55995f27a10a4209a87ff6f6e919ed57078b7e05bce3e271b2452d1eabf88bfe527 SHA512 31ea5d94b881eb19c709873086110498c64da4a3525f6eace82fe693ea7243b812f1434c20e08ad8c6ad9c3cb013831ecfe88834739dc60a9c1b78fb746c5dee DIST vcs_versioning-2.3.1.tar.gz.provenance 10199 BLAKE2B 3e9f7ba44894c8a28eadd9cf6d5398dd56ed53a60776e89d0f6eadbe379e0c0f6d973ebaa4580c96e1f7862bf711ab6e1db26f196c5bdff42f8e271ed2c053e5 SHA512 cbafe022dbcf0bc28db3d4e17a272f052ff2ab17c44a155a8e63b11fe640bdbdbec8ab4b9ba3fe8ed9028de3a756190e0b76eed1be692d7234a5086046839a3c +DIST vcs_versioning-2.3.2.tar.gz 149377 BLAKE2B 59ef750eef0f2bfe8a23697830bd1b30aaf262a875f4926d362a71390cec5ef38e7d741587751432ae02df563ec457aff1a72ec385887dce0927bb705197d7d5 SHA512 d50d809d2062e828181180d74f983aa68bb35e3cc985e5a14cad785da47a99c390b44da66ab473bcff22b49d340338ae2027efbb70087938ba23743550eaead0 +DIST vcs_versioning-2.3.2.tar.gz.provenance 10156 BLAKE2B a4ff73c5f12f0da7c2cbd20f9eff44a60fe9e9157a040439059f0e577744b0505b4fb870ad2c9c937dce791e06a366950db382b89e4dc5930fefb91d9e78bd96 SHA512 4f0de3cf863dc730cd5d2ac0e4802fbdd0803749254c4ec0e30095d2619ebcab52bcef284c46d95c6a9c4c679150c370bcd328b611b51e81c1bf8cc28db90195 +DIST vcs_versioning-2.3.4.tar.gz 149647 BLAKE2B 1ca6aea0effd2d743140e23828ed025be1cb22190be1a971f31de912de539f70e1c6316472ed4d0535bee1dfd647771884e4297f6d58fc5f5362cfa932064c7f SHA512 6eebdf57d70f994e9f760c736fd66613eb639d72ee71737d9a8e9fb05edcc07a6532f0ee16dc4f6296f502f903300b86042892f57fe14ee4ab50fe10bc54dd8a +DIST vcs_versioning-2.3.4.tar.gz.provenance 10246 BLAKE2B 562e356ece3ee4061fe5b55ffc9c7f67d621aa903c8cc8ac724789f4e8bae4f7a5044d49fed38130ac74afdaedc4f456af31aa9b9a24759e6580773c0d17d1fa SHA512 48e6903166bce3c2157f5c8622c07d254e3daa9ef14a404780fdc25d7d7bb9eea3a37a8c183c51df9fc1f0ee5d37cbaf8a2fb8454c4ea24f3b0b966f4651e02c diff --git a/sdk_container/src/third_party/portage-stable/dev-python/vcs-versioning/vcs-versioning-2.2.3.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/vcs-versioning/vcs-versioning-2.2.3.ebuild index 3d1be104f17..2e9b08947fc 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/vcs-versioning/vcs-versioning-2.2.3.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-python/vcs-versioning/vcs-versioning-2.2.3.ebuild @@ -17,7 +17,7 @@ HOMEPAGE=" LICENSE="MIT" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~m68k ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~m68k ppc ppc64 ~riscv ~s390 ~sparc x86" RDEPEND=" >=dev-python/packaging-26.2[${PYTHON_USEDEP}] diff --git a/sdk_container/src/third_party/portage-stable/dev-python/vcs-versioning/vcs-versioning-2.2.4.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/vcs-versioning/vcs-versioning-2.2.4.ebuild index e316873cc31..83cf0e292fd 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/vcs-versioning/vcs-versioning-2.2.4.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-python/vcs-versioning/vcs-versioning-2.2.4.ebuild @@ -17,7 +17,7 @@ HOMEPAGE=" LICENSE="MIT" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" RDEPEND=" >=dev-python/packaging-26.2[${PYTHON_USEDEP}] diff --git a/sdk_container/src/third_party/portage-stable/dev-python/vcs-versioning/vcs-versioning-2.3.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/vcs-versioning/vcs-versioning-2.3.2.ebuild similarity index 100% rename from sdk_container/src/third_party/portage-stable/dev-python/vcs-versioning/vcs-versioning-2.3.0.ebuild rename to sdk_container/src/third_party/portage-stable/dev-python/vcs-versioning/vcs-versioning-2.3.2.ebuild diff --git a/sdk_container/src/third_party/portage-stable/dev-python/vcs-versioning/vcs-versioning-2.2.2.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/vcs-versioning/vcs-versioning-2.3.4.ebuild similarity index 81% rename from sdk_container/src/third_party/portage-stable/dev-python/vcs-versioning/vcs-versioning-2.2.2.ebuild rename to sdk_container/src/third_party/portage-stable/dev-python/vcs-versioning/vcs-versioning-2.3.4.ebuild index d94f466afb7..e316873cc31 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/vcs-versioning/vcs-versioning-2.2.2.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-python/vcs-versioning/vcs-versioning-2.3.4.ebuild @@ -17,13 +17,13 @@ HOMEPAGE=" LICENSE="MIT" SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~m68k ppc ppc64 ~riscv ~s390 ~sparc x86" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" RDEPEND=" - >=dev-python/packaging-20[${PYTHON_USEDEP}] + >=dev-python/packaging-26.2[${PYTHON_USEDEP}] " BDEPEND=" - >=dev-python/packaging-20[${PYTHON_USEDEP}] + ${RDEPEND} test? ( >=dev-python/setuptools-scm-10.1.1[${PYTHON_USEDEP}] ) diff --git a/sdk_container/src/third_party/portage-stable/dev-util/gdbus-codegen/gdbus-codegen-2.88.3.ebuild b/sdk_container/src/third_party/portage-stable/dev-util/gdbus-codegen/gdbus-codegen-2.88.3.ebuild index ea8105fa96a..2ae6aeae9be 100644 --- a/sdk_container/src/third_party/portage-stable/dev-util/gdbus-codegen/gdbus-codegen-2.88.3.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-util/gdbus-codegen/gdbus-codegen-2.88.3.ebuild @@ -18,7 +18,7 @@ S="${WORKDIR}/glib-${PV}/gio/gdbus-2.0/codegen" LICENSE="LGPL-2+" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos" +KEYWORDS="~alpha ~amd64 ~arm arm64 ~hppa ~loong ~m68k ~mips ~ppc ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos" RDEPEND=" ${PYTHON_DEPS} diff --git a/sdk_container/src/third_party/portage-stable/dev-util/glib-utils/glib-utils-2.88.3.ebuild b/sdk_container/src/third_party/portage-stable/dev-util/glib-utils/glib-utils-2.88.3.ebuild index 6f114d0567f..98e4db1b59c 100644 --- a/sdk_container/src/third_party/portage-stable/dev-util/glib-utils/glib-utils-2.88.3.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-util/glib-utils/glib-utils-2.88.3.ebuild @@ -14,7 +14,7 @@ LICENSE="LGPL-2.1+" SLOT="0" # /usr/bin utilities that can't be parallel installed by their nature REQUIRED_USE="${PYTHON_REQUIRED_USE}" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha ~amd64 ~arm arm64 ~hppa ~loong ~m68k ~mips ~ppc ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" RDEPEND="${PYTHON_DEPS}" DEPEND="${RDEPEND}" diff --git a/sdk_container/src/third_party/portage-stable/dev-util/maturin/Manifest b/sdk_container/src/third_party/portage-stable/dev-util/maturin/Manifest index b23a422c451..e2933b7c779 100644 --- a/sdk_container/src/third_party/portage-stable/dev-util/maturin/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-util/maturin/Manifest @@ -1,6 +1,4 @@ -DIST maturin-1.13.3-vendor.tar.xz 21271368 BLAKE2B 5f81814e104e108ee79f296e270f91dc5d610188a41b054d61cf14e8cb59ddce1c64d14dd2293b576f6447bfa5c983070e783fb52c1ded265c61d57e42b42508 SHA512 3fe99c4c39af8abc9ebfff8cc6c32e646787ce5d34b54f39854a5206c0844c624ce40a4f1c07329308908109bb1ededae401813bc5a85e93df1d5a87a4b721a4 -DIST maturin-1.13.3.gh.tar.gz 759742 BLAKE2B ce1314d57c089459ecc3cb4290807c5d26fa06766d2473d8474013901a9be6546ab5fac19f77cb6d03b9b457b4ef91c9ffdb8ac40aed50041640bd69d5d9cd8a SHA512 ed5d08ae5598a20a0570c815d162ea1979edbeade4c12c1d346a59b414a84dae63e22246c283549970d3d72a9c6d6bd333f95b24e29cd6714468df5feeff89a7 -DIST maturin-1.14.0-vendor.tar.xz 21276592 BLAKE2B bda69673ef7efd45661f75197d0fc02010419a7df1a676cf3fd3677449878c5c061873de652658a2b0b3b7559f3cc9a4151863d1f600f3f9f3a8284df668cd31 SHA512 b2124cff2e7f555d6636eea1116ba0322677936cc241ce8b22de5b763ff0df80d6ffbd406eec02fd51c4367131488214c1a0a6a8cb4558a417f22986d28c709c -DIST maturin-1.14.0.gh.tar.gz 772414 BLAKE2B 19b5f8d5d56fdf2b9ed6b561018ab29685e672bf10258f6fed8de9e29b7fde291687ac93a2d57802592685bd2f871f571f2b418dc646c26f1262258f84058452 SHA512 7253845280f4d91ac2c5e58da867091f0d6fcbd4f835bde317010f096e9b7b423f8da7c1b084c7078ac2ceaea0b6e7e9a04ecba08d9640857f9f45734fdfa754 DIST maturin-1.14.1-vendor.tar.xz 21282668 BLAKE2B 4a7244b3b4ae6618d940407ef0fe62ec16a236c76663fc580a91fc2c4b9c4e467ee9d70178456117df4720cbb1cb6995f7fea889addcf14ab112c42a3f7635d0 SHA512 179e8fb81ac792ea1a32290316694cef4d8c96053ef2b3058828e44ad4cb31b40a0eea50f057aa600ac9f4d4b4ae6942fce0b016f1ca0b2b0aa8a4a4e81021b1 DIST maturin-1.14.1.gh.tar.gz 777248 BLAKE2B dbfe06929085605a1f7b96e16b2e2afc33c576072a6a017c569198ee3ddb130a0cc79a774ad1e8ee11cc4f31c65d9bf78d0980e0ccd1af5a51752d72d3d73f6d SHA512 db2fd5fa98edafad85e42bd9a5eae45525a706b550604d49a62431211dc14a83841a851ce5a53bfd298ce4a14546efc62e8ef4349946e40d5f688ee16f6b2962 +DIST maturin-1.15.0-vendor.tar.xz 21429492 BLAKE2B 02e2e49ee07b3b5ca40c0e15290abbf4913bc5433602543b8befdf32179cbe514f46341cd0764b0cd341a2c37b4ded02d8d5d39b0584dc43d5fc490b164abf0f SHA512 13894b9b36b59eb5e2c7e89324ee56a6beacf4544fcd753abbe52c2f9a928f4c9b07facb2d9020b9ee50e1d77c682951b3e210729392a684a115a796db7f8884 +DIST maturin-1.15.0.gh.tar.gz 799592 BLAKE2B 8db856be539a5cd5ba8693db0ef9bb99455d51ec9a4bde2a088e37d83739b828cdd56a5b145df0584a12c531560d38096d52d236bb17608b78f149cf52705f87 SHA512 5a863351f3b598a20b572888701921dd42a4ded85028f830f8e0ac7b3c8074b0d8b7cbe397446524501fb2bf7c4e48e217d0789251c9e405d9505fe68ded27cb diff --git a/sdk_container/src/third_party/portage-stable/dev-util/maturin/maturin-1.13.3.ebuild b/sdk_container/src/third_party/portage-stable/dev-util/maturin/maturin-1.13.3.ebuild deleted file mode 100644 index a2eda0116b6..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-util/maturin/maturin-1.13.3.ebuild +++ /dev/null @@ -1,161 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DISTUTILS_USE_PEP517=setuptools -DISTUTILS_UPSTREAM_PEP517=standalone -PYTHON_COMPAT=( pypy3_11 python3_{11..15} ) -RUST_MIN_VER=1.89.0 -inherit cargo distutils-r1 flag-o-matic shell-completion toolchain-funcs - -DESCRIPTION="Build and publish crates with pyo3, rust-cpython and cffi bindings" -HOMEPAGE="https://www.maturin.rs/" -SRC_URI=" - https://github.com/PyO3/maturin/archive/refs/tags/v${PV}.tar.gz - -> ${P}.gh.tar.gz - https://distfiles.gentoo.org/pub/dev/ionen@gentoo.org/${P}-vendor.tar.xz -" -# ^ tarball also includes test-crates' Cargo.lock(s) crates for tests - -LICENSE="|| ( Apache-2.0 MIT ) doc? ( Apache-2.0 OFL-1.1 )" -LICENSE+=" - 0BSD Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD - CDLA-Permissive-2.0 ISC MIT MIT-0 MPL-2.0 openssl Unicode-3.0 ZLIB - BZIP2 -" # crates -SLOT="0" -KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" -IUSE="doc +ssl test" -RESTRICT="!test? ( test )" - -RDEPEND=" - app-arch/xz-utils - app-arch/zstd:= - ssl? ( dev-libs/openssl:= ) -" -DEPEND="${RDEPEND}" -BDEPEND=" - virtual/pkgconfig - doc? ( >=app-text/mdbook-0.5 ) - test? ( - $(python_gen_cond_dep 'dev-python/cffi[${PYTHON_USEDEP}]' 'python*') - dev-python/boltons[${PYTHON_USEDEP}] - dev-python/virtualenv[${PYTHON_USEDEP}] - dev-vcs/git - elibc_musl? ( dev-util/patchelf ) - ) -" - -QA_FLAGS_IGNORED="usr/bin/${PN}" - -src_prepare() { - distutils-r1_src_prepare - - # we build the Rust executable (just once) via cargo_src_compile - sed -i -e '/setuptools_rust/d' -e '/rust_extensions/d' setup.py || die - - if use test; then - # used to prevent use of network during tests, and silence pip - # if it finds unrelated issues with system packages (bug #913613) - cat > "${T}"/pip.conf <<-EOF || die - [global] - quiet = 2 - - [install] - no-index = yes - no-dependencies = yes - EOF - - # uv does not work easily w/ network-sandbox, force virtualenv - sed -i 's/"uv"/"uv-not-found"/' tests/common/mod.rs || die - - # needed by several sdist:: tests - git init -q || die - git config --global user.email "larry@gentoo.org" || die - git config --global user.name "Larry the Cow" || die - git add . || die - git commit -qm init || die - - fi -} - -src_configure() { - export OPENSSL_NO_VENDOR=1 - export ZSTD_SYS_USE_PKG_CONFIG=1 - - # https://github.com/rust-lang/stacker/issues/79 - use s390 && ! is-flagq '-march=*' && - append-cflags $(test-flags-CC -march=z10) - - local myfeatures=( - # like release.yml + native-tls for better platform support than rustls - full - password-storage - $(usev ssl native-tls) - ) - - cargo_src_configure --no-default-features -} - -python_compile_all() { - cargo_src_compile - - use !doc || mdbook build -d "${T}"/html guide || die - - if ! tc-is-cross-compiler; then - local maturin=$(cargo_target_dir)/maturin - "${maturin}" completions bash > "${T}"/${PN} || die - "${maturin}" completions fish > "${T}"/${PN}.fish || die - "${maturin}" completions zsh > "${T}"/_${PN} || die - else - ewarn "shell completion files were skipped due to cross-compilation" - fi -} - -python_test() { - local -x MATURIN_TEST_PYTHON=${EPYTHON} - local -x PIP_CONFIG_FILE=${T}/pip.conf - local -x VIRTUALENV_SYSTEM_SITE_PACKAGES=1 - - # need this for (new) python versions not yet recognized by pyo3 - local -x PYO3_USE_ABI3_FORWARD_COMPATIBILITY=1 - - local CARGO_SKIP_TESTS=( - # picky cli output test that easily benignly fail (bug #937992) - cli_tests - # fragile depending on rust version, also wants libpypy*-c.so for pypy - errors::pyo3_no_extension_module - # fails for unsupported rust targets, non-issue here (bug #973104) - errors::pypi_compatibility_linux_tag - # unimportant tests that require uv, and not obvious to get it - # to work with network-sandbox (not worth the trouble) - develop::develop_uv_cases::case_1_hello_world - develop::develop_uv_cases::case_2_pyo3_ffi_pure - # compliance tests using zig (if present) need old libc (bug #946967) - integration::integration_cases::case_07_cffi_mixed_py_subdir - integration::integration_cases::case_16_pyo3_stub_generation_zig - # avoid need for wasm over a single hello world test - integration::integration_wasm_hello_world - # these currently attempt to install tomli regardless of python version - pep517::pep517_default_profile - pep517::pep517_editable_profile - # unimportant and simpler to skip, does not work with just `git init` - sdist::lib_with_parent_workspace_git_dep_sdist - ) - - cargo_src_test -} - -python_install_all() { - dobin "$(cargo_target_dir)"/maturin - - dodoc Changelog.md README.md - use doc && dodoc -r "${T}"/html - - if ! tc-is-cross-compiler; then - dobashcomp "${T}"/${PN} - dofishcomp "${T}"/${PN}.fish - dozshcomp "${T}"/_${PN} - fi -} diff --git a/sdk_container/src/third_party/portage-stable/dev-util/maturin/maturin-1.14.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-util/maturin/maturin-1.15.0.ebuild similarity index 88% rename from sdk_container/src/third_party/portage-stable/dev-util/maturin/maturin-1.14.0.ebuild rename to sdk_container/src/third_party/portage-stable/dev-util/maturin/maturin-1.15.0.ebuild index a48ed8b2042..bef7bfbf6f3 100644 --- a/sdk_container/src/third_party/portage-stable/dev-util/maturin/maturin-1.14.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-util/maturin/maturin-1.15.0.ebuild @@ -5,7 +5,7 @@ EAPI=8 DISTUTILS_USE_PEP517=setuptools DISTUTILS_UPSTREAM_PEP517=standalone -PYTHON_COMPAT=( pypy3_11 python3_{11..15} ) +PYTHON_COMPAT=( python3_{12..15} python3_{14..15}t ) RUST_MIN_VER=1.89.0 inherit cargo distutils-r1 flag-o-matic shell-completion toolchain-funcs @@ -39,8 +39,8 @@ BDEPEND=" virtual/pkgconfig doc? ( >=app-text/mdbook-0.5 ) test? ( - $(python_gen_cond_dep 'dev-python/cffi[${PYTHON_USEDEP}]' 'python*') dev-python/boltons[${PYTHON_USEDEP}] + dev-python/cffi[${PYTHON_USEDEP}] dev-python/virtualenv[${PYTHON_USEDEP}] dev-vcs/git elibc_musl? ( dev-util/patchelf ) @@ -128,10 +128,12 @@ python_test() { errors::pyo3_no_extension_module # fails for unsupported rust targets, non-issue here (bug #973104) errors::pypi_compatibility_linux_tag - # unimportant tests that require uv, and not obvious to get it - # to work with network-sandbox (not worth the trouble) + # minor tests that require pip or uv, and are a hassle with sandbox + develop::develop_pip_cases::case_01_pyo3_pure + develop::develop_pip_cases::case_12_pyo3_pure_with_dependency_group develop::develop_uv_cases::case_1_hello_world develop::develop_uv_cases::case_2_pyo3_ffi_pure + develop::develop_uv_cases::case_3_pyo3_pure_with_dependency_group # compliance tests using zig (if present) need old libc (bug #946967) integration::integration_cases::case_07_cffi_mixed_py_subdir integration::integration_cases::case_16_pyo3_stub_generation_zig @@ -140,10 +142,19 @@ python_test() { # these currently attempt to install tomli regardless of python version pep517::pep517_default_profile pep517::pep517_editable_profile + # has troublesome requirements and is unimportant for us + pgo::pgo_pyo3_mixed # unimportant and simpler to skip, does not work with just `git init` sdist::lib_with_parent_workspace_git_dep_sdist ) + if [[ ${EPYTHON} == *t ]]; then + CARGO_SKIP_TESTS+=( + # incompatible with free-threaded CPython + develop::develop_pip_cases::case_02_pyo3_mixed + ) + fi + cargo_src_test } diff --git a/sdk_container/src/third_party/portage-stable/dev-util/pkgcheck/Manifest b/sdk_container/src/third_party/portage-stable/dev-util/pkgcheck/Manifest index 3ac0e8db27f..8cdcc5e5fb7 100644 --- a/sdk_container/src/third_party/portage-stable/dev-util/pkgcheck/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-util/pkgcheck/Manifest @@ -1 +1,2 @@ DIST pkgcheck-0.10.42.tar.gz 422183 BLAKE2B 88afbf4b4a9ea9accb447e17eb4b16ae5960fadef8d14f4c30478e06df43aaa226066e5bf9ea90122f21b0a21caf4908e44069d41254726de8c90b302dacc60b SHA512 a2a30fd2757216a865dce76dd05190706e15ccd2682337e757461184abf3ac5e4ee450d6007820248c55052c1591c534cda94ea06cc29171c876a56ac25de5f8 +DIST pkgcheck-0.10.43.tar.gz 430787 BLAKE2B 4d1d1b2bd5dbd9a05c026796c4053ee3b26b98ac857978cd7820cea2d4b0ad9bbdb001baaed46e8574ebbd9b39497c9448e3381d96d748cad76560e58a094d32 SHA512 73987234d6404dfa61f7019b380e76b729200f92b168ca38de1d7f8e6c968c42d471e4090bee94d4e7abbab6dcae6888db953f075c8345eca03714e521d714d2 diff --git a/sdk_container/src/third_party/portage-stable/dev-util/pkgcheck/files/pkgcheck-0.10.40-py315.patch b/sdk_container/src/third_party/portage-stable/dev-util/pkgcheck/files/pkgcheck-0.10.40-py315.patch deleted file mode 100644 index c2db4faadad..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-util/pkgcheck/files/pkgcheck-0.10.40-py315.patch +++ /dev/null @@ -1,43 +0,0 @@ -https://github.com/pkgcore/pkgcheck/issues/787 -https://github.com/pkgcore/pkgcheck/commit/d649977e79984afca90c61315fcab89cb8f9ef6a - -From d649977e79984afca90c61315fcab89cb8f9ef6a Mon Sep 17 00:00:00 2001 -From: Arthur Zamarin -Date: Sun, 5 Jul 2026 22:14:30 +0300 -Subject: [PATCH] tests: replace deprecated Loader.load_module with exec_module - -load_module() was removed in Python 3.15, breaking test_scan_repo[eclass]. -Use the recommended spec_from_loader + module_from_spec + exec_module API. - -Resolves: https://github.com/pkgcore/pkgcheck/issues/787 -Signed-off-by: Arthur Zamarin ---- - tests/scripts/test_pkgcheck_scan.py | 8 +++++--- - 1 file changed, 5 insertions(+), 3 deletions(-) - -diff --git a/tests/scripts/test_pkgcheck_scan.py b/tests/scripts/test_pkgcheck_scan.py -index 7aee972e8..11deb686b 100644 ---- a/tests/scripts/test_pkgcheck_scan.py -+++ b/tests/scripts/test_pkgcheck_scan.py -@@ -1,5 +1,6 @@ - import importlib - import importlib.machinery -+import importlib.util - import io - import os - import pathlib -@@ -608,9 +609,10 @@ def _load_expected_data(self, base: pathlib.Path) -> _expected_data_result: - with (custom_handler_path := base / "handler.py").open(): - # We can't import since it's not a valid python directory layout, nor do - # want to pollute the namespace. -- module = importlib.machinery.SourceFileLoader( -- "handler", str(custom_handler_path) -- ).load_module() -+ loader = importlib.machinery.SourceFileLoader("handler", str(custom_handler_path)) -+ spec = importlib.util.spec_from_loader("handler", loader) -+ module = importlib.util.module_from_spec(spec) -+ loader.exec_module(module) - if ( - custom_handler := typing.cast( - typing.Callable[[Result], bool], getattr(module, "handler") - diff --git a/sdk_container/src/third_party/portage-stable/dev-util/pkgcheck/pkgcheck-0.10.43.ebuild b/sdk_container/src/third_party/portage-stable/dev-util/pkgcheck/pkgcheck-0.10.43.ebuild new file mode 100644 index 00000000000..64f7547482c --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-util/pkgcheck/pkgcheck-0.10.43.ebuild @@ -0,0 +1,99 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=standalone +PYTHON_COMPAT=( python3_{12..15} ) +inherit elisp-common distutils-r1 optfeature + +if [[ ${PV} == *9999 ]] ; then + EGIT_REPO_URI="https://anongit.gentoo.org/git/proj/pkgcore/pkgcheck.git + https://github.com/pkgcore/pkgcheck.git" + inherit git-r3 +else + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos" + inherit pypi +fi + +DESCRIPTION="pkgcore-based QA utility for ebuild repos" +HOMEPAGE="https://github.com/pkgcore/pkgcheck" + +LICENSE="BSD MIT" +SLOT="0" +IUSE="emacs" + +if [[ ${PV} == *9999 ]]; then + RDEPEND=" + ~dev-python/snakeoil-9999[${PYTHON_USEDEP}] + ~sys-apps/pkgcore-9999[${PYTHON_USEDEP}]" +else + RDEPEND=" + >=dev-python/snakeoil-0.11.6[${PYTHON_USEDEP}] + >=sys-apps/pkgcore-0.12.42[${PYTHON_USEDEP}]" +fi +RDEPEND+=" + app-arch/zstd + >=dev-libs/tree-sitter-bash-0.25.1[python,${PYTHON_USEDEP}] + dev-python/charset-normalizer[${PYTHON_USEDEP}] + dev-python/lxml[${PYTHON_USEDEP}] + dev-python/pathspec[${PYTHON_USEDEP}] + >=dev-python/tree-sitter-0.25.2[${PYTHON_USEDEP}] + emacs? ( + >=app-editors/emacs-24.1:* + app-emacs/ebuild-mode + app-emacs/flycheck + ) +" +BDEPEND="${RDEPEND} + >=dev-python/flit-core-3.8[${PYTHON_USEDEP}] + test? ( + dev-python/pytest[${PYTHON_USEDEP}] + dev-python/requests[${PYTHON_USEDEP}] + dev-vcs/git + ) +" + +SITEFILE="50${PN}-gentoo.el" + +EPYTEST_PLUGINS=( pkgcore ) +distutils_enable_tests pytest + +src_prepare() { + distutils-r1_src_prepare + + # unpin dependencies + sed -i -e 's:~=:>=:' pyproject.toml || die +} + +src_compile() { + distutils-r1_src_compile + + if use emacs ; then + pushd "${S}"/contrib/emacs >/dev/null || die + elisp-compile *.el + popd >/dev/null || die + fi +} + +python_install_all() { + local DOCS=( NEWS.rst ) + [[ ${PV} == *9999 ]] || doman build/sphinx/man/* + distutils-r1_python_install_all + + if use emacs ; then + elisp-install ${PN} "${S}"/contrib/emacs/*.el{,c} + elisp-site-file-install "${FILESDIR}/${SITEFILE}" + fi +} + +pkg_postinst() { + use emacs && elisp-site-regen + + optfeature "Network check support" dev-python/requests + optfeature "Perl module version check support" dev-perl/Gentoo-PerlMod-Version +} + +pkg_postrm() { + use emacs && elisp-site-regen +} diff --git a/sdk_container/src/third_party/portage-stable/dev-util/pkgcheck/pkgcheck-9999.ebuild b/sdk_container/src/third_party/portage-stable/dev-util/pkgcheck/pkgcheck-9999.ebuild index fa6ab843f53..64f7547482c 100644 --- a/sdk_container/src/third_party/portage-stable/dev-util/pkgcheck/pkgcheck-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-util/pkgcheck/pkgcheck-9999.ebuild @@ -29,8 +29,8 @@ if [[ ${PV} == *9999 ]]; then ~sys-apps/pkgcore-9999[${PYTHON_USEDEP}]" else RDEPEND=" - >=dev-python/snakeoil-0.11.2[${PYTHON_USEDEP}] - >=sys-apps/pkgcore-0.12.36[${PYTHON_USEDEP}]" + >=dev-python/snakeoil-0.11.6[${PYTHON_USEDEP}] + >=sys-apps/pkgcore-0.12.42[${PYTHON_USEDEP}]" fi RDEPEND+=" app-arch/zstd diff --git a/sdk_container/src/third_party/portage-stable/dev-util/pkgconf/Manifest b/sdk_container/src/third_party/portage-stable/dev-util/pkgconf/Manifest index 497b626e0de..ea08fcdf965 100644 --- a/sdk_container/src/third_party/portage-stable/dev-util/pkgconf/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-util/pkgconf/Manifest @@ -3,3 +3,4 @@ DIST pkgconf-3.0.3.tar.xz 415512 BLAKE2B 1de3b5f81b1bf291c3861c39244e2020de53330 DIST pkgconf-3.0.4.tar.xz 418324 BLAKE2B 19dc43450844eb967b0b7a05242603070cc0c2bbc24d7cf29980f20c3e4b9fe6e652d48c0d4afd040dc3fb87b1816bd97d08211fd8a68a217493f74349d282bb SHA512 0ed682acf6bf08d40f1653217ce637f6e30a40f09598ef0b9aebe3f27d46d953897e7ff876feaa6b2d6c583a770ef9625ba7690bb7484dcf40afadceb02c3886 DIST pkgconf-3.0.5.tar.xz 426972 BLAKE2B c271d6afcc37faebc141156c20fff3305cd1b23e5f0c92f6d7e295d6f1547697e5c17e7bf0a55fc94ad21edab0a1d9f004537397d6d98101282863b62826d4d6 SHA512 5f4559697ec1849771eefaeb77a3fea7caa638b83d381e6e2f913e3f053fa1ae796f18e4360d3a37bc1a17999f043ea244e91cadd5f3c170d50c48088e4c1a55 DIST pkgconf-3.0.6.tar.xz 428124 BLAKE2B 14c9924a945e8e8a8e2aadee9f7bde307ba90bcb96db60437d641f81e0752214f49ba6d6423f671a2ada2a383e558e8d96ff6820cf641e14cd2f4439892e97b9 SHA512 7fb067de935ed633bf0479a69b8bb689583487e1fb13501d05b787a3b3004d0b4b3c5194252e8924b18b8e35fb38e1388f86541c17db81fd5c1d94584e2e1140 +DIST pkgconf-3.0.7.tar.xz 427648 BLAKE2B 650ba75df56c8c0428ef361428c888b2672c201ae4443e12d126f840ef891430a6390615f48e09eaa534c080bc4fdbc09d25ec72c9999890e6a7aee8f0829ae3 SHA512 4cbd4eba6068f2783a4a6e39f4e4679b90ab8424cef3d51901db5221952ab02152bb79ac8e4801923467d97257202b0722e0a85a7955262fe406a9121a124ac0 diff --git a/sdk_container/src/third_party/portage-stable/dev-util/pkgconf/pkgconf-3.0.7.ebuild b/sdk_container/src/third_party/portage-stable/dev-util/pkgconf/pkgconf-3.0.7.ebuild new file mode 100644 index 00000000000..d77151edc86 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-util/pkgconf/pkgconf-3.0.7.ebuild @@ -0,0 +1,68 @@ +# Copyright 2012-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit multilib multilib-minimal + +if [[ ${PV} == 9999 ]] ; then + inherit autotools git-r3 + EGIT_REPO_URI="https://github.com/pkgconf/pkgconf" +else + SRC_URI="https://distfiles.ariadne.space/${PN}/${P}.tar.xz" + + if [[ $(ver_cut 3) -lt 90 ]] ; then + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" + fi +fi + +DESCRIPTION="pkg-config compatible replacement with no dependencies other than C99" +HOMEPAGE="https://github.com/pkgconf/pkgconf" + +LICENSE="ISC" +SLOT="0/8" +IUSE="+native-symlinks" + +RDEPEND="!dev-util/pkgconfig" + +src_prepare() { + default + + [[ ${PV} == 9999 ]] && eautoreconf + + MULTILIB_CHOST_TOOLS=( + /usr/bin/pkgconf$(get_exeext) + /usr/bin/pkg-config$(get_exeext) + ) +} + +multilib_src_configure() { + local myeconfargs=( + --with-system-includedir="${EPREFIX}/usr/include" + --with-system-libdir="${EPREFIX}/$(get_libdir):${EPREFIX}/usr/$(get_libdir)" + ) + + ECONF_SOURCE="${S}" econf "${myeconfargs[@]}" +} + +multilib_src_test() { + unset PKG_CONFIG_LIBDIR PKG_CONFIG_PATH + default +} + +multilib_src_install() { + default + + dosym pkgconf$(get_exeext) /usr/bin/pkg-config$(get_exeext) + dosym pkgconf.1 /usr/share/man/man1/pkg-config.1 +} + +multilib_src_install_all() { + einstalldocs + + if ! use native-symlinks; then + rm "${ED}"/usr/bin/{pkgconf,pkg-config}$(get_exeext) || die + fi + + find "${ED}" -type f -name '*.la' -delete || die +} diff --git a/sdk_container/src/third_party/portage-stable/dev-vcs/git/git-2.55.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-vcs/git/git-2.55.0.ebuild index ed400d0e4ed..00523906b54 100644 --- a/sdk_container/src/third_party/portage-stable/dev-vcs/git/git-2.55.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-vcs/git/git-2.55.0.ebuild @@ -6,7 +6,7 @@ EAPI=8 GENTOO_DEPEND_ON_PERL=no # bug #329479: git-remote-testgit is not multiple-version aware -PYTHON_COMPAT=( python3_{11..14} ) +PYTHON_COMPAT=( python3_{12..14} ) CARGO_OPTIONAL=1 inherit cargo flag-o-matic toolchain-funcs perl-module shell-completion inherit optfeature plocale python-single-r1 systemd meson @@ -51,7 +51,7 @@ if [[ ${PV} != *9999 ]]; then SRC_URI+=" doc? ( ${SRC_URI_KORG}/${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX} )" if [[ ${PV} != *_rc* ]] ; then - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" + KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ~ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" fi fi diff --git a/sdk_container/src/third_party/portage-stable/eclass/distutils-r1.eclass b/sdk_container/src/third_party/portage-stable/eclass/distutils-r1.eclass index 9141ec8e76b..e53499cb4b1 100644 --- a/sdk_container/src/third_party/portage-stable/eclass/distutils-r1.eclass +++ b/sdk_container/src/third_party/portage-stable/eclass/distutils-r1.eclass @@ -288,11 +288,9 @@ _distutils_set_globals() { if [[ ! ${DISTUTILS_OPTIONAL} ]]; then RDEPEND="${PYTHON_DEPS} ${rdep}" BDEPEND="${PYTHON_DEPS} ${bdep}" + # needed to get sysconfigdata for cross builds + DEPEND="${PYTHON_DEPS}" REQUIRED_USE=${PYTHON_REQUIRED_USE} - - if [[ ${DISTUTILS_EXT} ]]; then - DEPEND="${PYTHON_DEPS}" - fi fi if [[ ${DISTUTILS_EXT} ]]; then @@ -945,6 +943,15 @@ distutils_wheel_install() { --optimize=all "${wheel}" ) + # --verify-tags is reliable only for native builds. + # packaging is a PDEP, so make sure it got installed/upgraded first. + # 26.1 ensures abi3t tags are supported. + if [[ -z ${SYSROOT} ]] && + has_version ">=dev-python/gpep517-22[${PYTHON_USEDEP}]" && + has_version ">=dev-python/packaging-26.1[${PYTHON_USEDEP}]" + then + cmd+=( --verify-tags ) + fi printf '%s\n' "${cmd[*]}" "${cmd[@]}" || die "Wheel install failed" @@ -1037,11 +1044,6 @@ distutils_pep517_install() { meson-python) # variables defined by setup_meson_src_configure local MESONARGS=() BOOST_INCLUDEDIR BOOST_LIBRARYDIR NM READELF - # it also calls filter-lto - local x - for x in $(all-flag-vars); do - local -x "${x}=${!x}" - done setup_meson_src_configure "${DISTUTILS_ARGS[@]}" @@ -1118,30 +1120,36 @@ distutils_pep517_install() { fi ;; sip) - if [[ -n ${DISTUTILS_ARGS[@]} ]]; then - # NB: for practical reasons, we support only --foo=bar, - # not --foo bar - local arg - for arg in "${DISTUTILS_ARGS[@]}"; do - [[ ${arg} != -* ]] && - die "Bare arguments in DISTUTILS_ARGS unsupported: ${arg}" - done + # NB: for practical reasons, we support only --foo=bar, + # not --foo bar + local arg + for arg in "${DISTUTILS_ARGS[@]}"; do + [[ ${arg} != -* ]] && + die "Bare arguments in DISTUTILS_ARGS unsupported: ${arg}" + done - config_settings=$( - "${EPYTHON}" - "${DISTUTILS_ARGS[@]}" <<-EOF || die - import collections - import json - import sys + local sip_args=( + # sip adds manylinux to tags by default which is wrong + # without a curated environment and causes problems on + # musl with gpep517's --verify-tags + --no-manylinux + "${DISTUTILS_ARGS[@]}" + ) - args = collections.defaultdict(list) - for arg in (x.split("=", 1) for x in sys.argv[1:]): \ - args[arg[0]].extend( - [arg[1]] if len(arg) > 1 else []) + config_settings=$( + "${EPYTHON}" - "${sip_args[@]}" <<-EOF || die + import collections + import json + import sys - print(json.dumps(args)) - EOF - ) - fi + args = collections.defaultdict(list) + for arg in (x.split("=", 1) for x in sys.argv[1:]): \ + args[arg[0]].extend( + [arg[1]] if len(arg) > 1 else []) + + print(json.dumps(args)) + EOF + ) ;; *) [[ -n ${DISTUTILS_ARGS[@]} ]] && @@ -1155,11 +1163,6 @@ distutils_pep517_install() { die "DISTUTILS_CONFIG_SETTINGS_JSON supported only for standalone backends" fi - # https://pyo3.rs/latest/building-and-distribution.html#cross-compiling - if tc-is-cross-compiler; then - local -x PYO3_CROSS_LIB_DIR=${SYSROOT}/$(python_get_stdlib) - fi - local build_backend=$(_distutils-r1_get_backend) einfo " Building the wheel for ${PWD#${WORKDIR}/} via ${build_backend}" cmd+=( @@ -1173,6 +1176,9 @@ distutils_pep517_install() { cmd+=( --config-json "${config_settings}" ) fi if [[ -n ${SYSROOT} ]]; then + # https://pyo3.rs/latest/building-and-distribution.html#cross-compiling + local -x PYO3_CROSS_LIB_DIR=${SYSROOT}/$(python_get_stdlib) + cmd+=( --sysroot "${SYSROOT}" ) fi printf '%s\n' "${cmd[*]}" @@ -1188,12 +1194,99 @@ distutils_pep517_install() { # @VARIABLE: DISTUTILS_WHEELS # @DESCRIPTION: -# An associative array of wheels created as a result -# of distutils-r1_python_compile invocations, mapped to the source -# directories. Note that this includes only wheels implicitly created -# by the eclass, and not wheels created as a result of direct -# distutils_pep517_install calls in the ebuild. -declare -g -A DISTUTILS_WHEELS=() +# An array of paths to wheels that were created as a result +# of distutils-r1_python_compile invocations. Note that this includes +# only wheels implicitly created by the eclass, and not wheels created +# as a result of direct distutils_pep517_install calls in the ebuild. +declare -g -a DISTUTILS_WHEELS=() + +# @VARIABLE: DISTUTILS_WHEEL_PATHS +# @DESCRIPTION: +# Mapping from wheels in DISTUTILS_WHEELS to corresponding source +# directories. +declare -g -A DISTUTILS_WHEEL_PATHS=() + +# @FUNCTION: _distutils-r1_find_best_wheel +# @INTERNAL +# @DESCRIPTION: +# Find the best reusable wheel in DISTUTILS_WHEELS, and print its path. +# If no wheel is reusable, returns empty. +_distutils-r1_find_best_wheel() { + local best_wheel= whl + for whl in "${DISTUTILS_WHEELS[@]}"; do + # use only wheels corresponding to the current directory + if [[ ${PWD} != ${DISTUTILS_WHEEL_PATHS["${whl}"]} ]]; then + continue + fi + + local whl_fn=${whl##*/} + # This technically omits the build tag, but we're + # not greedy, so we're only checking for the minimum number + # of components. + [[ ${whl_fn} != *-*-*-*-*.whl ]] && + die "Invalid wheel filename: ${whl}" + whl_fn=${whl_fn%.whl} + local platform_tag=${whl_fn##*-} + whl_fn=${whl_fn%-*} + local abi_tag=${whl_fn##*-} + whl_fn=${whl_fn%-*} + local python_tag=${whl_fn##*-} + + # Verify whether the Python tag is compatible. We should + # be running from the oldest to the newest Python version, + # so it should always hold. We short-circuit py3 tag. + if [[ .${python_tag}. != *.py3.* ]]; then + [[ ${EPYTHON} != python3.* ]] && + die "Update the python_tag check for ${EPYTHON}" + local minor=${EPYTHON#python3.} + minor=${minor%t} + local is_compatible= + while [[ ${minor} -ge 0 ]]; do + if [[ + .${python_tag}. == *.cp3${minor}.* || + .${python_tag}. == *.py3${minor}.* + ]]; then + is_compatible=1 + fi + : $(( minor-- )) + done + [[ ! ${is_compatible} ]] && + die "Incompatible Python tag found in ${whl_fn}" + fi + + if [[ + # Use pure Python wheels only if we're not expected to + # build extensions. Otherwise, we may end up not + # building the extension at all when e.g. PyPy3 is built + # without one. + ( + ! ${DISTUTILS_EXT} && + .${python_tag}. == *.py3.* && + .${abi_tag}. == *.none.* + ) || + # For GIL-enabled CPython, we can reuse abi3 wheels. + # Note that we do not check the Python tag (yet), + # and instead rely on the assumption that we're building + # from the oldest to the newest implementation, + # and the wheels are forward-compatible. + ( + ${EPYTHON} == python* && + ${EPYTHON} != *t && + .${abi_tag}. == *.abi3.* + ) || + # For freethreading CPython, we can reuse abi3t wheels. + # Same as above, we're relying on the ordering. + ( + ${EPYTHON} == python*t && + .${abi_tag}. == *.abi3t.* + ) + ]]; then + best_wheel=${whl} + fi + done + + echo "${best_wheel}" +} # @FUNCTION: distutils-r1_python_compile # @USAGE: [additional-args...] @@ -1230,40 +1323,16 @@ distutils-r1_python_compile() { EOF if [[ ${DISTUTILS_ALLOW_WHEEL_REUSE} ]]; then - local whl - for whl in "${!DISTUTILS_WHEELS[@]}"; do - # use only wheels corresponding to the current directory - if [[ ${PWD} != ${DISTUTILS_WHEELS["${whl}"]} ]]; then - continue - fi - - # 1. Use pure Python wheels only if we're not expected - # to build extensions. Otherwise, we may end up - # not building the extension at all when e.g. PyPy3 - # is built without one. - # - # 2. For CPython, we can reuse stable ABI wheels. Note - # that this relies on the assumption that we're building - # from the oldest to the newest implementation, - # and the wheels are forward-compatible. - if [[ - ( ! ${DISTUTILS_EXT} && ${whl} == *py3-none* ) || - ( - ${EPYTHON} == python* && - # freethreading does not support stable ABI - # at the moment - ${EPYTHON} != *t && - ${whl} == *-abi3-* - ) - ]]; then - distutils_wheel_install "${BUILD_DIR}/install" "${whl}" - return - fi - done + local best_wheel=$(_distutils-r1_find_best_wheel) + if [[ -n ${best_wheel} ]]; then + distutils_wheel_install "${BUILD_DIR}/install" "${best_wheel}" + return + fi fi distutils_pep517_install "${BUILD_DIR}/install" - DISTUTILS_WHEELS+=( "${DISTUTILS_WHEEL_PATH}" "${PWD}" ) + DISTUTILS_WHEELS+=( "${DISTUTILS_WHEEL_PATH}" ) + DISTUTILS_WHEEL_PATHS+=( "${DISTUTILS_WHEEL_PATH}" "${PWD}" ) } # @FUNCTION: _distutils-r1_wrap_scripts @@ -1514,6 +1583,8 @@ _distutils-r1_run_common_phase() { python_setup "${DISTUTILS_ALL_SUBPHASE_IMPLS[@]}" local MULTIBUILD_VARIANTS=( "${EPYTHON/./_}" ) + local PYTHON_USEDEP="python_targets_${EPYTHON/./_}(-)" + local PYTHON_SINGLE_USEDEP="python_single_target_${EPYTHON/./_}(-)" # store for restoring after distutils-r1_run_phase. local _DISTUTILS_INITIAL_CWD=${PWD} multibuild_foreach_variant \ @@ -1540,6 +1611,8 @@ _distutils-r1_run_foreach_impl() { if [[ ! ${EPYTHON} ]]; then die "EPYTHON unset, python-single-r1_pkg_setup not called?!" fi + local PYTHON_USEDEP="python_targets_${EPYTHON/./_}(-)" + local PYTHON_SINGLE_USEDEP="python_single_target_${EPYTHON/./_}(-)" local BUILD_DIR=${BUILD_DIR:-${S}} BUILD_DIR=${BUILD_DIR%%/}_${EPYTHON} @@ -1601,8 +1674,8 @@ _distutils-r1_compare_installed_files() { # Perform the check only if at least one potentially reusable wheel # has been produced. Nonpure packages (e.g. NumPy) may install # interpreter configuration details into sitedir. - if [[ ${!DISTUTILS_WHEELS[*]} != *py3-none-any.whl* && - ${!DISTUTILS_WHEELS[*]} != *-abi3-*.whl ]]; then + if [[ ${DISTUTILS_WHEELS[*]} != *py3-none-any.whl* && + ${DISTUTILS_WHEELS[*]} != *-abi3-*.whl ]]; then return fi diff --git a/sdk_container/src/third_party/portage-stable/eclass/elisp-common.eclass b/sdk_container/src/third_party/portage-stable/eclass/elisp-common.eclass index b07ceaf63ce..ed601c9a0fe 100644 --- a/sdk_container/src/third_party/portage-stable/eclass/elisp-common.eclass +++ b/sdk_container/src/third_party/portage-stable/eclass/elisp-common.eclass @@ -25,7 +25,7 @@ # When relying on the emacs USE flag, you need to add # # @CODE -# emacs? ( >=app-editors/emacs-26.3:* ) +# emacs? ( >=app-editors/emacs-27.2:* ) # @CODE # # to your DEPEND/RDEPEND line and use the functions provided here to @@ -206,7 +206,7 @@ EMACS=${EPREFIX}/usr/bin/emacs # @ECLASS_VARIABLE: EMACSFLAGS # @DESCRIPTION: # Flags for executing Emacs in batch mode. -# These work for Emacs versions 18 to 30, so don't change them. +# These work for Emacs versions 18 to 31, so don't change them. EMACSFLAGS="-batch -q --no-site-file" # @ECLASS_VARIABLE: BYTECOMPFLAGS @@ -217,7 +217,7 @@ BYTECOMPFLAGS="-L ." # @ECLASS_VARIABLE: NEED_EMACS # @DESCRIPTION: # The minimum Emacs version required for the package. -: "${NEED_EMACS:=26.3}" +: "${NEED_EMACS:=27.2}" # @ECLASS_VARIABLE: _ELISP_EMACS_VERSION # @INTERNAL @@ -234,8 +234,9 @@ elisp-emacs-version() { local version ret tmout="timeout -k 5 55" # Run without timeout if the command is not available ${tmout} true &>/dev/null || tmout="" - # The following will work for at least versions 18 to 30. - echo "(princ emacs-version)" >"${T}"/emacs-version.el + # The following will work for at least versions 18 to 31. + printf '%s\n' ";;-*-lexical-binding:t-*-" "(princ emacs-version)" \ + >"${T}"/emacs-version.el version=$( # EMACS could be a microemacs variant that ignores the -batch # option and would therefore hang, waiting for user interaction. diff --git a/sdk_container/src/third_party/portage-stable/eclass/meson.eclass b/sdk_container/src/third_party/portage-stable/eclass/meson.eclass index 198063c08b1..e0d7a017838 100644 --- a/sdk_container/src/third_party/portage-stable/eclass/meson.eclass +++ b/sdk_container/src/third_party/portage-stable/eclass/meson.eclass @@ -147,6 +147,10 @@ _meson_get_machine_info() { # Creates a cross file. meson uses this to define settings for # cross-compilers. This function is called from meson_src_configure. _meson_create_cross_file() { + # This can die if the external program is nonfunctional. Sanity check if it + # works, else failure means logging dozens of times before cat completes. + _meson_env_array >/dev/null + local system cpu_family cpu _meson_get_machine_info "${CHOST}" @@ -217,6 +221,10 @@ _meson_create_cross_file() { # Creates a native file. meson uses this to define settings for # native compilers. This function is called from meson_src_configure. _meson_create_native_file() { + # This can die if the external program is nonfunctional. Sanity check if it + # works, else failure means logging dozens of times before cat completes. + _meson_env_array >/dev/null + local system cpu_family cpu _meson_get_machine_info "${CBUILD}" @@ -368,6 +376,16 @@ setup_meson_src_configure() { # finally, remove it from *FLAGS to avoid passing it: # - twice, with potentially different values # - on excluded targets + # + # But first, localize all *FLAGS changes to this function -- since the + # values are frozen into machine files for Meson's own use, but we + # don't want to mess with other code in an ebuild (that runs outside of + # meson) or repeated calls to meson_src_configure (for multilib + # builds). + local x + for x in $(all-flag-vars); do + local -x "${x}=${!x}" + done filter-lto else # Prevent projects from enabling LTO by default. In Gentoo, LTO is @@ -472,8 +490,14 @@ meson_src_configure() { # https://bugs.gentoo.org/625396 python_export_utf8_locale + # We do this outside the subshell and localize any variables the function + # itself sets, because it can internally die. If it ran inside the subshell, + # then after dying, `meson setup` still runs after "If you need support, [...]" + # and logs the command line followed by "ERROR: Cannot find specified native file:" + local NM READELF BOOST_INCLUDEDIR BOOST_LIBRARYDIR + setup_meson_src_configure "$@" + ( - setup_meson_src_configure "$@" MESONARGS+=( # Source directory "${EMESON_SOURCE:-${S}}" diff --git a/sdk_container/src/third_party/portage-stable/eclass/perl-module.eclass b/sdk_container/src/third_party/portage-stable/eclass/perl-module.eclass index f5a2d71e1e8..05485f227a8 100644 --- a/sdk_container/src/third_party/portage-stable/eclass/perl-module.eclass +++ b/sdk_container/src/third_party/portage-stable/eclass/perl-module.eclass @@ -295,6 +295,7 @@ perl-module_src_configure() { fi set -- \ + --prefix "${EPREFIX}"/usr \ --installdirs=vendor \ --libdoc= \ --create_packlist=1 \ diff --git a/sdk_container/src/third_party/portage-stable/eclass/python-utils-r1.eclass b/sdk_container/src/third_party/portage-stable/eclass/python-utils-r1.eclass index 7c3b3d985f2..52b7e2bd4f0 100644 --- a/sdk_container/src/third_party/portage-stable/eclass/python-utils-r1.eclass +++ b/sdk_container/src/third_party/portage-stable/eclass/python-utils-r1.eclass @@ -39,8 +39,8 @@ inherit multiprocessing toolchain-funcs # @DESCRIPTION: # All supported Python implementations, most preferred last. _PYTHON_ALL_IMPLS=( - python3_{14..15}t - python3_{12..15} + python3_{12..13} + python3_{14..15}{t,} ) readonly _PYTHON_ALL_IMPLS diff --git a/sdk_container/src/third_party/portage-stable/eclass/rust.eclass b/sdk_container/src/third_party/portage-stable/eclass/rust.eclass index 6d2a676dec9..112b63ac8a1 100644 --- a/sdk_container/src/third_party/portage-stable/eclass/rust.eclass +++ b/sdk_container/src/third_party/portage-stable/eclass/rust.eclass @@ -68,6 +68,7 @@ fi # Definitive list of Rust slots and the associated LLVM slot, newest first. declare -A -g -r _RUST_LLVM_MAP=( ["9999"]=22 + ["1.98.1"]=22 ["1.97.1"]=22 ["1.96.1"]=22 ["1.95.0"]=22 @@ -106,6 +107,7 @@ declare -A -g -r _RUST_LLVM_MAP=( # this array is used to store the Rust slots in a more convenient order for iteration. declare -a -g -r _RUST_SLOTS_ORDERED=( "9999" + "1.98.1" "1.97.1" "1.96.1" "1.95.0" diff --git a/sdk_container/src/third_party/portage-stable/eclass/toolchain.eclass b/sdk_container/src/third_party/portage-stable/eclass/toolchain.eclass index c849a071ded..8f28c407298 100644 --- a/sdk_container/src/third_party/portage-stable/eclass/toolchain.eclass +++ b/sdk_container/src/third_party/portage-stable/eclass/toolchain.eclass @@ -729,10 +729,11 @@ do_gcc_gentoo_patches() { fi fi - local - + local shopt_save=$(shopt -p nullglob) shopt -s nullglob einfo "Applying musl patches ..." eapply "${WORKDIR}"/musl/{,nocross/}*.patch + ${shopt_save} fi # diff --git a/sdk_container/src/third_party/portage-stable/net-dns/bind/bind-9.18.38.ebuild b/sdk_container/src/third_party/portage-stable/net-dns/bind/bind-9.18.38.ebuild index 0bc7a9f363e..9e5e071ffe4 100644 --- a/sdk_container/src/third_party/portage-stable/net-dns/bind/bind-9.18.38.ebuild +++ b/sdk_container/src/third_party/portage-stable/net-dns/bind/bind-9.18.38.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -16,7 +16,7 @@ S="${WORKDIR}/${PN}-${MY_PV}" LICENSE="MPL-2.0" SLOT="0" KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" -IUSE="+caps dnstap doc doh fixed-rrset idn jemalloc geoip gssapi lmdb selinux static-libs test xml" +IUSE="+caps dnstap doc doh fixed-rrset idn jemalloc geoip gssapi lmdb selinux test xml" RESTRICT="!test? ( test )" DEPEND=" @@ -90,7 +90,6 @@ src_configure() { $(use_enable doh) $(use_with doh libnghttp2) $(use_enable fixed-rrset) - $(use_enable static-libs static) $(use_enable geoip) $(use_with test cmocka) $(use_with geoip maxminddb) @@ -140,9 +139,7 @@ src_install() { newenvd "${FILESDIR}"/10bind.env 10bind - if ! use static-libs ; then - find "${ED}"/usr/lib* -name '*.la' -delete || die - fi + find "${ED}"/usr/lib* -name '*.la' -delete || die # # /var/bind diff --git a/sdk_container/src/third_party/portage-stable/net-dns/bind/bind-9.18.39.ebuild b/sdk_container/src/third_party/portage-stable/net-dns/bind/bind-9.18.39.ebuild index c2419bdebd5..3828470997a 100644 --- a/sdk_container/src/third_party/portage-stable/net-dns/bind/bind-9.18.39.ebuild +++ b/sdk_container/src/third_party/portage-stable/net-dns/bind/bind-9.18.39.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -16,7 +16,7 @@ S="${WORKDIR}/${PN}-${MY_PV}" LICENSE="MPL-2.0" SLOT="0" KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" -IUSE="+caps dnstap doc doh fixed-rrset idn jemalloc geoip gssapi lmdb selinux static-libs test xml" +IUSE="+caps dnstap doc doh fixed-rrset idn jemalloc geoip gssapi lmdb selinux test xml" RESTRICT="!test? ( test )" DEPEND=" @@ -90,7 +90,6 @@ src_configure() { $(use_enable doh) $(use_with doh libnghttp2) $(use_enable fixed-rrset) - $(use_enable static-libs static) $(use_enable geoip) $(use_with test cmocka) $(use_with geoip maxminddb) @@ -140,9 +139,7 @@ src_install() { newenvd "${FILESDIR}"/10bind.env 10bind - if ! use static-libs ; then - find "${ED}"/usr/lib* -name '*.la' -delete || die - fi + find "${ED}"/usr/lib* -name '*.la' -delete || die # # /var/bind diff --git a/sdk_container/src/third_party/portage-stable/net-dns/bind/bind-9.18.42.ebuild b/sdk_container/src/third_party/portage-stable/net-dns/bind/bind-9.18.42.ebuild index 47d73b450a8..5d41252065f 100644 --- a/sdk_container/src/third_party/portage-stable/net-dns/bind/bind-9.18.42.ebuild +++ b/sdk_container/src/third_party/portage-stable/net-dns/bind/bind-9.18.42.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -16,7 +16,7 @@ S="${WORKDIR}/${PN}-${MY_PV}" LICENSE="MPL-2.0" SLOT="0" KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" -IUSE="+caps dnstap doc doh fixed-rrset idn jemalloc geoip gssapi lmdb selinux static-libs test xml" +IUSE="+caps dnstap doc doh fixed-rrset idn jemalloc geoip gssapi lmdb selinux test xml" RESTRICT="!test? ( test )" DEPEND=" @@ -90,7 +90,6 @@ src_configure() { $(use_enable doh) $(use_with doh libnghttp2) $(use_enable fixed-rrset) - $(use_enable static-libs static) $(use_enable geoip) $(use_with test cmocka) $(use_with geoip maxminddb) @@ -140,9 +139,7 @@ src_install() { newenvd "${FILESDIR}"/10bind.env 10bind - if ! use static-libs ; then - find "${ED}"/usr/lib* -name '*.la' -delete || die - fi + find "${ED}"/usr/lib* -name '*.la' -delete || die # # /var/bind diff --git a/sdk_container/src/third_party/portage-stable/net-dns/bind/bind-9.18.47.ebuild b/sdk_container/src/third_party/portage-stable/net-dns/bind/bind-9.18.47.ebuild index e97d59489c5..27abe98df55 100644 --- a/sdk_container/src/third_party/portage-stable/net-dns/bind/bind-9.18.47.ebuild +++ b/sdk_container/src/third_party/portage-stable/net-dns/bind/bind-9.18.47.ebuild @@ -16,7 +16,7 @@ S="${WORKDIR}/${PN}-${MY_PV}" LICENSE="MPL-2.0" SLOT="0" KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" -IUSE="+caps dnstap doc doh fixed-rrset idn jemalloc geoip gssapi lmdb selinux static-libs test xml" +IUSE="+caps dnstap doc doh fixed-rrset idn jemalloc geoip gssapi lmdb selinux test xml" RESTRICT="!test? ( test )" DEPEND=" @@ -90,7 +90,6 @@ src_configure() { $(use_enable doh) $(use_with doh libnghttp2) $(use_enable fixed-rrset) - $(use_enable static-libs static) $(use_enable geoip) $(use_with test cmocka) $(use_with geoip maxminddb) @@ -140,9 +139,7 @@ src_install() { newenvd "${FILESDIR}"/10bind.env 10bind - if ! use static-libs ; then - find "${ED}"/usr/lib* -name '*.la' -delete || die - fi + find "${ED}"/usr/lib* -name '*.la' -delete || die # # /var/bind diff --git a/sdk_container/src/third_party/portage-stable/net-dns/bind/bind-9.18.48.ebuild b/sdk_container/src/third_party/portage-stable/net-dns/bind/bind-9.18.48.ebuild index 3ee93c1319e..3828470997a 100644 --- a/sdk_container/src/third_party/portage-stable/net-dns/bind/bind-9.18.48.ebuild +++ b/sdk_container/src/third_party/portage-stable/net-dns/bind/bind-9.18.48.ebuild @@ -16,7 +16,7 @@ S="${WORKDIR}/${PN}-${MY_PV}" LICENSE="MPL-2.0" SLOT="0" KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" -IUSE="+caps dnstap doc doh fixed-rrset idn jemalloc geoip gssapi lmdb selinux static-libs test xml" +IUSE="+caps dnstap doc doh fixed-rrset idn jemalloc geoip gssapi lmdb selinux test xml" RESTRICT="!test? ( test )" DEPEND=" @@ -90,7 +90,6 @@ src_configure() { $(use_enable doh) $(use_with doh libnghttp2) $(use_enable fixed-rrset) - $(use_enable static-libs static) $(use_enable geoip) $(use_with test cmocka) $(use_with geoip maxminddb) @@ -140,9 +139,7 @@ src_install() { newenvd "${FILESDIR}"/10bind.env 10bind - if ! use static-libs ; then - find "${ED}"/usr/lib* -name '*.la' -delete || die - fi + find "${ED}"/usr/lib* -name '*.la' -delete || die # # /var/bind diff --git a/sdk_container/src/third_party/portage-stable/net-dns/bind/bind-9.18.49.ebuild b/sdk_container/src/third_party/portage-stable/net-dns/bind/bind-9.18.49.ebuild index e97d59489c5..27abe98df55 100644 --- a/sdk_container/src/third_party/portage-stable/net-dns/bind/bind-9.18.49.ebuild +++ b/sdk_container/src/third_party/portage-stable/net-dns/bind/bind-9.18.49.ebuild @@ -16,7 +16,7 @@ S="${WORKDIR}/${PN}-${MY_PV}" LICENSE="MPL-2.0" SLOT="0" KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" -IUSE="+caps dnstap doc doh fixed-rrset idn jemalloc geoip gssapi lmdb selinux static-libs test xml" +IUSE="+caps dnstap doc doh fixed-rrset idn jemalloc geoip gssapi lmdb selinux test xml" RESTRICT="!test? ( test )" DEPEND=" @@ -90,7 +90,6 @@ src_configure() { $(use_enable doh) $(use_with doh libnghttp2) $(use_enable fixed-rrset) - $(use_enable static-libs static) $(use_enable geoip) $(use_with test cmocka) $(use_with geoip maxminddb) @@ -140,9 +139,7 @@ src_install() { newenvd "${FILESDIR}"/10bind.env 10bind - if ! use static-libs ; then - find "${ED}"/usr/lib* -name '*.la' -delete || die - fi + find "${ED}"/usr/lib* -name '*.la' -delete || die # # /var/bind diff --git a/sdk_container/src/third_party/portage-stable/net-dns/bind/bind-9.20.21.ebuild b/sdk_container/src/third_party/portage-stable/net-dns/bind/bind-9.20.21.ebuild index b6ce44a1852..5f693e5bfb3 100644 --- a/sdk_container/src/third_party/portage-stable/net-dns/bind/bind-9.20.21.ebuild +++ b/sdk_container/src/third_party/portage-stable/net-dns/bind/bind-9.20.21.ebuild @@ -20,7 +20,7 @@ S="${WORKDIR}/${PN}-${MY_PV}" LICENSE="MPL-2.0" SLOT="0" KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" -IUSE="dnstap doc doh fixed-rrset idn jemalloc geoip gssapi lmdb selinux static-libs systemtap test xml" +IUSE="dnstap doc doh fixed-rrset idn jemalloc geoip gssapi lmdb selinux systemtap test xml" RESTRICT="!test? ( test )" DEPEND=" @@ -95,7 +95,6 @@ src_configure() { $(use_enable dnstap) $(use_enable doh) $(use_with doh libnghttp2) - $(use_enable static-libs static) $(use_enable geoip) $(use_enable systemtap tracing) $(use_with test cmocka) @@ -146,9 +145,7 @@ src_install() { newenvd "${FILESDIR}"/10bind.env 10bind - if ! use static-libs ; then - find "${ED}"/usr/lib* -name '*.la' -delete || die - fi + find "${ED}"/usr/lib* -name '*.la' -delete || die # # /var/bind diff --git a/sdk_container/src/third_party/portage-stable/net-dns/bind/bind-9.20.22.ebuild b/sdk_container/src/third_party/portage-stable/net-dns/bind/bind-9.20.22.ebuild index b6ce44a1852..5f693e5bfb3 100644 --- a/sdk_container/src/third_party/portage-stable/net-dns/bind/bind-9.20.22.ebuild +++ b/sdk_container/src/third_party/portage-stable/net-dns/bind/bind-9.20.22.ebuild @@ -20,7 +20,7 @@ S="${WORKDIR}/${PN}-${MY_PV}" LICENSE="MPL-2.0" SLOT="0" KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" -IUSE="dnstap doc doh fixed-rrset idn jemalloc geoip gssapi lmdb selinux static-libs systemtap test xml" +IUSE="dnstap doc doh fixed-rrset idn jemalloc geoip gssapi lmdb selinux systemtap test xml" RESTRICT="!test? ( test )" DEPEND=" @@ -95,7 +95,6 @@ src_configure() { $(use_enable dnstap) $(use_enable doh) $(use_with doh libnghttp2) - $(use_enable static-libs static) $(use_enable geoip) $(use_enable systemtap tracing) $(use_with test cmocka) @@ -146,9 +145,7 @@ src_install() { newenvd "${FILESDIR}"/10bind.env 10bind - if ! use static-libs ; then - find "${ED}"/usr/lib* -name '*.la' -delete || die - fi + find "${ED}"/usr/lib* -name '*.la' -delete || die # # /var/bind diff --git a/sdk_container/src/third_party/portage-stable/net-dns/bind/bind-9.20.23.ebuild b/sdk_container/src/third_party/portage-stable/net-dns/bind/bind-9.20.23.ebuild index f4d8e3028bc..a3a911b1342 100644 --- a/sdk_container/src/third_party/portage-stable/net-dns/bind/bind-9.20.23.ebuild +++ b/sdk_container/src/third_party/portage-stable/net-dns/bind/bind-9.20.23.ebuild @@ -20,7 +20,7 @@ S="${WORKDIR}/${PN}-${MY_PV}" LICENSE="MPL-2.0" SLOT="0" KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" -IUSE="dnstap doc doh fixed-rrset idn jemalloc geoip gssapi lmdb selinux static-libs systemtap test xml" +IUSE="dnstap doc doh fixed-rrset idn jemalloc geoip gssapi lmdb selinux systemtap test xml" RESTRICT="!test? ( test )" DEPEND=" @@ -95,7 +95,6 @@ src_configure() { $(use_enable dnstap) $(use_enable doh) $(use_with doh libnghttp2) - $(use_enable static-libs static) $(use_enable geoip) $(use_enable systemtap tracing) $(use_with test cmocka) @@ -146,9 +145,7 @@ src_install() { newenvd "${FILESDIR}"/10bind.env 10bind - if ! use static-libs ; then - find "${ED}"/usr/lib* -name '*.la' -delete || die - fi + find "${ED}"/usr/lib* -name '*.la' -delete || die # # /var/bind diff --git a/sdk_container/src/third_party/portage-stable/net-dns/bind/bind-9.20.24.ebuild b/sdk_container/src/third_party/portage-stable/net-dns/bind/bind-9.20.24.ebuild index b6ce44a1852..5f693e5bfb3 100644 --- a/sdk_container/src/third_party/portage-stable/net-dns/bind/bind-9.20.24.ebuild +++ b/sdk_container/src/third_party/portage-stable/net-dns/bind/bind-9.20.24.ebuild @@ -20,7 +20,7 @@ S="${WORKDIR}/${PN}-${MY_PV}" LICENSE="MPL-2.0" SLOT="0" KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" -IUSE="dnstap doc doh fixed-rrset idn jemalloc geoip gssapi lmdb selinux static-libs systemtap test xml" +IUSE="dnstap doc doh fixed-rrset idn jemalloc geoip gssapi lmdb selinux systemtap test xml" RESTRICT="!test? ( test )" DEPEND=" @@ -95,7 +95,6 @@ src_configure() { $(use_enable dnstap) $(use_enable doh) $(use_with doh libnghttp2) - $(use_enable static-libs static) $(use_enable geoip) $(use_enable systemtap tracing) $(use_with test cmocka) @@ -146,9 +145,7 @@ src_install() { newenvd "${FILESDIR}"/10bind.env 10bind - if ! use static-libs ; then - find "${ED}"/usr/lib* -name '*.la' -delete || die - fi + find "${ED}"/usr/lib* -name '*.la' -delete || die # # /var/bind diff --git a/sdk_container/src/third_party/portage-stable/net-dns/bind/bind-9.20.26.ebuild b/sdk_container/src/third_party/portage-stable/net-dns/bind/bind-9.20.26.ebuild index 30df3f9c43b..3d254bc5011 100644 --- a/sdk_container/src/third_party/portage-stable/net-dns/bind/bind-9.20.26.ebuild +++ b/sdk_container/src/third_party/portage-stable/net-dns/bind/bind-9.20.26.ebuild @@ -26,7 +26,7 @@ S="${WORKDIR}/${PN}-${MY_PV}" LICENSE="MPL-2.0" SLOT="0" KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ~ppc ppc64 ~riscv ~s390 ~sparc x86" -IUSE="dnstap doc doh fixed-rrset idn jemalloc geoip gssapi lmdb selinux static-libs systemtap test xml" +IUSE="dnstap doc doh fixed-rrset idn jemalloc geoip gssapi lmdb selinux systemtap test xml" RESTRICT="!test? ( test )" DEPEND=" @@ -109,7 +109,6 @@ src_configure() { $(use_enable dnstap) $(use_enable doh) $(use_with doh libnghttp2) - $(use_enable static-libs static) $(use_enable geoip) $(use_enable systemtap tracing) $(use_with test cmocka) @@ -160,9 +159,7 @@ src_install() { newenvd "${FILESDIR}"/10bind.env 10bind - if ! use static-libs ; then - find "${ED}"/usr/lib* -name '*.la' -delete || die - fi + find "${ED}"/usr/lib* -name '*.la' -delete || die # # /var/bind diff --git a/sdk_container/src/third_party/portage-stable/net-dns/bind/bind-9.20.27.ebuild b/sdk_container/src/third_party/portage-stable/net-dns/bind/bind-9.20.27.ebuild index b6ce44a1852..5f693e5bfb3 100644 --- a/sdk_container/src/third_party/portage-stable/net-dns/bind/bind-9.20.27.ebuild +++ b/sdk_container/src/third_party/portage-stable/net-dns/bind/bind-9.20.27.ebuild @@ -20,7 +20,7 @@ S="${WORKDIR}/${PN}-${MY_PV}" LICENSE="MPL-2.0" SLOT="0" KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" -IUSE="dnstap doc doh fixed-rrset idn jemalloc geoip gssapi lmdb selinux static-libs systemtap test xml" +IUSE="dnstap doc doh fixed-rrset idn jemalloc geoip gssapi lmdb selinux systemtap test xml" RESTRICT="!test? ( test )" DEPEND=" @@ -95,7 +95,6 @@ src_configure() { $(use_enable dnstap) $(use_enable doh) $(use_with doh libnghttp2) - $(use_enable static-libs static) $(use_enable geoip) $(use_enable systemtap tracing) $(use_with test cmocka) @@ -146,9 +145,7 @@ src_install() { newenvd "${FILESDIR}"/10bind.env 10bind - if ! use static-libs ; then - find "${ED}"/usr/lib* -name '*.la' -delete || die - fi + find "${ED}"/usr/lib* -name '*.la' -delete || die # # /var/bind diff --git a/sdk_container/src/third_party/portage-stable/net-firewall/nftables/Manifest b/sdk_container/src/third_party/portage-stable/net-firewall/nftables/Manifest index 05c28bc11ea..a0c267696fd 100644 --- a/sdk_container/src/third_party/portage-stable/net-firewall/nftables/Manifest +++ b/sdk_container/src/third_party/portage-stable/net-firewall/nftables/Manifest @@ -8,3 +8,5 @@ DIST nftables-1.1.5.tar.xz 1008132 BLAKE2B 4c391e316f5c04cffe16a64df60217d74e37a DIST nftables-1.1.5.tar.xz.sig 566 BLAKE2B 4868d9a0fc35eade43e973e7d17412edd2302155df8d1b68664746feec84479446ad427363ccc0a4fc32272b03a200414451c9732cd3486707994816d331b91c SHA512 e6ff864eeba8c73ec5352d5c690864e29f128258edd653765f77e34689dc7408de91a04827bf15fcf8e13cf6b875f3b7e9bbdb0b23dc89cecde43787b1df60bd DIST nftables-1.1.6.tar.xz 1025092 BLAKE2B ec2abb475e078fa9872c02a7eef711eac40ac8dc40e3ff15b732808db5d1b5632a85060db04146a49b187fdcf865c3cce17774773bb8987442c5d3fc943c0380 SHA512 8d0a833d0ae2b6ac82e0da8bb74ffb69679e49a938b86a75d4ee3d81343400a95fe064cf95d60d22df30370779e524b31497a9c89a516d9bff645f3f83bb6bb1 DIST nftables-1.1.6.tar.xz.sig 566 BLAKE2B 9ccd32fd29e02457da05848852456e5bb2cebe5757ad9a18add9184f9151880712e03a34ca81df905cf9ee325e9e3278cc924b2ff87bca726e42d53b17bbe9b5 SHA512 7a7cc7773c4784f7c5902b3fd33b7efcb808eb846bee4a0fed5f8ef54759a5cf2dd59605d171fe2ffa59416db7e56162f59b7abbd7fdfa2b5e3d417942743585 +DIST nftables-1.1.7.tar.xz 1062488 BLAKE2B 09edd2e6364896cd5130cffc900e5511eea7311aa7aa09306463c3d40a3de097059544136ddb7f3b606b34bbee2d363c814fd64dbb44de82461edfc12c2566bd SHA512 4dc900ad6e74c4ce532df974287bd3d5382ccabcee9e61b7639071abae70c215a8dea04d1f5af6f0f431e5717bd98db12dc858b00b51f284a17b488ef648b73d +DIST nftables-1.1.7.tar.xz.sig 566 BLAKE2B d73a83084a0677850e179e1fa3f34dd3797ce8c7114d74c781c3e0004bd2e75c96bda3f49b499fcf70c723cc407cd0da012c46a8bfbdbb3175a7054dd4a9439f SHA512 9ef7fbb7b6a7cd98643ae8848486476049ac29ae1e6330307cf8e67ba85f9d97e1eb3e9d3502a9749c7ac282ef80152017d4b1d49f0b0442cb5a2412986d6010 diff --git a/sdk_container/src/third_party/portage-stable/net-firewall/nftables/nftables-1.1.7.ebuild b/sdk_container/src/third_party/portage-stable/net-firewall/nftables/nftables-1.1.7.ebuild new file mode 100644 index 00000000000..e1204d119e8 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/net-firewall/nftables/nftables-1.1.7.ebuild @@ -0,0 +1,239 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_OPTIONAL=1 +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{11..15} ) +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/netfilter.org.asc +inherit eapi9-ver edo linux-info distutils-r1 systemd verify-sig + +DESCRIPTION="Linux kernel firewall, NAT and packet mangling tools" +HOMEPAGE="https://netfilter.org/projects/nftables/" + +if [[ ${PV} =~ ^[9]{4,}$ ]]; then + inherit autotools git-r3 + EGIT_REPO_URI="https://git.netfilter.org/${PN}" + BDEPEND="app-alternatives/yacc" +else + inherit libtool + SRC_URI=" + https://netfilter.org/projects/nftables/files/${P}.tar.xz + verify-sig? ( https://netfilter.org/projects/nftables/files/${P}.tar.xz.sig ) + " + KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-netfilter-20240415 )" +fi + +# See COPYING: new code is GPL-2+, existing code is GPL-2 +LICENSE="GPL-2 GPL-2+" +SLOT="0/1" +IUSE="debug doc +gmp json libedit python +readline static-libs test xtables" +RESTRICT="!test? ( test )" + +RDEPEND=" + >=net-libs/libmnl-1.0.4:= + >=net-libs/libnftnl-1.3.2:= + gmp? ( dev-libs/gmp:= ) + json? ( dev-libs/jansson:= ) + python? ( ${PYTHON_DEPS} ) + readline? ( sys-libs/readline:= ) + xtables? ( >=net-firewall/iptables-1.6.1:= ) +" +DEPEND="${RDEPEND}" +BDEPEND+=" + app-alternatives/lex + virtual/pkgconfig + doc? ( + app-text/asciidoc + >=app-text/docbook2X-0.8.8-r4 + ) + python? ( ${DISTUTILS_DEPS} ) +" + +REQUIRED_USE=" + python? ( ${PYTHON_REQUIRED_USE} ) + libedit? ( !readline ) +" + +src_prepare() { + default + + if [[ ${PV} =~ ^[9]{4,}$ ]] ; then + eautoreconf + else + elibtoolize + fi + + if use python; then + pushd py >/dev/null || die + distutils-r1_src_prepare + popd >/dev/null || die + fi +} + +src_configure() { + local myeconfargs=( + --sbindir="${EPREFIX}"/sbin + --with-unitdir=$(systemd_get_systemunitdir) + --enable-distcheck + $(use_enable debug) + $(use_enable doc man-doc) + $(use_with !gmp mini_gmp) + $(use_with json) + $(use_with libedit cli editline) + $(use_with readline cli readline) + $(use_enable static-libs static) + $(use_with xtables) + ) + + # bash until 1.1.7 (https://git.netfilter.org/nftables/commit/?id=2e3c68f26d5bd60c8ea7467fa9018c282a7d8c47) + CONFIG_SHELL="${BROOT}"/bin/bash econf "${myeconfargs[@]}" + + if use python; then + pushd py >/dev/null || die + distutils-r1_src_configure + popd >/dev/null || die + fi +} + +src_compile() { + default + + if use python; then + pushd py >/dev/null || die + distutils-r1_src_compile + popd >/dev/null || die + fi +} + +src_test() { + emake check + + if [[ ${EUID} == 0 ]]; then + edo tests/shell/run-tests.sh -v + else + ewarn "Skipping shell tests (requires root)" + fi + + if use python; then + pushd tests/py >/dev/null || die + distutils-r1_src_test + popd >/dev/null || die + fi +} + +python_test() { + if [[ ${EUID} == 0 ]]; then + edo "${EPYTHON}" nft-test.py + else + ewarn "Skipping Python tests (requires root)" + fi +} + +src_install() { + default + + if ! use doc && [[ ! ${PV} =~ ^[9]{4,}$ ]]; then + pushd doc >/dev/null || die + doman *.? + popd >/dev/null || die + fi + + # Do it here instead of in src_prepare to avoid eautoreconf + # rmdir lets us catch if more files end up installed in /etc/nftables + dodir /usr/share/doc/${PF}/skels/ + mv "${ED}"/etc/nftables/osf "${ED}"/usr/share/doc/${PF}/skels/osf || die + rmdir "${ED}"/etc/nftables || die + + exeinto /usr/libexec/${PN} + newexe "${FILESDIR}"/libexec/${PN}-mk.sh ${PN}.sh + newconfd "${FILESDIR}"/${PN}-mk.confd ${PN} + newinitd "${FILESDIR}"/${PN}-mk.init-r1 ${PN} + keepdir /var/lib/nftables + + systemd_dounit "${FILESDIR}"/systemd/${PN}-load.service + systemd_dounit "${FILESDIR}"/systemd/${PN}-store.service + + if use python ; then + pushd py >/dev/null || die + distutils-r1_src_install + popd >/dev/null || die + fi + + find "${ED}" -type f -name "*.la" -delete || die +} + +pkg_preinst() { + local stderr + + # There's a history of regressions with nftables upgrades. Perform a + # safety check to help us spot them earlier. For the check to pass, the + # currently loaded ruleset, if any, must be successfully evaluated by + # the newly built instance of nft(8). + if [[ -n ${ROOT} ]] || [[ ! -d /sys/module/nftables ]] || [[ ! -x /sbin/nft ]]; then + # Either nftables isn't yet in use or nft(8) cannot be executed. + return + elif ! stderr=$(umask 177; /sbin/nft -t list ruleset 2>&1 >"${T}"/ruleset.nft); then + # Report errors induced by trying to list the ruleset but don't + # treat them as being fatal. + printf '%s\n' "${stderr}" >&2 + elif [[ ${stderr} == *"is managed by iptables-nft"* ]]; then + # Rulesets generated by iptables-nft are special in nature and + # will not always be printed in a way that constitutes a valid + # syntax for ntf(8). Ignore them. + return + elif set -- "${ED}"/usr/lib*/libnftables.so; + ! LD_LIBRARY_PATH=${1%/*} "${ED}"/sbin/nft -c -f -- "${T}"/ruleset.nft + then + eerror "Your currently loaded ruleset cannot be parsed by the newly built instance of" + eerror "nft. This probably means that there is a regression introduced by v${PV}." + eerror "(To make the ebuild fail instead of warning, set NFTABLES_ABORT_ON_RELOAD_FAILURE=1.)" + if [[ -n ${NFTABLES_ABORT_ON_RELOAD_FAILURE} ]] ; then + die "Aborting because of failed nft reload!" + fi + fi +} + +pkg_postinst() { + local save_file + save_file="${EROOT}"/var/lib/nftables/rules-save + + # In order for the nftables-load systemd service to start + # the save_file must exist. + if [[ ! -f "${save_file}" ]]; then + ( umask 177; touch "${save_file}" ) + elif [[ $(( "$( stat --printf '%05a' "${save_file}" )" & 07177 )) -ne 0 ]]; then + ewarn "Your system has dangerous permissions for ${save_file}" + ewarn "It is probably affected by bug #691326." + ewarn "You may need to fix the permissions of the file. To do so," + ewarn "you can run the command in the line below as root." + ewarn " 'chmod 600 \"${save_file}\"'" + fi + + if has_version 'sys-apps/systemd'; then + if ver_replacing -lt "1.1.1-r1"; then + elog "Starting with ${PN}-1.1.1-r1, the ${PN}-restore.service has" + elog "been split into ${PN}-load.service and ${PN}-store.service." + elog + fi + elog "If you wish to enable the firewall rules on boot (on systemd) you" + elog "will need to enable the nftables-load service." + elog " 'systemctl enable ${PN}-load.service'" + elog + elog "Enable nftables-store.service if you want firewall rules to be" + elog "saved at shutdown." + fi + + if has_version 'sys-apps/openrc'; then + elog "If you wish to enable the firewall rules on boot (on openrc) you" + elog "will need to enable the nftables service." + elog " 'rc-update add ${PN} default'" + elog + elog "If you are creating or updating the firewall rules and wish to save" + elog "them to be loaded on the next restart, use the \"save\" functionality" + elog "in the init script." + elog " 'rc-service ${PN} save'" + fi +} diff --git a/sdk_container/src/third_party/portage-stable/net-firewall/nftables/nftables-9999.ebuild b/sdk_container/src/third_party/portage-stable/net-firewall/nftables/nftables-9999.ebuild index d80b3efc9f8..e1204d119e8 100644 --- a/sdk_container/src/third_party/portage-stable/net-firewall/nftables/nftables-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/net-firewall/nftables/nftables-9999.ebuild @@ -1,11 +1,11 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 DISTUTILS_OPTIONAL=1 DISTUTILS_USE_PEP517=setuptools -PYTHON_COMPAT=( python3_{11..14} ) +PYTHON_COMPAT=( python3_{11..15} ) VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/netfilter.org.asc inherit eapi9-ver edo linux-info distutils-r1 systemd verify-sig @@ -22,7 +22,7 @@ else https://netfilter.org/projects/nftables/files/${P}.tar.xz verify-sig? ( https://netfilter.org/projects/nftables/files/${P}.tar.xz.sig ) " - KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86" + KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-netfilter-20240415 )" fi @@ -34,7 +34,7 @@ RESTRICT="!test? ( test )" RDEPEND=" >=net-libs/libmnl-1.0.4:= - >=net-libs/libnftnl-1.3.0:= + >=net-libs/libnftnl-1.3.2:= gmp? ( dev-libs/gmp:= ) json? ( dev-libs/jansson:= ) python? ( ${PYTHON_DEPS} ) @@ -77,6 +77,7 @@ src_configure() { local myeconfargs=( --sbindir="${EPREFIX}"/sbin --with-unitdir=$(systemd_get_systemunitdir) + --enable-distcheck $(use_enable debug) $(use_enable doc man-doc) $(use_with !gmp mini_gmp) @@ -87,7 +88,8 @@ src_configure() { $(use_with xtables) ) - econf "${myeconfargs[@]}" + # bash until 1.1.7 (https://git.netfilter.org/nftables/commit/?id=2e3c68f26d5bd60c8ea7467fa9018c282a7d8c47) + CONFIG_SHELL="${BROOT}"/bin/bash econf "${myeconfargs[@]}" if use python; then pushd py >/dev/null || die diff --git a/sdk_container/src/third_party/portage-stable/net-libs/libnftnl/Manifest b/sdk_container/src/third_party/portage-stable/net-libs/libnftnl/Manifest index 54257b93486..0c656f71491 100644 --- a/sdk_container/src/third_party/portage-stable/net-libs/libnftnl/Manifest +++ b/sdk_container/src/third_party/portage-stable/net-libs/libnftnl/Manifest @@ -6,3 +6,5 @@ DIST libnftnl-1.3.0.tar.xz 344440 BLAKE2B 2aeab26089676d3e5231e1dc93ca4e20d1e5cb DIST libnftnl-1.3.0.tar.xz.sig 566 BLAKE2B 32fe99eb590d2cd65d0c0f07b8c111c433309c38d683426fbdff9231c3b0834e601f5dc58bddfec5a0896789491bd80a7553b04d6cc38f1ae1226d6d08be8333 SHA512 251707a6a981e84ec0d723885f033c0d03f83f7f64deab3ba83b11cea728b8ab345d07699120909e58c1c233a0c8401db27bf9054e61913223867ec5eb2a501e DIST libnftnl-1.3.1.tar.xz 349096 BLAKE2B 9df870bf0246eef0f5ad1c347654e7839c516ed90b32620799948fcf3dc41ec36f87a96547d40a71acfdf7a60b26a582605af134957b1c1e0904e8874d9abaa2 SHA512 a4e689b003cc2ae2ecf203335265f337d6de7a50af5410d649a567535c109d08ee9dbae9e8572b1af8c67f09ea27877ca059e04ed3b1c12183ef7b4185bdd10f DIST libnftnl-1.3.1.tar.xz.sig 566 BLAKE2B e6de5cd96569cf46666535e556c9c2811cc6bb47fdb36520edbcd0fd7e334ef7bbc304a56ceb95cc6ea62285ff26539afaedc78be0ef56d18df22a039b9da8d2 SHA512 a5df7f034c8a56b49e940542d3551ce171b46580a99ead59d2632a444cfe46ad7161119b95931a5fbcda395252f1cea0ed399070c2b7eaf29b962230f5927ea9 +DIST libnftnl-1.3.2.tar.xz 349268 BLAKE2B 87944ea3e47d14b93de71cfa67104dee22e35b5a38b47271d2dc7dbf707e9cb1d5e1510bb0ff1cc443f3a2cae66102e3a4ab4d315e0ee57a399009c1058a4a89 SHA512 ee60231f25c51ce45a8117e5a255265964ed024184c6b5ff4a883e6bbab6b0a66a73b6ca31be1c7055d778c5e7d780f483437eb9d27028dd9fcb6cc69af676ca +DIST libnftnl-1.3.2.tar.xz.sig 566 BLAKE2B 0efb57651bf17e3458468213b8b95029785f510329a099c4f8f68b2240575f915ec53c28f8ea89b933c998bc9b52e6d14425da065f4e5c5d0271eefcdd8b8a0d SHA512 66bcf9ffa105898ba1ed45243267520eb56fe87fae71999b14250f73444ad4d1055cf68bbd0188ce3e6a015ce7e129eaca3249a80a71384fa7caae94399a3574 diff --git a/sdk_container/src/third_party/portage-stable/net-libs/libnftnl/libnftnl-1.3.2.ebuild b/sdk_container/src/third_party/portage-stable/net-libs/libnftnl/libnftnl-1.3.2.ebuild new file mode 100644 index 00000000000..489af1fa20b --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/net-libs/libnftnl/libnftnl-1.3.2.ebuild @@ -0,0 +1,76 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/netfilter.org.asc +inherit linux-info verify-sig + +DESCRIPTION="Netlink API to the in-kernel nf_tables subsystem" +HOMEPAGE="https://netfilter.org/projects/nftables/" + +if [[ ${PV} =~ ^[9]{4,}$ ]]; then + inherit autotools git-r3 + EGIT_REPO_URI="https://git.netfilter.org/${PN}" +else + inherit libtool + SRC_URI=" + https://netfilter.org/projects/${PN}/files/${P}.tar.xz + verify-sig? ( https://netfilter.org/projects/${PN}/files/${P}.tar.xz.sig ) + " + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + + BDEPEND+="verify-sig? ( >=sec-keys/openpgp-keys-netfilter-20240415 )" +fi + +LICENSE="GPL-2" +SLOT="0/11" # libnftnl.so version +IUSE="examples static-libs test" +RESTRICT="!test? ( test )" + +RDEPEND=" + >=net-libs/libmnl-1.0.4:= +" +BDEPEND+=" + virtual/pkgconfig +" +DEPEND="${RDEPEND}" + +pkg_setup() { + if kernel_is ge 3 13; then + CONFIG_CHECK="~NF_TABLES" + linux-info_pkg_setup + else + eerror "This package requires kernel version 3.13 or newer to work properly." + fi +} + +src_prepare() { + default + + if [[ ${PV} =~ ^[9]{4,}$ ]] ; then + eautoreconf + else + elibtoolize + fi +} + +src_configure() { + local myeconfargs=( + $(use_enable static-libs static) + ) + + econf "${myeconfargs[@]}" +} + +src_install() { + default + + find "${ED}" -type f -name '*.la' -delete || die + + if use examples; then + find examples/ -name 'Makefile*' -delete || die "Could not rm examples" + dodoc -r examples + docompress -x /usr/share/doc/${PF}/examples + fi +} diff --git a/sdk_container/src/third_party/portage-stable/net-libs/ngtcp2/ngtcp2-1.24.0.ebuild b/sdk_container/src/third_party/portage-stable/net-libs/ngtcp2/ngtcp2-1.24.0.ebuild index 72ff03c29b4..2c150130020 100644 --- a/sdk_container/src/third_party/portage-stable/net-libs/ngtcp2/ngtcp2-1.24.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/net-libs/ngtcp2/ngtcp2-1.24.0.ebuild @@ -5,7 +5,7 @@ EAPI=8 # Built with autotools rather than cmake to avoid circular dep (bug #951524 -inherit multilib-minimal +inherit libtool multilib-minimal if [[ ${PV} == 9999 ]] ; then EGIT_REPO_URI="https://github.com/ngtcp2/ngtcp2.git" diff --git a/sdk_container/src/third_party/portage-stable/net-libs/ngtcp2/ngtcp2-1.25.0.ebuild b/sdk_container/src/third_party/portage-stable/net-libs/ngtcp2/ngtcp2-1.25.0.ebuild index b9e77d7facd..ce9290bbc31 100644 --- a/sdk_container/src/third_party/portage-stable/net-libs/ngtcp2/ngtcp2-1.25.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/net-libs/ngtcp2/ngtcp2-1.25.0.ebuild @@ -5,7 +5,7 @@ EAPI=8 # Built with autotools rather than cmake to avoid circular dep (bug #951524 -inherit multilib-minimal +inherit libtool multilib-minimal if [[ ${PV} == 9999 ]] ; then EGIT_REPO_URI="https://github.com/ngtcp2/ngtcp2.git" @@ -49,6 +49,7 @@ QA_CONFIG_IMPL_DECL_SKIP=( src_prepare() { default + elibtoolize # bug #978993 [[ ${PV} == 9999 ]] && eautoreconf } diff --git a/sdk_container/src/third_party/portage-stable/net-libs/ngtcp2/ngtcp2-9999.ebuild b/sdk_container/src/third_party/portage-stable/net-libs/ngtcp2/ngtcp2-9999.ebuild index 9fbc5b21596..ce9290bbc31 100644 --- a/sdk_container/src/third_party/portage-stable/net-libs/ngtcp2/ngtcp2-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/net-libs/ngtcp2/ngtcp2-9999.ebuild @@ -5,7 +5,7 @@ EAPI=8 # Built with autotools rather than cmake to avoid circular dep (bug #951524 -inherit multilib-minimal +inherit libtool multilib-minimal if [[ ${PV} == 9999 ]] ; then EGIT_REPO_URI="https://github.com/ngtcp2/ngtcp2.git" diff --git a/sdk_container/src/third_party/portage-stable/net-misc/openssh/openssh-10.4_p1-r1.ebuild b/sdk_container/src/third_party/portage-stable/net-misc/openssh/openssh-10.4_p1-r1.ebuild index 039df636108..21dfb169344 100644 --- a/sdk_container/src/third_party/portage-stable/net-misc/openssh/openssh-10.4_p1-r1.ebuild +++ b/sdk_container/src/third_party/portage-stable/net-misc/openssh/openssh-10.4_p1-r1.ebuild @@ -25,7 +25,7 @@ LICENSE="BSD GPL-2" SLOT="0" KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" # Probably want to drop ssl defaulting to on in a future version. -IUSE="abi_mips_n32 audit debug kerberos ldns libedit livecd pam security-key selinux +ssl static test" +IUSE="abi_mips_n32 audit debug kerberos ldns libedit livecd pam seccomp security-key selinux +ssl static test" RESTRICT="!test? ( test )" @@ -218,6 +218,11 @@ src_configure() { myconf+=( --disable-utmp --disable-wtmp ) fi + if use kernel_linux; then + # OpenSSH aborts if prctl(PR_SET_SECCOMP) fails (bug 980784) + myconf+=( $(use_with seccomp sandbox seccomp_filter) ) + fi + econf "${myconf[@]}" } diff --git a/sdk_container/src/third_party/portage-stable/net-misc/openssh/openssh-10.5_p1.ebuild b/sdk_container/src/third_party/portage-stable/net-misc/openssh/openssh-10.5_p1.ebuild index 9e9175ef0b3..be861ca55e4 100644 --- a/sdk_container/src/third_party/portage-stable/net-misc/openssh/openssh-10.5_p1.ebuild +++ b/sdk_container/src/third_party/portage-stable/net-misc/openssh/openssh-10.5_p1.ebuild @@ -25,7 +25,7 @@ LICENSE="BSD GPL-2" SLOT="0" KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" # Probably want to drop ssl defaulting to on in a future version. -IUSE="abi_mips_n32 audit debug kerberos ldns libedit livecd pam security-key selinux +ssl static test" +IUSE="abi_mips_n32 audit debug kerberos ldns libedit livecd pam seccomp security-key selinux +ssl static test" RESTRICT="!test? ( test )" @@ -218,6 +218,11 @@ src_configure() { myconf+=( --disable-utmp --disable-wtmp ) fi + if use kernel_linux; then + # OpenSSH aborts if prctl(PR_SET_SECCOMP) fails (bug 980784) + myconf+=( $(use_with seccomp sandbox seccomp_filter) ) + fi + econf "${myconf[@]}" } diff --git a/sdk_container/src/third_party/portage-stable/net-misc/wget/metadata.xml b/sdk_container/src/third_party/portage-stable/net-misc/wget/metadata.xml index e9c33acfd5b..79e6d508636 100644 --- a/sdk_container/src/third_party/portage-stable/net-misc/wget/metadata.xml +++ b/sdk_container/src/third_party/portage-stable/net-misc/wget/metadata.xml @@ -10,6 +10,7 @@ Support for automatic proxy configuration management through net-libs/libproxy. Enable support for media-libs/libmetalink Enable support for NTLM (Windows-based) authorization + Enable Public Suffix List (PSL) support Generate UUIDs for the WARC (Web ARChive file format) using libuuid; otherwise use a simple RNG (random number generator) diff --git a/sdk_container/src/third_party/portage-stable/net-misc/wget/wget-1.25.0-r1.ebuild b/sdk_container/src/third_party/portage-stable/net-misc/wget/wget-1.25.0-r3.ebuild similarity index 89% rename from sdk_container/src/third_party/portage-stable/net-misc/wget/wget-1.25.0-r1.ebuild rename to sdk_container/src/third_party/portage-stable/net-misc/wget/wget-1.25.0-r3.ebuild index db82c2b4a22..480d67fc527 100644 --- a/sdk_container/src/third_party/portage-stable/net-misc/wget/wget-1.25.0-r1.ebuild +++ b/sdk_container/src/third_party/portage-stable/net-misc/wget/wget-1.25.0-r3.ebuild @@ -3,7 +3,7 @@ EAPI=8 -PYTHON_COMPAT=( python3_{11..14} ) +PYTHON_COMPAT=( python3_{12..14} ) VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/wget.asc inherit flag-o-matic python-any-r1 toolchain-funcs unpacker verify-sig @@ -14,8 +14,8 @@ SRC_URI+=" verify-sig? ( mirror://gnu/wget/${P}.tar.lz.sig )" LICENSE="GPL-3+" SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" -IUSE="cookie-check debug gnutls idn libproxy metalink nls ntlm pcre +ssl static test uuid zlib" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" +IUSE="debug gnutls idn libproxy metalink nls ntlm pcre +psl +ssl static test uuid zlib" REQUIRED_USE=" ntlm? ( !gnutls ssl ) gnutls? ( ssl ) @@ -27,7 +27,6 @@ RESTRICT="!test? ( test )" # * Metalink can use gpgme automagically (so let's always depend on it) # for signed metalink resources. LIB_DEPEND=" - cookie-check? ( net-libs/libpsl[static-libs(-)] ) idn? ( >=net-dns/libidn2-0.14:=[static-libs(-)] ) libproxy? ( net-libs/libproxy ) metalink? ( @@ -35,6 +34,7 @@ LIB_DEPEND=" media-libs/libmetalink[static-libs(-)] ) pcre? ( dev-libs/libpcre2[static-libs(-)] ) + psl? ( net-libs/libpsl[static-libs(-)] ) ssl? ( gnutls? ( net-libs/gnutls:=[static-libs(-)] ) !gnutls? ( dev-libs/openssl:=[static-libs(-)] ) @@ -68,6 +68,10 @@ DOCS=( AUTHORS MAILING-LIST NEWS README ) # gnulib FPs QA_CONFIG_IMPL_DECL_SKIP=( unreachable MIN alignof static_assert fpurge ) +PATCHES=( + "${FILESDIR}"/${PN}-1.25.0-openssl-4.patch +) + pkg_setup() { use test && python-any-r1_pkg_setup } @@ -112,7 +116,7 @@ src_configure() { $(use_enable pcre pcre2) $(use_enable ssl digest) $(use_enable ssl opie) - $(use_with cookie-check libpsl) + $(use_with psl libpsl) $(use_enable idn iri) $(use_enable libproxy) $(use_with metalink) diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/alpha/package.use.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/alpha/package.use.mask index 6ef810da9ac..c1c53712191 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/alpha/package.use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/alpha/package.use.mask @@ -1,6 +1,10 @@ # Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# Sam James (2026-09-04) +# sys-apps/xdg-desktop-portal not keyworded here +x11-base/xwayland libei + # Nicolas PARLANT (2026-07-30) # dev-python/qtpy is not keyworded here media-libs/libffado gui @@ -183,10 +187,6 @@ media-video/ffmpeg-compat libplacebo # Requires sys-devel/{clang,llvm}:16. dev-lang/python jit -# matoro (2024-02-29) -# sys-apps/xdg-desktop-portal is not keyworded here, #925731 -x11-base/xwayland libei - # matoro (2024-02-06) # Pulls in dev-python/scipy, which does not pass tests, #923067 media-video/pipewire liblc3 diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/amd64/no-multilib/package.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/amd64/no-multilib/package.mask index f52217b74f9..4b609fd1af7 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/amd64/no-multilib/package.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/amd64/no-multilib/package.mask @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # James Le Cuirot (2021-09-04) @@ -51,7 +51,7 @@ games-arcade/thinktanks-demo games-emulation/gens games-emulation/vgba games-emulation/zinc -games-emulation/zsnes + (2023-01-24) # libomptarget is only supported on 64-bit architectures. diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/amd64/package.use.stable.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/amd64/package.use.stable.mask index b9b6a090c28..ffc017592bc 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/amd64/package.use.stable.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/amd64/package.use.stable.mask @@ -83,7 +83,7 @@ dev-python/nbval -doc # AMDGPU enablement depends on dev-libs/rocr-runtime, ~amd64 only # See also: https://bugs.gentoo.org/891499 llvm-runtimes/offload llvm_targets_AMDGPU -llvm-runtimes/openmp llvm_targets_AMDGPU +llvm-runtimes/openmp llvm_targets_AMDGPU rocm # Sam James (2022-12-11) # net-libs/rustls-ffi is not yet marked stable diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/amd64/x32/package.use.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/amd64/x32/package.use.mask index 4d0ff59418d..d5c75c53653 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/amd64/x32/package.use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/amd64/x32/package.use.mask @@ -67,6 +67,7 @@ dev-python/cloudscraper test games-util/lgogdownloader gui kde-apps/kde-apps-meta pim kde-apps/kdenetwork-meta bittorrent +kde-apps/kgpg pim kde-apps/kleopatra pim kde-apps/umbrello php kde-misc/kio-gdrive share diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/arm/package.use.stable.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/arm/package.use.stable.mask index 2c7f0fed78e..af16513023d 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/arm/package.use.stable.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/arm/package.use.stable.mask @@ -55,10 +55,6 @@ app-admin/syslog-ng grpc # almost one year to this this date. bug 915548#c6 dev-libs/hiredis test -# Matt Turner (2023-10-30) -# libei not stable yet -x11-base/xwayland libei - # Sam James (2023-07-28) # media-libs/libffado not marked stable here media-video/pipewire ieee1394 diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/base/package.use.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/base/package.use.mask index 1c2cdd38357..01064f6b1ab 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/base/package.use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/base/package.use.mask @@ -1,6 +1,11 @@ # Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# James Le Cuirot (2026-09-05) +# VIS is a sparc-specific SIMD optimisation. +media-libs/libggi vis +media-libs/xine-lib vis + # Sam James (2026-07-22) # media-libs/libmysofa not keyworded in most places media-video/pipewire sofa @@ -8,11 +13,11 @@ media-video/pipewire sofa # Michał Górny (2026-03-14) # SPIRV target requires dev-libs/level-zero. llvm-runtimes/offload llvm_targets_SPIRV -llvm-runtimes/openmp -level-zero +llvm-runtimes/openmp level-zero # Michał Górny (2026-03-03) # OpenMP offloading GPU runtimes are not keyworded everywhre. -llvm-runtimes/clang-runtime llvm_targets_AMDGPU llvm_targets_NVPTX +llvm-runtimes/clang-runtime llvm_targets_AMDGPU llvm_targets_NVPTX llvm_targets_SPIRV # Ionen Wolkens (2026-02-11) # net-libs/librist currently has very few keywords @@ -249,6 +254,12 @@ kde-plasma/discover snap # See bug #894078. dev-python/tables cpudetection +# Yiyang Wu (2023-01-27) +# AMDGPU enablement depends on dev-libs/rocr-runtime, ~amd64 only +# See also: https://bugs.gentoo.org/891499 +llvm-runtimes/offload llvm_targets_AMDGPU +llvm-runtimes/openmp llvm_targets_AMDGPU rocm + # Michał Górny (2023-01-24) # libomptarget is only supported on 64-bit architectures. >=llvm-runtimes/openmp-16.0.0_pre20230124 offload diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/base/use.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/base/use.mask index 1540a5e398a..98abd915672 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/base/use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/base/use.mask @@ -166,9 +166,6 @@ loongson2f ibm ps3 -# sparc arch specific USE flags -vis - # arm arch specific USE flags cpu_flags_arm_v4 cpu_flags_arm_v5 diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/hppa/package.use.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/hppa/package.use.mask index 81106c6c975..0df5da87183 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/hppa/package.use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/hppa/package.use.mask @@ -4,6 +4,14 @@ # NOTE: When masking a USE flag due to missing keywords, please file a keyword # request bug for the hppa arch. +# Sam James (2026-09-04) +# sys-apps/xdg-desktop-portal not keyworded here +x11-base/xwayland libei + +# Andreas K. Hüttel (2026-09-01) +# Not supported for hppa +>=net-misc/openssh-10.5_p1 seccomp + # Ionen Wolkens (2026-06-10) # llvm-core/clang is not available here, and neither is nvidia media-video/ffmpeg cuda-clang @@ -176,10 +184,6 @@ app-admin/syslog-ng grpc # dev-libs/capstone not keyworded here dev-lang/php capstone -# Mart Raudsepp (2023-12-25) -# sys-apps/xdg-desktop-portal not keyworded here yet -x11-base/xwayland libei - # James Le Cuirot (2023-12-12) # USE=bpf depends on llvm-core/clang which is not keyworded on hppa media-libs/libv4l bpf diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/loong/package.use.stable.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/loong/package.use.stable.mask deleted file mode 100644 index 4c516cc46c9..00000000000 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/loong/package.use.stable.mask +++ /dev/null @@ -1,6 +0,0 @@ -# Copyright 2023 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -# Matt Turner (2023-10-30) -# libei not stable yet -x11-base/xwayland libei diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/package.use.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/package.use.mask index d6ea18d9067..88f738261b0 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/package.use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/package.use.mask @@ -1,6 +1,11 @@ # Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# Andreas Sturmlechner (2026-08-31) +# Requires unkeyworded kde-apps/akonadi +kde-apps/kgpg pim +kde-apps/kleopatra pim + # Alfred Wingate (2026-05-13) # dev-qt/qtgraphs:6 is not keyworded here dev-python/pyside graphs @@ -59,10 +64,6 @@ media-sound/mpd sid media-libs/libsdl2 fcitx x11-terms/mlterm fcitx -# Andreas Sturmlechner (2024-08-19) -# kde-apps/kdesdk-thumbnailers is not yet keyworded -kde-apps/thumbnailers gettext - # Thomas Bettler (2024-06-10) # requires dev-libs/apache-arrow which is net yet keyworded sci-libs/gdal parquet @@ -82,7 +83,6 @@ media-video/mpv -lua_single_target_lua5-1 lua_single_target_luajit # Andreas Sturmlechner (2024-03-24) # Requires unkeyworded dev-qt/qtwebengine (and revdeps) -kde-apps/kleopatra pim kde-plasma/plasma-nm openconnect net-p2p/ktorrent rss @@ -339,13 +339,6 @@ games-emulation/dosbox glide # Enable numa support on supported architectures dev-db/mysql -numa -# Michael Palimaka (2016-07-07) -# Requires unkeyworded dependencies -dev-vcs/subversion kwallet -sys-auth/polkit kde -sys-block/gparted kde -virtual/notification-daemon kde - # Pacho Ramos (2015-11-15) # Missing keywords media-sound/rhythmbox upnp-av diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/package.use.stable.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/package.use.stable.mask index 343b3248896..7aea59131d7 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/package.use.stable.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/package.use.stable.mask @@ -17,15 +17,16 @@ #--- END OF EXAMPLES --- +# Andreas Sturmlechner (2026-08-31) +# Requires dependencies that aren't stable here. +sys-block/gparted kde +virtual/notification-daemon kde + # Joonas Niilola (2024-05-28) # Depchain-destabilization on ppc (libsecret[test-rust] -> gjs -> spidermonkey) app-crypt/libsecret test-rust dev-util/glade gjs -# Mart Raudsepp (2023-12-25) -# Libei not stable here yet -x11-base/xwayland libei - # Sam James (2023-07-28) # media-libs/libffado not marked stable here media-video/pipewire ieee1394 diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc32/package.use.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc32/package.use.mask index 29f802b28c8..f98c34c9c95 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc32/package.use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc32/package.use.mask @@ -1,6 +1,13 @@ # Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# Andreas Sturmlechner (2026-08-31) +# Requires unkeyworded dependencies +dev-vcs/subversion kwallet +sys-auth/polkit kde +sys-block/gparted kde +virtual/notification-daemon kde + # Alfred Wingate (2026-07-26) # Firefox not keyworded here dev-util/selenium-manager test diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc32/package.use.stable.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc32/package.use.stable.mask index a41ae7ecec6..282e26de8c7 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc32/package.use.stable.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc32/package.use.stable.mask @@ -17,6 +17,10 @@ #--- END OF EXAMPLES --- +# Sam James (2026-09-04) +# sys-apps/xdg-desktop-portal not marked stable here +x11-base/xwayland libei + # Ian Jordan (2026-04-08) # Requires app-emulation/qemu which does not have stable keywords. sys-kernel/gentoo-kernel test diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc64/package.use.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc64/package.use.mask index 5980ae80b65..4ff87a1f5e7 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc64/package.use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc64/package.use.mask @@ -234,11 +234,6 @@ net-vpn/tor seccomp # Mask until >sys-cluster/ceph-0.94 goes stable net-analyzer/rrdtool rados -# Michael Sterrett (2013-11-12) -# Mask openmedia use flag because the content generation tools -# are missing keywords. -games-simulation/openttd openmedia - # Kacper Kowalik (2011-09-02) # Mask www-client/seamonkey[ipc] on ppc64 wrt #381191 www-client/seamonkey ipc diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc64/package.use.stable.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc64/package.use.stable.mask index c2871cf802c..45cb781ac1e 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc64/package.use.stable.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc64/package.use.stable.mask @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # When you add an entry to the top of this file, add your name, the date, and @@ -17,6 +17,14 @@ #--- END OF EXAMPLES --- +# Sam James (2026-09-04) +# sys-apps/xdg-desktop-portal not marked stable here +x11-base/xwayland libei + # Sam James (2025-11-30) # sci-libs/blis does not have stable keywords sci-libs/flexiblas blis diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/s390/package.use.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/s390/package.use.mask index 5bfd05c0413..241d2e99913 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/s390/package.use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/s390/package.use.mask @@ -1,6 +1,10 @@ # Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# Sam James (2026-09-04) +# sys-apps/xdg-desktop-portal not keyworded here +x11-base/xwayland libei + # Andreas K. Hüttel (2026-05-04) # Unkeyworded dependencies sys-kernel/dracut test @@ -153,10 +157,6 @@ app-admin/syslog-ng grpc # dev-libs/capstone not keyworded here dev-lang/php capstone -# Mart Raudsepp (2023-12-25) -# sys-apps/xdg-desktop-portal not keyworded here yet -x11-base/xwayland libei - # James Le Cuirot (2023-12-12) # USE=bpf depends on llvm-core/clang which is not keyworded on s390 media-libs/libv4l bpf diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/sparc/package.use.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/sparc/package.use.mask index 4f596628ce5..c88c0b88b45 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/sparc/package.use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/sparc/package.use.mask @@ -1,6 +1,15 @@ # Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# James Le Cuirot (2026-09-05) +# VIS is a sparc-specific SIMD optimisation. +media-libs/libggi -vis +media-libs/xine-lib -vis + +# Sam James (2026-09-04) +# sys-apps/xdg-desktop-portal not keyworded here +x11-base/xwayland libei + # Alfred Wingate (2026-07-26) # Firefox not keyworded here dev-util/selenium-manager test @@ -258,10 +267,6 @@ sys-libs/libnvme keyutils # dev-libs/capstone not keyworded here dev-lang/php capstone -# Mart Raudsepp (2023-12-25) -# sys-apps/xdg-desktop-portal not keyworded here yet -x11-base/xwayland libei - # Rolf Eike Beer (2023-12-22) # media-video/rav1e isn't keyworded here media-libs/libavif rav1e diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/sparc/use.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/sparc/use.mask index a3bd8a7fa3b..5fdfa79855c 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/sparc/use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/sparc/use.mask @@ -226,9 +226,6 @@ alsa_cards_sbawe alsa_cards_sscape alsa_cards_wavefront -# Copied over from default-linux/sparc/sparc64 --vis - # The default on SPARC is non-multilib # if a sub-profile want's it, it can -use.mask it multilib diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/x86/package.use.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/x86/package.use.mask index 5d75f0160cc..dffce407fde 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/x86/package.use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/x86/package.use.mask @@ -72,10 +72,6 @@ app-emulation/qemu passt # mongodb not keyworded here sci-libs/gdal mongodb -# Andreas Sturmlechner (2025-07-26) -# kde-apps/kamoso not keyworded yet, bug #946343 ->=kde-apps/kdemultimedia-meta-25.04.2-r1 gstreamer - # Robin H. Johnson (2025-07-04) # Deeper test dependencies with Ruby 3.3 are no longer yet keyworded keyword; # manually tested instead; Test dependencies work with stable Ruby 3.2. diff --git a/sdk_container/src/third_party/portage-stable/profiles/base/package.use.force b/sdk_container/src/third_party/portage-stable/profiles/base/package.use.force index 8e314515d16..847e3a0c30f 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/base/package.use.force +++ b/sdk_container/src/third_party/portage-stable/profiles/base/package.use.force @@ -1,6 +1,14 @@ # Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# Joonas Niilola (2026-09-01) +# Force 'jumbo-build' on, as 155.0 doesn't build without it. +# '-jumbo-build' is often broken, it's untested by upstream and Gentoo +# Firefox packagers. +# Report bugs directly to upstream if you want '-jumbo-build' to work. +>=www-client/firefox-155.0 jumbo-build +>=mail-client/thunderbird-155.0 jumbo-build + # Matt Jolly (2026-08-19) # Upstream has a faulty mold dependency with -official and # the version we need isn't stable yet; Bug #980645 @@ -112,6 +120,8 @@ llvm-runtimes/libcxxabi clang # echo "dev-lang/rust:${slot} llvm_slot_${_RUST_LLVM_MAP[${slot}]}" # echo "dev-lang/rust-bin:${slot} llvm_slot_${_RUST_LLVM_MAP[${slot}]}" # done +dev-lang/rust:1.98.1 llvm_slot_22 +dev-lang/rust-bin:1.98.1 llvm_slot_22 dev-lang/rust:1.97.1 llvm_slot_22 dev-lang/rust-bin:1.97.1 llvm_slot_22 dev-lang/rust:1.96.1 llvm_slot_22 diff --git a/sdk_container/src/third_party/portage-stable/profiles/base/package.use.mask b/sdk_container/src/third_party/portage-stable/profiles/base/package.use.mask index 233247a2a2c..9a13cdcc7bf 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/base/package.use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/base/package.use.mask @@ -6,6 +6,10 @@ # New entries go on top. +# Michał Górny (2026-09-05) +# dev-python/{ioflo,raet} stuck on Python 3.12 and last-rited. +app-admin/salt raet + # Emi (2026-07-30) # Turnstile is currently in ::guru sys-auth/pambase turnstile @@ -44,13 +48,6 @@ dev-cpp/eigen:3/3.4 test # uses MeDiPack ~sci-libs/adolc-9999 -mpi -# Andreas Sturmlechner (2026-05-15) -# Various integration packages. Maintainers, you must drop Qt5 support. -<=app-i18n/fcitx-qt-5.1.14-r0 qt5 -<=app-i18n/uim-1.9.6-r0 qt5 -<=x11-themes/QGnomePlatform-0.9.2-r7 qt5 -<=x11-themes/adwaita-qt-1.4.2-r1 qt5 - # Michał Górny (2026-05-07) # Force-enable all PYTHON_TARGETS for python-exec to avoid using private # API. Please remember to keep it in sync with python_targets.desc. @@ -63,11 +60,9 @@ dev-lang/python-exec -python_targets_python3_15t >=sci-libs/libsemigroups-3.5.5 eigen # Andreas Sturmlechner (2026-04-12) -# net-wireless/gnuradio and dependencies. Preparing Qt5 last-rites. -# Bugs #948049, #954887. Removal some time after 2026-04-30. -<=dev-python/pyqtgraph-0.14.0-r0 qt5 -net-wireless/gnuradio qt5 -<=net-wireless/gnuradio-3.10.99 channels +# net-wireless/gnuradio and dependencies. Qt5 was last-rited. +# Bug #948049. + (2026-03-20) # Only meant for bootstrapping a cross-compiler. @@ -518,12 +513,6 @@ dev-java/swt:4.10 webkit # https://github.com/gentoo/gentoo/pull/29236#issuecomment-1407373536 sci-libs/vtk debug -# Yiyang Wu (2023-01-27) -# AMDGPU enablement depends on dev-libs/rocr-runtime, ~amd64 only -# See also: https://bugs.gentoo.org/891499 -llvm-runtimes/offload llvm_targets_AMDGPU -llvm-runtimes/openmp llvm_targets_AMDGPU - # Joonas Niilola (2023-01-08) # Doesn't compile currently, bug #853094. >=net-dialup/freeradius-3.2.0 oracle diff --git a/sdk_container/src/third_party/portage-stable/profiles/base/use.mask b/sdk_container/src/third_party/portage-stable/profiles/base/use.mask index 6a8aebaf2d7..acecc4e5e4e 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/base/use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/base/use.mask @@ -14,7 +14,6 @@ python_single_target_python3_15t # Michał Górny (2026-04-18) # LLVM slots with no keyworded releases yet. llvm_slot_24 -llvm_slot_23 # Sam James (2025-12-02) # GCC 16 is not yet released diff --git a/sdk_container/src/third_party/portage-stable/profiles/base/use.stable.mask b/sdk_container/src/third_party/portage-stable/profiles/base/use.stable.mask index 56de92ad369..d964bd1d2b0 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/base/use.stable.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/base/use.stable.mask @@ -4,6 +4,10 @@ # New entries go on top. # Please use the same syntax as in use.mask. +# Michał Górny (2026-09-01) +# LLVM slots with no stable keywords. +llvm_slot_23 + # Hans de Graaff (2024-12-26) # Currently in testing and not ready to go stable yet. ruby_targets_ruby34 diff --git a/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/hardened/systemd/eapi b/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/hardened/systemd/eapi new file mode 100644 index 00000000000..7ed6ff82de6 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/hardened/systemd/eapi @@ -0,0 +1 @@ +5 diff --git a/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/hardened/systemd/parent b/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/hardened/systemd/parent new file mode 100644 index 00000000000..44f88d3e2df --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/hardened/systemd/parent @@ -0,0 +1,2 @@ +.. +../../../../../../../targets/systemd diff --git a/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/musl/systemd/eapi b/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/musl/systemd/eapi new file mode 100644 index 00000000000..7ed6ff82de6 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/musl/systemd/eapi @@ -0,0 +1 @@ +5 diff --git a/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/musl/systemd/parent b/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/musl/systemd/parent new file mode 100644 index 00000000000..44f88d3e2df --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/musl/systemd/parent @@ -0,0 +1,2 @@ +.. +../../../../../../../targets/systemd diff --git a/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/time64/hardened/systemd/eapi b/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/time64/hardened/systemd/eapi new file mode 100644 index 00000000000..7ed6ff82de6 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/time64/hardened/systemd/eapi @@ -0,0 +1 @@ +5 diff --git a/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/time64/hardened/systemd/parent b/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/time64/hardened/systemd/parent new file mode 100644 index 00000000000..f7739b40587 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/profiles/default/linux/x86/23.0/i686/time64/hardened/systemd/parent @@ -0,0 +1,2 @@ +.. +../../../../../../../../targets/systemd diff --git a/sdk_container/src/third_party/portage-stable/profiles/features/musl/package.mask b/sdk_container/src/third_party/portage-stable/profiles/features/musl/package.mask index 24f6641abe2..714bb36ebd3 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/features/musl/package.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/features/musl/package.mask @@ -339,20 +339,11 @@ games-fps/unreal games-fps/unreal-gold-data games-fps/unreal-tournament games-fps/unreal-tournament-data -games-fps/ut2003 -games-fps/ut2003-bonuspack-cm -games-fps/ut2003-bonuspack-de -games-fps/ut2003-bonuspack-epic -games-fps/ut2003-data -games-fps/ut2003-demo games-fps/ut2004 games-fps/ut2004-bonuspack-cbp1 games-fps/ut2004-bonuspack-cbp2 -games-fps/ut2004-bonuspack-ece -games-fps/ut2004-bonuspack-mega games-fps/ut2004-bonuspack-xp games-fps/ut2004-data -games-fps/ut2004-demo games-puzzle/world-of-goo-demo games-puzzle/world-of-goo-gog games-puzzle/world-of-goo-hb @@ -363,7 +354,6 @@ games-server/bedrock-server games-server/etqw-ded games-server/mtavc games-server/steamcmd -games-server/ut2004-ded games-simulation/slime-rancher games-strategy/darwinia games-strategy/knights-demo diff --git a/sdk_container/src/third_party/portage-stable/profiles/features/musl/package.use.mask b/sdk_container/src/third_party/portage-stable/profiles/features/musl/package.use.mask index 4a730a6df9c..8ec88116e54 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/features/musl/package.use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/features/musl/package.use.mask @@ -1,6 +1,10 @@ # Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# Michał Górny (2026-08-29) +# Requires CUDA. +llvm-runtimes/clang-runtime llvm_targets_NVPTX + # Andreas K. Hüttel (2026-02-04) # Some systemd features will never work on musl. sys-apps/systemd homed @@ -109,8 +113,10 @@ sys-devel/binutils gprofng gui-libs/gtk cpu_flags_x86_f16c # Michał Górny (2023-12-31) -# Requires dev-libs/level-zero. +# Require dev-libs/level-zero. dev-lang/ispc gpu +llvm-runtimes/openmp level-zero +llvm-runtimes/clang-runtime llvm_targets_SPIRV # Guillaume Seren (2023-11-29) # execinfo.h required for server. diff --git a/sdk_container/src/third_party/portage-stable/profiles/features/wd40/package.mask b/sdk_container/src/third_party/portage-stable/profiles/features/wd40/package.mask index 7782084bcfe..bdf92bb3330 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/features/wd40/package.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/features/wd40/package.mask @@ -101,6 +101,7 @@ dev-python/flufl-lock dev-python/gherkin-official dev-python/guessit dev-python/knowit +dev-python/hypothesis dev-python/logfury dev-python/narwhals dev-python/progressbar2 @@ -569,6 +570,7 @@ media-gfx/gnome-font-viewer media-gfx/simple-scan media-sound/easyeffects media-sound/gnome-music +media-video/celluloid net-wireless/gnome-bluetooth sys-apps/baobab sys-apps/xdg-desktop-portal-gnome diff --git a/sdk_container/src/third_party/portage-stable/profiles/features/wd40/package.use.mask b/sdk_container/src/third_party/portage-stable/profiles/features/wd40/package.use.mask index 8c69620e511..c672455ec4d 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/features/wd40/package.use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/features/wd40/package.use.mask @@ -1,6 +1,67 @@ # Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# Michał Górny (2025-08-29) +# Need dev-python/hypothesis. +dev-python/accessible-pygments test +dev-python/argon2-cffi test +dev-python/attrs test +dev-python/binaryornot test +dev-python/brotlicffi test +dev-python/cattrs test +dev-python/chardet test +dev-python/commonmark test +dev-python/coverage test +dev-python/ecdsa test +dev-python/gmpy2 test +dev-python/h2 test +dev-python/hpack test +dev-python/hyperlink test +dev-python/hypothesis-gentoo test +dev-python/icalendar test +dev-python/idna test +dev-python/iso8601 test +dev-python/isoduration test +dev-python/isort test +dev-python/jsondiff test +dev-python/jsonpath-ng test +dev-python/kombu test +dev-python/mccabe test +dev-python/mpmath test +dev-python/natsort test +dev-python/numpy test +dev-python/packaging test +dev-python/pandas test +dev-python/parver test +dev-python/pikepdf test +dev-python/priority test +dev-python/pyarrow test +dev-python/pycairo test +dev-python/pynacl test +dev-python/pyrsistent test +dev-python/pytest test +dev-python/pytest-asyncio test +dev-python/pytest-twisted test +dev-python/python-dateutil test +dev-python/python-subunit test +dev-python/pyudev test +dev-python/quart test +dev-python/rapidfuzz test +dev-python/rfc3339-validator test +dev-python/rfc3986-validator test +dev-python/scipy test +dev-python/srt test +dev-python/sympy test +dev-python/textdistance test +dev-python/time-machine test +dev-python/wcag-contrast-ratio test +dev-python/xarray test +dev-python/yarl test +dev-python/zeroconf test +dev-python/zstandard test +media-libs/mutagen test +sci-libs/pyshp test + # Pacho Ramos (2026-08-10) # Needs gnome-control-center and other rust reverse deps app-emulation/winetricks gui diff --git a/sdk_container/src/third_party/portage-stable/profiles/license_groups b/sdk_container/src/third_party/portage-stable/profiles/license_groups index d663d7b6fac..8d8a81e2232 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/license_groups +++ b/sdk_container/src/third_party/portage-stable/profiles/license_groups @@ -81,7 +81,7 @@ OSI-APPROVED @OSI-APPROVED-FREE @OSI-APPROVED-NONFREE # License agreements that try to take away your rights. These are more # restrictive than "all-rights-reserved" or require explicit approval. -EULA 2dboy-EULA AMD-GPU-PRO-EULA android AnyDesk-TOS Aseprite-EULA baudline bestcrypt Broadcom-tod CAPYBARA-EULA Dell-EULA Digium Epic-TOS ETQW f.lux FAH-EULA-2014 Flightradar24 FNMT-RCM Gameplay-Group-EULA geekbench geekbench-ai genymotion GIMPS GOG-EULA google-chrome Intel-SDP Introversion JoyPixels LOKI-EULA MakeMKV-EULA Microsemi microsoft-edge microsoft-proprietary Microsoft-vscode MikroTik Mojang MTA-0.5 NVIDIA-CUDA NVIDIA-cuSPARSELt-v2020.10.12 NVIDIA-SDK NVIDIA-SDK-v2017.06.13 NVIDIA-SDK-v2020.10.12 Ookla OPERA-2018 OPERA-2020 PAPERS-PLEASE PassMark-EULA PICO-8 Primate-Plunge PUEL-11 PUEL-12 Q3AEULA-20000111 QUAKE4 RAR sfpg SPS Steam supermicro Synology teamspeak3 teamspeak5 TeamViewer THINKTANKS TIK ubiquiti ut2003 ut2003-demo Vivaldi worklog-assistant WPS-EULA zi-labone +EULA 2dboy-EULA AMD-GPU-PRO-EULA android AnyDesk-TOS Aseprite-EULA baudline bestcrypt Broadcom-tod CAPYBARA-EULA Dell-EULA Digium Epic-TOS ETQW f.lux FAH-EULA-2014 Flightradar24 FNMT-RCM Gameplay-Group-EULA geekbench geekbench-ai genymotion GIMPS GOG-EULA google-chrome Intel-SDP Introversion JoyPixels LOKI-EULA MakeMKV-EULA Microsemi microsoft-edge microsoft-proprietary Microsoft-vscode MikroTik Mojang MTA-0.5 NVIDIA-CUDA NVIDIA-cuSPARSELt-v2020.10.12 NVIDIA-SDK NVIDIA-SDK-v2017.06.13 NVIDIA-SDK-v2020.10.12 Ookla OPERA-2018 OPERA-2020 PAPERS-PLEASE PassMark-EULA PICO-8 Primate-Plunge PUEL-11 PUEL-12 Q3AEULA-20000111 QUAKE4 RAR sfpg SPS Steam supermicro Synology teamspeak3 teamspeak5 TeamViewer THINKTANKS TIK ubiquiti Vivaldi worklog-assistant WPS-EULA zi-labone # Deprecated license labels, used by pkgcheck #DEPRECATED (currently none) diff --git a/sdk_container/src/third_party/portage-stable/profiles/package.mask b/sdk_container/src/third_party/portage-stable/profiles/package.mask index 7288cc910ab..6393314f65c 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/package.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/package.mask @@ -36,6 +36,68 @@ #--- END OF EXAMPLES --- +# Michał Górny (2026-09-05) +# Broken with current dev-python/pywayland version. Stuck on old +# gui-libs/wlroots. Used only by old versions of x11-wm/qtile. +# Removal on 2026-10-05. Bug #982020. +dev-python/pywlroots + +# Michał Górny (2026-09-05) +# Stuck on Python 3.12, broken tests, no reverse dependencies. +# Removal on 2026-10-05. Bug #952388. +dev-python/python3-saml + +# Michał Górny (2026-09-05) +# Stuck on Python 3.12. No activity upstream. +# Removal on 2026-10-05. Bug #952340. +dev-python/ioflo +dev-python/raet + +# Michał Górny (2026-09-05) +# dev-python/consonance has been broken since at least 2024. Contrary +# to PYTHON_COMPAT, the code is incompatible with Python 3.12+. +# The protobuf file needs to be rebuilt, yet upstream never published +# its source. No upstream activity since 2021. No reverse +# dependencies. Including a bunch of dead NIH dependencies. +# Removal on 2026-10-05. Bug #926610. +dev-python/consonance +dev-python/dissononce +dev-python/python-axolotl +dev-python/python-axolotl-curve25519 +dev-python/transitions + +# Michał Górny (2026-09-04) +# Test suite broken with numpy-2. Last release in 2020. No reverse +# dependencies. +# Removal on 2026-10-04. Bug #952323. +dev-python/chart-studio + +# Michał Górny (2026-09-01) +# Low quality slop package with high code churn and frequently changing +# results. All the most recent releases are broken. +# No reverse dependencies. Removal on 2026-10-01. Bug #981756. +dev-python/pyproject-fmt + +# Ulrich Müller (2026-08-31) +# Snapshot versions, masked for testing. + (2026-08-28) +# Parallel-build issue. While "emake -j1" works, have some time to +# figure it out for now. Bug #981581 +=dev-libs/nss-3.128 + +# Bernard Cafarelli (2026-08-24) +# Abandoned (last release in 2008), and uncertain useful value with modern +# filesystems. Also collides with dev-util/shake +# Removal on 2026-09-24. Bug #978360 +sys-fs/shake + +# Bernard Cafarelli (2026-08-24) +# Abandoned (last release in 2009), and failing on sample QTVR panorama files +# Removal on 2026-09-24. Bug #955494 +media-gfx/freepv + # Sam James (2026-08-21) # Grave security vulnerabilities which either haven't been # fixed upstream or fixed insufficiently. Our version is out-of-date as @@ -47,12 +109,6 @@ acct-group/croc acct-user/croc net-misc/croc -# Arthur Zamarin (2026-08-20) -# Masked for testing. Already detected regressions, so downgrade -# unless you want to help test. -# Bug #981130. -=dev-lang/go-1.27.0 - # James Le Cuirot (2026-08-16) # This fork of Barrier sadly didn't get very far. Upstream have now archived the # repository. Use gui-apps/deskflow, which is now the FOSS upstream of the @@ -96,37 +152,6 @@ dev-python/pyformance # Removal on 2026-09-03. Bug #980354. dev-python/faust-cchardet -# James Le Cuirot (2026-07-29) -# These packages have been superseded by recent versions of -# games-fps/ut2004-data, which now includes this content regardless of -# installation source. For the XP Bonus Maps that were included in the ECE -# package, install games-fps/ut2004-bonuspack-xp. Removal on 2026-08-29. -games-fps/ut2004-bonuspack-ece -games-fps/ut2004-bonuspack-mega - -# James Le Cuirot (2026-07-29) -# UT2004 now has modern builds and is essentially free to download, so there is -# no need for this ancient package that allowed you to run a server for free. -# Use games-fps/ut2004[dedicated] instead. Removal on 2026-08-29. Bug #979392. -games-server/ut2004-ded - -# James Le Cuirot (2026-07-29) -# UT2004 now has modern builds and is essentially free to download, so there is -# no reason to bother with this old demo. Removal on 2026-08-29. Bug #979271. -games-fps/ut2004-demo - -# James Le Cuirot (2026-07-29) -# UT2004 is basically the same as UT2003, only bigger and better. Unlike UT2003, -# UT2004 now has modern builds and is essentially free to download, so there is -# no reason to choose UT2003 anymore. Removal on 2026-08-29. Bug #790173. -games-fps/ut2003 -games-fps/ut2003-bonuspack-cm -games-fps/ut2003-bonuspack-de -games-fps/ut2003-bonuspack-epic -games-fps/ut2003-data -games-fps/ut2003-demo -games-util/uz2unpack - # James Le Cuirot (2026-07-28) # microsoft-identity-broker no longer needs a user. Removal on 2026-09-28. acct-user/microsoft-identity-broker @@ -363,7 +388,7 @@ dev-qt/qtx11extras:5 # This version has lit a firecracker under the community and attracted # some ire. The situation is in a state of mild flux, and more generally # requires further consideration to determine the correct course of -# action. Use at your own risk. +# action. Use at your own risk. See bug #969475. >=app-text/calibre-8.11.0 # Sam James (2025-11-25) diff --git a/sdk_container/src/third_party/portage-stable/profiles/profiles.desc b/sdk_container/src/third_party/portage-stable/profiles/profiles.desc index c6542ce23b0..30798318503 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/profiles.desc +++ b/sdk_container/src/third_party/portage-stable/profiles/profiles.desc @@ -403,6 +403,7 @@ sparc default/linux/sparc/23.0/split-usr/64ul/desktop stable x86 default/linux/x86/23.0/i686 stable x86 default/linux/x86/23.0/i686/systemd stable x86 default/linux/x86/23.0/i686/hardened stable +x86 default/linux/x86/23.0/i686/hardened/systemd stable x86 default/linux/x86/23.0/i686/hardened/selinux stable x86 default/linux/x86/23.0/i686/desktop stable x86 default/linux/x86/23.0/i686/desktop/gnome stable @@ -426,6 +427,7 @@ x86 default/linux/x86/23.0/i686/split-usr/prefix/kernel-3.2+ exp x86 default/linux/x86/23.0/i686/time64 stable x86 default/linux/x86/23.0/i686/time64/systemd stable x86 default/linux/x86/23.0/i686/time64/hardened stable +x86 default/linux/x86/23.0/i686/time64/hardened/systemd stable x86 default/linux/x86/23.0/i686/time64/hardened/selinux stable x86 default/linux/x86/23.0/i686/time64/desktop stable x86 default/linux/x86/23.0/i686/time64/desktop/gnome stable @@ -541,6 +543,7 @@ riscv default/linux/riscv/23.0/rv32/ilp32/musl/systemd exp riscv default/linux/riscv/23.0/rv32/split-usr/ilp32d/musl exp riscv default/linux/riscv/23.0/rv32/split-usr/ilp32/musl exp x86 default/linux/x86/23.0/i686/musl dev +x86 default/linux/x86/23.0/i686/musl/systemd dev x86 default/linux/x86/23.0/i686/musl/selinux exp x86 default/linux/x86/23.0/i686/split-usr/musl dev x86 default/linux/x86/23.0/i686/split-usr/musl/selinux exp diff --git a/sdk_container/src/third_party/portage-stable/sec-policy/selinux-base/selinux-base-2.20260616_p1.ebuild b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-base/selinux-base-2.20260616_p1.ebuild index e6002b3b903..f5b6ecb5e63 100644 --- a/sdk_container/src/third_party/portage-stable/sec-policy/selinux-base/selinux-base-2.20260616_p1.ebuild +++ b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-base/selinux-base-2.20260616_p1.ebuild @@ -3,7 +3,7 @@ EAPI=8 -PYTHON_COMPAT=( python3_{11..14} ) +PYTHON_COMPAT=( python3_{12..15} ) PYTHON_REQ_USE="xml(+)" inherit python-any-r1 diff --git a/sdk_container/src/third_party/portage-stable/sec-policy/selinux-base/selinux-base-9999.ebuild b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-base/selinux-base-9999.ebuild index e6002b3b903..f5b6ecb5e63 100644 --- a/sdk_container/src/third_party/portage-stable/sec-policy/selinux-base/selinux-base-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/sec-policy/selinux-base/selinux-base-9999.ebuild @@ -3,7 +3,7 @@ EAPI=8 -PYTHON_COMPAT=( python3_{11..14} ) +PYTHON_COMPAT=( python3_{12..15} ) PYTHON_REQ_USE="xml(+)" inherit python-any-r1 diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/bubblewrap/Manifest b/sdk_container/src/third_party/portage-stable/sys-apps/bubblewrap/Manifest index 456ae47ca05..1eaf010acba 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/bubblewrap/Manifest +++ b/sdk_container/src/third_party/portage-stable/sys-apps/bubblewrap/Manifest @@ -1 +1,2 @@ DIST bubblewrap-0.11.2.tar.xz 116336 BLAKE2B ae47e5672f79ed59cb84fe2ddd2fc1765c242e75659bbd397203b3c499292942633a6a9526f243df14abb3d932b8e0deb2ac239d61f7ec5b246ff68173f685ba SHA512 7c5a8d0670e8b2737328ab24fb3e3982544c716d2527e97f6e9dfa3ee767b0161681b4fd60e94ed17259ba52406a12968769ee1408648ba08239755858437edc +DIST bubblewrap-0.12.0.tar.xz 126452 BLAKE2B 95b02cf8ee2bb80edba48fbdcdadb4a1dabeb9d728c6b1d46500b9bc2fd140cc4c5559740295fed2f54a6eac95af664620561037984f92bb5cfad8a5457fb9e4 SHA512 a1bd43e2a9361a848d855f364d0915a655e5f2e0bab510388502f7acc4f1e89b42a2a4751c2ff80d71d2172c44b7a2c823688fe12f901fff0e52a91d0d41f25d diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/bubblewrap/bubblewrap-0.12.0.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/bubblewrap/bubblewrap-0.12.0.ebuild new file mode 100644 index 00000000000..c45c9253c76 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-apps/bubblewrap/bubblewrap-0.12.0.ebuild @@ -0,0 +1,76 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{12..15} ) +inherit linux-info meson shell-completion python-any-r1 + +DESCRIPTION="Unprivileged sandboxing tool, namespaces-powered chroot-like solution" +HOMEPAGE="https://github.com/containers/bubblewrap/" +SRC_URI="https://github.com/containers/${PN}/releases/download/v${PV}/${P}.tar.xz" + +LICENSE="LGPL-2.1+" +SLOT="0" +KEYWORDS="amd64 ~arm ~arm64 ~loong ppc ppc64 ~riscv x86" +IUSE="selinux test" +RESTRICT="!test? ( test )" + +RDEPEND=" + sys-libs/libcap + selinux? ( >=sys-libs/libselinux-2.3 ) +" +DEPEND="${RDEPEND}" +BDEPEND=" + app-text/docbook-xml-dtd:4.3 + app-text/docbook-xsl-stylesheets + dev-libs/libxslt + virtual/pkgconfig + test? ( + $(python_gen_any_dep ' + sys-libs/libseccomp[python,${PYTHON_USEDEP}] + ') + ) +" +RDEPEND+=" selinux? ( sec-policy/selinux-bubblewrap )" + +PATCHES=( + "${FILESDIR}"/${PN}-0.11.2-no-werror.patch +) + +python_check_deps() { + python_has_version "sys-libs/libseccomp[python,${PYTHON_USEDEP}]" +} + +pkg_setup() { + if [[ ${MERGE_TYPE} != buildonly ]]; then + CONFIG_CHECK="~UTS_NS ~IPC_NS ~USER_NS ~PID_NS ~NET_NS" + linux-info_pkg_setup + fi + + use test && python-any-r1_pkg_setup +} + +src_configure() { + local emesonargs=( + # We could write up -Dassume_kernel like in glibc if + # someone is interested + -Dbash_completion=enabled + -Dbash_completion_dir="$(get_bashcompdir)" + -Dzsh_completion=enabled + -Dzsh_completion_dir="$(get_zshcompdir)" + -Dman=enabled + $(meson_feature selinux) + $(meson_use test tests) + ) + + use test && emesonargs+=( -Dpython="${EPYTHON}" ) + + meson_src_configure +} + +src_test() { + # Most tests are skipped if sandbox is enabled + local -x SANDBOX_ON=0 + meson_src_test +} diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/gawk/Manifest b/sdk_container/src/third_party/portage-stable/sys-apps/gawk/Manifest index 4e1db1a7067..08736a85dc1 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/gawk/Manifest +++ b/sdk_container/src/third_party/portage-stable/sys-apps/gawk/Manifest @@ -2,3 +2,4 @@ DIST gawk-5.3.2.tar.xz 3749260 BLAKE2B 8536777bb45c63d737ef08b3f1b98285cb29ec544 DIST gawk-5.3.2.tar.xz.sig 488 BLAKE2B ea843fce8ca2b93a8006260e8022f3426daccc18b93bd75ef1fb18e391ce110a10682e75509d771ba9c419d1e22a584f66ff9a436512b76b039a85afed6c7596 SHA512 490f29271d06f374e25e13724f5944215734d0c6da465da5b2a723e83fa31a03c7a16e5c8853465561bc0676139588b1046c598554ccde4ae24563455ee28b65 DIST gawk-5.4.1.tar.xz 3838416 BLAKE2B 8bd7913c268a66e3f9eca6bed8d7b8fe23c75148c932d186c5e35429dc12f331f960e0fbb5d62d4675ff47f369f63c92db5b3214303edab3a868f0071dd0c4c1 SHA512 a1e79b71e13ce7d5487f89fb62125ec873dc89e0a3ff37ebdff017fdd6dfd38b1eaa95fedcf773c037ae84c95f0ea0817d53bc1c14b4284568f87606da6aa152 DIST gawk-5.4.1.tar.xz.sig 488 BLAKE2B dd9b14c95b414a1e360f71bed5c419d930a61eed6367c53cf4b8c2a8cdba8470453d30a3821df2bef6ab469ec351a008a059558d6fd52a25fa6f9882017397df SHA512 4aded49d65bb671e56689cf29a4b5478ee88ba127e949699a5432e3d23f2c6d3b56d64af1e14c3b55de5b6a95da520a81e4dad540a973bdcb9f8298eb230e4eb +DIST gawk-5.4.1a.tar.gz 6710241 BLAKE2B b5a42403f40839101e6dcbafd78189d38bf88dd4c48b7f6329fa3c4ac4631c6a4f694bd9bcc5c8333ef877ea9ddfb46e0f8dc4b2a685294114aa6e1adf8fca85 SHA512 71e0ab77c2ea4fdc5d79c2db20309a8262946cb1d513b51ed6be150c0d36c2fa00d3f83598ca91cf7db0956985b0c230a4f6f9cb4a511ef9ec94985890dd6e82 diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/gawk/gawk-5.4.1a.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/gawk/gawk-5.4.1a.ebuild new file mode 100644 index 00000000000..e40971abaf6 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-apps/gawk/gawk-5.4.1a.ebuild @@ -0,0 +1,119 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +GAWK_IS_BETA=yes + +DESCRIPTION="GNU awk pattern-matching language" +HOMEPAGE="https://www.gnu.org/software/gawk/gawk.html" + +if [[ ${GAWK_IS_BETA} == yes || ${PV} == *_beta* ]] ; then + if [[ ${PV} == *_beta* ]] ; then + # Beta versioning is sometimes for the release prior, e.g. + # 5.2.1_beta is labelled upstream as 5.2.0b. + MY_PV=${PV/_beta/b} + MY_PV=$(ver_cut 1-2 ${MY_PV}).$(($(ver_cut 3 ${MY_PV}) - 1))$(ver_cut 4- ${MY_PV}) + MY_P=${PN}-${MY_PV} + + S="${WORKDIR}"/${MY_P} + else + MY_P=${P} + fi + + SRC_URI="https://www.skeeve.com/gawk/${MY_P}.tar.gz" +else + VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/gawk.asc + inherit verify-sig flag-o-matic + + SRC_URI="mirror://gnu/gawk/${P}.tar.xz" + SRC_URI+=" verify-sig? ( mirror://gnu/gawk/${P}.tar.xz.sig )" + + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" +fi + +LICENSE="GPL-3+ pma? ( AGPL-3+ )" +SLOT="0" +# The gawk docs claim MPFR support is "on parole" and may be removed, +# https://www.gnu.org/software/gawk/manual/html_node/MPFR-On-Parole.html +# however this is somewhat outdated information, see +# https://public-inbox.org/libc-alpha/202412190851.4BJ8psq4404509@freefriends.org/ +IUSE="+mpfr pma nls readline" + +RDEPEND=" + mpfr? ( + dev-libs/gmp:= + dev-libs/mpfr:= + ) + readline? ( sys-libs/readline:= ) +" +DEPEND="${RDEPEND}" +BDEPEND=" + >=sys-apps/texinfo-7.1 + >=sys-devel/bison-3.5.4 + nls? ( sys-devel/gettext ) +" + +if [[ ${GAWK_IS_BETA} != yes ]] ; then + BDEPEND+=" verify-sig? ( sec-keys/openpgp-keys-gawk )" +fi + +src_prepare() { + default + + use elibc_musl && append-cppflags -D__GNU_LIBRARY__ + + # Use symlinks rather than hardlinks, and disable version links + sed -i \ + -e '/^LN =/s:=.*:= $(LN_S):' \ + -e '/install-exec-hook:/s|$|\nfoo:|' \ + Makefile.in doc/Makefile.in || die + + # bug #413327 + sed -i '/^pty1:$/s|$|\n_pty1:|' test/Makefile.in || die + + # Fix standards conflict on Solaris + if [[ ${CHOST} == *-solaris* ]] ; then + sed -i \ + -e '/\<_XOPEN_SOURCE\>/s/1$/600/' \ + -e '/\<_XOPEN_SOURCE_EXTENDED\>/s/1//' \ + extension/inplace.c || die + fi +} + +src_configure() { + # README says gawk may not work properly if built with non-Bison. + # We already BDEPEND on Bison, so just unset YACC rather than + # guessing if we need to do yacc.bison or bison -y. + unset YACC + + local myeconfargs=( + --cache-file="${S}"/config.cache + --libexec='$(libdir)/misc' + $(use_with mpfr) + $(use_enable nls) + $(use_enable pma) + $(use_with readline) + ) + + econf "${myeconfargs[@]}" +} + +src_test() { + # bug #970495 + local -x PAGER=cat + + emake check +} + +src_install() { + # Automatic dodocs barfs + rm -rf README_d || die + + default + + # Install headers + insinto /usr/include/awk + doins *.h + rm "${ED}"/usr/include/awk/config.h || die +} diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/pkgcore/Manifest b/sdk_container/src/third_party/portage-stable/sys-apps/pkgcore/Manifest index a325dc31d03..691ba437f23 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/pkgcore/Manifest +++ b/sdk_container/src/third_party/portage-stable/sys-apps/pkgcore/Manifest @@ -1,3 +1,3 @@ -DIST pkgcore-0.12.38.tar.gz 647843 BLAKE2B a24f80cd0dd5dbe8f22f827f318791eb3d825106efe165381094eebd694c46a163e6f2afdd8df348202fd3597ffc64d3207c3a4f852d2e30a35d6efc77ad3a09 SHA512 fe45b38f3f3f8976a2c1d6a41e9f8892d5d2d1a1cc774d042df93bfd75c8b40e72a409cb11ed3903e5cdd9f85643279f5207ed223187eabf87602adfd5945465 -DIST pkgcore-0.12.39.tar.gz 650895 BLAKE2B f84e045c4de896d2cdee9fe90f9c4c9adc2654f25d282126d367af49e186152894ba43ed2be4b24c2f931288ae49236c1484d25f8ff5958c91f3bc381c956c0b SHA512 6ee7664e69bdaece4c653812b89aa69244a2f90da8c6c38cfc66f3538ac590e5ad4e91a69643a192e20a88661bfec855113488be99683c9c608bee18b0ffde97 DIST pkgcore-0.12.40.tar.gz 658740 BLAKE2B 417edb50f09304410baa00499f47308d3e86a936c6993e858d6a1775d580075285c8fbf3bb4ecd662c54b81f4743a08372e6416c361f13d6436ca0e6a1e1e052 SHA512 6c52e36dd2fd835859969c2d3aa10951300dc762930c76cbb7113905d58b03b2a166b43421418ad600ab5b050631691ce75b99ce1b244e85b327d1b6cef148f2 +DIST pkgcore-0.12.41.tar.gz 662162 BLAKE2B 4644aeaf239518900a30a378c6986f8403eadbad44a5a6f19aaca90c587301a22639c4217bfd33851a14a7e368e4597a0cd704a1c55c108ff5624adeb46d873f SHA512 ad4912ff1e8fc18d6b4ff0c6137d0b495bdf827fcdc48adfaecb69733321b3248155b4b0651597208f2965a413bc44ce56a3a673f90963a72de30037fd318a53 +DIST pkgcore-0.12.42.tar.gz 669046 BLAKE2B f341081086198a917154c602d4a204123166108969e42d9ac9b7008d4496afa7a2d1d143ce75b951ba6ddfaf4dd4cc82fd96243c389af41e424d35f2273e6f81 SHA512 e533e7276dc870d00e6f42fabf43e1be62294ed5b6a4caf6dae6556eca3ca2da5f19881773b98db18865bb92a999dc7c333ed298de1053e7a9be35e72b09412e diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/pkgcore/pkgcore-0.12.40.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/pkgcore/pkgcore-0.12.40.ebuild index 9e32e68b1cd..192fa516b7f 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/pkgcore/pkgcore-0.12.40.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-apps/pkgcore/pkgcore-0.12.40.ebuild @@ -12,7 +12,7 @@ if [[ ${PV} == *9999 ]] ; then https://github.com/pkgcore/pkgcore.git" inherit git-r3 else - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos" + KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos" inherit pypi fi diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/pkgcore/pkgcore-0.12.39.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/pkgcore/pkgcore-0.12.41.ebuild similarity index 94% rename from sdk_container/src/third_party/portage-stable/sys-apps/pkgcore/pkgcore-0.12.39.ebuild rename to sdk_container/src/third_party/portage-stable/sys-apps/pkgcore/pkgcore-0.12.41.ebuild index 192fa516b7f..76fb9e033b3 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/pkgcore/pkgcore-0.12.39.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-apps/pkgcore/pkgcore-0.12.41.ebuild @@ -25,7 +25,7 @@ SLOT="0" if [[ ${PV} == *9999 ]]; then RDEPEND="~dev-python/snakeoil-9999[${PYTHON_USEDEP}]" else - RDEPEND=">=dev-python/snakeoil-0.11.4[${PYTHON_USEDEP}]" + RDEPEND=">=dev-python/snakeoil-0.11.5[${PYTHON_USEDEP}]" fi RDEPEND+=" diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/pkgcore/pkgcore-0.12.38.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/pkgcore/pkgcore-0.12.42.ebuild similarity index 78% rename from sdk_container/src/third_party/portage-stable/sys-apps/pkgcore/pkgcore-0.12.38.ebuild rename to sdk_container/src/third_party/portage-stable/sys-apps/pkgcore/pkgcore-0.12.42.ebuild index 192fa516b7f..0a904a4d159 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/pkgcore/pkgcore-0.12.38.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-apps/pkgcore/pkgcore-0.12.42.ebuild @@ -12,7 +12,7 @@ if [[ ${PV} == *9999 ]] ; then https://github.com/pkgcore/pkgcore.git" inherit git-r3 else - KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos" inherit pypi fi @@ -25,17 +25,19 @@ SLOT="0" if [[ ${PV} == *9999 ]]; then RDEPEND="~dev-python/snakeoil-9999[${PYTHON_USEDEP}]" else - RDEPEND=">=dev-python/snakeoil-0.11.4[${PYTHON_USEDEP}]" + RDEPEND=">=dev-python/snakeoil-0.11.6[${PYTHON_USEDEP}]" fi RDEPEND+=" >=app-shells/bash-5.3[readline] dev-python/lxml[${PYTHON_USEDEP}] + amd64? ( dev-python/py-landlock[${PYTHON_USEDEP}] ) " BDEPEND="${RDEPEND} >=dev-python/flit-core-3.8[${PYTHON_USEDEP}] test? ( dev-vcs/git + >=dev-python/docutils-0.23[${PYTHON_USEDEP}] ) " diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/pkgcore/pkgcore-9999.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/pkgcore/pkgcore-9999.ebuild index 9e32e68b1cd..f5d99db9a44 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/pkgcore/pkgcore-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-apps/pkgcore/pkgcore-9999.ebuild @@ -25,12 +25,13 @@ SLOT="0" if [[ ${PV} == *9999 ]]; then RDEPEND="~dev-python/snakeoil-9999[${PYTHON_USEDEP}]" else - RDEPEND=">=dev-python/snakeoil-0.11.4[${PYTHON_USEDEP}]" + RDEPEND=">=dev-python/snakeoil-0.11.6[${PYTHON_USEDEP}]" fi RDEPEND+=" >=app-shells/bash-5.3[readline] dev-python/lxml[${PYTHON_USEDEP}] + amd64? ( dev-python/py-landlock[${PYTHON_USEDEP}] ) " BDEPEND="${RDEPEND} >=dev-python/flit-core-3.8[${PYTHON_USEDEP}] diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/portage/Manifest b/sdk_container/src/third_party/portage-stable/sys-apps/portage/Manifest index 265b02fd2cd..5cd32ae5964 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/portage/Manifest +++ b/sdk_container/src/third_party/portage-stable/sys-apps/portage/Manifest @@ -1,2 +1,4 @@ DIST portage-3.0.81.3.tar.bz2 1240401 BLAKE2B c4c1c1b4a629e35e2445ffda8720c3e7cd72f96d3970de0f43c0f1c52abcc12473ff5ed974ab99006e5ac723430f1c5fc83f4565454f1779b94a4501268d6b42 SHA512 cbf2488a91046aec23cbf6b6fa3cbef708dc052d14383a4c2ab0aa5e17d322ce773dd7e9422677dcfd4b3ad2ffa27023c1b16b21842319131944c16899550313 +DIST portage-3.0.82.1.tar.bz2 1307604 BLAKE2B 9732e200e7ff0803b45a9ffcd2863b4f656f3de3ff1f5177b0107f0ec83f48ccf3f2f0dcfc8c360972de6044384b70d5060ebc00651ed932ac2991fb76f4d2a9 SHA512 06f51d316dcac67a8d8a7bc16d480aff8dfdaf5886c7666ec86f7792ab644d744ea7fecff205eca902db5e3a13015db19de7b6afc6696082bfd5ccb34131a79e +DIST portage-3.0.82.2.tar.bz2 1309279 BLAKE2B 1d73701cde8de87eaee5b1b16e936791578c61f072901b80efcb1fc86834b923c0967de036f48fe761444345dd81a726135b299564c9c4129508e79ce58b2902 SHA512 6c7384bfe5bbadf6672d2f24cb8b54d1d19d956620125fc6c60692c9fb60fb3402e4c1bf6a1b2c407c7a3a085690bebad893eca8d0687ed8efb3284d4fcd86ca DIST portage-3.0.82.tar.bz2 1304291 BLAKE2B 81a9ff4d99ebae6f30c24955def1b2b43ae7ae5bb7df3b5182e148b506a9f1e57bb460733eaf7d048f7d11d335a9381284dfdc5b935eb046891d8a4c8e5a9a71 SHA512 fb90f274eb7cf547bba6c936f2f8061c8f402b8cce515b522be590f11b256b8e0cb2a5ccd3371687ab83bacf03d6bc8df3d40a3c5383928b94cc96f5f72c3968 diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/portage/portage-3.0.82.1.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/portage/portage-3.0.82.1.ebuild new file mode 100644 index 00000000000..638ac9ec853 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-apps/portage/portage-3.0.82.1.ebuild @@ -0,0 +1,234 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{12..15} ) +PYTHON_REQ_USE='bzip2(+),threads(+)' +TMPFILES_OPTIONAL=1 + +inherit meson linux-info python-r1 tmpfiles + +DESCRIPTION="The package management and distribution system for Gentoo" +HOMEPAGE="https://wiki.gentoo.org/wiki/Project:Portage" + +if [[ ${PV} == 9999 ]] ; then + EGIT_REPO_URI=" + https://anongit.gentoo.org/git/proj/portage.git + https://github.com/gentoo/portage.git + " + inherit git-r3 +else + SRC_URI="https://gitweb.gentoo.org/proj/portage.git/snapshot/${P}.tar.bz2" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +fi + +LICENSE="GPL-2" +SLOT="0" +IUSE="apidoc build doc gentoo-dev +ipc +native-extensions +rsync-verify selinux test xattr" +REQUIRED_USE="${PYTHON_REQUIRED_USE}" +RESTRICT="!test? ( test )" + +BDEPEND=" + ${PYTHON_DEPS} + >=app-arch/tar-1.27 + >=dev-build/meson-1.3.0-r1 + >=sys-apps/sed-4.0.5 + sys-devel/patch + !build? ( $(python_gen_impl_dep 'ssl(+)') ) + apidoc? ( + dev-python/sphinx[${PYTHON_USEDEP}] + dev-python/sphinx-epytext[${PYTHON_USEDEP}] + ) + doc? ( + ~app-text/docbook-xml-dtd-4.4 + app-text/xmlto + ) + test? ( + dev-python/pytest-xdist[${PYTHON_USEDEP}] + dev-vcs/git + ) +" +# Require sandbox-2.2 for bug #288863. +# For whirlpool hash, require python[ssl] (bug #425046). +RDEPEND=" + ${PYTHON_DEPS} + >=acct-user/portage-0-r4 + >=app-arch/tar-1.27 + app-arch/zstd + >=app-misc/pax-utils-0.1.17 + dev-lang/python-exec:2 + >=sys-apps/baselayout-2.9 + >=sys-apps/findutils-4.9 + !build? ( + >=app-admin/eselect-1.2 + app-portage/getuto + >=app-shells/bash-5.3:0 + dev-util/debugedit + >=sec-keys/openpgp-keys-gentoo-release-20240703 + >=sys-apps/sed-4.0.5 + rsync-verify? ( + app-alternatives/gpg[ssl(-)] + >=app-portage/gemato-14.5[${PYTHON_USEDEP}] + ) + ) + kernel_linux? ( + sys-apps/util-linux + elibc_glibc? ( >=sys-apps/sandbox-2.2 ) + elibc_musl? ( >=sys-apps/sandbox-2.2 ) + ) + selinux? ( >=sys-libs/libselinux-2.0.94[python,${PYTHON_USEDEP}] ) + xattr? ( kernel_linux? ( + >=sys-apps/install-xattr-0.3 + ) ) +" +# coreutils-6.4 rdep is for date format in emerge-webrsync #164532 +# NOTE: FEATURES=installsources requires debugedit and rsync +PDEPEND=" + !build? ( + >=net-misc/rsync-2.6.4 + >=sys-apps/coreutils-6.4 + >=sys-apps/file-5.44-r3 + ) +" + +pkg_pretend() { + local CONFIG_CHECK="~IPC_NS ~PID_NS ~NET_NS ~UTS_NS" + + check_extra_config +} + +src_prepare() { + default + + if use prefix-guest; then + sed -e "s|^\(main-repo = \).*|\\1gentoo_prefix|" \ + -e "s|^\\[gentoo\\]|[gentoo_prefix]|" \ + -e "s|^\(sync-uri = \).*|\\1rsync://rsync.prefix.bitzolder.nl/gentoo-portage-prefix|" \ + -i cnf/repos.conf || die "sed failed" + fi +} + +src_configure() { + local code_only=false + python_foreach_impl my_src_configure +} + +my_src_configure() { + local emesonargs=( + -Dcode-only=${code_only} + -Deprefix="${EPREFIX}" + -Dportage-bindir="${EPREFIX}/usr/lib/portage/${EPYTHON}" + -Ddocdir="${EPREFIX}/usr/share/doc/${PF}" + $(meson_use doc) + $(meson_use apidoc) + $(meson_use gentoo-dev) + $(meson_use ipc) + $(meson_use xattr) + ) + + if use native-extensions && [[ "${EPYTHON}" != pypy3* ]] ; then + emesonargs+=( -Dnative-extensions=true ) + else + emesonargs+=( -Dnative-extensions=false ) + fi + + if use build; then + emesonargs+=( -Drsync-verify=false ) + else + emesonargs+=( $(meson_use rsync-verify) ) + fi + + meson_src_configure + code_only=true +} + +src_compile() { + python_foreach_impl meson_src_compile +} + +src_test() { + local EPYTEST_XDIST=1 + local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 + python_foreach_impl epytest +} + +src_install() { + python_foreach_impl my_src_install + dotmpfiles "${FILESDIR}"/portage-{ccache,tmpdir}.conf + + local scripts + mapfile -t scripts < <(awk '/^#!.*python/ {print FILENAME} {nextfile}' "${ED}"/usr/{bin,sbin}/* || die) + python_replicate_script "${scripts[@]}" +} + +my_src_install() { + local pydirs=( + "${D}$(python_get_sitedir)" + "${ED}/usr/lib/portage/${EPYTHON}" + ) + + meson_src_install + python_fix_shebang "${pydirs[@]}" + python_optimize "${pydirs[@]}" +} + +pkg_preinst() { + if ! use build && [[ -z ${ROOT} ]]; then + python_setup + local sitedir=$(python_get_sitedir) + [[ -d ${D}${sitedir} ]] || die "${D}${sitedir}: No such directory" + env -u DISTDIR \ + -u PORTAGE_OVERRIDE_EPREFIX \ + -u PORTAGE_REPOSITORIES \ + -u PORTDIR \ + -u PORTDIR_OVERLAY \ + PYTHONPATH="${D}${sitedir}${PYTHONPATH:+:${PYTHONPATH}}" \ + ED="${ED}" \ + "${PYTHON}" -m portage._compat_upgrade.default_locations || die + + env -u BINPKG_COMPRESS -u PORTAGE_REPOSITORIES \ + PYTHONPATH="${D}${sitedir}${PYTHONPATH:+:${PYTHONPATH}}" \ + ED="${ED}" \ + "${PYTHON}" -m portage._compat_upgrade.binpkg_compression || die + + env -u FEATURES -u PORTAGE_REPOSITORIES \ + PYTHONPATH="${D}${sitedir}${PYTHONPATH:+:${PYTHONPATH}}" \ + ED="${ED}" \ + "${PYTHON}" -m portage._compat_upgrade.binpkg_multi_instance || die + + env -u BINPKG_FORMAT \ + PYTHONPATH="${D}${sitedir}${PYTHONPATH:+:${PYTHONPATH}}" \ + ED="${ED}" \ + "${PYTHON}" -m portage._compat_upgrade.binpkg_format || die + fi + + # elog dir must exist to avoid logrotate error for bug #415911. + # This code runs in preinst in order to bypass the mapping of + # portage:portage to root:root which happens after src_install. + keepdir /var/log/portage/elog + # This is allowed to fail if the user/group are invalid for prefix users. + if chown portage:portage "${ED}"/var/log/portage{,/elog} 2>/dev/null ; then + chmod g+s,ug+rwx "${ED}"/var/log/portage{,/elog} + fi + + if has_version "<${CATEGORY}/${PN}-2.3.77"; then + elog "The emerge --autounmask option is now disabled by default, except for" + elog "portions of behavior which are controlled by the --autounmask-use and" + elog "--autounmask-license options. For backward compatibility, previous" + elog "behavior of --autounmask=y and --autounmask=n is entirely preserved." + elog "Users can get the old behavior simply by adding --autounmask to the" + elog "make.conf EMERGE_DEFAULT_OPTS variable. For the rationale for this" + elog "change, see https://bugs.gentoo.org/658648." + fi +} + +pkg_postinst() { + # Warn about obsolete "enotice" script, bug #867010 + local bashrc=${EROOT}/etc/portage/profile/profile.bashrc + if [[ -e ${bashrc} ]] && grep -q enotice "${bashrc}"; then + eerror "Obsolete 'enotice' script detected!" + eerror "Please remove this from ${bashrc} to avoid problems." + eerror "See bug 867010 for more details." + fi +} diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/portage/portage-3.0.82.2.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/portage/portage-3.0.82.2.ebuild new file mode 100644 index 00000000000..638ac9ec853 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-apps/portage/portage-3.0.82.2.ebuild @@ -0,0 +1,234 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{12..15} ) +PYTHON_REQ_USE='bzip2(+),threads(+)' +TMPFILES_OPTIONAL=1 + +inherit meson linux-info python-r1 tmpfiles + +DESCRIPTION="The package management and distribution system for Gentoo" +HOMEPAGE="https://wiki.gentoo.org/wiki/Project:Portage" + +if [[ ${PV} == 9999 ]] ; then + EGIT_REPO_URI=" + https://anongit.gentoo.org/git/proj/portage.git + https://github.com/gentoo/portage.git + " + inherit git-r3 +else + SRC_URI="https://gitweb.gentoo.org/proj/portage.git/snapshot/${P}.tar.bz2" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +fi + +LICENSE="GPL-2" +SLOT="0" +IUSE="apidoc build doc gentoo-dev +ipc +native-extensions +rsync-verify selinux test xattr" +REQUIRED_USE="${PYTHON_REQUIRED_USE}" +RESTRICT="!test? ( test )" + +BDEPEND=" + ${PYTHON_DEPS} + >=app-arch/tar-1.27 + >=dev-build/meson-1.3.0-r1 + >=sys-apps/sed-4.0.5 + sys-devel/patch + !build? ( $(python_gen_impl_dep 'ssl(+)') ) + apidoc? ( + dev-python/sphinx[${PYTHON_USEDEP}] + dev-python/sphinx-epytext[${PYTHON_USEDEP}] + ) + doc? ( + ~app-text/docbook-xml-dtd-4.4 + app-text/xmlto + ) + test? ( + dev-python/pytest-xdist[${PYTHON_USEDEP}] + dev-vcs/git + ) +" +# Require sandbox-2.2 for bug #288863. +# For whirlpool hash, require python[ssl] (bug #425046). +RDEPEND=" + ${PYTHON_DEPS} + >=acct-user/portage-0-r4 + >=app-arch/tar-1.27 + app-arch/zstd + >=app-misc/pax-utils-0.1.17 + dev-lang/python-exec:2 + >=sys-apps/baselayout-2.9 + >=sys-apps/findutils-4.9 + !build? ( + >=app-admin/eselect-1.2 + app-portage/getuto + >=app-shells/bash-5.3:0 + dev-util/debugedit + >=sec-keys/openpgp-keys-gentoo-release-20240703 + >=sys-apps/sed-4.0.5 + rsync-verify? ( + app-alternatives/gpg[ssl(-)] + >=app-portage/gemato-14.5[${PYTHON_USEDEP}] + ) + ) + kernel_linux? ( + sys-apps/util-linux + elibc_glibc? ( >=sys-apps/sandbox-2.2 ) + elibc_musl? ( >=sys-apps/sandbox-2.2 ) + ) + selinux? ( >=sys-libs/libselinux-2.0.94[python,${PYTHON_USEDEP}] ) + xattr? ( kernel_linux? ( + >=sys-apps/install-xattr-0.3 + ) ) +" +# coreutils-6.4 rdep is for date format in emerge-webrsync #164532 +# NOTE: FEATURES=installsources requires debugedit and rsync +PDEPEND=" + !build? ( + >=net-misc/rsync-2.6.4 + >=sys-apps/coreutils-6.4 + >=sys-apps/file-5.44-r3 + ) +" + +pkg_pretend() { + local CONFIG_CHECK="~IPC_NS ~PID_NS ~NET_NS ~UTS_NS" + + check_extra_config +} + +src_prepare() { + default + + if use prefix-guest; then + sed -e "s|^\(main-repo = \).*|\\1gentoo_prefix|" \ + -e "s|^\\[gentoo\\]|[gentoo_prefix]|" \ + -e "s|^\(sync-uri = \).*|\\1rsync://rsync.prefix.bitzolder.nl/gentoo-portage-prefix|" \ + -i cnf/repos.conf || die "sed failed" + fi +} + +src_configure() { + local code_only=false + python_foreach_impl my_src_configure +} + +my_src_configure() { + local emesonargs=( + -Dcode-only=${code_only} + -Deprefix="${EPREFIX}" + -Dportage-bindir="${EPREFIX}/usr/lib/portage/${EPYTHON}" + -Ddocdir="${EPREFIX}/usr/share/doc/${PF}" + $(meson_use doc) + $(meson_use apidoc) + $(meson_use gentoo-dev) + $(meson_use ipc) + $(meson_use xattr) + ) + + if use native-extensions && [[ "${EPYTHON}" != pypy3* ]] ; then + emesonargs+=( -Dnative-extensions=true ) + else + emesonargs+=( -Dnative-extensions=false ) + fi + + if use build; then + emesonargs+=( -Drsync-verify=false ) + else + emesonargs+=( $(meson_use rsync-verify) ) + fi + + meson_src_configure + code_only=true +} + +src_compile() { + python_foreach_impl meson_src_compile +} + +src_test() { + local EPYTEST_XDIST=1 + local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 + python_foreach_impl epytest +} + +src_install() { + python_foreach_impl my_src_install + dotmpfiles "${FILESDIR}"/portage-{ccache,tmpdir}.conf + + local scripts + mapfile -t scripts < <(awk '/^#!.*python/ {print FILENAME} {nextfile}' "${ED}"/usr/{bin,sbin}/* || die) + python_replicate_script "${scripts[@]}" +} + +my_src_install() { + local pydirs=( + "${D}$(python_get_sitedir)" + "${ED}/usr/lib/portage/${EPYTHON}" + ) + + meson_src_install + python_fix_shebang "${pydirs[@]}" + python_optimize "${pydirs[@]}" +} + +pkg_preinst() { + if ! use build && [[ -z ${ROOT} ]]; then + python_setup + local sitedir=$(python_get_sitedir) + [[ -d ${D}${sitedir} ]] || die "${D}${sitedir}: No such directory" + env -u DISTDIR \ + -u PORTAGE_OVERRIDE_EPREFIX \ + -u PORTAGE_REPOSITORIES \ + -u PORTDIR \ + -u PORTDIR_OVERLAY \ + PYTHONPATH="${D}${sitedir}${PYTHONPATH:+:${PYTHONPATH}}" \ + ED="${ED}" \ + "${PYTHON}" -m portage._compat_upgrade.default_locations || die + + env -u BINPKG_COMPRESS -u PORTAGE_REPOSITORIES \ + PYTHONPATH="${D}${sitedir}${PYTHONPATH:+:${PYTHONPATH}}" \ + ED="${ED}" \ + "${PYTHON}" -m portage._compat_upgrade.binpkg_compression || die + + env -u FEATURES -u PORTAGE_REPOSITORIES \ + PYTHONPATH="${D}${sitedir}${PYTHONPATH:+:${PYTHONPATH}}" \ + ED="${ED}" \ + "${PYTHON}" -m portage._compat_upgrade.binpkg_multi_instance || die + + env -u BINPKG_FORMAT \ + PYTHONPATH="${D}${sitedir}${PYTHONPATH:+:${PYTHONPATH}}" \ + ED="${ED}" \ + "${PYTHON}" -m portage._compat_upgrade.binpkg_format || die + fi + + # elog dir must exist to avoid logrotate error for bug #415911. + # This code runs in preinst in order to bypass the mapping of + # portage:portage to root:root which happens after src_install. + keepdir /var/log/portage/elog + # This is allowed to fail if the user/group are invalid for prefix users. + if chown portage:portage "${ED}"/var/log/portage{,/elog} 2>/dev/null ; then + chmod g+s,ug+rwx "${ED}"/var/log/portage{,/elog} + fi + + if has_version "<${CATEGORY}/${PN}-2.3.77"; then + elog "The emerge --autounmask option is now disabled by default, except for" + elog "portions of behavior which are controlled by the --autounmask-use and" + elog "--autounmask-license options. For backward compatibility, previous" + elog "behavior of --autounmask=y and --autounmask=n is entirely preserved." + elog "Users can get the old behavior simply by adding --autounmask to the" + elog "make.conf EMERGE_DEFAULT_OPTS variable. For the rationale for this" + elog "change, see https://bugs.gentoo.org/658648." + fi +} + +pkg_postinst() { + # Warn about obsolete "enotice" script, bug #867010 + local bashrc=${EROOT}/etc/portage/profile/profile.bashrc + if [[ -e ${bashrc} ]] && grep -q enotice "${bashrc}"; then + eerror "Obsolete 'enotice' script detected!" + eerror "Please remove this from ${bashrc} to avoid problems." + eerror "See bug 867010 for more details." + fi +} diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/shadow/shadow-4.20.0.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/shadow/shadow-4.20.0.ebuild index e890c1134f6..fb818ad87f0 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/shadow/shadow-4.20.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-apps/shadow/shadow-4.20.0.ebuild @@ -20,7 +20,7 @@ S="${WORKDIR}/${MY_P}" LICENSE="BSD GPL-2" # Subslot is for libsubid's SONAME. SLOT="0/6" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" IUSE="acl audit nls pam selinux skey split-usr su systemd test" RESTRICT="!test? ( test )" diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/systemd/Manifest b/sdk_container/src/third_party/portage-stable/sys-apps/systemd/Manifest index 6d9934d65c3..48d5b46febd 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/systemd/Manifest +++ b/sdk_container/src/third_party/portage-stable/sys-apps/systemd/Manifest @@ -3,4 +3,6 @@ DIST systemd-260.1.tar.gz 17581096 BLAKE2B 072424e7288f8796be1e6952fadc5452c2ab5 DIST systemd-260.2.tar.gz 17663337 BLAKE2B 6f19c9ab444d9bcd8d585a4c2ef5bf8763dcfcd69bbcc02659d8ebdbdebb97b25941fe38e6b7a5cc3046b7b724b14e3e94c1c95919314a30818c9f81143cb9e7 SHA512 63d15da49e7580952a48a0b50df20c1b398e4b77edf259510b0cdb9022e919387baadf2190194a50f1f582b83e0768c13997a4189cf0fb6a61b65015496d9c80 DIST systemd-260.4.tar.gz 17757440 BLAKE2B a1e171a2282e494cf1881fb0c33f9974eee06b7b1d623fe8e041b7fcabf9424af080ca21a8d0d2829f90469253fa42265a1870f1bf7f824326db8e32384a18bc SHA512 1cd03f78d2e782d351dc049bb8ef22ab03a2600f5f667721045aa113baea0c7f72743088932b813140f39007a43d5491e58f40ef36eeb9ddfd9a183d39e4b000 DIST systemd-261.1.tar.gz 18405830 BLAKE2B ab345d6ae27d361aa56d3b021263e2b2e3af76cdc37ee9015932557f1b904f2e5e5a6d5911b4a442057d12d5eedf8a702a30aa13f9b68294ccc14833f397a0ea SHA512 5dbf8b902fbed6e719367266da658b46ed55e76c93b7aa48ebaf9daca36cb19261ebd45cb97139c51227022a8ca3d07da360953bd9b0aebb429dce6d111f7e5c +DIST systemd-261.2.tar.gz 18456346 BLAKE2B f8f57c5e78ff31727ecfd18b61d3a3a95b764e5a049c0cc974be567273db2f771ab2f50df1ebf06b0c3a659c7e02db309dee4844217e3a91ae1169877971a34e SHA512 876f043970cb65b39ae15fba39f23bf94c7c3d80569503d6e8ea2c8013c30ee40ce43cb55cbcb1cf14d5c3021aafc09c0f67473bbf742d8964bf9fa30693b971 DIST systemd-261.tar.gz 18390754 BLAKE2B 3e307fa237911ee18e9dca2e3e26eac4859fe19bd856c970d9c557ed2a3420944a20affad60bf10dc4cada657778bac38a1a529fc0081ba255550bfd4c1a1f06 SHA512 6a21c2a9bd83d962db4e6c095078ec79259d8109583b59094d17e76c0826e96a6183778f46b64352b0fe62cb8890736e9331f35e9a4c8b65f9b574fa915f9fd8 +DIST systemd-262-rc1.tar.gz 18982539 BLAKE2B b2164077a03d0a473fc2182b8f8926d4429b2ec49c48754db47a1c9fcdd4fcdbd13097c92747c611a09975edf5866d8a6a5b9537febf4d956285db4c1d145779 SHA512 5bd4ed38246de1ea17b46fcc6f921f94a53047cec4dc53b005afd4ca75cd50d631b92c6662204871ad2c0808694244ec15d90732b1251d15bf5f9d74b6a2a7f0 diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/systemd/files/systemd-261-lxml-6.1.3.patch b/sdk_container/src/third_party/portage-stable/sys-apps/systemd/files/systemd-261-lxml-6.1.3.patch new file mode 100644 index 00000000000..00c6ceea9bc --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-apps/systemd/files/systemd-261-lxml-6.1.3.patch @@ -0,0 +1,59 @@ +https://github.com/systemd/systemd/pull/43626 +https://bugs.gentoo.org/981868 + +From 40d1acd6d9293915e0f1e69c5e5ecac086fdcb38 Mon Sep 17 00:00:00 2001 +From: Luca Boccassi +Date: Wed, 2 Sep 2026 20:32:51 +0100 +Subject: [PATCH] tools: fix building manpages with lxml 6.1.3 + +manpages build fails on Arch with new lxml: + +Traceback (most recent call last): + File "/work/src/tools/make-directive-index.py", line 169, in make_page + _extract_directives(directive_groups, formatting, page) + ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/work/src/tools/make-directive-index.py", line 18, in _extract_directives + t = xml_parse(page) + File "/work/src/tools/xml_helper.py", line 25, in xml_parse + doc = tree.parse(page, _parser) + File "src/lxml/etree.pyx", line 3717, in lxml.etree.parse + File "src/lxml/parser.pxi", line 2045, in lxml.etree._parseDocument + File "src/lxml/parser.pxi", line 2071, in lxml.etree._parseDocumentFromURL + File "src/lxml/parser.pxi", line 1962, in lxml.etree._parseDocFromFile + File "src/lxml/parser.pxi", line 1231, in lxml.etree._BaseParser._parseDocFromFile + File "src/lxml/parser.pxi", line 647, in lxml.etree._ParserContext._handleParseResultDoc + File "src/lxml/parser.pxi", line 765, in lxml.etree._handleParseResult + File "src/lxml/parser.pxi", line 689, in lxml.etree._raiseParseError + File "../src/man/hostname.xml", line 5 +lxml.etree.XMLSyntaxError: Entity 'entities' not defined, line 5, column 11 + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/work/src/tools/make-directive-index.py", line 180, in + _xml = make_page(_template_path, _xml_files) + File "/work/src/tools/make-directive-index.py", line 171, in make_page + raise ValueError('failed to process ' + page) from e +ValueError: failed to process ../src/man/hostname.xml + +Relying on XMLParser() defaults leaves the external parameter entity +used to load custom-entities.ent unresolved. Request entity resolution explicitly. + +Follow-up for 1a13e31d275430ffba713c8a68ee7f22093c29e0 +--- + tools/xml_helper.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/tools/xml_helper.py b/tools/xml_helper.py +index 87c24ab02a0f..e26ca92d9454 100755 +--- a/tools/xml_helper.py ++++ b/tools/xml_helper.py +@@ -16,7 +16,7 @@ def resolve(self, url, _id, context): + return None + + +-_parser = tree.XMLParser() ++_parser = tree.XMLParser(resolve_entities=True) + # pylint: disable=no-member + _parser.resolvers.add(CustomResolver()) + diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/systemd/systemd-260.1-r2.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/systemd/systemd-260.1-r2.ebuild index bfda5374490..203f163af1a 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/systemd/systemd-260.1-r2.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-apps/systemd/systemd-260.1-r2.ebuild @@ -260,6 +260,7 @@ src_prepare() { "${FILESDIR}/systemd-260.1-openssl-4.patch" "${FILESDIR}/systemd-260.1-gcc-17.patch" "${FILESDIR}/systemd-260.1-gpt-generator.patch" + "${FILESDIR}/systemd-261-lxml-6.1.3.patch" ) if ! use vanilla; then diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/systemd/systemd-260.4.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/systemd/systemd-260.4.ebuild index de24e417b69..f73a7527714 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/systemd/systemd-260.4.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-apps/systemd/systemd-260.4.ebuild @@ -255,7 +255,9 @@ src_unpack() { } src_prepare() { - local PATCHES=() + local PATCHES=( + "${FILESDIR}/systemd-261-lxml-6.1.3.patch" + ) if ! use vanilla; then PATCHES+=( diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/systemd/systemd-261.2.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/systemd/systemd-261.2.ebuild new file mode 100644 index 00000000000..768620790dc --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-apps/systemd/systemd-261.2.ebuild @@ -0,0 +1,616 @@ +# Copyright 2011-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 +PYTHON_COMPAT=( python3_{12..14} ) + +# Avoid QA warnings +TMPFILES_OPTIONAL=1 +UDEV_OPTIONAL=1 + +QA_PKGCONFIG_VERSION=$(ver_cut 1) + +if [[ ${PV} == 9999 ]]; then + EGIT_REPO_URI="https://github.com/systemd/systemd.git" + inherit git-r3 +else + MY_PV=${PV/_/-} + MY_P=${PN}-${MY_PV} + S=${WORKDIR}/${MY_P} + SRC_URI="https://github.com/systemd/${PN}/archive/refs/tags/v${MY_PV}.tar.gz -> ${MY_P}.tar.gz" + + if [[ ${PV} != *rc* ]] ; then + KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~loong ~m68k ~mips ~ppc ppc64 ~riscv ~s390 ~sparc x86" + fi +fi + +inherit branding flag-o-matic linux-info meson-multilib optfeature pam python-single-r1 +inherit secureboot shell-completion systemd toolchain-funcs udev + +DESCRIPTION="System and service manager for Linux" +HOMEPAGE="https://systemd.io/" + +LICENSE="GPL-2 LGPL-2.1 MIT public-domain" +SLOT="0/2" +IUSE=" + acl apparmor audit boot bpf cryptsetup curl +dns-over-tls elfutils fido2 + +gcrypt gnutls homed idn imds importd +kernel-install +kmod +libarchive + +lz4 lzma +openssl pam passwdqc pcre pkcs11 policykit pwquality qrcode + remote +resolvconf +seccomp selinux sysv-utils test tpm ukify vanilla xkb + +zstd +" +REQUIRED_USE=" + ${PYTHON_REQUIRED_USE} + boot? ( kernel-install ) + dns-over-tls? ( openssl ) + fido2? ( cryptsetup openssl ) + homed? ( cryptsetup pam openssl ) + imds? ( curl ) + importd? ( curl libarchive lzma openssl ) + ?? ( passwdqc pwquality ) + passwdqc? ( homed ) + pwquality? ( homed ) + remote? ( curl ) + ukify? ( boot ) +" +RESTRICT="!test? ( test )" + +MINKV="5.10" + +COMMON_DEPEND=" + >=sys-apps/util-linux-2.37 + acl? ( sys-apps/acl ) + apparmor? ( >=sys-libs/libapparmor-2.13 ) + audit? ( >=sys-process/audit-2 ) + bpf? ( >=dev-libs/libbpf-1.4.0 ) + cryptsetup? ( >=sys-fs/cryptsetup-2.4.0:= ) + curl? ( >=net-misc/curl-7.32.0:0= ) + elfutils? ( >=dev-libs/elfutils-0.177 ) + elibc_glibc? ( + >=sys-libs/glibc-2.34 + >=sys-libs/libxcrypt-4.4.0 + ) + elibc_musl? ( + >=sys-libs/musl-1.2.6 + sys-libs/libucontext + virtual/libcrypt + ) + fido2? ( + dev-libs/libfido2 + ) + gcrypt? ( >=dev-libs/libgcrypt-1.4.5 ) + gnutls? ( >=net-libs/gnutls-3.6.0:0= ) + remote? ( >=net-libs/libmicrohttpd-0.9.33:0=[epoll(+)] ) + idn? ( net-dns/libidn2 ) + importd? ( + app-arch/bzip2:0= + virtual/zlib:= + ) + kmod? ( >=sys-apps/kmod-15:0= ) + libarchive? ( >=app-arch/libarchive-3.0:0= ) + lz4? ( >=app-arch/lz4-0_p131:0= ) + lzma? ( >=app-arch/xz-utils-5.0.5-r1:0= ) + openssl? ( >=dev-libs/openssl-3.0.0:0= ) + pam? ( sys-libs/pam:=[${MULTILIB_USEDEP}] ) + passwdqc? ( sys-auth/passwdqc ) + pkcs11? ( >=app-crypt/p11-kit-0.23.3 ) + pcre? ( dev-libs/libpcre2 ) + pwquality? ( >=dev-libs/libpwquality-1.4.1 ) + qrcode? ( >=media-gfx/qrencode-3:0= ) + seccomp? ( >=sys-libs/libseccomp-2.4.0 ) + selinux? ( >=sys-libs/libselinux-2.1.9 ) + tpm? ( app-crypt/tpm2-tss ) + xkb? ( >=x11-libs/libxkbcommon-0.4.1 ) + zstd? ( >=app-arch/zstd-1.4.0:0= ) +" + +# Newer linux-headers needed by ia64, bug #480218 +DEPEND="${COMMON_DEPEND} + >=sys-kernel/linux-headers-${MINKV} +" + +PEFILE_DEPEND='dev-python/pefile[${PYTHON_USEDEP}]' + +# baselayout-2.2 has /run +RDEPEND="${COMMON_DEPEND} + >=acct-group/adm-0-r1 + >=acct-group/wheel-0-r1 + >=acct-group/kmem-0-r1 + >=acct-group/tty-0-r1 + >=acct-group/utmp-0-r1 + >=acct-group/audio-0-r1 + >=acct-group/cdrom-0-r1 + acct-group/clock + >=acct-group/dialout-0-r1 + >=acct-group/disk-0-r1 + >=acct-group/input-0-r1 + >=acct-group/kvm-0-r1 + >=acct-group/lp-0-r1 + >=acct-group/render-0-r1 + acct-group/sgx + >=acct-group/tape-0-r1 + acct-group/users + >=acct-group/video-0-r1 + >=acct-group/systemd-journal-0-r1 + >=acct-user/root-0-r1 + acct-user/nobody + >=acct-user/systemd-journal-remote-0-r1 + >=acct-user/systemd-coredump-0-r1 + >=acct-user/systemd-network-0-r1 + acct-user/systemd-oom + >=acct-user/systemd-resolve-0-r1 + >=acct-user/systemd-timesync-0-r1 + >=sys-apps/baselayout-2.2 + imds? ( acct-user/systemd-imds ) + ukify? ( + ${PYTHON_DEPS} + $(python_gen_cond_dep "${PEFILE_DEPEND}") + ) + selinux? ( + sec-policy/selinux-base-policy[systemd] + sec-policy/selinux-ntp + ) + sysv-utils? ( + !sys-apps/openrc[sysv-utils(-)] + !sys-apps/sysvinit + ) + !sysv-utils? ( sys-apps/sysvinit ) + resolvconf? ( !net-dns/openresolv ) + !sys-auth/nss-myhostname + !sys-fs/eudev + !sys-fs/udev +" + +# sys-apps/dbus: the daemon only (+ build-time lib dep for tests) +PDEPEND=" + >=sys-apps/dbus-1.9.8[systemd] + >=sys-fs/udev-init-scripts-34 + policykit? ( sys-auth/polkit ) + !sysv-utils? ( sys-apps/systemd-initctl ) + !vanilla? ( sys-apps/gentoo-systemd-integration ) +" + +BDEPEND=" + app-arch/xz-utils:0 + dev-util/gperf + >=dev-build/meson-0.46 + >=sys-apps/coreutils-8.16 + sys-devel/gettext + virtual/pkgconfig + bpf? ( + >=dev-util/bpftool-7.0.0 + sys-devel/bpf-toolchain + ) + test? ( + app-text/tree + dev-lang/perl + >=dev-libs/glib-2.22.0:2 + sys-apps/dbus + ) + app-text/docbook-xml-dtd:4.2 + app-text/docbook-xml-dtd:4.5 + app-text/docbook-xsl-stylesheets + dev-libs/libxslt:0 + ${PYTHON_DEPS} + $(python_gen_cond_dep " + dev-python/jinja2[\${PYTHON_USEDEP}] + dev-python/lxml[\${PYTHON_USEDEP}] + boot? ( + >=dev-python/pyelftools-0.30[\${PYTHON_USEDEP}] + test? ( ${PEFILE_DEPEND} ) + ) + ") +" + +QA_FLAGS_IGNORED="usr/lib/systemd/boot/efi/.*" +QA_EXECSTACK="usr/lib/systemd/boot/efi/*" + +pkg_pretend() { + if [[ ${MERGE_TYPE} != buildonly ]]; then + local CONFIG_CHECK="~BLK_DEV_BSG ~CGROUPS + ~CGROUP_BPF ~DEVTMPFS ~EPOLL ~FANOTIFY ~FHANDLE + ~INOTIFY_USER ~IPV6 ~NET ~NET_NS ~PROC_FS ~SIGNALFD ~SYSFS + ~TIMERFD ~TMPFS_XATTR ~UNIX ~USER_NS + ~!GRKERNSEC_PROC ~!IDE ~!SYSFS_DEPRECATED + ~!SYSFS_DEPRECATED_V2" + + use acl && CONFIG_CHECK+=" ~TMPFS_POSIX_ACL" + use bpf && CONFIG_CHECK+=" ~BPF ~BPF_SYSCALL ~BPF_LSM ~DEBUG_INFO_BTF" + use seccomp && CONFIG_CHECK+=" ~SECCOMP ~SECCOMP_FILTER" + + if kernel_is -ge 5 10 20; then + CONFIG_CHECK+=" ~KCMP" + else + CONFIG_CHECK+=" ~CHECKPOINT_RESTORE" + fi + + if kernel_is -ge 4 18; then + CONFIG_CHECK+=" ~AUTOFS_FS" + else + CONFIG_CHECK+=" ~AUTOFS4_FS" + fi + + if linux_config_exists; then + local uevent_helper_path=$(linux_chkconfig_string UEVENT_HELPER_PATH) + if [[ -n ${uevent_helper_path} ]] && [[ ${uevent_helper_path} != '""' ]]; then + ewarn "It's recommended to set an empty value to the following kernel config option:" + ewarn "CONFIG_UEVENT_HELPER_PATH=${uevent_helper_path}" + fi + if linux_chkconfig_present X86; then + CONFIG_CHECK+=" ~DMIID" + fi + fi + + if kernel_is -lt ${MINKV//./ }; then + ewarn "Kernel version at least ${MINKV} required" + fi + + check_extra_config + fi +} + +pkg_setup() { + use boot && secureboot_pkg_setup +} + +src_unpack() { + default + [[ ${PV} != 9999 ]] || git-r3_src_unpack +} + +src_prepare() { + local PATCHES=( + "${FILESDIR}/261-gcc-bpf.patch" + "${FILESDIR}/systemd-261-lxml-6.1.3.patch" + ) + + if ! use vanilla; then + PATCHES+=( + "${FILESDIR}/gentoo-journald-audit-r4.patch" + ) + fi + + default +} + +src_configure() { + # Prevent conflicts with i686 cross toolchain, bug 559726 + tc-export AR CC NM OBJCOPY RANLIB + + # Our toolchain sets F_S=2 by default w/ >= -O2, so we need + # to unset F_S first, then explicitly set 2, to negate any default + # and anything set by the user if they're choosing 3 (or if they've + # modified GCC to set 3). + # + # malloc_usable_size doesn't play well with _F_S=3: + # https://github.com/systemd/systemd/issues/41459 (bug #971773) + if tc-is-clang && tc-enables-fortify-source ; then + # We can't unconditionally do this b/c we fortify needs + # some level of optimisation. + filter-flags -D_FORTIFY_SOURCE=3 + append-cppflags -U_FORTIFY_SOURCE -D_GENTOO_NO_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 + fi + + python_setup + + multilib-minimal_src_configure +} + +multilib_src_configure() { + local myconf=( + --localstatedir="${EPREFIX}/var" + -Ddocdir="share/doc/${PF}" + -Dmode=release # default is developer, bug 918671 + -Dlibc=$(usex elibc_musl musl glibc) + -Dsupport-url="${BRANDING_OS_SUPPORT_URL}" + -Dpamlibdir="$(getpam_mod_dir)" + -Dbashcompletiondir="$(get_bashcompdir)" + -Dzshcompletiondir="$(get_zshcompdir)" + -Dsplit-bin=false + -Dima=true # no deps + -Ddebug-shell="${EPREFIX}/bin/sh" # Match /etc/shells, bug 919749 + -Ddefault-user-shell="${EPREFIX}/bin/bash" + -Dbpf-compiler=gcc + -Dntp-servers="0.gentoo.pool.ntp.org 1.gentoo.pool.ntp.org 2.gentoo.pool.ntp.org 3.gentoo.pool.ntp.org" + # Breaks screen, tmux, etc. + -Ddefault-kill-user-processes=false + -Dcreate-log-dirs=false + -Dlibcrypt=enabled + -Dcompat-mutable-uid-boundaries=true + + # options affecting multilib + $(meson_use !elibc_musl nss-myhostname) + $(meson_feature !elibc_musl nss-mymachines) + $(meson_feature !elibc_musl nss-resolve) + $(meson_use !elibc_musl nss-systemd) + $(meson_feature pam) + ) + + # workaround for bug 969103 + if [[ ${CHOST} == riscv32* ]] ; then + myconf+=( -Dtests=true ) + else + myconf+=( $(meson_use test tests) ) + fi + + if multilib_is_native_abi; then + myconf+=( + --auto-features=enabled + -Dman=enabled + -Dxenctrl=disabled + + # Optional components/dependencies + $(meson_feature acl) + $(meson_feature apparmor) + $(meson_feature audit) + $(meson_feature boot bootloader) + $(meson_feature bpf bpf-framework) + $(meson_feature cryptsetup libcryptsetup) + $(meson_feature cryptsetup libcryptsetup-plugins) + $(meson_feature curl libcurl) + $(meson_use dns-over-tls dns-over-tls) + $(meson_feature elfutils) + $(meson_feature fido2 libfido2) + $(meson_feature gcrypt) + $(meson_feature gnutls) + $(meson_feature homed) + $(meson_use idn) + $(meson_feature imds) + $(meson_feature importd) + $(meson_feature importd bzip2) + $(meson_feature importd sysupdate) + $(meson_feature importd zlib) + $(meson_use kernel-install) + $(meson_feature kmod) + $(meson_feature libarchive) + $(meson_feature lz4) + $(meson_feature lzma xz) + $(meson_feature zstd) + $(meson_feature openssl) + $(meson_feature passwdqc) + $(meson_feature pkcs11 p11kit) + $(meson_feature pcre pcre2) + $(meson_feature policykit polkit) + $(meson_feature pwquality) + $(meson_feature qrcode qrencode) + $(meson_feature remote) + $(meson_feature remote microhttpd) + $(meson_feature seccomp) + $(meson_feature selinux) + $(meson_feature tpm tpm2) + $(meson_feature test dbus) + $(meson_feature test glib) + $(meson_feature ukify) + $(meson_feature xkb xkbcommon) + ) + + case $(tc-arch) in + amd64|arm|arm64|loong|ppc|ppc64|riscv|s390|x86) + # src/vmspawn/vmspawn-util.h: QEMU_MACHINE_TYPE + myconf+=( -Dvmspawn=enabled ) ;; + *) + myconf+=( -Dvmspawn=disabled ) ;; + esac + else + myconf+=( + --auto-features=disabled + ) + fi + + meson_src_configure "${myconf[@]}" +} + +multilib_src_compile() { + local args=() + if ! multilib_is_native_abi; then + args+=( + devel libsystemd libudev + $(usex elibc_musl '' nss) + $(usev pam) + ) + fi + meson_src_compile "${args[@]}" +} + +multilib_src_test() { + local args=( --timeout-multiplier=10 ) + if ! multilib_is_native_abi; then + args+=( + --suite libsystemd --suite libudev + $(usex elibc_musl '' '--suite nss') + $(usex pam '--suite pam' '') + ) + fi + ( + unset DBUS_SESSION_BUS_ADDRESS XDG_RUNTIME_DIR + export COLUMNS=80 + addpredict /dev + addpredict /proc + addpredict /run + addpredict /sys/fs/cgroup + meson_src_test "${args[@]}" + ) || die +} + +multilib_src_install() { + local args=() + if ! multilib_is_native_abi; then + local tags=devel,libsystemd,libudev + use !elibc_musl && tags+=,nss + use pam && tags+=,pam + args+=( --tags "${tags}" ) + fi + meson_src_install "${args[@]}" +} + +multilib_src_install_all() { + einstalldocs + dodoc "${FILESDIR}"/nsswitch.conf + + insinto /usr/lib/tmpfiles.d + doins "${FILESDIR}"/legacy.conf + + if ! use resolvconf; then + rm -f "${ED}"/usr/bin/resolvconf || die + fi + + if ! use sysv-utils; then + rm "${ED}"/usr/bin/{halt,init,poweroff,reboot,shutdown} || die + rm "${ED}"/usr/share/man/man1/init.1 || die + rm "${ED}"/usr/share/man/man8/{halt,poweroff,reboot,shutdown}.8 || die + fi + + # https://bugs.gentoo.org/761763 + rm -r "${ED}"/usr/lib/sysusers.d || die + + # Preserve empty dirs in /etc & /var, bug #437008 + keepdir /etc/{binfmt.d,modules-load.d,tmpfiles.d} + keepdir /etc/kernel/install.d + keepdir /etc/systemd/{network,system,user} + keepdir /etc/udev/rules.d + + keepdir /etc/udev/hwdb.d + + keepdir /usr/lib/systemd/{system-sleep,system-shutdown} + keepdir /usr/lib/{binfmt.d,modules-load.d} + keepdir /usr/lib/systemd/user-generators + keepdir /var/lib/systemd + keepdir /var/log/journal + + if use pam; then + if use selinux; then + newpamd "${FILESDIR}"/systemd-user-selinux.pam systemd-user + else + newpamd "${FILESDIR}"/systemd-user.pam systemd-user + fi + fi + + if use kernel-install; then + # Dummy config, remove to make room for sys-kernel/installkernel + rm "${ED}/usr/lib/kernel/install.conf" || die + fi + + use ukify && python_fix_shebang "${ED}" + use boot && secureboot_auto_sign +} + +migrate_locale() { + local envd_locale_def="${EROOT}/etc/env.d/02locale" + local envd_locale=( "${EROOT}"/etc/env.d/??locale ) + local locale_conf="${EROOT}/etc/locale.conf" + + if [[ ! -L ${locale_conf} && ! -e ${locale_conf} ]]; then + # If locale.conf does not exist... + if [[ -e ${envd_locale} ]]; then + # ...either copy env.d/??locale if there's one + ebegin "Moving ${envd_locale} to ${locale_conf}" + mv "${envd_locale}" "${locale_conf}" + eend ${?} || FAIL=1 + else + # ...or create a dummy default + ebegin "Creating ${locale_conf}" + cat > "${locale_conf}" <<-EOF + # This file has been created by the sys-apps/systemd ebuild. + # See locale.conf(5) and localectl(1). + + # LANG=${LANG} + EOF + eend ${?} || FAIL=1 + fi + fi + + if [[ ! -L ${envd_locale} ]]; then + # now, if env.d/??locale is not a symlink (to locale.conf)... + if [[ -e ${envd_locale} ]]; then + # ...warn the user that he has duplicate locale settings + ewarn + ewarn "To ensure consistent behavior, you should replace ${envd_locale}" + ewarn "with a symlink to ${locale_conf}. Please migrate your settings" + ewarn "and create the symlink with the following command:" + ewarn "ln -s -n -f ../locale.conf ${envd_locale}" + ewarn + else + # ...or just create the symlink if there's nothing here + ebegin "Creating ${envd_locale_def} -> ../locale.conf symlink" + ln -n -s ../locale.conf "${envd_locale_def}" + eend ${?} || FAIL=1 + fi + fi +} + +pkg_preinst() { + if [[ -e ${EROOT}/etc/sysctl.conf ]]; then + # Symlink /etc/sysctl.conf for easy migration. + dosym ../../../etc/sysctl.conf /usr/lib/sysctl.d/99-sysctl.conf + fi + + if ! use boot && has_version "sys-apps/systemd[gnuefi(-)]"; then + ewarn "The 'gnuefi' USE flag has been renamed to 'boot'." + ewarn "Make sure to enable the 'boot' USE flag if you use systemd-boot." + fi +} + +pkg_postinst() { + systemd_update_catalog + + # Keep this here in case the database format changes so it gets updated + # when required. + udev_hwdb_update || FAIL=1 + udev_reload || FAIL=1 + + # Bug 465468, make sure locales are respected, and ensure consistency + # between OpenRC & systemd + migrate_locale + + # Bug 971385, 974688 + local autovt=${EROOT}/etc/systemd/system/autovt@.service + if [[ ! -e ${autovt} && ! -L ${autovt} ]]; then + ln -s "${EPREFIX}/usr/lib/systemd/system/getty@.service" "${autovt}" || FAIL=1 + fi + + if [[ -z ${REPLACING_VERSIONS} ]]; then + if type systemctl &>/dev/null; then + systemctl --root="${ROOT:-/}" enable getty@.service remote-fs.target || FAIL=1 + fi + elog "To enable a useful set of services, run the following:" + elog " systemctl preset-all --preset-mode=enable-only" + fi + + if [[ -L ${EROOT}/var/lib/systemd/timesync ]]; then + rm "${EROOT}/var/lib/systemd/timesync" + fi + + if [[ -z ${ROOT} && -d /run/systemd/system ]]; then + ebegin "Reexecuting system manager (systemd)" + systemctl daemon-reexec + eend $? || FAIL=1 + + # https://lists.freedesktop.org/archives/systemd-devel/2024-June/050466.html + ebegin "Signaling user managers to reexec" + systemctl kill --kill-whom='main' --signal='SIGRTMIN+25' 'user@*.service' + eend $? + fi + + if [[ ${FAIL} ]]; then + eerror "One of the postinst commands failed. Please check the postinst output" + eerror "for errors. You may need to clean up your system and/or try installing" + eerror "systemd again." + eerror + fi + + if use boot; then + optfeature "installing kernels in systemd-boot's native layout and update loader entries" \ + "sys-kernel/installkernel[systemd-boot]" + fi + if use ukify; then + optfeature "generating unified kernel image on each kernel installation" \ + "sys-kernel/installkernel[ukify]" + fi +} + +pkg_prerm() { + # If removing systemd completely, remove the catalog database. + if [[ ! ${REPLACED_BY_VERSION} ]]; then + rm -f -v "${EROOT}"/var/lib/systemd/catalog/database + fi +} diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/systemd/systemd-262_rc1.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/systemd/systemd-262_rc1.ebuild new file mode 100644 index 00000000000..4e1eff24eaf --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-apps/systemd/systemd-262_rc1.ebuild @@ -0,0 +1,620 @@ +# Copyright 2011-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 +PYTHON_COMPAT=( python3_{12..14} ) + +# Avoid QA warnings +TMPFILES_OPTIONAL=1 +UDEV_OPTIONAL=1 + +QA_PKGCONFIG_VERSION=$(ver_cut 1) + +if [[ ${PV} == 9999 ]]; then + EGIT_REPO_URI="https://github.com/systemd/systemd.git" + inherit git-r3 +else + MY_PV=${PV/_/-} + MY_P=${PN}-${MY_PV} + S=${WORKDIR}/${MY_P} + SRC_URI="https://github.com/systemd/${PN}/archive/refs/tags/v${MY_PV}.tar.gz -> ${MY_P}.tar.gz" + + if [[ ${PV} != *rc* ]] ; then + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + fi +fi + +inherit branding flag-o-matic linux-info meson-multilib optfeature pam python-single-r1 +inherit secureboot shell-completion systemd toolchain-funcs udev xdg-utils + +DESCRIPTION="System and service manager for Linux" +HOMEPAGE="https://systemd.io/" + +LICENSE="GPL-2 LGPL-2.1 MIT public-domain" +SLOT="0/2" +IUSE=" + acl apparmor audit boot bpf cryptsetup curl +dns-over-tls elfutils fido2 + +gcrypt gnutls homed idn imds importd +kernel-install +kmod +libarchive + +lz4 lzma +openssl pam passwdqc pcre pkcs11 policykit pwquality qrcode + remote +resolvconf +seccomp selinux sysv-utils test tpm ukify vanilla xkb + +zstd +" +REQUIRED_USE=" + ${PYTHON_REQUIRED_USE} + boot? ( kernel-install ) + dns-over-tls? ( openssl ) + fido2? ( cryptsetup openssl ) + homed? ( cryptsetup pam openssl ) + imds? ( curl ) + importd? ( curl libarchive lzma openssl ) + ?? ( passwdqc pwquality ) + passwdqc? ( homed ) + pwquality? ( homed ) + remote? ( curl ) + ukify? ( boot ) +" +RESTRICT="!test? ( test )" + +MINKV="5.10" + +COMMON_DEPEND=" + >=sys-apps/util-linux-2.37 + acl? ( sys-apps/acl ) + apparmor? ( >=sys-libs/libapparmor-2.13 ) + audit? ( >=sys-process/audit-2 ) + bpf? ( >=dev-libs/libbpf-1.4.0 ) + cryptsetup? ( >=sys-fs/cryptsetup-2.4.0:= ) + curl? ( >=net-misc/curl-7.32.0:0= ) + elfutils? ( >=dev-libs/elfutils-0.177 ) + elibc_glibc? ( + >=sys-libs/glibc-2.34 + >=sys-libs/libxcrypt-4.4.0 + ) + elibc_musl? ( + >=sys-libs/musl-1.2.6 + sys-libs/libucontext + virtual/libcrypt + ) + fido2? ( + dev-libs/libfido2 + ) + gcrypt? ( >=dev-libs/libgcrypt-1.4.5 ) + gnutls? ( >=net-libs/gnutls-3.6.0:0= ) + remote? ( >=net-libs/libmicrohttpd-0.9.33:0=[epoll(+)] ) + idn? ( net-dns/libidn2 ) + importd? ( + app-arch/bzip2:0= + virtual/zlib:= + ) + kmod? ( >=sys-apps/kmod-15:0= ) + libarchive? ( >=app-arch/libarchive-3.0:0= ) + lz4? ( >=app-arch/lz4-0_p131:0= ) + lzma? ( >=app-arch/xz-utils-5.0.5-r1:0= ) + openssl? ( >=dev-libs/openssl-3.0.0:0= ) + pam? ( sys-libs/pam:=[${MULTILIB_USEDEP}] ) + passwdqc? ( sys-auth/passwdqc ) + pkcs11? ( >=app-crypt/p11-kit-0.23.3 ) + pcre? ( dev-libs/libpcre2 ) + pwquality? ( >=dev-libs/libpwquality-1.4.1 ) + qrcode? ( >=media-gfx/qrencode-3:0= ) + seccomp? ( >=sys-libs/libseccomp-2.4.0 ) + selinux? ( >=sys-libs/libselinux-2.1.9 ) + tpm? ( app-crypt/tpm2-tss ) + xkb? ( >=x11-libs/libxkbcommon-0.4.1 ) + zstd? ( >=app-arch/zstd-1.4.0:0= ) +" + +# Newer linux-headers needed by ia64, bug #480218 +DEPEND="${COMMON_DEPEND} + >=sys-kernel/linux-headers-${MINKV} +" + +PEFILE_DEPEND='dev-python/pefile[${PYTHON_USEDEP}]' + +# baselayout-2.2 has /run +RDEPEND="${COMMON_DEPEND} + >=acct-group/adm-0-r1 + >=acct-group/wheel-0-r1 + >=acct-group/kmem-0-r1 + >=acct-group/tty-0-r1 + >=acct-group/utmp-0-r1 + >=acct-group/audio-0-r1 + >=acct-group/cdrom-0-r1 + acct-group/clock + >=acct-group/dialout-0-r1 + >=acct-group/disk-0-r1 + >=acct-group/input-0-r1 + >=acct-group/kvm-0-r1 + >=acct-group/lp-0-r1 + >=acct-group/render-0-r1 + acct-group/sgx + >=acct-group/tape-0-r1 + acct-group/users + >=acct-group/video-0-r1 + >=acct-group/systemd-journal-0-r1 + >=acct-user/root-0-r1 + acct-user/nobody + >=acct-user/systemd-journal-remote-0-r1 + >=acct-user/systemd-coredump-0-r1 + >=acct-user/systemd-network-0-r1 + acct-user/systemd-oom + >=acct-user/systemd-resolve-0-r1 + >=acct-user/systemd-timesync-0-r1 + >=sys-apps/baselayout-2.2 + imds? ( acct-user/systemd-imds ) + ukify? ( + ${PYTHON_DEPS} + $(python_gen_cond_dep "${PEFILE_DEPEND}") + ) + selinux? ( + sec-policy/selinux-base-policy[systemd] + sec-policy/selinux-ntp + ) + sysv-utils? ( + !sys-apps/openrc[sysv-utils(-)] + !sys-apps/sysvinit + ) + !sysv-utils? ( sys-apps/sysvinit ) + resolvconf? ( !net-dns/openresolv ) + !sys-auth/nss-myhostname + !sys-fs/eudev + !sys-fs/udev +" + +# sys-apps/dbus: the daemon only (+ build-time lib dep for tests) +PDEPEND=" + >=sys-apps/dbus-1.9.8[systemd] + >=sys-fs/udev-init-scripts-34 + policykit? ( sys-auth/polkit ) + !sysv-utils? ( sys-apps/systemd-initctl ) + !vanilla? ( sys-apps/gentoo-systemd-integration ) +" + +BDEPEND=" + app-arch/xz-utils:0 + dev-util/gperf + >=dev-build/meson-0.46 + >=sys-apps/coreutils-8.16 + sys-devel/gettext + virtual/pkgconfig + bpf? ( + >=dev-util/bpftool-7.0.0 + sys-devel/bpf-toolchain + ) + test? ( + app-text/tree + dev-lang/perl + >=dev-libs/glib-2.22.0:2 + sys-apps/dbus + ) + app-text/docbook-xml-dtd:4.2 + app-text/docbook-xml-dtd:4.5 + app-text/docbook-xsl-stylesheets + dev-libs/libxslt:0 + ${PYTHON_DEPS} + $(python_gen_cond_dep " + dev-python/jinja2[\${PYTHON_USEDEP}] + dev-python/lxml[\${PYTHON_USEDEP}] + boot? ( + >=dev-python/pyelftools-0.30[\${PYTHON_USEDEP}] + test? ( ${PEFILE_DEPEND} ) + ) + ") +" + +QA_FLAGS_IGNORED="usr/lib/systemd/boot/efi/.*" +QA_EXECSTACK="usr/lib/systemd/boot/efi/*" + +pkg_pretend() { + if [[ ${MERGE_TYPE} != buildonly ]]; then + local CONFIG_CHECK="~BLK_DEV_BSG ~CGROUPS + ~CGROUP_BPF ~DEVTMPFS ~EPOLL ~FANOTIFY ~FHANDLE + ~INOTIFY_USER ~IPV6 ~NET ~NET_NS ~PROC_FS ~SIGNALFD ~SYSFS + ~TIMERFD ~TMPFS_XATTR ~UNIX ~USER_NS + ~!GRKERNSEC_PROC ~!IDE ~!SYSFS_DEPRECATED + ~!SYSFS_DEPRECATED_V2" + + use acl && CONFIG_CHECK+=" ~TMPFS_POSIX_ACL" + use bpf && CONFIG_CHECK+=" ~BPF ~BPF_SYSCALL ~BPF_LSM ~DEBUG_INFO_BTF" + use seccomp && CONFIG_CHECK+=" ~SECCOMP ~SECCOMP_FILTER" + + if kernel_is -ge 5 10 20; then + CONFIG_CHECK+=" ~KCMP" + else + CONFIG_CHECK+=" ~CHECKPOINT_RESTORE" + fi + + if kernel_is -ge 4 18; then + CONFIG_CHECK+=" ~AUTOFS_FS" + else + CONFIG_CHECK+=" ~AUTOFS4_FS" + fi + + if linux_config_exists; then + local uevent_helper_path=$(linux_chkconfig_string UEVENT_HELPER_PATH) + if [[ -n ${uevent_helper_path} ]] && [[ ${uevent_helper_path} != '""' ]]; then + ewarn "It's recommended to set an empty value to the following kernel config option:" + ewarn "CONFIG_UEVENT_HELPER_PATH=${uevent_helper_path}" + fi + if linux_chkconfig_present X86; then + CONFIG_CHECK+=" ~DMIID" + fi + fi + + if kernel_is -lt ${MINKV//./ }; then + ewarn "Kernel version at least ${MINKV} required" + fi + + check_extra_config + fi +} + +pkg_setup() { + use boot && secureboot_pkg_setup +} + +src_unpack() { + default + [[ ${PV} != 9999 ]] || git-r3_src_unpack +} + +src_prepare() { + local PATCHES=( + "${FILESDIR}/systemd-261-lxml-6.1.3.patch" + ) + + if ! use vanilla; then + PATCHES+=( + "${FILESDIR}/gentoo-journald-audit-r4.patch" + ) + fi + + default +} + +src_configure() { + # Prevent conflicts with i686 cross toolchain, bug 559726 + tc-export AR CC NM OBJCOPY RANLIB + + # Our toolchain sets F_S=2 by default w/ >= -O2, so we need + # to unset F_S first, then explicitly set 2, to negate any default + # and anything set by the user if they're choosing 3 (or if they've + # modified GCC to set 3). + # + # malloc_usable_size doesn't play well with _F_S=3: + # https://github.com/systemd/systemd/issues/41459 (bug #971773) + if tc-is-clang && tc-enables-fortify-source ; then + # We can't unconditionally do this b/c we fortify needs + # some level of optimisation. + filter-flags -D_FORTIFY_SOURCE=3 + append-cppflags -U_FORTIFY_SOURCE -D_GENTOO_NO_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 + fi + + python_setup + + multilib-minimal_src_configure +} + +multilib_src_configure() { + local myconf=( + --localstatedir="${EPREFIX}/var" + -Ddocdir="share/doc/${PF}" + -Dmode=release # default is developer, bug 918671 + -Dlibc=$(usex elibc_musl musl glibc) + -Dsupport-url="${BRANDING_OS_SUPPORT_URL}" + -Dpamlibdir="$(getpam_mod_dir)" + -Dbashcompletiondir="$(get_bashcompdir)" + -Dzshcompletiondir="$(get_zshcompdir)" + -Dsplit-bin=false + -Dima=true # no deps + -Ddebug-shell="${EPREFIX}/bin/sh" # Match /etc/shells, bug 919749 + -Ddefault-user-shell="${EPREFIX}/bin/bash" + -Dbpf-compiler=gcc + -Dntp-servers="0.gentoo.pool.ntp.org 1.gentoo.pool.ntp.org 2.gentoo.pool.ntp.org 3.gentoo.pool.ntp.org" + # Breaks screen, tmux, etc. + -Ddefault-kill-user-processes=false + -Dcreate-log-dirs=false + -Dlibcrypt=enabled + -Dcompat-mutable-uid-boundaries=true + + # options affecting multilib + $(meson_use !elibc_musl nss-myhostname) + $(meson_feature !elibc_musl nss-mymachines) + $(meson_feature !elibc_musl nss-resolve) + $(meson_use !elibc_musl nss-systemd) + $(meson_feature pam) + ) + + # workaround for bug 969103 + if [[ ${CHOST} == riscv32* ]] ; then + myconf+=( -Dtests=true ) + else + myconf+=( $(meson_use test tests) ) + fi + + if multilib_is_native_abi; then + myconf+=( + --auto-features=enabled + -Dman=enabled + -Dxenctrl=disabled + + # Optional components/dependencies + $(meson_feature acl) + $(meson_feature apparmor) + $(meson_feature audit) + $(meson_feature boot bootloader) + $(meson_feature bpf bpf-framework) + $(meson_feature cryptsetup libcryptsetup) + $(meson_feature cryptsetup libcryptsetup-plugins) + $(meson_feature curl libcurl) + $(meson_use dns-over-tls dns-over-tls) + $(meson_feature elfutils) + $(meson_feature fido2 libfido2) + $(meson_feature gcrypt) + $(meson_feature gnutls) + $(meson_feature homed) + $(meson_use idn) + $(meson_feature imds) + $(meson_feature importd) + $(meson_feature importd bzip2) + $(meson_feature importd sysupdate) + $(meson_feature importd zlib) + $(meson_use kernel-install) + $(meson_feature kmod) + $(meson_feature libarchive) + $(meson_feature lz4) + $(meson_feature lzma xz) + $(meson_feature zstd) + $(meson_feature openssl) + $(meson_feature passwdqc) + $(meson_feature pkcs11 p11kit) + $(meson_feature pcre pcre2) + $(meson_feature policykit polkit) + $(meson_feature pwquality) + $(meson_feature qrcode qrencode) + $(meson_feature remote) + $(meson_feature remote microhttpd) + $(meson_feature seccomp) + $(meson_feature selinux) + $(meson_feature tpm tpm2) + $(meson_feature test dbus) + $(meson_feature test glib) + $(meson_feature ukify) + $(meson_feature xkb xkbcommon) + ) + + case $(tc-arch) in + amd64|arm|arm64|loong|ppc|ppc64|riscv|s390|x86) + # src/vmspawn/vmspawn-util.h: QEMU_MACHINE_TYPE + myconf+=( -Dvmspawn=enabled ) ;; + *) + myconf+=( -Dvmspawn=disabled ) ;; + esac + else + myconf+=( + --auto-features=disabled + ) + fi + + meson_src_configure "${myconf[@]}" +} + +multilib_src_compile() { + local args=() + if ! multilib_is_native_abi; then + args+=( + devel libsystemd libudev + $(usex elibc_musl '' nss) + $(usev pam) + ) + fi + meson_src_compile "${args[@]}" +} + +multilib_src_test() { + local args=( --timeout-multiplier=10 ) + if ! multilib_is_native_abi; then + args+=( + --suite libsystemd --suite libudev + $(usex elibc_musl '' '--suite nss') + $(usex pam '--suite pam' '') + ) + fi + ( + unset DBUS_SESSION_BUS_ADDRESS XDG_RUNTIME_DIR + export COLUMNS=80 + addpredict /dev + addpredict /proc + addpredict /run + addpredict /sys/fs/cgroup + meson_src_test "${args[@]}" + ) || die +} + +multilib_src_install() { + local args=() + if ! multilib_is_native_abi; then + local tags=devel,libsystemd,libudev + use !elibc_musl && tags+=,nss + use pam && tags+=,pam + args+=( --tags "${tags}" ) + fi + meson_src_install "${args[@]}" +} + +multilib_src_install_all() { + einstalldocs + dodoc "${FILESDIR}"/nsswitch.conf + + insinto /usr/lib/tmpfiles.d + doins "${FILESDIR}"/legacy.conf + + if ! use resolvconf; then + rm -f "${ED}"/usr/bin/resolvconf || die + fi + + if ! use sysv-utils; then + rm "${ED}"/usr/bin/{halt,init,poweroff,reboot,shutdown} || die + rm "${ED}"/usr/share/man/man1/init.1 || die + rm "${ED}"/usr/share/man/man8/{halt,poweroff,reboot,shutdown}.8 || die + fi + + # https://bugs.gentoo.org/761763 + rm -r "${ED}"/usr/lib/sysusers.d || die + + # Preserve empty dirs in /etc & /var, bug #437008 + keepdir /etc/{binfmt.d,modules-load.d,tmpfiles.d} + keepdir /etc/kernel/install.d + keepdir /etc/systemd/{network,system,user} + keepdir /etc/udev/rules.d + + keepdir /etc/udev/hwdb.d + + keepdir /usr/lib/systemd/{system-sleep,system-shutdown} + keepdir /usr/lib/{binfmt.d,modules-load.d} + keepdir /usr/lib/systemd/user-generators + keepdir /var/lib/systemd + keepdir /var/log/journal + + if use pam; then + if use selinux; then + newpamd "${FILESDIR}"/systemd-user-selinux.pam systemd-user + else + newpamd "${FILESDIR}"/systemd-user.pam systemd-user + fi + fi + + if use kernel-install; then + # Dummy config, remove to make room for sys-kernel/installkernel + rm "${ED}/usr/lib/kernel/install.conf" || die + fi + + use ukify && python_fix_shebang "${ED}" + use boot && secureboot_auto_sign +} + +migrate_locale() { + local envd_locale_def="${EROOT}/etc/env.d/02locale" + local envd_locale=( "${EROOT}"/etc/env.d/??locale ) + local locale_conf="${EROOT}/etc/locale.conf" + + if [[ ! -L ${locale_conf} && ! -e ${locale_conf} ]]; then + # If locale.conf does not exist... + if [[ -e ${envd_locale} ]]; then + # ...either copy env.d/??locale if there's one + ebegin "Moving ${envd_locale} to ${locale_conf}" + mv "${envd_locale}" "${locale_conf}" + eend ${?} || FAIL=1 + else + # ...or create a dummy default + ebegin "Creating ${locale_conf}" + cat > "${locale_conf}" <<-EOF + # This file has been created by the sys-apps/systemd ebuild. + # See locale.conf(5) and localectl(1). + + # LANG=${LANG} + EOF + eend ${?} || FAIL=1 + fi + fi + + if [[ ! -L ${envd_locale} ]]; then + # now, if env.d/??locale is not a symlink (to locale.conf)... + if [[ -e ${envd_locale} ]]; then + # ...warn the user that he has duplicate locale settings + ewarn + ewarn "To ensure consistent behavior, you should replace ${envd_locale}" + ewarn "with a symlink to ${locale_conf}. Please migrate your settings" + ewarn "and create the symlink with the following command:" + ewarn "ln -s -n -f ../locale.conf ${envd_locale}" + ewarn + else + # ...or just create the symlink if there's nothing here + ebegin "Creating ${envd_locale_def} -> ../locale.conf symlink" + ln -n -s ../locale.conf "${envd_locale_def}" + eend ${?} || FAIL=1 + fi + fi +} + +pkg_preinst() { + if [[ -e ${EROOT}/etc/sysctl.conf ]]; then + # Symlink /etc/sysctl.conf for easy migration. + dosym ../../../etc/sysctl.conf /usr/lib/sysctl.d/99-sysctl.conf + fi + + if ! use boot && has_version "sys-apps/systemd[gnuefi(-)]"; then + ewarn "The 'gnuefi' USE flag has been renamed to 'boot'." + ewarn "Make sure to enable the 'boot' USE flag if you use systemd-boot." + fi +} + +pkg_postinst() { + xdg_mimeinfo_database_update + systemd_update_catalog + + # Keep this here in case the database format changes so it gets updated + # when required. + udev_hwdb_update || FAIL=1 + udev_reload || FAIL=1 + + # Bug 465468, make sure locales are respected, and ensure consistency + # between OpenRC & systemd + migrate_locale + + # Bug 971385, 974688 + local autovt=${EROOT}/etc/systemd/system/autovt@.service + if [[ ! -e ${autovt} && ! -L ${autovt} ]]; then + ln -s "${EPREFIX}/usr/lib/systemd/system/getty@.service" "${autovt}" || FAIL=1 + fi + + if [[ -z ${REPLACING_VERSIONS} ]]; then + if type systemctl &>/dev/null; then + systemctl --root="${ROOT:-/}" enable getty@.service remote-fs.target || FAIL=1 + fi + elog "To enable a useful set of services, run the following:" + elog " systemctl preset-all --preset-mode=enable-only" + fi + + if [[ -L ${EROOT}/var/lib/systemd/timesync ]]; then + rm "${EROOT}/var/lib/systemd/timesync" + fi + + if [[ -z ${ROOT} && -d /run/systemd/system ]]; then + ebegin "Reexecuting system manager (systemd)" + systemctl daemon-reexec + eend $? || FAIL=1 + + # https://lists.freedesktop.org/archives/systemd-devel/2024-June/050466.html + ebegin "Signaling user managers to reexec" + systemctl kill --kill-whom='main' --signal='SIGRTMIN+25' 'user@*.service' + eend $? + fi + + if [[ ${FAIL} ]]; then + eerror "One of the postinst commands failed. Please check the postinst output" + eerror "for errors. You may need to clean up your system and/or try installing" + eerror "systemd again." + eerror + fi + + if use boot; then + optfeature "installing kernels in systemd-boot's native layout and update loader entries" \ + "sys-kernel/installkernel[systemd-boot]" + fi + if use ukify; then + optfeature "generating unified kernel image on each kernel installation" \ + "sys-kernel/installkernel[ukify]" + fi +} + +pkg_prerm() { + # If removing systemd completely, remove the catalog database. + if [[ ! ${REPLACED_BY_VERSION} ]]; then + rm -f -v "${EROOT}"/var/lib/systemd/catalog/database + fi +} + +pkg_postrm() { + xdg_mimeinfo_database_update +} diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/systemd/systemd-9999.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/systemd/systemd-9999.ebuild index 5a30c2a4dee..3d5f2760822 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/systemd/systemd-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-apps/systemd/systemd-9999.ebuild @@ -25,7 +25,7 @@ else fi inherit branding flag-o-matic linux-info meson-multilib optfeature pam python-single-r1 -inherit secureboot shell-completion systemd toolchain-funcs udev +inherit secureboot shell-completion systemd toolchain-funcs udev xdg-utils DESCRIPTION="System and service manager for Linux" HOMEPAGE="https://systemd.io/" @@ -549,6 +549,7 @@ pkg_preinst() { } pkg_postinst() { + xdg_mimeinfo_database_update systemd_update_catalog # Keep this here in case the database format changes so it gets updated @@ -612,3 +613,7 @@ pkg_prerm() { rm -f -v "${EROOT}"/var/lib/systemd/catalog/database fi } + +pkg_postrm() { + xdg_mimeinfo_database_update +} diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/util-linux/Manifest b/sdk_container/src/third_party/portage-stable/sys-apps/util-linux/Manifest index e9a5e245d73..ee15efdde63 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/util-linux/Manifest +++ b/sdk_container/src/third_party/portage-stable/sys-apps/util-linux/Manifest @@ -2,3 +2,5 @@ DIST util-linux-2.41.5.tar.sign 833 BLAKE2B 40c382defcbea78bbf137b1bdd5228cb7454 DIST util-linux-2.41.5.tar.xz 9474992 BLAKE2B b42744ddd878cb27a0cb75ef69240c9eaf2b4ff2583eebff15af7ccd852a25e6dc150f03a181dccd3c4fec6cff6acb12aff099d8414f6f689e71ee04e223f0d3 SHA512 25e7e79e0f0a4711a15c16db05357755536cf4dc9c0ee28447d95f9bfc135f23075d434e107269a65148a8c16b37755e913aacbaec03a3bdce171a9e0a46bfe8 DIST util-linux-2.42.2.tar.sign 833 BLAKE2B 091e4b9874290320ae985f0abe0044e22860c6922ddd6114fa3e5a0a3eed9ae229fe45b49591ecc8d575b2e2a4f22662bfe770a4e210f34d03758e062902e2b9 SHA512 3922974fa8384be5628938705f01aa3ac433512e24a3943fc5e0b2ae4cb4d9b952966727039d2fd74f58c51cd349228fd53f82ac8cd4d5ad7f61580abd4da229 DIST util-linux-2.42.2.tar.xz 10658220 BLAKE2B 49ca2426dd6a48638ee41f43477ddec23add87be6a561d3b654e13d21fc048f00e64d9247432a3436b07f8a3f34434ab2c837a5b82757a8d27096f6764d895dd SHA512 7415add0be2930654e322830808dde03ff6d511bd357f0679e6b6287a13ca79fe58ce4ac05edef86b76fb381b3a36ca2da9d3c31b5dc0a1d889c203156a57277 +DIST util-linux-2.42.3.tar.sign 833 BLAKE2B 00080fa75ee4da6c6fbe65fa288ac7e618ef9d18923d2b455aea0e2d0a11b5ed88072b1ff5710808864948ac647727439667fd2c468bee21bf5af76179aa081a SHA512 3f05f3b2a47ca066f4e34ef80aa8a11424b9b0f8585f417bce5e6e62a4d8a6f2dc74f78eb583be11aca862cd5bac094a984169756eeaddf0b6a0b9d2503f1537 +DIST util-linux-2.42.3.tar.xz 10716216 BLAKE2B fcb9fb7f522cabebb4813c78d56115d4516371922f9a4c8e2036d3622ed427d6c0897bca7a60b2176297ff08b6a4f28b85d09509462d3aac4cd73b863402eed6 SHA512 2a307943d4fbb34ac02131e10ff7260f181dd706b21e68a891d25d6eb30476a612bcc19b674bb2256283c9c716146e0d79909f37324efc9aa9d45a44e0d58988 diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/util-linux/files/util-linux-2.42.3-CVE-2026-78408.patch b/sdk_container/src/third_party/portage-stable/sys-apps/util-linux/files/util-linux-2.42.3-CVE-2026-78408.patch new file mode 100644 index 00000000000..2b9a2708916 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-apps/util-linux/files/util-linux-2.42.3-CVE-2026-78408.patch @@ -0,0 +1,83 @@ +https://github.com/util-linux/util-linux/commit/286dd3ff41526b582ef48830de239dffbaa61f90 + +From 286dd3ff41526b582ef48830de239dffbaa61f90 Mon Sep 17 00:00:00 2001 +From: Karel Zak +Date: Thu, 3 Sep 2026 12:17:14 +0200 +Subject: [PATCH] nsenter: close cgroup.procs fd after join to prevent + authority leak [CVE-2026-78408] + +The --join-cgroup option opens the target's cgroup.procs while running +as root and writes nsenter's own PID to migrate itself. The descriptor +was left open across subsequent namespace transitions, credential drops +(setgroups/setgid/setuid) and execve(). + +The kernel performs cgroup migration permission checks using the +credentials captured at open time (file->f_cred). An open cgroup.procs +descriptor therefore carries the opener's migration authority regardless +of later privilege changes. A program executed inside the target +namespace inherits root's cgroup migration capability even when running +as an unprivileged user with no capabilities. + +Fix this by: + + - closing the temporary /proc/PID/cgroup fd after reading the path + - adding O_CLOEXEC to the cgroup.procs open as defense in depth + - closing cgroup_procs_fd immediately after the self-migration write + - initializing the temporary cgroup fd to -1 instead of 0 to avoid + accidentally closing stdin via open_target_fd() + +The descriptor has no legitimate use after the single migration write. + +Introduced-by: b40650b71a74 ("nsenter: add option -c to join the cgroup of target process") +References: b0cf1cf0d255 ("nsenter: close cgroup.procs fd after join to prevent authority leak") +Signed-off-by: Karel Zak +(cherry picked from commit afe067c979b9ba2cbe856f7c6411210120ea62aa) +--- + sys-utils/nsenter.c | 11 ++++++++--- + 1 file changed, 8 insertions(+), 3 deletions(-) + +diff --git a/sys-utils/nsenter.c b/sys-utils/nsenter.c +index 62ef366d430..f449c65d2b4 100644 +--- a/sys-utils/nsenter.c ++++ b/sys-utils/nsenter.c +@@ -466,7 +466,7 @@ static int get_ns_ino(const char *path, ino_t *ino) + static void open_cgroup_procs(void) + { + char *buf = NULL, *path = NULL, *p; +- int cgroup_fd = 0; ++ int cgroup_fd = -1; + char fdpath[PATH_MAX]; + + open_target_fd(&cgroup_fd, "cgroup", optarg); +@@ -474,6 +474,8 @@ static void open_cgroup_procs(void) + if (read_all_alloc(cgroup_fd, &buf) < 1) + err(EXIT_FAILURE, _("failed to get cgroup path")); + ++ close(cgroup_fd); ++ + p = strtok(buf, "\n"); + if (p) + path = strrchr(p, ':'); +@@ -483,7 +485,7 @@ static void open_cgroup_procs(void) + + snprintf(fdpath, sizeof(fdpath), _PATH_SYS_CGROUP "/%s/cgroup.procs", path); + +- if ((cgroup_procs_fd = open(fdpath, O_WRONLY | O_APPEND)) < 0) ++ if ((cgroup_procs_fd = open(fdpath, O_WRONLY | O_APPEND | O_CLOEXEC)) < 0) + err(EXIT_FAILURE, _("failed to open cgroup.procs")); + + free(buf); +@@ -923,8 +925,11 @@ int main(int argc, char *argv[]) + } + + // Join into the target cgroup +- if (cgroup_procs_fd >= 0) ++ if (cgroup_procs_fd >= 0) { + join_into_cgroup(); ++ close(cgroup_procs_fd); ++ cgroup_procs_fd = -1; ++ } + + if (uid_gid_fd >= 0) { + struct stat st; + diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/util-linux/files/util-linux-2.42.3-fileutils-warnings.patch b/sdk_container/src/third_party/portage-stable/sys-apps/util-linux/files/util-linux-2.42.3-fileutils-warnings.patch new file mode 100644 index 00000000000..5bec7c3dc26 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-apps/util-linux/files/util-linux-2.42.3-fileutils-warnings.patch @@ -0,0 +1,64 @@ +https://github.com/util-linux/util-linux/commit/67fd3bf434299c701c9361dca509d752e220ea7f + +From 67fd3bf434299c701c9361dca509d752e220ea7f Mon Sep 17 00:00:00 2001 +From: Karel Zak +Date: Thu, 3 Sep 2026 09:45:29 +0200 +Subject: [PATCH] lib/fileutils: fix unused parameter warnings without + SYS_openat2 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +On systems without SYS_openat2 (older kernels), ul_openat_resolve() +is a stub that returns -ENOSYS, making all parameters unused. With +-Werror=unused-parameter this breaks the build. + +Move the #ifdef around the whole function so each branch has its own +declaration — the SYS_openat2 branch uses all parameters normally, +the fallback branch marks them __unused__. + +Fixes: fb8e26535 ("libmount: pin source path with openat2() for restricted users") +Signed-off-by: Karel Zak +(cherry picked from commit a471b62e732a491f1abe42450352fb0f9b5b43ea) +--- + lib/fileutils.c | 12 ++++++++++-- + 1 file changed, 10 insertions(+), 2 deletions(-) + +diff --git a/lib/fileutils.c b/lib/fileutils.c +index 89f1e216984..80b69eea271 100644 +--- a/lib/fileutils.c ++++ b/lib/fileutils.c +@@ -440,10 +440,10 @@ char *ul_basename(char *path) + return p; + } + ++#if defined(SYS_openat2) + int ul_openat_resolve(int dirfd, const char *path, int flags, + mode_t mode, unsigned long long resolve) + { +-#if defined(SYS_openat2) + struct open_how how = { + .flags = (__u64) flags, + .mode = (__u64) mode, +@@ -451,11 +451,19 @@ int ul_openat_resolve(int dirfd, const char *path, int flags, + }; + + return syscall(SYS_openat2, dirfd, path, &how, sizeof(how)); ++} + #else ++int ul_openat_resolve( ++ int dirfd __attribute__((__unused__)), ++ const char *path __attribute__((__unused__)), ++ int flags __attribute__((__unused__)), ++ mode_t mode __attribute__((__unused__)), ++ unsigned long long resolve __attribute__((__unused__))) ++{ + errno = ENOSYS; + return -1; +-#endif + } ++#endif + + int ul_open_no_symlinks(const char *path, int flags, mode_t mode) + { + diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/util-linux/files/util-linux-2.42.3-libmount-fixup.patch b/sdk_container/src/third_party/portage-stable/sys-apps/util-linux/files/util-linux-2.42.3-libmount-fixup.patch new file mode 100644 index 00000000000..d4c51363089 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-apps/util-linux/files/util-linux-2.42.3-libmount-fixup.patch @@ -0,0 +1,114 @@ +https://github.com/util-linux/util-linux/commit/473b6a5a3adb4ba4a72ec3d391a4339f55433249 + +From 473b6a5a3adb4ba4a72ec3d391a4339f55433249 Mon Sep 17 00:00:00 2001 +From: Karel Zak +Date: Thu, 3 Sep 2026 10:01:29 +0200 +Subject: [PATCH] libmount: use USE_LIBMOUNT_MOUNTFD_SUPPORT for idmap hook + +The idmap hookset was originally guarded by HAVE_MOUNTFD_API (kernel +headers have the new mount syscalls) rather than +USE_LIBMOUNT_MOUNTFD_SUPPORT (libmount is built with mountfd support). + +This was intentional (commit 9040c0900, 2022) -- the idea was to keep +idmap working even with --disable-libmount-mountfd-support by calling +the raw open_tree() syscall directly, while using an inner #ifdef +USE_LIBMOUNT_MOUNTFD_SUPPORT to optionally reuse the sysapi fd_tree. + +This fine-grained approach broke when the CVE-2026-78410 fix replaced +the raw open_tree() call with mnt_open_tree(), which is only available +under USE_LIBMOUNT_MOUNTFD_SUPPORT. The build fails with +--disable-libmount-mountfd-support because mnt_open_tree() is +undeclared. + +Rather than maintaining two code paths for a feature that fundamentally +depends on the new mount API, gate the entire idmap hookset on +USE_LIBMOUNT_MOUNTFD_SUPPORT -- consistent with how hookset_mount is +guarded. Remove the now-redundant inner #ifdef. + +Also add a note to mount.8 that X-mount.idmap requires the new +fd-based mount API. + +Addresses: https://github.com/util-linux/util-linux/issues/4598 +Signed-off-by: Karel Zak +(cherry picked from commit e06799ac325a881a297d2ffd6fe568cacdcd00ab) +--- + libmount/src/hook_idmap.c | 6 ++---- + libmount/src/hooks.c | 2 +- + libmount/src/version.c | 2 +- + sys-utils/mount.8.adoc | 1 + + 4 files changed, 5 insertions(+), 6 deletions(-) + +diff --git a/libmount/src/hook_idmap.c b/libmount/src/hook_idmap.c +index 2c697b17154..b1477ac6600 100644 +--- a/libmount/src/hook_idmap.c ++++ b/libmount/src/hook_idmap.c +@@ -32,7 +32,7 @@ + # include + #endif + +-#if defined(HAVE_MOUNTFD_API) && defined(HAVE_LINUX_MOUNT_H) ++#ifdef USE_LIBMOUNT_MOUNTFD_SUPPORT + + typedef enum idmap_type_t { + ID_TYPE_UID, /* uidmap entry */ +@@ -317,7 +317,6 @@ static int hook_mount_post( + * Once a mount has been attached to the filesystem it can't be + * idmapped anymore. So create a new detached mount. + */ +-#ifdef USE_LIBMOUNT_MOUNTFD_SUPPORT + { + struct libmnt_sysapi *api = mnt_context_get_sysapi(cxt); + +@@ -327,7 +326,6 @@ static int hook_mount_post( + DBG(HOOK, ul_debugobj(hs, " reuse tree FD")); + } + } +-#endif + if (fd_tree < 0) + fd_tree = mnt_open_tree(AT_FDCWD, target, + OPEN_TREE_CLONE | OPEN_TREE_CLOEXEC | +@@ -544,4 +542,4 @@ const struct libmnt_hookset hookset_idmap = + .deinit = hookset_deinit + }; + +-#endif /* HAVE_MOUNTFD_API && HAVE_LINUX_MOUNT_H */ ++#endif /* USE_LIBMOUNT_MOUNTFD_SUPPORT */ +diff --git a/libmount/src/hooks.c b/libmount/src/hooks.c +index 23eca4efdc4..5ae91edd7aa 100644 +--- a/libmount/src/hooks.c ++++ b/libmount/src/hooks.c +@@ -45,7 +45,7 @@ static const struct libmnt_hookset *const hooksets[] = + &hookset_mount, + #endif + &hookset_mount_legacy, +-#if defined(HAVE_MOUNTFD_API) && defined(HAVE_LINUX_MOUNT_H) ++#ifdef USE_LIBMOUNT_MOUNTFD_SUPPORT + &hookset_idmap, + #endif + &hookset_owner +diff --git a/libmount/src/version.c b/libmount/src/version.c +index 5ec0d490cde..30cb340abe7 100644 +--- a/libmount/src/version.c ++++ b/libmount/src/version.c +@@ -37,7 +37,7 @@ static const char *lib_features[] = { + #ifdef USE_LIBMOUNT_SUPPORT_NAMESPACES + "namespaces", + #endif +-#if defined(HAVE_MOUNTFD_API) && defined(HAVE_LINUX_MOUNT_H) ++#ifdef USE_LIBMOUNT_MOUNTFD_SUPPORT + "idmapping", + #endif + #ifdef USE_LIBMOUNT_MOUNTFD_SUPPORT +diff --git a/sys-utils/mount.8.adoc b/sys-utils/mount.8.adoc +index 8a6e09f1ab8..d71c5e1fc85 100644 +--- a/sys-utils/mount.8.adoc ++++ b/sys-utils/mount.8.adoc +@@ -826,6 +826,7 @@ Set _mountpoint_'s mode after mounting. + + *X-mount.idmap*=__id-type__:__id-mount__:__id-host__:__id-range__ [__id-type__:__id-mount__:__id-host__:__id-range__], *X-mount.idmap*=__file__:: + Use this option to create an idmapped mount. ++This feature requires the new file-descriptor-based mount API (available since Linux 5.2). + An idmapped mount allows to change ownership of all files located under a mount according to the ID-mapping associated with a user namespace. + The ownership change is tied to the lifetime and localized to the relevant mount. + The relevant ID-mapping can be specified in two ways: + diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/util-linux/files/util-linux-2.42.3-libmount-include.patch b/sdk_container/src/third_party/portage-stable/sys-apps/util-linux/files/util-linux-2.42.3-libmount-include.patch new file mode 100644 index 00000000000..74f959737c0 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-apps/util-linux/files/util-linux-2.42.3-libmount-include.patch @@ -0,0 +1,38 @@ +https://github.com/util-linux/util-linux/commit/a323dddbcd1ed05a10e7e870b3e1a48b4ed44a43 + +From a323dddbcd1ed05a10e7e870b3e1a48b4ed44a43 Mon Sep 17 00:00:00 2001 +From: Karel Zak +Date: Wed, 2 Sep 2026 13:32:27 +0200 +Subject: [PATCH] libmount: add missing fileutils.h include to hook_idmap.c + +The hook_idmap.c uses RESOLVE_NO_SYMLINKS (added by commit fb8e26535) +but does not include fileutils.h, which provides the fallback #define +for this constant. + +On Fedora (glibc 2.40+), this is masked because glibc's + transitively includes , which +defines RESOLVE_NO_SYMLINKS. On Ubuntu (and other distros with older +glibc), does not pull in openat2.h, so the build fails: + + hook_idmap.c:335:33: error: 'RESOLVE_NO_SYMLINKS' undeclared + +Fixes: fb8e26535 ("libmount: pin source path with openat2() for restricted users") +Signed-off-by: Karel Zak +(cherry picked from commit 7e2e010874b10b3aabdc3c4c844c9ffc46a4a374) +--- + libmount/src/hook_idmap.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/libmount/src/hook_idmap.c b/libmount/src/hook_idmap.c +index 77494e29810..2c697b17154 100644 +--- a/libmount/src/hook_idmap.c ++++ b/libmount/src/hook_idmap.c +@@ -23,6 +23,7 @@ + + #include "strutils.h" + #include "all-io.h" ++#include "fileutils.h" + #include "namespace.h" + + #include "mountP.h" + diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/util-linux/util-linux-2.42.3.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/util-linux/util-linux-2.42.3.ebuild new file mode 100644 index 00000000000..9663e608cc3 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-apps/util-linux/util-linux-2.42.3.ebuild @@ -0,0 +1,504 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{11..14} ) +TMPFILES_OPTIONAL=1 + +inherit toolchain-funcs libtool flag-o-matic bash-completion-r1 \ + pam python-r1 multilib-minimal multiprocessing systemd tmpfiles + +MY_PV="${PV/_/-}" +MY_P="${PN}-${MY_PV}" + +DESCRIPTION="Various useful Linux utilities" +HOMEPAGE="https://www.kernel.org/pub/linux/utils/util-linux/ https://github.com/util-linux/util-linux" + +if [[ ${PV} == 9999 ]] ; then + EGIT_REPO_URI="https://git.kernel.org/pub/scm/utils/util-linux/util-linux.git" + inherit autotools git-r3 +else + VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/karelzak.asc + inherit verify-sig + + if [[ ${PV} != *_rc* ]] ; then + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos" + fi + + SRC_URI="https://www.kernel.org/pub/linux/utils/util-linux/v${PV:0:4}/${MY_P}.tar.xz" + SRC_URI+=" verify-sig? ( https://www.kernel.org/pub/linux/utils/util-linux/v${PV:0:4}/${MY_P}.tar.sign )" +fi + +S="${WORKDIR}/${MY_P}" + +# GPL-2+ first per README.licensing ("default license"), then the rest +# are in order as listed in that file. +LICENSE="GPL-2+ GPL-1+ GPL-2 GPL-2+ GPL-3+ LGPL-2.1+ MIT BSD-2 BSD BSD-4 EUPL-1.2 public-domain" +SLOT="0" +IUSE="audit build caps +cramfs cryptsetup fdformat +hardlink kill +logger magic ncurses nls pam python +readline rtas selinux slang static-libs +su +suid systemd test tty-helpers udev unicode uuidd" + +# Most lib deps here are related to programs rather than our libs, +# so we rarely need to specify ${MULTILIB_USEDEP}. +RDEPEND=" + virtual/libcrypt:= + audit? ( >=sys-process/audit-2.6:= ) + caps? ( sys-libs/libcap-ng ) + cramfs? ( virtual/zlib:= ) + cryptsetup? ( >=sys-fs/cryptsetup-2.1.0 ) + hardlink? ( dev-libs/libpcre2:= ) + ncurses? ( + sys-libs/ncurses:=[unicode(+)?] + magic? ( sys-apps/file:0= ) + ) + nls? ( virtual/libintl[${MULTILIB_USEDEP}] ) + pam? ( sys-libs/pam ) + python? ( ${PYTHON_DEPS} ) + readline? ( sys-libs/readline:0= ) + rtas? ( sys-libs/librtas ) + selinux? ( >=sys-libs/libselinux-2.2.2-r4[${MULTILIB_USEDEP}] ) + slang? ( sys-libs/slang ) + !build? ( + systemd? ( sys-apps/systemd ) + udev? ( virtual/libudev:= ) + ) +" +BDEPEND=" + virtual/pkgconfig + nls? ( + app-text/po4a + sys-devel/gettext + ) + test? ( app-alternatives/bc ) +" +DEPEND=" + ${RDEPEND} + virtual/os-headers + acct-group/root +" +RDEPEND+=" + hardlink? ( !app-arch/hardlink ) + logger? ( !>=app-admin/sysklogd-2.0[logger] ) + kill? ( + !sys-apps/coreutils[kill] + !sys-process/procps[kill] + ) + su? ( + !=sys-apps/shadow-4.7-r2[su] + ) + uuidd? ( + acct-user/uuidd + selinux? ( sec-policy/selinux-uuidd ) + systemd? ( virtual/tmpfiles ) + ) + !net-wireless/rfkill +" + +if [[ ${PV} == 9999 ]] ; then + # Required for man-page generation + BDEPEND+=" dev-ruby/asciidoctor" +else + BDEPEND+=" verify-sig? ( >=sec-keys/openpgp-keys-karelzak-20230517 )" +fi + +REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} ) su? ( pam )" +RESTRICT="!test? ( test )" + +PATCHES=( + "${FILESDIR}"/${PN}-2.41.4-no-AF_ALG.patch + "${FILESDIR}"/${P}-libmount-include.patch + "${FILESDIR}"/${P}-CVE-2026-78408.patch + "${FILESDIR}"/${P}-fileutils-warnings.patch + "${FILESDIR}"/${P}-libmount-fixup.patch +) + +pkg_pretend() { + if use su && ! use suid ; then + elog "su will be installed as suid despite USE=-suid (bug #832092)" + elog "To use su without suid, see e.g. Portage's suidctl feature." + fi +} + +src_unpack() { + if [[ ${PV} == 9999 ]] ; then + git-r3_src_unpack + return + fi + + if use verify-sig; then + verify-sig_uncompress_verify_unpack "${DISTDIR}"/${MY_P}.tar.xz \ + "${DISTDIR}"/${MY_P}.tar.sign + else + default + fi +} + +src_prepare() { + default + + if use test ; then + # Known-failing tests + local known_failing_tests=( + # Subtest 'options-maximum-size-8192' fails + hardlink/options + + # Fails in sandbox + # re ioctl_ns: https://github.com/util-linux/util-linux/issues/2967 + lsns/ioctl_ns + lsfd/mkfds-inotify + lsfd/mkfds-symlink + lsfd/mkfds-rw-character-device + # Fails with network-sandbox at least in nspawn + lsfd/option-inet + utmp/last-ipv6 + + # Fails with permission errors in nspawn + fadvise/drop + fincore/count + + # Flaky + rename/subdir + + # Permission issues on /dev/random + lsfd/mkfds-eventpoll + lsfd/column-xmode + + # Hangs on some machines + script/replay + + # Fails for 32-bit time_t which some profiles have + misc/time_t + + # Permission issues with changing OOM score + choom/choom + + # MKFDS_PID is empty + lsfd/option-hyperlink + ) + + # debug prints confuse the tests which look for a diff + # in output + if has_version "=app-shells/bash-5.3_alpha*" ; then + known_failing_tests+=( + lsfd/column-ainodeclass + lsfd/mkfds-netlink-protocol + lsfd/column-type + lsfd/mkfds-eventfd + lsfd/mkfds-signalfd + lsfd/mkfds-mqueue + lsfd/mkfds-tcp6 + lsfd/mkfds-tcp + lsfd/filter-floating-point-nums + lsfd/mkfds-unix-stream-requiring-sockdiag + lsfd/mkfds-unix-dgram + lsfd/mkfds-directory + lsfd/mkfds-pty + lsfd/mkfds-pipe-no-fork + lsfd/mkfds-unix-stream + lsfd/mkfds-ro-regular-file + lsfd/mkfds-timerfd + lsfd/mkfds-udp + lsfd/mkfds-udp6 + ) + fi + + local known_failing_test + for known_failing_test in "${known_failing_tests[@]}" ; do + einfo "Removing known-failing test: ${known_failing_test}" + rm tests/ts/${known_failing_test} || die + done + fi + + if [[ ${PV} == 9999 ]] ; then + po/update-potfiles + eautoreconf + else + elibtoolize + fi +} + +python_configure() { + local myeconfargs=( + "${commonargs[@]}" + --disable-all-programs + --disable-bash-completion + --without-systemdsystemunitdir + --with-python + --enable-libblkid + --enable-libmount + --enable-pylibmount + ) + + mkdir "${BUILD_DIR}" || die + pushd "${BUILD_DIR}" >/dev/null || die + ECONF_SOURCE="${S}" econf "${myeconfargs[@]}" + popd >/dev/null || die +} + +multilib_src_configure() { + # The scanf test in a run-time test which fails while cross-compiling. + # Blindly assume a POSIX setup since we require libmount, and libmount + # itself fails when the scanf test fails. bug #531856 + tc-is-cross-compiler && export scanf_cv_alloc_modifier=ms + + # bug #485486 + export ac_cv_header_security_pam_misc_h=$(multilib_native_usex pam) + # bug #545042 + export ac_cv_header_security_pam_appl_h=$(multilib_native_usex pam) + + # Undo bad ncurses handling by upstream. Fall back to pkg-config. + # bug #601530 + export NCURSES6_CONFIG=false NCURSES5_CONFIG=false + export NCURSESW6_CONFIG=false NCURSESW5_CONFIG=false + + # Avoid automagic dependency on ppc* + export ac_cv_lib_rtas_rtas_get_sysparm=$(usex rtas) + + # configure args shared by python and non-python builds + local commonargs=( + --localstatedir="${EPREFIX}/var" + --runstatedir="${EPREFIX}/run" + --enable-fs-paths-extra="${EPREFIX}/usr/sbin:${EPREFIX}/bin:${EPREFIX}/usr/bin" + ) + + local myeconfargs=( + "${commonargs[@]}" + --with-bashcompletiondir="$(get_bashcompdir)" + --without-python + $(multilib_native_use_enable suid makeinstall-chown) + $(multilib_native_use_enable suid makeinstall-setuid) + $(multilib_native_use_with readline) + $(multilib_native_use_with slang) + $(multilib_native_usex ncurses "$(use_with magic libmagic)" '--without-libmagic') + $(multilib_native_usex ncurses "$(use_with unicode ncursesw)" '--without-ncursesw') + $(multilib_native_usex ncurses "$(use_with !unicode ncurses)" '--without-ncurses') + $(multilib_native_use_with audit) + $(tc-has-tls || echo --disable-tls) + $(use_enable nls) + $(use_enable nls poman) + $(use_enable unicode widechar) + $(use_enable static-libs static) + $(use_with ncurses tinfo) + $(use_with selinux) + $(multilib_native_use_enable uuidd) + + # TODO: Wire this up (bug #931118) + --without-econf + + # TODO: Wire this up (bug #931297) + # TODO: investigate build failure w/ 2.40.1_rc1 + --disable-liblastlog2 + --disable-pam-lastlog2 + ) + + if use build ; then + myeconfargs+=( + --without-systemd + --without-udev + ) + else + myeconfargs+=( + $(multilib_native_use_with systemd) + $(multilib_native_use_with udev) + ) + fi + + if multilib_is_native_abi ; then + myeconfargs+=( + --disable-chfn-chsh + --disable-login + --disable-newgrp + --disable-nologin + --disable-pylibmount + --disable-raw + --disable-vipw + --enable-agetty + --enable-bash-completion + --enable-line + --enable-partx + --enable-rename + --enable-rfkill + --enable-schedutils + --with-systemdsystemunitdir="$(systemd_get_systemunitdir)" + --with-tmpfilesdir="${EPREFIX}"/usr/lib/tmpfiles.d + $(use_enable caps setpriv) + $(use_enable cramfs) + $(use_enable fdformat) + $(use_enable hardlink) + $(use_enable kill) + $(use_enable logger) + $(use_enable ncurses pg) + $(use_enable su) + $(use_enable tty-helpers mesg) + $(use_enable tty-helpers wall) + $(use_enable tty-helpers write) + $(use_with cryptsetup) + ) + if [[ ${PV} == *9999 ]] ; then + myeconfargs+=( --enable-asciidoc ) + else + # Upstream is shipping pre-generated man-pages for releases + myeconfargs+=( --disable-asciidoc ) + fi + else + myeconfargs+=( + --disable-all-programs + --disable-asciidoc + --disable-bash-completion + --without-systemdsystemunitdir + --disable-poman + + # build libraries + --enable-libuuid + --enable-libblkid + --enable-libsmartcols + --enable-libfdisk + --enable-libmount + + # Support uuidd for non-native libuuid + $(use_enable uuidd libuuid-force-uuidd) + ) + fi + + if use kernel_Hurd ; then + # Disable Linux-specific features + myeconfargs+=( + --disable-partx + --disable-rfkill + --disable-schedutils + --disable-fsck + ) + + # This is explicitly needed for some reason? TODO + myeconfargs+=( + --enable-agetty + ) + fi + + # https://savannah.gnu.org/support/?111394 + # This can be removed when we patch dev-build/autoconf, though + # packages w/o eautoreconf will still need it. + [[ ${enable_year2038} == "no" ]] && myeconfargs+=( --disable-year2038 ) + + ECONF_SOURCE="${S}" econf "${myeconfargs[@]}" + + if multilib_is_native_abi && use python ; then + python_foreach_impl python_configure + fi +} + +src_configure() { + append-lfs-flags + + # Workaround for bug #961040 (gcc PR120006) + if tc-is-gcc && [[ $(gcc-major-version) == 15 && $(gcc-minor-version) -lt 2 ]] ; then + append-flags -fno-ipa-pta + fi + + multilib-minimal_src_configure +} + +python_compile() { + pushd "${BUILD_DIR}" >/dev/null || die + emake all + popd >/dev/null || die +} + +multilib_src_compile() { + emake all + + if multilib_is_native_abi && use python ; then + python_foreach_impl python_compile + fi +} + +python_test() { + pushd "${BUILD_DIR}" >/dev/null || die + emake check TS_OPTS="--parallel=$(makeopts_jobs) --nonroot" + popd >/dev/null || die +} + +multilib_src_test() { + emake check TS_OPTS="--parallel=$(makeopts_jobs) --nonroot" + if multilib_is_native_abi && use python ; then + python_foreach_impl python_test + fi +} + +python_install() { + pushd "${BUILD_DIR}" >/dev/null || die + emake DESTDIR="${D}" install + python_optimize + popd >/dev/null || die +} + +multilib_src_install() { + if multilib_is_native_abi && use python ; then + python_foreach_impl python_install + fi + + # This needs to be called AFTER python_install call, bug #689190 + # XXX: -j1 as temporary workaround for bug #931301 + emake DESTDIR="${D}" install -j1 +} + +multilib_src_install_all() { + dodoc AUTHORS NEWS README* Documentation/{TODO,*.txt,releases/*} + + dosym hexdump /usr/bin/hd + newman - hd.1 <<< '.so man1/hexdump.1' + + # e2fsprogs-libs didn't install .la files, and .pc work fine + find "${ED}" -name "*.la" -delete || die + + if use pam ; then + # See https://github.com/util-linux/util-linux/blob/master/Documentation/PAM-configuration.txt + newpamd "${FILESDIR}/runuser.pamd" runuser + newpamd "${FILESDIR}/runuser-l.pamd" runuser-l + + newpamd "${FILESDIR}/su-l.pamd" su-l + fi + + if use su && ! use suid ; then + # Always force suid su, even when USE=-suid, as su is useless + # for the overwhelming-majority case without suid. + # Users who wish to truly have a no-suid su can strip it out + # via e.g. Portage's suidctl or some other hook. + # See bug #832092 + fperms u+s /bin/su + fi + + if use uuidd; then + newinitd "${FILESDIR}/uuidd.initd" uuidd + fi + + # Note: + # Bash completion for "runuser" command is provided by same file which + # would also provide bash completion for "su" command. However, we don't + # use "su" command from this package. + # This triggers a known QA warning which we ignore for now to magically + # keep bash completion for "su" command which shadow package does not + # provide. + + local ver=$(tools/git-version-gen .tarballversion) + local major=$(ver_cut 1 ${ver}) + local minor=$(ver_cut 2 ${ver}) + local release=$(ver_cut 3 ${ver}) + export QA_PKGCONFIG_VERSION="${major}.${minor}.${release:-0}" +} + +pkg_postinst() { + if ! use tty-helpers ; then + elog "The mesg/wall/write tools have been disabled due to USE=-tty-helpers." + fi + + if [[ -z ${REPLACING_VERSIONS} ]] ; then + elog "The agetty util now clears the terminal by default. You" + elog "might want to add --noclear to your /etc/inittab lines." + fi + + if use systemd && use uuidd; then + tmpfiles_process uuidd-tmpfiles.conf + fi +} diff --git a/sdk_container/src/third_party/portage-stable/sys-boot/grub/Manifest b/sdk_container/src/third_party/portage-stable/sys-boot/grub/Manifest index 7b096489df0..b496cfa9b96 100644 --- a/sdk_container/src/third_party/portage-stable/sys-boot/grub/Manifest +++ b/sdk_container/src/third_party/portage-stable/sys-boot/grub/Manifest @@ -6,6 +6,10 @@ DIST grub-2.12.tar.xz.sig 566 BLAKE2B 9b77fe53041b99f1196743aa6d9fc9c727b17c6512 DIST grub-2.14-patches.tar.xz 10700 BLAKE2B 6a8850da59a56427c4e8159332e89b18c9c4f49fe95ecf4c7d8e9c8c905fea9d40a9c294e24cc4aa32f12175426f7e95fac16b16345092f8b9848c7f34b6a19e SHA512 eff9a7007f2230d642763ee8e9005da4041fffd9eb0527b909e871bf7681747f9e71ab5459b54f7ce5b9bb64a6d0659beb6fd0fb172488f62fe4148d4e73a86e DIST grub-2.14.tar.xz 7725668 BLAKE2B 724bb430d8824bec39e6a025cf354a780b79260684c7c4e3d28beb08c8bee10d082a089fcb799f8f5eb6e83abcf8675fb7c5f5ddf443c5c0e61d6f180ee341af SHA512 5008e3b70072798d2b34301219fe174cc6bcfead40a9ab25fe32f30c62a392ffb7bf2eb629d481f4a6c19c2925324af3f08d7043e62623e746be2d8b3cbd1182 DIST grub-2.14.tar.xz.sig 566 BLAKE2B a26d44082a94b95efd13738a47dc37c33142f1d486b1643100c5e61f280464513679407c13ad3d362caf83ca63dc47ad0249a4291660dbc5aa47b739502cc6b5 SHA512 3087cc4c9abd4c16e5d57f3f9fcea83af471c1a5950d487ecb93908feac537df8720bc83854328891c46f26b202a16eadeec8d1ab343c6fe269986b6f9dd2de8 +DIST grub-2.16~rc2.tar.xz 7853600 BLAKE2B 66b238ec771274d02905b0bbe8720e8dc8d81b39fe7598aad36391008d210ff774e83c1d8d6139e117ff5d1cfc1e77d983d27f46db0d4c0babc63cf5b456809f SHA512 ed7187c1008218373394fb51417bea4f3e5a68a62f5708ea200bee47a1c3734d30683c7c651c5c7649b8b0f06852b7dc663c0ed4109f9ed537585584dc3aa7ff +DIST grub-2.16~rc2.tar.xz.sig 119 BLAKE2B 2039a18dc01ba23d5b2420c659ff3b1d9bc1a781bf6381c1113a42e205586374c9b347942ca3b5d5f715d93d9ea7fed1ae2f3964aaebe89bd491f15707b0849d SHA512 e2ca951da47a30ecea40c957618c6a6e60daf0d4220e3479290c9d3e16a1e0b76b2bb35ea40149e4a5b5ed7dffc0c0d3f0b522d4f801cb3fc94346203d0a3297 DIST unifont-15.0.06.pcf.gz 1358322 BLAKE2B 81811e3de390ca35d1a2dc1f1dee73464e97f44907ba522c218ba9c5e39ca3c9d767552780a257a97c156eb623c17786d9c0d2b67786d61df5ca33a1e10db7ca SHA512 0a28a406629c604f5cbf51f501528239a7ed50d19f93ea505bc5bdc72639e4b926b03f4b8782a5733041f7cdb4aebb9948ac7cfd5a8ad9a0fe309944e595517b DIST unifont-17.0.02.pcf.gz 1357145 BLAKE2B 6043055b10273930454b95bea847f4cd9cbceb7fa5f4b903a92d1e05093ed8d36b0be6cdcc96089d910b3af9b826d8bc0491070d7af568801e829fb69238d787 SHA512 8c325b8f1b872ced2a8ceffa89ce81858c4c768562711610529ae0be488dc335e333f8674cad78fe9550de222247816c435b0079bc959e6e1caebf4c7ecd2faf DIST unifont-17.0.02.pcf.gz.sig 566 BLAKE2B b20c3b498862b5f652bea95ca240a279674de583b2f03dc0b9ee0bac46da2513d54ca8fdcacc222adf5360da6fe919060bf41d977335d7c11a1bf9407c84c99d SHA512 f31792427adf73c0cf16f890faa579fda5315cbc0c9ac17b4d19555255f49dbf89f6333012ce99fec9819252fd7b81e07a65a2cd0d3aa54a54ded8d7c50ac186 +DIST unifont-17.0.05.pcf.gz 1356803 BLAKE2B 5c0cea87df918d2e737f2279fc4795f5a35a5bcfff71ff5a9cc48aacf4e90d7651e19ab1d37824a2b6a7659757c4ca607bc33dd3bcc301f2942d48160db8b009 SHA512 9a3f73f5769850293e9fb0b6cf533563005be4f13bd16fac7fe15efed4b1f39952f9d35d251a760c5685008f010106534918d16d34d533bd6c84f267e6722b6a +DIST unifont-17.0.05.pcf.gz.sig 566 BLAKE2B 75c7e81fbc17f268dd51ade4a6af37b089a53750f9551a5e1d6fa5b0285af34e98b91e322484ca89cb819f363ad1ed912ca27fbbf65417074c8e668a4d78bb3a SHA512 1a2f36e5f1a39f470b6cd43c695e7b52f1d22024164aa798c40643e280680d6622d837d6256899e69f58525149e0701f3d4a902b5760c10bb63c32b78326b56c diff --git a/sdk_container/src/third_party/portage-stable/sys-boot/grub/grub-2.16_rc2.ebuild b/sdk_container/src/third_party/portage-stable/sys-boot/grub/grub-2.16_rc2.ebuild new file mode 100644 index 00000000000..8d99c37ff6a --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-boot/grub/grub-2.16_rc2.ebuild @@ -0,0 +1,449 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# This ebuild uses 3 special global variables: +# GRUB_BOOTSTRAP: Invoke bootstrap (gnulib) +# GRUB_AUTOGEN: Invoke autogen.sh +# GRUB_AUTORECONF: Inherit autotools and invoke eautoreconf +# +# When applying patches: +# If gnulib is updated, set GRUB_BOOTSTRAP=1 +# If gentpl.py or *.def is updated, set GRUB_AUTOGEN=1 +# If gnulib, gentpl.py, *.def, or any autotools files are updated, set GRUB_AUTORECONF=1 +# +# If any of the above applies to a user patch, the user should set the +# corresponding variable in make.conf or the environment. + +if [[ ${PV} == 9999 ]]; then + GRUB_AUTORECONF=1 + GRUB_BOOTSTRAP=1 +fi + +PYTHON_COMPAT=( python3_{11..15} ) +WANT_LIBTOOL=none + +if [[ -n ${GRUB_AUTORECONF} ]]; then + inherit autotools +fi + +inherit eapi9-ver flag-o-matic multibuild optfeature +inherit python-any-r1 secureboot toolchain-funcs verify-sig + +DESCRIPTION="GNU GRUB boot loader" +HOMEPAGE="https://gnu-grub.freedesktop.org/" + +MY_P=${P} +if [[ ${PV} == 9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://gitlab.freedesktop.org/gnu-grub/grub.git" +else + BASE="https://gitlab.freedesktop.org/api/v4/projects/26558/packages/generic/source-assets" + # The quote style is to work with <=bash-4.2 and >=bash-4.3 #503860 + MY_P=${P/_/'~'} + TAG=${P/_/-} + SRC_URI=" + ${BASE}/${TAG}/${MY_P}.tar.xz + verify-sig? ( ${BASE}/${TAG}/${MY_P}.tar.xz.sig ) + " + S=${WORKDIR}/${MY_P} + BDEPEND=" + verify-sig? ( + sec-keys/openpgp-keys-lsandova + sec-keys/openpgp-keys-unifont + ) + " + KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86" +fi + +DEJAVU_VER=2.37 +DEJAVU=dejavu-fonts-ttf-${DEJAVU_VER} +UNIFONT=unifont-17.0.05 +SRC_URI+=" + fonts? ( + mirror://gnu/unifont/${UNIFONT}/${UNIFONT}.pcf.gz + verify-sig? ( mirror://gnu/unifont/${UNIFONT}/${UNIFONT}.pcf.gz.sig ) + ) + themes? ( https://downloads.sourceforge.net/project/dejavu/dejavu/${DEJAVU_VER}/${DEJAVU}.tar.bz2 ) +" + +# Includes licenses for dejavu and unifont +LICENSE="GPL-3+ BSD MIT fonts? ( GPL-2-with-font-exception ) themes? ( CC-BY-SA-3.0 BitstreamVera )" +SLOT="2/${PVR}" +IUSE="+branding +device-mapper doc efiemu +fonts mount nls protect sdl test +themes truetype libzfs" + +GRUB_ALL_PLATFORMS=( coreboot efi-32 efi-64 emu ieee1275 loongson multiboot + qemu qemu-mips pc uboot xen xen-32 xen-pvh ) +IUSE+=" ${GRUB_ALL_PLATFORMS[@]/#/grub_platforms_}" + +REQUIRED_USE=" + grub_platforms_coreboot? ( fonts ) + grub_platforms_qemu? ( fonts ) + grub_platforms_ieee1275? ( fonts ) + grub_platforms_loongson? ( fonts ) +" + +BDEPEND+=" + ${PYTHON_DEPS} + >=sys-devel/flex-2.5.35 + sys-devel/bison + sys-apps/help2man + sys-apps/texinfo + fonts? ( + media-libs/freetype:2 + virtual/pkgconfig + ) + test? ( + app-admin/genromfs + app-alternatives/cpio + app-arch/lzop + app-emulation/qemu + dev-libs/libisoburn + sys-apps/miscfiles + sys-block/parted + sys-fs/squashfs-tools + ) + themes? ( + media-libs/freetype:2 + virtual/pkgconfig + ) + truetype? ( virtual/pkgconfig ) +" +DEPEND=" + app-arch/xz-utils + >=sys-libs/ncurses-5.2-r5:0= + grub_platforms_emu? ( + sdl? ( media-libs/libsdl2 ) + ) + device-mapper? ( >=sys-fs/lvm2-2.02.45 ) + libzfs? ( sys-fs/zfs:= ) + mount? ( sys-fs/fuse:3= ) + truetype? ( media-libs/freetype:2= ) + ppc? ( >=sys-apps/ibm-powerpc-utils-1.3.5 ) + ppc64? ( >=sys-apps/ibm-powerpc-utils-1.3.5 ) + protect? ( dev-libs/libtasn1:= ) +" +RDEPEND="${DEPEND} + branding? ( themes? ( >=sys-boot/grub-themes-gentoo-1.0-r1 ) ) + kernel_linux? ( + grub_platforms_efi-32? ( sys-boot/efibootmgr ) + grub_platforms_efi-64? ( sys-boot/efibootmgr ) + ) + !sys-boot/grub:0 + nls? ( sys-devel/gettext ) +" + +RESTRICT="!test? ( test ) test? ( userpriv )" + +QA_EXECSTACK="usr/bin/grub-emu* usr/lib/grub/*" +QA_PRESTRIPPED="usr/lib/grub/.*" +QA_MULTILIB_PATHS="usr/lib/grub/.*" +QA_WX_LOAD="usr/lib/grub/*" + +pkg_setup() { + # skip python-any-r1_pkg_setup: python_setup is called in src_prepare + secureboot_pkg_setup +} + +src_unpack() { + if [[ ${PV} == 9999 ]]; then + git-r3_src_unpack + pushd "${P}" >/dev/null || die + local GNULIB_URI="https://git.savannah.gnu.org/git/gnulib.git" + local GNULIB_REVISION=$(source bootstrap.conf >/dev/null; echo "${GNULIB_REVISION}") + git-r3_fetch "${GNULIB_URI}" "${GNULIB_REVISION}" + git-r3_checkout "${GNULIB_URI}" gnulib + if use nls; then + sh linguas.sh || die + fi + popd >/dev/null || die + elif use verify-sig; then + verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.sig} \ + "${BROOT}"/usr/share/openpgp-keys/lsandova.asc + fi + if use fonts && use verify-sig; then + verify-sig_verify_detached "${DISTDIR}"/${UNIFONT}.pcf.gz{,.sig} \ + "${BROOT}"/usr/share/openpgp-keys/unifont.asc + fi + default +} + +src_prepare() { + default + + python_setup + + if [[ -n ${GRUB_BOOTSTRAP} ]]; then + eautopoint --force + AUTOPOINT=: AUTORECONF=: ./bootstrap --skip-po || die + elif [[ -n ${GRUB_AUTOGEN} ]]; then + FROM_BOOTSTRAP=1 ./autogen.sh || die + fi + + if [[ -n ${GRUB_AUTORECONF} ]]; then + eautoreconf + fi +} + +grub_do() { + multibuild_foreach_variant run_in_build_dir "$@" +} + +grub_do_once() { + multibuild_for_best_variant run_in_build_dir "$@" +} + +grub_configure() { + local platform + + case ${MULTIBUILD_VARIANT} in + efi*) platform=efi ;; + xen-pvh) platform=xen_pvh ;; + xen*) platform=xen ;; + guessed) ;; + *) platform=${MULTIBUILD_VARIANT} ;; + esac + + case ${MULTIBUILD_VARIANT} in + *-32) + if [[ ${CTARGET:-${CHOST}} == x86_64* ]]; then + local CTARGET=i386 + fi ;; + *-64) + if [[ ${CTARGET:-${CHOST}} == i?86* ]]; then + local CTARGET=x86_64 + local -x TARGET_CFLAGS="-Os -march=x86-64 ${TARGET_CFLAGS}" + local -x TARGET_CPPFLAGS="-march=x86-64 ${TARGET_CPPFLAGS}" + fi ;; + esac + + local myeconfargs=( + --disable-werror + --program-prefix= + --libdir="${EPREFIX}"/usr/lib + $(use_enable device-mapper) + $(use_enable mount grub-mount) + $(use_enable nls) + $(use_enable protect grub-protect) + $(use_enable themes grub-themes) + $(use_enable truetype grub-mkfont) + $(use_enable libzfs) + --enable-grub-emu-sdl=no + $(use_enable sdl grub-emu-sdl2) + ${platform:+--with-platform=}${platform} + + # Let configure detect this where supported + $(usex efiemu '' '--disable-efiemu') + ) + + if use fonts; then + cp "${WORKDIR}/${UNIFONT}.pcf" unifont.pcf || die + fi + + if use themes; then + cp "${WORKDIR}/${DEJAVU}/ttf/DejaVuSans.ttf" DejaVuSans.ttf || die + fi + + local ECONF_SOURCE="${S}" + econf "${myeconfargs[@]}" +} + +src_configure() { + # Bug 508758. + replace-flags -O3 -O2 + + # Workaround for bug 829165. + filter-ldflags -pie + + # We don't want to leak flags onto boot code. + export HOST_CCASFLAGS=${CCASFLAGS} + export HOST_CFLAGS=${CFLAGS} + export HOST_CPPFLAGS=${CPPFLAGS} + export HOST_LDFLAGS=${LDFLAGS} + unset CCASFLAGS CFLAGS CPPFLAGS LDFLAGS + + tc-ld-disable-gold #439082 #466536 #526348 + export TARGET_LDFLAGS="${TARGET_LDFLAGS} ${LDFLAGS}" + unset LDFLAGS + + tc-export CC NM OBJCOPY RANLIB STRIP + tc-export BUILD_CC BUILD_PKG_CONFIG + + # Force configure to use flex & bison, bug 887211. + export LEX=flex + unset YACC + + local sedargs=( + -e "s/@PV@/${PV}/" + -e "s/@PVR@/${PVR}/" + -e "s/@GEN_GRUB@/5/" + -e "s/@GEN_GENTOO@/1/" + ) + sed "${sedargs[@]}" "${FILESDIR}/sbat.csv.in" > "${WORKDIR}/sbat.csv" || die + + MULTIBUILD_VARIANTS=() + local p + for p in "${GRUB_ALL_PLATFORMS[@]}"; do + use "grub_platforms_${p}" && MULTIBUILD_VARIANTS+=( "${p}" ) + done + [[ ${#MULTIBUILD_VARIANTS[@]} -eq 0 ]] && MULTIBUILD_VARIANTS=( guessed ) + grub_do grub_configure +} + +src_compile() { + # Sandbox bug 404013. + if use libzfs; then + addpredict /etc/dfs + addpredict /dev/zfs + fi + + grub_do emake + use doc && grub_do_once emake -C docs html +} + +src_test() { + # The qemu dependency is a bit complex. + # You will need to adjust QEMU_SOFTMMU_TARGETS to match the cpu/platform. + local SANDBOX_WRITE=${SANDBOX_WRITE} + addwrite /dev + grub_do emake -j1 check +} + +grub_mkstandalone_secureboot() { + use secureboot || return + + if tc-is-cross-compiler; then + ewarn "USE=secureboot is not supported when cross-compiling." + ewarn "No standalone EFI executable will be built." + return 1 + fi + + local standalone_targets + + case ${CTARGET:-${CHOST}} in + i?86* | x86_64*) + use grub_platforms_efi-32 && standalone_targets+=( i386-efi ) + use grub_platforms_efi-64 && standalone_targets+=( x86_64-efi ) + ;; + arm* | aarch64*) + use grub_platforms_efi-32 && standalone_targets+=( arm-efi ) + use grub_platforms_efi-64 && standalone_targets+=( arm64-efi ) + ;; + riscv*) + use grub_platforms_efi-32 && standalone_targets+=( riscv32-efi ) + use grub_platforms_efi-64 && standalone_targets+=( riscv64-efi ) + ;; + ia64*) + use grub_platforms_efi-64 && standalone_targets+=( ia64-efi ) + ;; + loongarch64*) + use grub_platforms_efi-64 && standalone_targets+=( loongarch64-efi ) + ;; + esac + + if [[ ${#standalone_targets[@]} -eq 0 ]]; then + ewarn "USE=secureboot is enabled, but no suitable EFI target in GRUB_PLATFORMS." + ewarn "No standalone EFI executable will be built." + return 1 + fi + + local target mkstandalone_args + + # grub-mkstandalone embeds a config file, make this config file chainload + # a config file in the same directory grub is installed in. This requires + # pre-loading the part_gpt and part_msdos modules. + echo 'configfile ${cmdpath}/grub.cfg' > "${T}/grub.cfg" || die + for target in "${standalone_targets[@]}"; do + ebegin "Building standalone EFI executable for ${target}" + mkstandalone_args=( + --verbose + --directory="${ED}/usr/lib/grub/${target}" + --locale-directory="${ED}/usr/share/locale" + --format="${target}" + --modules="part_gpt part_msdos" + --sbat="${ED}/usr/share/grub/sbat.csv" + --output="${ED}/usr/lib/grub/grub-${target%-efi}.efi" + "boot/grub/grub.cfg=${T}/grub.cfg" + ) + + "${ED}/usr/bin/grub-mkstandalone" "${mkstandalone_args[@]}" + eend ${?} || die "grub-mkstandalone failed to build EFI executable" + done + + secureboot_auto_sign +} + +src_install() { + grub_do emake install DESTDIR="${D}" + use doc && grub_do_once emake -C docs install-html DESTDIR="${D}" + + einstalldocs + + insinto /etc/default + newins "${FILESDIR}"/grub.default-4 grub + + if use branding && use themes ; then + sed -i -e 's:^#GRUB_THEME=.*$:GRUB_THEME="/boot/grub/themes/gentoo_glass/theme.txt":g' \ + "${ED}/etc/default/grub" || die + fi + + # https://bugs.gentoo.org/231935 + dostrip -x /usr/lib/grub + + insinto /usr/share/grub + doins "${WORKDIR}/sbat.csv" + + if use elibc_musl; then + # https://bugs.gentoo.org/900348 + QA_CONFIG_IMPL_DECL_SKIP=( re_{compile_pattern,match,search,set_syntax} ) + fi + + grub_mkstandalone_secureboot +} + +pkg_postinst() { + elog "For information on how to configure GRUB2 please refer to the guide:" + elog " https://wiki.gentoo.org/wiki/GRUB2_Quick_Start" + + if [[ -z ${REPLACING_VERSIONS} ]]; then + elog + optfeature "detecting other operating systems (grub-mkconfig)" sys-boot/os-prober + optfeature "creating rescue media (grub-mkrescue)" dev-libs/libisoburn sys-fs/mtools + optfeature "enabling RAID device detection" sys-fs/mdadm + optfeature "automatically updating GRUB's configuration on each kernel installation" "sys-kernel/installkernel[grub]" + elif ver_replacing -lt ${PVR}; then + ewarn + ewarn "Re-run grub-install to update installed boot code!" + ewarn "Re-run grub-mkconfig to update grub.cfg!" + ewarn + fi + + if has_version sys-boot/os-prober; then + ewarn "Due to security concerns, os-prober is disabled by default." + ewarn "Set GRUB_DISABLE_OS_PROBER=false in /etc/default/grub to enable it." + fi + + if grep -q GRUB_LINUX_KERNEL_GLOBS "${EROOT}"/etc/default/grub; then + ewarn "Support for GRUB_LINUX_KERNEL_GLOBS has been dropped." + ewarn "Ensure that your kernels are named appropriately or edit" + ewarn "/etc/grub.d/10_linux to compensate." + fi + + if use secureboot; then + elog + elog "The signed standalone grub EFI executable(s) are available in:" + elog " /usr/lib/grub/grub-.efi(.signed)" + elog "These EFI executables should be copied to the usual location at:" + elog " ESP/EFI/Gentoo/grub.efi" + elog "Note that 'grub-install' does not install these images." + elog + elog "These standalone grub executables read the grub config file from" + elog "the grub.cfg in the same directory instead of the default" + elog "/boot/grub/grub.cfg. When sys-kernel/installkernel[grub] is used," + elog "the location of the grub.cfg may be overridden by setting the" + elog "GRUB_CFG environment variable:" + elog " GRUB_CFG=ESP/EFI/Gentoo/grub.cfg" + elog + fi +} diff --git a/sdk_container/src/third_party/portage-stable/sys-boot/grub/grub-9999.ebuild b/sdk_container/src/third_party/portage-stable/sys-boot/grub/grub-9999.ebuild index 9e2f2153af9..8d99c37ff6a 100644 --- a/sdk_container/src/third_party/portage-stable/sys-boot/grub/grub-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-boot/grub/grub-9999.ebuild @@ -21,14 +21,14 @@ if [[ ${PV} == 9999 ]]; then GRUB_BOOTSTRAP=1 fi -PYTHON_COMPAT=( python3_{11..14} ) +PYTHON_COMPAT=( python3_{11..15} ) WANT_LIBTOOL=none if [[ -n ${GRUB_AUTORECONF} ]]; then inherit autotools fi -inherit bash-completion-r1 eapi9-ver flag-o-matic multibuild optfeature +inherit eapi9-ver flag-o-matic multibuild optfeature inherit python-any-r1 secureboot toolchain-funcs verify-sig DESCRIPTION="GNU GRUB boot loader" @@ -39,24 +39,18 @@ if [[ ${PV} == 9999 ]]; then inherit git-r3 EGIT_REPO_URI="https://gitlab.freedesktop.org/gnu-grub/grub.git" else - if [[ ${PV} == *_alpha* || ${PV} == *_beta* || ${PV} == *_rc* ]]; then - # The quote style is to work with <=bash-4.2 and >=bash-4.3 #503860 - MY_P=${P/_/'~'} - SRC_URI=" - https://alpha.gnu.org/gnu/${PN}/${MY_P}.tar.xz - verify-sig? ( https://alpha.gnu.org/gnu/${PN}/${MY_P}.tar.xz.sig ) - " - S=${WORKDIR}/${MY_P} - else - SRC_URI=" - mirror://gnu/${PN}/${P}.tar.xz - verify-sig? ( mirror://gnu/${PN}/${P}.tar.xz.sig ) - " - S=${WORKDIR}/${P%_*} - fi + BASE="https://gitlab.freedesktop.org/api/v4/projects/26558/packages/generic/source-assets" + # The quote style is to work with <=bash-4.2 and >=bash-4.3 #503860 + MY_P=${P/_/'~'} + TAG=${P/_/-} + SRC_URI=" + ${BASE}/${TAG}/${MY_P}.tar.xz + verify-sig? ( ${BASE}/${TAG}/${MY_P}.tar.xz.sig ) + " + S=${WORKDIR}/${MY_P} BDEPEND=" verify-sig? ( - sec-keys/openpgp-keys-grub + sec-keys/openpgp-keys-lsandova sec-keys/openpgp-keys-unifont ) " @@ -65,7 +59,7 @@ fi DEJAVU_VER=2.37 DEJAVU=dejavu-fonts-ttf-${DEJAVU_VER} -UNIFONT=unifont-17.0.02 +UNIFONT=unifont-17.0.05 SRC_URI+=" fonts? ( mirror://gnu/unifont/${UNIFONT}/${UNIFONT}.pcf.gz @@ -166,7 +160,7 @@ src_unpack() { popd >/dev/null || die elif use verify-sig; then verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.sig} \ - "${BROOT}"/usr/share/openpgp-keys/grub.asc + "${BROOT}"/usr/share/openpgp-keys/lsandova.asc fi if use fonts && use verify-sig; then verify-sig_verify_detached "${DISTDIR}"/${UNIFONT}.pcf.gz{,.sig} \ @@ -381,7 +375,7 @@ grub_mkstandalone_secureboot() { } src_install() { - grub_do emake install DESTDIR="${D}" bashcompletiondir="$(get_bashcompdir)" + grub_do emake install DESTDIR="${D}" use doc && grub_do_once emake -C docs install-html DESTDIR="${D}" einstalldocs diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/Manifest b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/Manifest index b60c06f6643..c042b547f09 100644 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/Manifest +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/Manifest @@ -11,6 +11,8 @@ DIST gcc-13-20260603.tar.xz 84612576 BLAKE2B 6b062015b61508359b6c29d1ccd1b532240 DIST gcc-13-20260805.tar.xz 84623768 BLAKE2B c1a782650b46f84b4f24a53b941eb2a4c9e75b4c6cb2ff19b122de7409b1adb2b084ef03395e2deb7b97d18f41748be1af90bb96b02afa733aa0f467349d28d1 SHA512 0d33a88464b861554034d3dda2d224b14d2c44f93769c6bf283413b772e5015dc1ff49a43ffb3bbcccf0dd4b3aa5b39cdfad97aa23ebc0d99f2418fbfc31266b DIST gcc-13-20260812.tar.xz 84623116 BLAKE2B 770fa8f44382f372f832d7abb786bbf5e5ff5597dfe611f33828cbab8c58fdef17177dfe5276f0e4bfe567254500b166ea9b13754e2fe1a2fcd9ef35ed200570 SHA512 a5be79cbbf53b6516f3e4174f18bfa14415a77fa5fb826c1ba58e1f6995d8498fe18faec7afff484dbf28f3487b751bcf9ef245d1304e4e141df17cc90fdec05 DIST gcc-13-20260819.tar.xz 84617312 BLAKE2B 43ce5c2bc12cf5e72e6bf2d1ed167b407c69f2bd1c357f4a19e7c76d3cdd1aa5f29f11819486533fef0a754d52c7d77d530b15cac188f3862cec32536572a844 SHA512 00553bc019bf30d94d79d79fe2611ad8b7049ab3d2fde03cc41020e2b22a0e243c35b19e070ada6d6b1d687019debe7d1547e339cf5eec4d2589d640743a7428 +DIST gcc-13-20260826.tar.xz 84625896 BLAKE2B 87b352448a27fb69bf1ec344059398d81f853088bfad0cbf0659c378b4a25a623870eb4f64084f65b9cedc7b3e378b3c87732a686a04428c4fe417db5db69642 SHA512 58c68d84cac16cfc068bf4f9e13cbacef1dfc70bd8b50a3d9f7397894f06cebe8e23681af2b8a8f1b26c81652163f0d3b4a39647cd9ae122b49dc83523ce593b +DIST gcc-13-20260902.tar.xz 84623964 BLAKE2B 84bc20d96f9a7cfa8bd4769cca7ceadee7c5bb82349bc2f626810c5c8be63fb39d8b62a5dfa8db8fad97b8a4a0810f8616464ef305536a1dd908a43e38ebddc0 SHA512 3713f502e755dcea0340d24ae9c7da4055aefd85a8f6542d027b33e572c143b55b163f3613b71f4a4a37dca3bff3dda451ae487f9fc13eda6cdc768ac2b22dfd DIST gcc-13.2.0-musl-patches-2.tar.xz 5292 BLAKE2B c057d6574d03c05854edaa9f3fd40e9149662b04f3ac7a7db3eb078d73a7b535726d1bf52e5b12736dedb2f9898ad731f2e48a6421fcfbf7b90f929dee072fcb SHA512 a691da0c87c443a5e9d23731f4005f27871c5b12bc9102873ffa24d374aa7b9fbd187c4f5635d23fa9ffb17e351e76173c2d3fdf40646e355c4cb314b538de69 DIST gcc-13.2.0-patches-3.tar.xz 30956 BLAKE2B 29ce043b46645640ca1e983397af3e158588ad87575f0bc59451ea4a7dd5e3bb5b190ed031de6a22cd790d423ba111e95d222187dd09985dceb12db9f0a2d907 SHA512 4ffecae7be320124ad0c4e71e39e142b7aa8db0e70b5f486f491d7a33ea31efc6464c6abeea77df02a8bd5cf81f08225d625c8af5c27f9afa32c0d7d989f7a3c DIST gcc-13.2.0.tar.xz 87858592 BLAKE2B 0034b29d3d6cc05821f0c4253ce077805943aff7b370729dd203bda57d89c107edd657eeddc2fb1e69ea15c7b0323b961f46516c7f4af89a3ccf7fea84701be2 SHA512 d99e4826a70db04504467e349e9fbaedaa5870766cda7c5cab50cdebedc4be755ebca5b789e1232a34a20be1a0b60097de9280efe47bdb71c73251e30b0862a2 @@ -21,6 +23,8 @@ DIST gcc-14-20260716.tar.xz 88509636 BLAKE2B 1e31c1c969a3ee7184d6e466dc9bf627e67 DIST gcc-14-20260806.tar.xz 88523444 BLAKE2B d8edd13b6793f89f6f8e36c038cf4ba15b9ab9155d5891e97e8e8ee1753cff26240625f225f7c28f0a5bab3f33c16a6b10203cb6ad0ecf45d47dad299b4eceab SHA512 1476818de65a47b6fd643c3d742db7c57762df468e78ecd85dc1b37b90e736e98a389dfefc45f46adb96227b1fa1197d49e01a0bf926f5e3b29f1c67c61b5c52 DIST gcc-14-20260813.tar.xz 88525820 BLAKE2B bf960bc625ceecfd0374427f1f2ebad800495380df7aed7c76eed55049be9ff84e1398a17bac3d235e707193eda3bc60f6f4f2718f154757c20ad77edd8892ae SHA512 7b1009064362a493df9839d4b25bca73fa1a77aca3fabc0d696e77c325d4e709d740a89aad4be2da08db41dbd28cc205a0c17a37a4ef79e8cd522a12807789dd DIST gcc-14-20260820.tar.xz 88526340 BLAKE2B d02ebd7009f02c64769f828c947d5e41e94593456dacdbe172194dd2652b110e011a3d276bc5f3b072f130306b7ed7b809b9b24f87806373c4bb6bf61a150fff SHA512 1351dcdda61885024ae79d8f77f8e3a53ba87981daa543236165693c1edc014c21f68f5a74252e01deab085a4343e70ff16ff88fcccec5a46e14463424c61897 +DIST gcc-14-20260827.tar.xz 88530032 BLAKE2B b2abe50f37f5f2ab5ec893e4524d74214d98da9ce45cdecdb370ad345a7f216c5025ab9aad4f3f95dac6c117cf6909aef160b2f1bd3315754a40f821df356227 SHA512 cf7600ed78c1bffe970ed826a7d29da36235d05137bafa130d329c099b6b0faf23c38779ef837a3cec3cb8770674b7b5ddfae93af3d27e1d9077b60bd139beda +DIST gcc-14-20260903.tar.xz 88538140 BLAKE2B b5fd80fd8addf04d296f12c26f4ce1feb7c223f0389534d02af0f303cded7f0380b12d64c7fb31f49b6a57fe21fa7721a604ad6448931624dddcdc69f9a87bb0 SHA512 5704a3edd2594a38f090a85675f51106a80472d375cd67f57fa3f644bfc5111ed43c45a64a3c158de68741b0c7ff90f4dc9017d27fe71378648f94232a3d4eeb DIST gcc-14.3.0-musl-patches-2.tar.xz 6888 BLAKE2B e2f9ce6d445b7ced8f78c18585887422ffdd32356368a456a7cfde5a1854515b32546c1d25a2ab8637ee62d04a2c0bda1afc8d53c44e5c80c12499918c3c18fc SHA512 0b59d228213024cd93d9ffbd4ae5947021db2dc71bd320cc0e4ccf523d39f72e61be25c1a49a343729fe7b9abf7181503de3e650b255d80ab6d969d0de317d19 DIST gcc-14.3.0-patches-6.tar.xz 28148 BLAKE2B ba80a00289da26d3b5a813a9878aae6b34640e5cf8f37431ef846894087096dc84869e120ed17f23062bd2702a8059d73ead3ba28115e9c3bad55f46e7f474ee SHA512 7ee900f327bd92484ffba03ff80827b42ffba75d7527e26e09ea07e6d61622d812e1a00f77f3d669d7bde0366bab43085552d6140b28bc319edab9eb0e9a73f5 DIST gcc-14.4.0.tar.xz 91586872 BLAKE2B 10a512f9f95fcc70a13f4eb2142927277d2e6c0a16bad76f01078dc0d7e5cb6831204f8beec22c83c1ff2d0ed1d9df8c8d0a4118ba657d1aefef2a6f15636a28 SHA512 725ed8bdd43ef1726ffe8b5e8615a13e247fac9575b7626ae013a2975d000ea213212dc414b2f2631ac4785c1c8beca85555222faf9904d3b2fa6a3807a83a15 @@ -28,12 +32,16 @@ DIST gcc-15-20260717.tar.xz 92482140 BLAKE2B ae84ad42a0f5a35a36c362340298c94c8e8 DIST gcc-15-20260731.tar.xz 92483472 BLAKE2B f4ed7d848417e02c22386209998048f1b89a6278af04546e217febb31199cde2f6df976942f9fc5bbe0999eff887c704a9187e55526c530be1b2d074fffe3ee9 SHA512 67c857097a52ff4654f21e0affeb075d22cca23702a12083b82850983bf7218c6e05b89ec53345dd104f85bed5dd5aa4a535b2d3f21cb07749ea2bd4f8bfb153 DIST gcc-15-20260814.tar.xz 92494796 BLAKE2B 7e8e4ccd1f4d71387d72b7100cda115e8a067ff3e88f883d8b8df18546cb01b36b7d118fb89f3163769e4774e4bfe31754b410aef4ff3545fa64817b82c87e24 SHA512 2f8d5f189f9a4725197ec8906ec0f3c515023e6224c29369d098f1102d6ac0899d8fbaff346891f1299eef90ef13206eeff5fb06f40af284db18531f02cee9a6 DIST gcc-15-20260821.tar.xz 92491084 BLAKE2B da19130fa2cab934c120406cba85e135cb1909f1be2c05a5b846b3997f1bf368858521cd8a4bfc0380013bca3196bbaac53c066aa69e26513a45b552e8639096 SHA512 e229f0245dac155c7fb93611d0b077c104c0c82993ea30cb36940ad973130a230f2206075e1da2e583a9df6cfc85315adbfffa341c35e357b1e0649947371892 +DIST gcc-15-20260828.tar.xz 92507836 BLAKE2B 8542fafedf1d684064f9ca3ad77b5086121c4687071060749bbe71011f82be4bd1f5e60f97c26c37fd902ad6e1b203a25a0d57bc9f47fbd424efb82fcefecf65 SHA512 61c612f2666ec9461a1572eddd0b9c4e6575954b4abd338d1c275873c7d34e40c83a5936b5cd99ebc5d8d9016335aa9d5344aef1a97af8935cec418353b9095b +DIST gcc-15-20260904.tar.xz 92498536 BLAKE2B 4cf423cc30aebbd682504b252a45499e30ee3687adfcb0f4ae83fb3b638ebbde65591c14a3a873f163b76dd8811cb600ea936e751befabc4ff0e4d9bd4fa177c SHA512 3a0af0e7700b572d5dd034528c32ee06dc82ad2e80f93a2eb8324a77c7f25c575b848161b7cd8d04a9a3ebfcea356083d2dd5b1869bb7b44da1a00f6c172690b DIST gcc-15.2.0-musl-patches-1.tar.xz 7168 BLAKE2B 6b7cfb123c3a691693240db815e6852a1e6c3820baa499368c463e0a0c1490c701053cfea10bf1d33f89dd2ba7bbddf63c4e6e0976590e3aaf1fee78b9282079 SHA512 ab80ffd69b9ead1fe06a9433faaa97ae53947d214999e77ea363fa6435de080d031a1aa6869e1dc088e800317952f2dc249a9e872113db56fb76f0a432240871 DIST gcc-15.2.0-patches-8.tar.xz 17584 BLAKE2B e35d85b993fc2ad86924158cac893a815f70332335ed02d970bcdf89c1ceafc2972576bcd85b4912e6ada91bdd80e8f10cbc6be798c804438368bae60abe2731 SHA512 6440a792320037b746ba405469773b96c1d4272c5248ae3808e6d8a2d576564c0f52889a6f88c3271233c8c2fe7ecb974d31ced2141f16f2c5ca68b9e47ace8c DIST gcc-15.3.0.tar.xz 101253696 BLAKE2B 9e37d6560addf936b8dae6f34a2621004e888b1436c9b95d6a09c2a792f909c7ec4aa5e8d0e63baa1be742fd8dc8162b366b5c48766fc83e44b3842891af44df SHA512 0de9e296153b52c021b1c7e63c9c62151d7a0ac03f23ce6e9f772c1b0eb783f6acdd81cc4567bfe4128a6f64968c2cfc8eff40b36229cba7425349f7d637c654 DIST gcc-16-20260808.tar.xz 99127060 BLAKE2B e2451ae29049179fe8cf60b39cd66c1381787cb41328cbad88e3a1cbd3f2caf3a5eed3979b6757c9cc6a7d943f075bffedf6418e934c4482a4ce8fb5a72e5e29 SHA512 20d9469d115f328d9e45d44c59b64ccdc50c6d26447978f93df99c5700454be3503d225562e07d14504ca096b75426907b83e33525f844e99e50e1b4f2bac84c DIST gcc-16-20260815.tar.xz 99086124 BLAKE2B a6654163cdaacf17987844eb5887aafe3ed11bac88327cc785898b00c084243d0aff995879f0d10d3eedf5efdb33c495ce7ceb162d9348bab2acc72ac96fa78a SHA512 538607b769cb2166c61179e76178a5f9af1b6690bd446d99d77bfab3123e22f892e9d4f92890f2e620f1f0a226e464c3dd587f78e13f67c478a62ee41f15c890 DIST gcc-16-20260822.tar.xz 99099752 BLAKE2B c9769a7748868de74a8e50e5a4d0ee359eac7b3ee4dfcf7a6e470353b5aad0447ec4edc9da9ba14791b6a9cfc2a4085af52cee6fa97f50c6e4a8f5b0a5b98287 SHA512 4b6d2f69d97155fd4f78fcf45051d2ec15001bdcad15af686890a27371e8f3cbe3072a9a45313caa4c10a12b2aa06d4db5cf3bcd1ba89dda9521d4348ab44522 +DIST gcc-16-20260829.tar.xz 99107172 BLAKE2B d642dfa2d388fdc02ed8e71aa42a8b72ccbf3d01d9786f544982bcb75b1020411e03f1775fd88db5acae20cf43fcfb7a7660ad28e30da4c27bdbcaa1e4be730b SHA512 af0f4005c69a95ab6ff6af513541683115edd2ee498a8a9f13a008634d5e6951a11b9f4abc6bb65acff14e479758d4954b6dbc8b18c64e46822252b4ddfc8c85 +DIST gcc-16-20260905.tar.xz 99118908 BLAKE2B 1a65b1fbc842e153389840274a5a3f844e3a5a9693957b1227e5361f74ce831df244570f1e5edf844fc512b62b978460ed7861b8c8856056b8c1f9763bae130c SHA512 f15b09406e3788ffc3b1c380748ed9c087bba32448c4cece7a56930417bbe1dc34a72464ecb570dff781c8bbaa4eebf880274e5b4a9139aa5137c0623e03be66 DIST gcc-16.1.0-musl-patches-1.tar.xz 3036 BLAKE2B 348d0233c92e6b269011342a170989bb6375ff267b6ecfc00aafab2f793b925f1cccd654f438a4f88168a7999cab965aadfb6dfc9957a9b1a5bca62c326e0b84 SHA512 dc9c2d4a6e9088ad245039a962333ecba8476288844c686e7df9c867c8018451fccbd645a5690d554ee39809e6467285b3c619553edfed379c5f84c003bcb7e5 DIST gcc-16.1.0-patches-3.tar.xz 25156 BLAKE2B 874afd3239c0794082568738c837786fff71ad48c24677c11110630fc6e0c0baf17720aec53dc7cd6580102a3a3b7daa2b78c82488f758af8afcb6cd5621ee25 SHA512 dbead66ac0899e2833e88cd7a95b12d2f2dd1379ec3cc085701efd7f8e446feff4d6c00f1481026bb9c699487a143f6a429a8f95ad7228f8bbef5faf2d1b5a5e DIST gcc-16.2.0-musl-patches-1.tar.xz 3036 BLAKE2B 8545e2499a8af4af9483e0372f253db13ee296c77e8514d409c9a43a2fd8919bdca4791c2747579fc57c62b08c0e4054314b7511ddc921074a60ab9f192e7983 SHA512 d029857ffeae60fa5577dddc0136f04ceadf77a282a3ebda9dda1da67a17301978028aa6d768f46f4b0fa9778f5e8f0052a731d087fb4b841a4f30244ee41fec @@ -42,9 +50,11 @@ DIST gcc-16.2.0.tar.xz 107200820 BLAKE2B ab3ffe16e042da767f3f1eac170da518d6d7de3 DIST gcc-17-20260809.tar.xz 99926544 BLAKE2B e566d4bcce8ee2e1a206e02292cc92f7f20c6a3f6a73a20aa42925e03507dbd03e71f817a5a4e5e019b4ad65399096ec5486a67a7b428afa2f9281c3a67a3cd5 SHA512 a562022f7192b4d026541f724fe20761a0e20087e983868e2020846e9cc0e74fb764670b2b0640098c0c347000d93d752a06bd7e4074aad665bf093d9028e168 DIST gcc-17-20260816.tar.xz 100050972 BLAKE2B 19d8898c50160a07c3277c1a20ff427ba00ae25a986a18021f53a8a1b36ee56c1a9a244168238b9c7db62760f5f9565d0abed091010a89dcae243aa8cceaaaf7 SHA512 503b1936dfd7927d8141d35dfbc40f02723c0c56cabc95b8031666408f5e099c9037fbe6c9374961275d72675fccb4b0ec5247c20200fd4dac46a9d4c939648b DIST gcc-17-20260823.tar.xz 100144396 BLAKE2B 267a87122c33f37186a40681dc7ec1386d4ad194fd2fd53ade4584bad6920b375a5be3e9008ee9b9333be7386ce2ea44d2e93363fc57c0a692a8e6dc189d5078 SHA512 ef6e5e50dfae128ca1e007b6aed0d3e8d7e8ebd96610181d565d2ffc6998ca0be9e844e17baefe7aeaa2fcc3f347bf13ecaa8c6cf02547d9dfa28e31457ed9df +DIST gcc-17-20260830.tar.xz 100202104 BLAKE2B b6f1fa175e293adcbfbf8e0bb4686611293bb14c5718f5ab5ddfefbaaf640e140addc58397ff3bf6256c715f0c69e00f207b575a41f25c0410e45c218fe290c2 SHA512 d1e2b40c3b364a6df6c9d60b1f71f63bec69fe8f10545b75467761925fd879d54ae224418951b65da6f42917fdcb9bce06779d2185e0f3af670b7cad3da069c9 DIST gcc-17.0.0-musl-patches-1.tar.xz 3040 BLAKE2B cc39906facd9c395bae9f87c67124066b8081521df39857d752f1e398dca5113240d24a836ca0f793313f954d6c38ff39961bf71a8036a1d5bc62751e71eb7c9 SHA512 4e330ee1c87229ba30644ad7a6841683aba368ce00585b5a7af433f215e248534a8d81f6f95fcf7b348c7d9aeaf1eeae015d76601e3d918a0ca39d94ed7e521c DIST gcc-17.0.0-patches-10.tar.xz 23180 BLAKE2B d0a6bcd57675fbd6090341896f0b8427f04ae1a19c1eba37109de08d474cc857283ea9a64e751710d8266e976c07e07f534b55a6c8b683fa7afb3810b2551f9f SHA512 5e7fb665b2468cd8bc68e573a3e883ed70d4f5688d416fd1c471e2441bad95b6117ebdd433b49c8fbc34c937bc291dc1bcc5f99e1913b611d8833445b2d816d1 DIST gcc-17.0.0-patches-12.tar.xz 49824 BLAKE2B 4731763b8283fa9d503d4c67485a4e4305e8aaec564573a0db953f7f1a894c51b98855a8c2c727fe78fd3ede34dbbdc2018c431caa2a589ac810181ff72f67dc SHA512 84f696c4df21c605d92368a586b5e52cf70daa646d374405697004b7e31b5e5902c7024bbae05a24af4cdfc128764801650b72f37fd3af93afaff8305a412d6d +DIST gcc-17.0.0-patches-13.tar.xz 23248 BLAKE2B e09e2a4a2e51ad7275fe7d3ac3981d5a9873ce1af1f9de60dde2aa5f3df31ef4d73f48553170333a73251614c9bf666a7a93dadcde59d9dde3a20d8b5b2e902a SHA512 3c1aac5abda361d3407ba02ca19ad24c038671254714e82ec6a96f49286a4c551346eaaa718ae340cbfde6515685e665c91f6252adbfff16322b8dfb70b92e47 DIST gcc-8.5.0-patches-5.tar.xz 20188 BLAKE2B 45b29161105edc6344bb48f5bdf17e1aad6e8d9edb4d9434816425996c1b12c10f1303963776adad9db866d845f864d80d198a30e35ee6c204ca3659cf7a1401 SHA512 f22ab5d8e3116e2e896a5dcbbf5cef67dc5090182af364ef64fc22d2b28c029da5ed39f126f446721e388e7b6848239d01f5fc0346e49b96d5c04068b557f8f8 DIST gcc-8.5.0.tar.xz 63841008 BLAKE2B aa81a1a730fd7371360f6abed6ba78b5843fd18c58d5de5687acc320741b9e430e85df3535a1ef7a26051409be8d2f0945f503e5968480d919103123a99d4b12 SHA512 92f599680e6b7fbce88bcdda810f468777d541e5fddfbb287f7977d51093de2a5178bd0e6a08dfe37090ea10a0508a43ccd00220041abbbec33f1179bfc174d8 DIST gcc-9.5.0-patches-3.tar.xz 17888 BLAKE2B f2be05f32f4ecca41ebf4f402bf8fb3c11a36a8b7bd912ee9fe6baea980929774b629e12df7afb3405f1f5d044766a437b3eca5433f4af6c757f4a9dbb2e77eb SHA512 d31bb1964cdb2376572e4981b22c7ffa6fa695259c27af5d0d12aebc334cd1122c2f75739033f25f1e672300adeab2b3772622cb16099d002f3f8c5a8fe694f9 diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.4.1_p20260826.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.4.1_p20260826.ebuild new file mode 100644 index 00000000000..fea647d1997 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.4.1_p20260826.ebuild @@ -0,0 +1,68 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Maintenance notes and explanations of GCC handling are on the wiki: +# https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc + +TOOLCHAIN_HAS_TESTS=1 +PATCH_GCC_VER="13.3.0" +MUSL_GCC_VER="13.3.0" +PATCH_VER="9" +MUSL_VER="3" +PYTHON_COMPAT=( python3_{11..14} ) + +if [[ ${PV} == *.9999 ]] ; then + MY_PV_2=$(ver_cut 2) + MY_PV_3=1 + if [[ ${MY_PV_2} == 0 ]] ; then + MY_PV_2=0 + MY_PV_3=0 + else + MY_PV_2=$((${MY_PV_2} - 1)) + fi + + # e.g. 12.2.9999 -> 12.1.1 + TOOLCHAIN_GCC_PV=$(ver_cut 1).${MY_PV_2}.${MY_PV_3} +elif [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then + # Cheesy hack for RCs + MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5) + MY_P=${PN}-${MY_PV} + GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz" + TOOLCHAIN_SET_S=no + S="${WORKDIR}"/${MY_P} +fi + +inherit toolchain + +if tc_is_live ; then + # Needs to be after inherit (for now?), bug #830908 + EGIT_BRANCH=releases/gcc-$(ver_cut 1) +elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then + # Don't keyword live ebuilds + #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + :; +fi + +if [[ ${CATEGORY} != cross-* ]] ; then + # Technically only if USE=hardened *too* right now, but no point in complicating it further. + # If GCC is enabling CET by default, we need glibc to be built with support for it. + # bug #830454 + RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )" + DEPEND="${RDEPEND}" +fi + +src_prepare() { + local p upstreamed_patches=( + # add them here + ) + for p in "${upstreamed_patches[@]}"; do + rm -v "${WORKDIR}/patch/${p}" || die + done + + toolchain_src_prepare + + eapply "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch + eapply_user +} diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.4.1_p20260902.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.4.1_p20260902.ebuild new file mode 100644 index 00000000000..fea647d1997 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.4.1_p20260902.ebuild @@ -0,0 +1,68 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Maintenance notes and explanations of GCC handling are on the wiki: +# https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc + +TOOLCHAIN_HAS_TESTS=1 +PATCH_GCC_VER="13.3.0" +MUSL_GCC_VER="13.3.0" +PATCH_VER="9" +MUSL_VER="3" +PYTHON_COMPAT=( python3_{11..14} ) + +if [[ ${PV} == *.9999 ]] ; then + MY_PV_2=$(ver_cut 2) + MY_PV_3=1 + if [[ ${MY_PV_2} == 0 ]] ; then + MY_PV_2=0 + MY_PV_3=0 + else + MY_PV_2=$((${MY_PV_2} - 1)) + fi + + # e.g. 12.2.9999 -> 12.1.1 + TOOLCHAIN_GCC_PV=$(ver_cut 1).${MY_PV_2}.${MY_PV_3} +elif [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then + # Cheesy hack for RCs + MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5) + MY_P=${PN}-${MY_PV} + GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz" + TOOLCHAIN_SET_S=no + S="${WORKDIR}"/${MY_P} +fi + +inherit toolchain + +if tc_is_live ; then + # Needs to be after inherit (for now?), bug #830908 + EGIT_BRANCH=releases/gcc-$(ver_cut 1) +elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then + # Don't keyword live ebuilds + #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + :; +fi + +if [[ ${CATEGORY} != cross-* ]] ; then + # Technically only if USE=hardened *too* right now, but no point in complicating it further. + # If GCC is enabling CET by default, we need glibc to be built with support for it. + # bug #830454 + RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )" + DEPEND="${RDEPEND}" +fi + +src_prepare() { + local p upstreamed_patches=( + # add them here + ) + for p in "${upstreamed_patches[@]}"; do + rm -v "${WORKDIR}/patch/${p}" || die + done + + toolchain_src_prepare + + eapply "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch + eapply_user +} diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.4.1_p20260827.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.4.1_p20260827.ebuild new file mode 100644 index 00000000000..4eb953d1246 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.4.1_p20260827.ebuild @@ -0,0 +1,56 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Maintenance notes and explanations of GCC handling are on the wiki: +# https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc + +TOOLCHAIN_HAS_TESTS=1 +PATCH_GCC_VER="14.3.0" +PATCH_VER="6" +MUSL_VER="2" +MUSL_GCC_VER="14.3.0" +PYTHON_COMPAT=( python3_{11..14} ) + +if [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then + # Cheesy hack for RCs + MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5) + MY_P=${PN}-${MY_PV} + GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz" + TOOLCHAIN_SET_S=no + S="${WORKDIR}"/${MY_P} +fi + +inherit toolchain + +if tc_is_live ; then + # Needs to be after inherit (for now?), bug #830908 + EGIT_BRANCH=releases/gcc-$(ver_cut 1) +elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then + # m68k doesnt build (ICE, bug 932733) + #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + :; +fi + +if [[ ${CATEGORY} != cross-* ]] ; then + # Technically only if USE=hardened *too* right now, but no point in complicating it further. + # If GCC is enabling CET by default, we need glibc to be built with support for it. + # bug #830454 + RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )" + DEPEND="${RDEPEND}" +fi + +src_prepare() { + local p upstreamed_patches=( + # add them here + ) + for p in "${upstreamed_patches[@]}"; do + rm -v "${WORKDIR}/patch/${p}" || die + done + + toolchain_src_prepare + + eapply "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch + eapply_user +} diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.4.1_p20260903.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.4.1_p20260903.ebuild new file mode 100644 index 00000000000..4eb953d1246 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.4.1_p20260903.ebuild @@ -0,0 +1,56 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Maintenance notes and explanations of GCC handling are on the wiki: +# https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc + +TOOLCHAIN_HAS_TESTS=1 +PATCH_GCC_VER="14.3.0" +PATCH_VER="6" +MUSL_VER="2" +MUSL_GCC_VER="14.3.0" +PYTHON_COMPAT=( python3_{11..14} ) + +if [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then + # Cheesy hack for RCs + MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5) + MY_P=${PN}-${MY_PV} + GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz" + TOOLCHAIN_SET_S=no + S="${WORKDIR}"/${MY_P} +fi + +inherit toolchain + +if tc_is_live ; then + # Needs to be after inherit (for now?), bug #830908 + EGIT_BRANCH=releases/gcc-$(ver_cut 1) +elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then + # m68k doesnt build (ICE, bug 932733) + #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + :; +fi + +if [[ ${CATEGORY} != cross-* ]] ; then + # Technically only if USE=hardened *too* right now, but no point in complicating it further. + # If GCC is enabling CET by default, we need glibc to be built with support for it. + # bug #830454 + RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )" + DEPEND="${RDEPEND}" +fi + +src_prepare() { + local p upstreamed_patches=( + # add them here + ) + for p in "${upstreamed_patches[@]}"; do + rm -v "${WORKDIR}/patch/${p}" || die + done + + toolchain_src_prepare + + eapply "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch + eapply_user +} diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.3.1_p20260828.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.3.1_p20260828.ebuild new file mode 100644 index 00000000000..76e691e7f5a --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.3.1_p20260828.ebuild @@ -0,0 +1,56 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Maintenance notes and explanations of GCC handling are on the wiki: +# https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc + +TOOLCHAIN_HAS_TESTS=1 +PATCH_GCC_VER="15.2.0" +PATCH_VER="8" +MUSL_VER="1" +MUSL_GCC_VER="15.2.0" +PYTHON_COMPAT=( python3_{11..14} ) + +if [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then + # Cheesy hack for RCs + MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5) + MY_P=${PN}-${MY_PV} + GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz" + TOOLCHAIN_SET_S=no + S="${WORKDIR}"/${MY_P} +fi + +inherit toolchain + +if tc_is_live ; then + # Needs to be after inherit (for now?), bug #830908 + EGIT_BRANCH=master +elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then + # Don't keyword live ebuilds + #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + :; +fi + +if [[ ${CATEGORY} != cross-* ]] ; then + # Technically only if USE=hardened *too* right now, but no point in complicating it further. + # If GCC is enabling CET by default, we need glibc to be built with support for it. + # bug #830454 + RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )" + DEPEND="${RDEPEND}" +fi + +src_prepare() { + local p upstreamed_patches=( + # add them here + ) + for p in "${upstreamed_patches[@]}"; do + rm -v "${WORKDIR}/patch/${p}" || die + done + + toolchain_src_prepare + eapply "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch + [[ ${CHOST} == m68k-* ]] && eapply "${FILESDIR}"/${PN}-15-m68k-workaround.patch + eapply_user +} diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.3.1_p20260904.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.3.1_p20260904.ebuild new file mode 100644 index 00000000000..76e691e7f5a --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.3.1_p20260904.ebuild @@ -0,0 +1,56 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Maintenance notes and explanations of GCC handling are on the wiki: +# https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc + +TOOLCHAIN_HAS_TESTS=1 +PATCH_GCC_VER="15.2.0" +PATCH_VER="8" +MUSL_VER="1" +MUSL_GCC_VER="15.2.0" +PYTHON_COMPAT=( python3_{11..14} ) + +if [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then + # Cheesy hack for RCs + MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5) + MY_P=${PN}-${MY_PV} + GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz" + TOOLCHAIN_SET_S=no + S="${WORKDIR}"/${MY_P} +fi + +inherit toolchain + +if tc_is_live ; then + # Needs to be after inherit (for now?), bug #830908 + EGIT_BRANCH=master +elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then + # Don't keyword live ebuilds + #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + :; +fi + +if [[ ${CATEGORY} != cross-* ]] ; then + # Technically only if USE=hardened *too* right now, but no point in complicating it further. + # If GCC is enabling CET by default, we need glibc to be built with support for it. + # bug #830454 + RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )" + DEPEND="${RDEPEND}" +fi + +src_prepare() { + local p upstreamed_patches=( + # add them here + ) + for p in "${upstreamed_patches[@]}"; do + rm -v "${WORKDIR}/patch/${p}" || die + done + + toolchain_src_prepare + eapply "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch + [[ ${CHOST} == m68k-* ]] && eapply "${FILESDIR}"/${PN}-15-m68k-workaround.patch + eapply_user +} diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-16.2.1_p20260829.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-16.2.1_p20260829.ebuild new file mode 100644 index 00000000000..b0402055aa9 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-16.2.1_p20260829.ebuild @@ -0,0 +1,56 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Maintenance notes and explanations of GCC handling are on the wiki: +# https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc + +TOOLCHAIN_HAS_TESTS=1 +PATCH_GCC_VER="16.2.0" +PATCH_VER="1" +MUSL_VER="1" +MUSL_GCC_VER="16.2.0" +PYTHON_COMPAT=( python3_{11..14} ) + +if [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then + # Cheesy hack for RCs + MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5) + MY_P=${PN}-${MY_PV} + GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz" + TOOLCHAIN_SET_S=no + S="${WORKDIR}"/${MY_P} +fi + +inherit toolchain + +if tc_is_live ; then + # Needs to be after inherit (for now?), bug #830908 + EGIT_BRANCH=master +elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then + # Don't keyword live ebuilds + #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + :; +fi + +if [[ ${CATEGORY} != cross-* ]] ; then + # Technically only if USE=hardened *too* right now, but no point in complicating it further. + # If GCC is enabling CET by default, we need glibc to be built with support for it. + # bug #830454 + RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )" + DEPEND="${RDEPEND}" +fi + +src_prepare() { + local p upstreamed_patches=( + # add them here + ) + for p in "${upstreamed_patches[@]}"; do + rm -v "${WORKDIR}/patch/${p}" || die + done + + toolchain_src_prepare + eapply "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch + [[ ${CHOST} == m68k-* ]] && eapply "${FILESDIR}"/${PN}-15-m68k-workaround.patch + eapply_user +} diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-16.2.1_p20260905.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-16.2.1_p20260905.ebuild new file mode 100644 index 00000000000..b0402055aa9 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-16.2.1_p20260905.ebuild @@ -0,0 +1,56 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Maintenance notes and explanations of GCC handling are on the wiki: +# https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc + +TOOLCHAIN_HAS_TESTS=1 +PATCH_GCC_VER="16.2.0" +PATCH_VER="1" +MUSL_VER="1" +MUSL_GCC_VER="16.2.0" +PYTHON_COMPAT=( python3_{11..14} ) + +if [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then + # Cheesy hack for RCs + MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5) + MY_P=${PN}-${MY_PV} + GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz" + TOOLCHAIN_SET_S=no + S="${WORKDIR}"/${MY_P} +fi + +inherit toolchain + +if tc_is_live ; then + # Needs to be after inherit (for now?), bug #830908 + EGIT_BRANCH=master +elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then + # Don't keyword live ebuilds + #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + :; +fi + +if [[ ${CATEGORY} != cross-* ]] ; then + # Technically only if USE=hardened *too* right now, but no point in complicating it further. + # If GCC is enabling CET by default, we need glibc to be built with support for it. + # bug #830454 + RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )" + DEPEND="${RDEPEND}" +fi + +src_prepare() { + local p upstreamed_patches=( + # add them here + ) + for p in "${upstreamed_patches[@]}"; do + rm -v "${WORKDIR}/patch/${p}" || die + done + + toolchain_src_prepare + eapply "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch + [[ ${CHOST} == m68k-* ]] && eapply "${FILESDIR}"/${PN}-15-m68k-workaround.patch + eapply_user +} diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-17.0.0_p20260830.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-17.0.0_p20260830.ebuild new file mode 100644 index 00000000000..614874cdf49 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-17.0.0_p20260830.ebuild @@ -0,0 +1,56 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Maintenance notes and explanations of GCC handling are on the wiki: +# https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc + +TOOLCHAIN_HAS_TESTS=1 +PATCH_GCC_VER="17.0.0" +PATCH_VER="13" +MUSL_GCC_VER="17.0.0" +MUSL_VER="1" +PYTHON_COMPAT=( python3_{11..14} ) + +if [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then + # Cheesy hack for RCs + MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5) + MY_P=${PN}-${MY_PV} + GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz" + TOOLCHAIN_SET_S=no + S="${WORKDIR}"/${MY_P} +fi + +inherit toolchain + +if tc_is_live ; then + # Needs to be after inherit (for now?), bug #830908 + EGIT_BRANCH=master +elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then + # Don't keyword live ebuilds + #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + :; +fi + +if [[ ${CATEGORY} != cross-* ]] ; then + # Technically only if USE=hardened *too* right now, but no point in complicating it further. + # If GCC is enabling CET by default, we need glibc to be built with support for it. + # bug #830454 + RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )" + DEPEND="${RDEPEND}" +fi + +src_prepare() { + local p upstreamed_patches=( + # add them here + ) + for p in "${upstreamed_patches[@]}"; do + rm -v "${WORKDIR}/patch/${p}" || die + done + + toolchain_src_prepare + eapply "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch + [[ ${CHOST} == m68k-* ]] && eapply "${FILESDIR}"/${PN}-15-m68k-workaround.patch + eapply_user +} diff --git a/sdk_container/src/third_party/portage-stable/sys-firmware/edk2-bin/Manifest b/sdk_container/src/third_party/portage-stable/sys-firmware/edk2-bin/Manifest index 45b124eb191..75c581eff43 100644 --- a/sdk_container/src/third_party/portage-stable/sys-firmware/edk2-bin/Manifest +++ b/sdk_container/src/third_party/portage-stable/sys-firmware/edk2-bin/Manifest @@ -11,4 +11,8 @@ DIST edk2-202605-1-qemu-aarch64.xpak 4073020 BLAKE2B 00756e94cb7bae3a964f05aa9ef DIST edk2-202605-1-qemu-loongarch64.xpak 2141697 BLAKE2B 41a28e42a82ee5b40dd9baf196bd7dfe88b016a6a918e88fc685d52480307ebedbbf4fb45b37221165bcccaa35375b49cbc18c99ebfc420f7430837b6eaa7780 SHA512 18f46175aaff2d4b1ee4de133c05180b4e888e0a7d841d88fdbf6e52f2a195371b63c6c6c7868c0c4ab5406feaae40beb460701432f37bf6efa0f7b706851f82 DIST edk2-202605-1-qemu-riscv64.xpak 1864003 BLAKE2B 458876ccc9efb0259b2f9aced9eeb8aace5a3cd76dac45d724060a06a949d73bde84fd216ebee4345fe6e39edbec96e51e4ac3c37c955ba2725c1991bb17f2a4 SHA512 c665001d0d7e8ec5ac8fb0018905322f74ca192fcbda8d1223e206dd1e01d7e1f78399afba22db37dd46fe8f4798d13deb467d97388d8f969bfa7d24626ac165 DIST edk2-202605-1-qemu-x86_64.xpak 9018459 BLAKE2B f79e65496247c5b1b2506440b0773800d13392edb8cf1a940a49b39a577eb90cea41f84d6dbb4a70bf240633a87326699c4a9620cd597f450646477cc8983f25 SHA512 19e1d1cbfd66830787c77a3c434907348fcb070c0f423e4d53817f3b18d958e009d7d249b916fe615ecbaef650c3cdc59269168e727deb4025ef32c38489d277 +DIST edk2-202608-1-qemu-aarch64.xpak 4174169 BLAKE2B ef7dd38f6215b81cd1ef0e337f77fd7e0658bcd5b5088ac68b202527048c70d4c9c5a8c6bf2cc4d74683af0d40fb4ac19903deee29bbfccc5e80bf1a62ae6d1f SHA512 66c3a8a871e79f232d0f0faee2b5eb4890c9fa76628ac90db8b1100ea772c03676b398252337e18b7019c3db76b31b87d8a008c27a90f710f5b3ea6cd9f07a11 +DIST edk2-202608-1-qemu-loongarch64.xpak 2270948 BLAKE2B 808e6c3d5e23abf1c5acddb41bf6afd989b52db0618f9ade468ebf145800916f99c2917959b13a91ef7a55fc57271f4e9860c1a1f6f5e0628867af10e57e2411 SHA512 97da12d0e312887e570c38dddfc51d43ffcff8df3d86151844e2e6579a6f8e27a9727fbdd8915afd686f2eb70b02387c153c495b072a7f01612766dd37a0fcbf +DIST edk2-202608-1-qemu-riscv64.xpak 1864931 BLAKE2B dcc41efbee9614749440f26a088c46706ed13c84a70993daf3caf3344b74ba935b3ca946649e260aef48b7ddec294f1b1bb93339ef90b2e3a4cae44c4b6acf4c SHA512 81dbf1aa588dcb67969b8cf5c871bd890b69cec89932e898e78b6fe637f582c808a66647e7d46376604c62001025d036a6732eeedd0482a47b2f016ac98478bd +DIST edk2-202608-1-qemu-x86_64.xpak 9221128 BLAKE2B 2ea9044d93f4bd00794ad29d830e4949c04c49da9b035bf025962f62a67e1ea5b5d75c7e498a313c33edf7bf5ba5d9ff0143ea57348377f0e868c5747ae7e74b SHA512 826aa485df648e873c1c686dae82475db33a5e004063399d96bccfd4d9a2e21b09efd8213c9e08b3c59f0191ce7b03b5be073646b2c91d52a9bc985bf726ff16 DIST edk2-ovmf-202202-1.xpak 2672386 BLAKE2B 75c15d4379610ab2af85b78166e350d52f4f1bc1fff5b2eb693ad0d7b1f6648e65d8ae3e2c5467f93f1557ad3b4fa664ab2d76ff10794667de22c2ea8cca6b2d SHA512 06783b89c96bada0fd025ff39eaee501a027abcb03c0bdcf3ff497d52be22927ab03013d90f145ee94a8662cfffe4f8c154dcd06db1bb1acef8a85ae43de14a3 diff --git a/sdk_container/src/third_party/portage-stable/sys-firmware/edk2-bin/edk2-bin-202511.ebuild b/sdk_container/src/third_party/portage-stable/sys-firmware/edk2-bin/edk2-bin-202511.ebuild index bf887f6d1b1..2273fe1f692 100644 --- a/sdk_container/src/third_party/portage-stable/sys-firmware/edk2-bin/edk2-bin-202511.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-firmware/edk2-bin/edk2-bin-202511.ebuild @@ -6,29 +6,29 @@ EAPI=8 inherit readme.gentoo-r1 secureboot BINPKG="${P/-bin/}-1" -QEMU_TARGETS="aarch64 loongarch64 riscv64 x86_64" +EDK2_QEMU_TARGETS="aarch64 loongarch64 riscv64 x86_64" DESCRIPTION="TianoCore EDK II UEFI firmware for virtual machines" HOMEPAGE="https://github.com/tianocore/edk2" -for a in ${QEMU_TARGETS}; do +for a in ${EDK2_QEMU_TARGETS}; do SRC_URI+=" qemu_softmmu_targets_${a}? ( https://dev.gentoo.org/~chewi/distfiles/${BINPKG}-qemu-${a}.xpak )" done S="${WORKDIR}" LICENSE="BSD-2-with-patent MIT" SLOT="0" KEYWORDS="~amd64 ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86" -printf -v IUSE ' qemu_softmmu_targets_%s' ${QEMU_TARGETS} +printf -v IUSE ' qemu_softmmu_targets_%s' ${EDK2_QEMU_TARGETS} REQUIRED_USE="|| ( ${IUSE} )" RDEPEND="!sys-firmware/edk2" DOC_CONTENTS="This package includes the TianoCore EDK II UEFI firmware for virtual \ -machines of these QEMU architectures: ${QEMU_TARGETS}. See each architecture's README \ +machines of these QEMU architectures: ${EDK2_QEMU_TARGETS}. See each architecture's README \ for usage details." src_unpack() { local a - for a in ${QEMU_TARGETS}; do + for a in ${EDK2_QEMU_TARGETS}; do use "qemu_softmmu_targets_${a}" || continue mkdir "${a}" || die tar -C "${a}" -xf - < <(xz -c -d --single-stream "${DISTDIR}/${BINPKG}-qemu-${a}.xpak") || @@ -52,7 +52,7 @@ src_install() { readme.gentoo_create_doc local a - for a in ${QEMU_TARGETS}; do + for a in ${EDK2_QEMU_TARGETS}; do use "qemu_softmmu_targets_${a}" || continue newdoc "${a}"/usr/share/doc/*/README.gentoo README-"${a}".gentoo done diff --git a/sdk_container/src/third_party/portage-stable/sys-firmware/edk2-bin/edk2-bin-202605.ebuild b/sdk_container/src/third_party/portage-stable/sys-firmware/edk2-bin/edk2-bin-202605.ebuild index bf887f6d1b1..2273fe1f692 100644 --- a/sdk_container/src/third_party/portage-stable/sys-firmware/edk2-bin/edk2-bin-202605.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-firmware/edk2-bin/edk2-bin-202605.ebuild @@ -6,29 +6,29 @@ EAPI=8 inherit readme.gentoo-r1 secureboot BINPKG="${P/-bin/}-1" -QEMU_TARGETS="aarch64 loongarch64 riscv64 x86_64" +EDK2_QEMU_TARGETS="aarch64 loongarch64 riscv64 x86_64" DESCRIPTION="TianoCore EDK II UEFI firmware for virtual machines" HOMEPAGE="https://github.com/tianocore/edk2" -for a in ${QEMU_TARGETS}; do +for a in ${EDK2_QEMU_TARGETS}; do SRC_URI+=" qemu_softmmu_targets_${a}? ( https://dev.gentoo.org/~chewi/distfiles/${BINPKG}-qemu-${a}.xpak )" done S="${WORKDIR}" LICENSE="BSD-2-with-patent MIT" SLOT="0" KEYWORDS="~amd64 ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86" -printf -v IUSE ' qemu_softmmu_targets_%s' ${QEMU_TARGETS} +printf -v IUSE ' qemu_softmmu_targets_%s' ${EDK2_QEMU_TARGETS} REQUIRED_USE="|| ( ${IUSE} )" RDEPEND="!sys-firmware/edk2" DOC_CONTENTS="This package includes the TianoCore EDK II UEFI firmware for virtual \ -machines of these QEMU architectures: ${QEMU_TARGETS}. See each architecture's README \ +machines of these QEMU architectures: ${EDK2_QEMU_TARGETS}. See each architecture's README \ for usage details." src_unpack() { local a - for a in ${QEMU_TARGETS}; do + for a in ${EDK2_QEMU_TARGETS}; do use "qemu_softmmu_targets_${a}" || continue mkdir "${a}" || die tar -C "${a}" -xf - < <(xz -c -d --single-stream "${DISTDIR}/${BINPKG}-qemu-${a}.xpak") || @@ -52,7 +52,7 @@ src_install() { readme.gentoo_create_doc local a - for a in ${QEMU_TARGETS}; do + for a in ${EDK2_QEMU_TARGETS}; do use "qemu_softmmu_targets_${a}" || continue newdoc "${a}"/usr/share/doc/*/README.gentoo README-"${a}".gentoo done diff --git a/sdk_container/src/third_party/portage-stable/sys-firmware/edk2-bin/edk2-bin-202608.ebuild b/sdk_container/src/third_party/portage-stable/sys-firmware/edk2-bin/edk2-bin-202608.ebuild new file mode 100644 index 00000000000..2273fe1f692 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-firmware/edk2-bin/edk2-bin-202608.ebuild @@ -0,0 +1,75 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit readme.gentoo-r1 secureboot + +BINPKG="${P/-bin/}-1" +EDK2_QEMU_TARGETS="aarch64 loongarch64 riscv64 x86_64" + +DESCRIPTION="TianoCore EDK II UEFI firmware for virtual machines" +HOMEPAGE="https://github.com/tianocore/edk2" +for a in ${EDK2_QEMU_TARGETS}; do + SRC_URI+=" qemu_softmmu_targets_${a}? ( https://dev.gentoo.org/~chewi/distfiles/${BINPKG}-qemu-${a}.xpak )" +done +S="${WORKDIR}" +LICENSE="BSD-2-with-patent MIT" +SLOT="0" +KEYWORDS="~amd64 ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86" +printf -v IUSE ' qemu_softmmu_targets_%s' ${EDK2_QEMU_TARGETS} +REQUIRED_USE="|| ( ${IUSE} )" + +RDEPEND="!sys-firmware/edk2" + +DOC_CONTENTS="This package includes the TianoCore EDK II UEFI firmware for virtual \ +machines of these QEMU architectures: ${EDK2_QEMU_TARGETS}. See each architecture's README \ +for usage details." + +src_unpack() { + local a + for a in ${EDK2_QEMU_TARGETS}; do + use "qemu_softmmu_targets_${a}" || continue + mkdir "${a}" || die + tar -C "${a}" -xf - < <(xz -c -d --single-stream "${DISTDIR}/${BINPKG}-qemu-${a}.xpak") || + die "unpacking ${a} QEMU binpkg failed" + done +} + +src_prepare() { + bunzip2 */usr/share/doc/*/README.gentoo.bz2 || die + default +} + +src_install() { + insinto /usr/share + doins -r */usr/share/{edk2,qemu}/ + + # Compatibility with older package versions. + use qemu_softmmu_targets_x86_64 && dosym edk2/OvmfX64 /usr/share/edk2-ovmf + + secureboot_auto_sign --in-place + readme.gentoo_create_doc + + local a + for a in ${EDK2_QEMU_TARGETS}; do + use "qemu_softmmu_targets_${a}" || continue + newdoc "${a}"/usr/share/doc/*/README.gentoo README-"${a}".gentoo + done +} + +pkg_preinst() { + local OLD=${EROOT}/usr/share/edk2-ovmf NEW=${EROOT}/usr/share/edk2/OvmfX64 + if use qemu_softmmu_targets_x86_64 && [[ -d ${OLD} && ! -L ${OLD} ]]; then + { + rm -vf "${OLD}"/{OVMF_{CODE,CODE.secboot,VARS}.fd,EnrollDefaultKeys.efi,Shell.efi,UefiShell.img} && + mkdir -p "${NEW}" && + find "${OLD}" -mindepth 1 -maxdepth 1 -execdir mv --update=none-fail -vt "${NEW}"/ {} + && + rmdir "${OLD}" + } || die "unable to replace old directory with compatibility symlink" + fi +} + +pkg_postinst() { + readme.gentoo_print_elog +} diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/btrfs-progs/btrfs-progs-7.1.ebuild b/sdk_container/src/third_party/portage-stable/sys-fs/btrfs-progs/btrfs-progs-7.1.ebuild index 1f2cee7e2dc..d4cf9a484cf 100644 --- a/sdk_container/src/third_party/portage-stable/sys-fs/btrfs-progs/btrfs-progs-7.1.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-fs/btrfs-progs/btrfs-progs-7.1.ebuild @@ -26,7 +26,7 @@ else S="${WORKDIR}"/${PN}-${MY_PV} if [[ ${PV} != *_rc* ]] ; then - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + KEYWORDS="~alpha amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" fi fi diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/cryptsetup/cryptsetup-2.8.7.ebuild b/sdk_container/src/third_party/portage-stable/sys-fs/cryptsetup/cryptsetup-2.8.7.ebuild index c8c4d8f072e..87e30770d93 100644 --- a/sdk_container/src/third_party/portage-stable/sys-fs/cryptsetup/cryptsetup-2.8.7.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-fs/cryptsetup/cryptsetup-2.8.7.ebuild @@ -18,7 +18,7 @@ S="${WORKDIR}"/${P/_/-} LICENSE="GPL-2+" SLOT="0/12" # libcryptsetup.so version if [[ ${PV} != *_rc* ]] ; then - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + KEYWORDS="~alpha amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" fi CRYPTO_BACKENDS="gcrypt kernel nettle +openssl" diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/zfs-kmod/Manifest b/sdk_container/src/third_party/portage-stable/sys-fs/zfs-kmod/Manifest index c84b3a484a4..ca6969fc1ed 100644 --- a/sdk_container/src/third_party/portage-stable/sys-fs/zfs-kmod/Manifest +++ b/sdk_container/src/third_party/portage-stable/sys-fs/zfs-kmod/Manifest @@ -1,20 +1,4 @@ -DIST zfs-2.1.16.tar.gz 35187215 BLAKE2B 8bb90903f3747589fff94a810584de54d7f598b0aa9d0b364cc679779d401a9a76f6914cbfbdd007e2066f02230ed4cac4f3735830ea70eb3bcc449af8229c5d SHA512 68e62015e44eeb997166418bf769afa3e96c037a9282dcfd08a8f01d935fa48076483158f628d70b0aed258427510996d4c4ee7d2644ff561163c76f776635d2 -DIST zfs-2.1.16.tar.gz.asc 836 BLAKE2B b46614399ca63d9c88216c55bb2177cc0c28f4da2cb6be3ee361efca994309abff46fdf6ad6b0bad448c44e9e84ee40e2183d1b482e04844317f14744bab5c1f SHA512 d2d94a4e3ffe182e86fa3319cb9661688125f378ffa1e5768ee89033f796a1f52f877c382588fb1f434686e30bc4e65e3f08ceac0dd3dd7f8f751ba6182c3317 -DIST zfs-2.2.10.tar.gz 33889026 BLAKE2B 47d11f1e515e7028ef548d5167bfca26135dc331dccaaf69c3b5095bb49788574f628949f19c423c5ca6cff2c5e6defb6a4575298821ab73a18964335fa3e1a6 SHA512 e15cd145072ebb444d15cbec11c770e28c5642ee7b8e7371f1cff968c32c0b121c591ae61a0d70a1f7dba312ac6ae25bd68af2f0b80b4debf1fa6ea05b60b5de -DIST zfs-2.2.10.tar.gz.asc 858 BLAKE2B 3c44fa8ff580388ce8b2d915a2f89ed065179d483ade01e4607a428ba37c42275d7c3ec5e251ab24381f743bb20a81c3b44fb1593dd76244396ca295bf9e6e8a SHA512 a2e6d9e22b41dfc995dfaceb1f1adf7d75fea01b0ec3c66c255a121f7faa0d60e445df4ff0fb6cc85e5a4d68d7d3152923f48fe870ebe16a0c69187a9adbe52e DIST zfs-2.2.11.tar.gz 33878728 BLAKE2B 06ef8007a9585c3179b21bc83df33c33906080ccfc13b5de5c0c5597b2d802aff1edc83901a9105bae04b4571b9281124f1b6e18787dbc0295405d969cf66437 SHA512 fca60239b5d3fb222327e4d4a5c763d717cee887796edd636f10d46f8756d38df56cfb18ecc4b56db491e723c9a5eb4b7ea771362e98beb723bae4acf7e35073 DIST zfs-2.2.11.tar.gz.asc 858 BLAKE2B 5c32523caffa97b36814281dd2653cbd91452119f683367ad0eedd174b4992d1ad196659bcc99d7d9632afce58c7b25e142d07db634aa32227144f30f48cbbfd SHA512 d4d06f7d121c7ed1856cf4502bfcd3cf1666fb2026a46a868d50d7c67d67f86343b6b99ba5e11c54b7b4a3252d8eb1892bb12e94d52bd3ab57dda1bf819e4632 -DIST zfs-2.2.8.tar.gz 33852494 BLAKE2B 9e338544488d00a57594d638138896635ea62b80341ad9289b9faad7b899012206fef22e5742e1f5681c58d61d264127ed1e2dfe5aa9b2e9aac2243421c60b11 SHA512 95c203a97032b8ae46cc84e0e6fd68d61e42fb6c6fde7102b04ac85291579c18b1d52b3e93e345a3bc5491bef8bf07b8e7edcbf69cb6222c5d8454a3c83adb11 -DIST zfs-2.2.8.tar.gz.asc 224 BLAKE2B c3a06953c22d1b485fbd030c93ad0e744c50a91e51bbed5bef56090a1da57b02ec580499a419201f365c99ade53af5d6f545876e6d0da25ee7870fc86786288b SHA512 fcd6fe2412b5a2e83ad2609d56993ed4ad61e10c4f77f1e94a66403adf66ac90604fb567e7cde6420fe0b6a604abfd817a63e744f7c4fe8452b862c1d8cc4df3 -DIST zfs-2.2.9.tar.gz 33864041 BLAKE2B abafd4da0c98cf93a2648150c859ffc6847aa2f5bfa59f3b6cc1619a2313a1600923c7a07c9e647c6c0f40eda21fb0985de81a436c44513a5bd99984a18329a5 SHA512 bed0f7794ff7898557a4854d8634a96f9be5368b0264558d980e70664fe1f02a35b05a96b5e92acd40e2b741373ca4a312e31ad4f69c4d639c817cce3988f382 -DIST zfs-2.2.9.tar.gz.asc 858 BLAKE2B caf76646bb3cba75b65b9b93b63f698d172806d60480785938ca3112a67d3e6d9a9b123217df4c92ad682b695292d9e674c4cba819b94276d154aba11e8dcc7d SHA512 ff3a1789154382b06e778b1847519188d520d5037f8c78089309c1d532e8496f682ead1648991bb9eb58dbdedd0007fa7d3157a8887a525470c9220bab3eb4e2 -DIST zfs-2.3.4.tar.gz 34386899 BLAKE2B e7619445a9138475e51e1578cb4e85032570830faba5aab44013a652596a07e49cf602acfe7fd0e5411199d11614d4686cc3f14fddf3062695ce3da922075efd SHA512 56b90960de6aa94b76f8efc3c84993454a8d544bd47e1270e02caa8d96569e866102e17ef1f16056722bf5f6624fad0bbe7f9ef0e94bc0c3fc16e61b681db815 -DIST zfs-2.3.4.tar.gz.asc 858 BLAKE2B 2537afa40b48c07b8ad61a4f6973e40a78b5863afbb6b75674fb7a5950ba2dda22dfa93a180190332d234b0b2e2ce14ed61cb34bc0f56e609dad3cdb805ab5c2 SHA512 cc50fb915d4e8a7eb894bdf919940a8c68828e48a5e1f2a08b08a5e75c0eb8a9cd4feaa84742b65d6b2d85ee839ac2b7d565ed7958006ff079d751145463243b -DIST zfs-2.3.6.tar.gz 34410022 BLAKE2B 9d83e296cb4e78c67cb9d30ba79b74b4b53c9fd4b0b58cd7a9e1e7b0fafc2c5a49b002c1023d07736c1a6149c61963ccb45e9a82d25944c0a7bd4486ea7fcde8 SHA512 789f534124173693ad461f0fcd5df442588225d5f42420f658fe5c7cb57549417aa472ae95658c90c9dad6818f91d8fb0cbd1fcef2395d167b3ded38477e18c7 -DIST zfs-2.3.6.tar.gz.asc 858 BLAKE2B 88e9344ed51d9906011f6f381364aeb8bfe3360b0c12a18ec45c8a8d42725f345e61c0ad63037ace51bdd04276567cd90ba2311c971c6b2f10501ffb0363be84 SHA512 fe1b7977a8ae564fe639ca824a557a1600c3e22df0af3e750464a3c960b9709c289c07e42ef40173e153453c5641c442c660c804ea21370d77d9819c13b655b1 -DIST zfs-2.3.7.tar.gz 34431113 BLAKE2B 8b11b1bd69861426d82fa4c25a320082ab1b1250931de6cd26f30ad1f26cec2e830cc76f49875305583e473013e8ed15048a74dd9c847da077c12b6ac4c6ec0c SHA512 801ff38a7babe204f5dd5e159cf228b2c35b627f41fb33e6ae1e38751829ccbc486ea84725286d5d69c099fca9c7d063f9532d95a8a0c19f50fe0d40895225f2 -DIST zfs-2.3.7.tar.gz.asc 858 BLAKE2B 775f7d82e47e8664a0e285f3470e59b4ab8338826d0226267cb669e114cd128354266d5797714629a9474c01049c35b04d00cef81086c66131a603ece32188d3 SHA512 6a945170563ee7dd4df2ce0131596418a52905e0915e65a4b2b55ee13d7020a0a7ea03abcb5651b0b84459656691bb339ef20748022c2bafdb643bb0df56235b -DIST zfs-2.3.8.tar.gz 34456706 BLAKE2B 74b3270d5daddfcb46947564aa544859247ca5b6c3298f42c5bf4554f717b14f99fafe230e6c0c62d1fd295203c38c29440dcf2204b55b4bcdf615f01221f410 SHA512 4a993588505259eccb99ff9b763eb4ebf92045fa18b528d308ca8f8f9e74effc7df53f80d0e31520f2353726baa531821dc02288115835eb557f4948b36d986f -DIST zfs-2.3.8.tar.gz.asc 858 BLAKE2B 269ee57e28ccbadebd6e7c17d4400adee8387235a53422c05acdf2646fda42a2a7b3598cbeb30f84b66b5a3b0dbc23458c806904f477579b7107204e3dd46ce7 SHA512 a8c644e70bf591223dc653086684bca8ebf3db54531254612e6b274118905789005fe17f3d00ac42aebc4af734584e792e279bdf803be97c274fb61ff9586987 DIST zfs-2.3.9.tar.gz 34453599 BLAKE2B ef2ed180aedf97578b6bf71181305ff71cda44ed859a8fa7e79156a17d35db1c89a6453e27a43910532312227dfdc645c447ff7ed1595c4a5d6376edeee38437 SHA512 2d659ebcfeb5f8a84e04dd99ff8206473f0582efa61117288e2928e2e01437a1e0e7a6aea3bf2d58c3b79f810ce0708fef61f915e379bfbf922b15ed8cba00e6 DIST zfs-2.3.9.tar.gz.asc 858 BLAKE2B a89c06c0c30455b4c0479250f7bb39802c39eaa54f257eae1f2fc36c534bfc6eedd3d91ce583bf0368bb7bdc377f8b90e66e14dc1672fccb7506909080aba088 SHA512 3b4a99349901ef0c4490322a86ff2abc5e7eb0529d7a627a37f2f3579edc3ecf8ae862e5f51fef05f6c46a2dda6ab890aacd3ffac60a87e6509c2ce541808012 diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/zfs-kmod/files/2.4.2-gcc16-earlyclobber-fix.patch b/sdk_container/src/third_party/portage-stable/sys-fs/zfs-kmod/files/2.4.2-gcc16-earlyclobber-fix.patch deleted file mode 100644 index 3a2421c1dec..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-fs/zfs-kmod/files/2.4.2-gcc16-earlyclobber-fix.patch +++ /dev/null @@ -1,68 +0,0 @@ -From be04f4acfa83261571dad5c9c4bfda9fe38063ff Mon Sep 17 00:00:00 2001 -From: Brian Behlendorf -Date: Wed, 13 May 2026 17:55:23 +0000 -Subject: [PATCH] Fix aarch64 build failure by removing earlyclobber -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -The UVR macros used "+&w" (read-write + earlyclobber) as the -constraint for NEON register operands that are declared as explicit -hard-register variables via: - -register unsigned char wN asm("vN") __attribute__((vector_size(16))); - -The + modifier implicitly makes the operand also an input (reading the -register before the asm runs). The & (earlyclobber) modifier says "this -output may be written before all inputs are consumed." Having an -earlyclobber output on the same hard-register that is simultaneously -an input is a contradiction — GCC 16 now strictly diagnoses this. - -The fix removes the & from "+&w", yielding "+w". The earlyclobber -was both incorrect (contradicts the implicit input) and unnecessary -(the physical registers are already hard-bound, so the compiler has no -freedom to assign conflicting registers anyway). - -Co-Authored-by: Claude Sonnet 4.6 -Signed-off-by: Brian Behlendorf -Issue #18525 ---- - .../zfs/vdev_raidz_math_aarch64_neon_common.h | 18 +++++++++--------- - 1 file changed, 9 insertions(+), 9 deletions(-) - -diff --git a/module/zfs/vdev_raidz_math_aarch64_neon_common.h b/module/zfs/vdev_raidz_math_aarch64_neon_common.h -index 1ec4d0218bb0..3c3370290c88 100644 ---- a/module/zfs/vdev_raidz_math_aarch64_neon_common.h -+++ b/module/zfs/vdev_raidz_math_aarch64_neon_common.h -@@ -102,14 +102,14 @@ - - #define WVR(X) [w##X] "=w" (w##X) - --#define UVR0_(REG, ...) [w##REG] "+&w" (w##REG) --#define UVR1_(_1, REG, ...) [w##REG] "+&w" (w##REG) --#define UVR2_(_1, _2, REG, ...) [w##REG] "+&w" (w##REG) --#define UVR3_(_1, _2, _3, REG, ...) [w##REG] "+&w" (w##REG) --#define UVR4_(_1, _2, _3, _4, REG, ...) [w##REG] "+&w" (w##REG) --#define UVR5_(_1, _2, _3, _4, _5, REG, ...) [w##REG] "+&w" (w##REG) --#define UVR6_(_1, _2, _3, _4, _5, _6, REG, ...) [w##REG] "+&w" (w##REG) --#define UVR7_(_1, _2, _3, _4, _5, _6, _7, REG, ...) [w##REG] "+&w" (w##REG) -+#define UVR0_(REG, ...) [w##REG] "+w" (w##REG) -+#define UVR1_(_1, REG, ...) [w##REG] "+w" (w##REG) -+#define UVR2_(_1, _2, REG, ...) [w##REG] "+w" (w##REG) -+#define UVR3_(_1, _2, _3, REG, ...) [w##REG] "+w" (w##REG) -+#define UVR4_(_1, _2, _3, _4, REG, ...) [w##REG] "+w" (w##REG) -+#define UVR5_(_1, _2, _3, _4, _5, REG, ...) [w##REG] "+w" (w##REG) -+#define UVR6_(_1, _2, _3, _4, _5, _6, REG, ...) [w##REG] "+w" (w##REG) -+#define UVR7_(_1, _2, _3, _4, _5, _6, _7, REG, ...) [w##REG] "+w" (w##REG) - - #define UVR0(r...) UVR0_(r) - #define UVR1(r...) UVR1_(r) -@@ -120,7 +120,7 @@ - #define UVR6(r...) UVR6_(r, 36, 35, 34, 33, 32, 31) - #define UVR7(r...) UVR7_(r, 36, 35, 34, 33, 32, 31, 30) - --#define UVR(X) [w##X] "+&w" (w##X) -+#define UVR(X) [w##X] "+w" (w##X) - - #define R_01(REG1, REG2, ...) REG1, REG2 - #define _R_23(_0, _1, REG2, REG3, ...) REG2, REG3 diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/zfs-kmod/files/zfs-kmod-2.3.3-bdev-interface.patch b/sdk_container/src/third_party/portage-stable/sys-fs/zfs-kmod/files/zfs-kmod-2.3.3-bdev-interface.patch deleted file mode 100644 index 61ec9a7e02b..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-fs/zfs-kmod/files/zfs-kmod-2.3.3-bdev-interface.patch +++ /dev/null @@ -1,60 +0,0 @@ -From 9acedbaceec362d08a33ebfe7c4c7efcee81d094 Mon Sep 17 00:00:00 2001 -From: Brian Behlendorf -Date: Tue, 2 Sep 2025 09:34:08 -0700 -Subject: [PATCH] config: Fix LLVM-21 -Wuninitialized-const-pointer warning - -LLVM-21 enables -Wuninitialized-const-pointer which results in the -following compiler warning and the bdev_file_open_by_path() interface -not being detected for 6.9 and newer kernels. The blk_holder_ops -are not used by the ZFS code so we can safely use a NULL argument -for this check. - - bdev_file_open_by_path/bdev_file_open_by_path.c:110:54: error: - variable 'h' is uninitialized when passed as a const pointer - argument here [-Werror,-Wuninitialized-const-pointer] - -Reviewed-by: Rob Norris -Signed-off-by: Brian Behlendorf -Closes #17682 -Closes #17684 ---- - config/kernel-blkdev.m4 | 9 +++------ - 1 file changed, 3 insertions(+), 6 deletions(-) - -diff --git a/config/kernel-blkdev.m4 b/config/kernel-blkdev.m4 -index 83190c6fbe3f..02011bf39fb2 100644 ---- a/config/kernel-blkdev.m4 -+++ b/config/kernel-blkdev.m4 -@@ -29,9 +29,8 @@ AC_DEFUN([ZFS_AC_KERNEL_SRC_BLKDEV_GET_BY_PATH_4ARG], [ - const char *path = "path"; - fmode_t mode = 0; - void *holder = NULL; -- struct blk_holder_ops h; - -- bdev = blkdev_get_by_path(path, mode, holder, &h); -+ bdev = blkdev_get_by_path(path, mode, holder, NULL); - ]) - ]) - -@@ -48,9 +47,8 @@ AC_DEFUN([ZFS_AC_KERNEL_SRC_BLKDEV_BDEV_OPEN_BY_PATH], [ - const char *path = "path"; - fmode_t mode = 0; - void *holder = NULL; -- struct blk_holder_ops h; - -- bdh = bdev_open_by_path(path, mode, holder, &h); -+ bdh = bdev_open_by_path(path, mode, holder, NULL); - ]) - ]) - -@@ -68,9 +66,8 @@ AC_DEFUN([ZFS_AC_KERNEL_SRC_BDEV_FILE_OPEN_BY_PATH], [ - const char *path = "path"; - fmode_t mode = 0; - void *holder = NULL; -- struct blk_holder_ops h; - -- file = bdev_file_open_by_path(path, mode, holder, &h); -+ file = bdev_file_open_by_path(path, mode, holder, NULL); - ]) - ]) - diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/zfs-kmod/zfs-kmod-2.1.16.ebuild b/sdk_container/src/third_party/portage-stable/sys-fs/zfs-kmod/zfs-kmod-2.1.16.ebuild deleted file mode 100644 index 35c9a503ac8..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-fs/zfs-kmod/zfs-kmod-2.1.16.ebuild +++ /dev/null @@ -1,167 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -MODULES_INITRAMFS_IUSE=+initramfs -inherit autotools flag-o-matic linux-mod-r1 multiprocessing - -DESCRIPTION="Linux ZFS kernel module for sys-fs/zfs" -HOMEPAGE="https://github.com/openzfs/zfs" - -MODULES_KERNEL_MAX=6.7 -MODULES_KERNEL_MIN=3.10 - -if [[ ${PV} == 9999 ]] ; then - EGIT_REPO_URI="https://github.com/openzfs/zfs.git" - inherit git-r3 - unset MODULES_KERNEL_MAX -else - VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/openzfs.asc - inherit verify-sig - - MY_PV=${PV/_rc/-rc} - SRC_URI="https://github.com/openzfs/zfs/releases/download/zfs-${MY_PV}/zfs-${MY_PV}.tar.gz" - SRC_URI+=" verify-sig? ( https://github.com/openzfs/zfs/releases/download/zfs-${MY_PV}/zfs-${MY_PV}.tar.gz.asc )" - S="${WORKDIR}/zfs-${PV%_rc?}" - - ZFS_KERNEL_COMPAT="${MODULES_KERNEL_MAX}" - # Increments minor eg 5.14 -> 5.15, and still supports override. - ZFS_KERNEL_DEP="${ZFS_KERNEL_COMPAT_OVERRIDE:-${ZFS_KERNEL_COMPAT}}" - ZFS_KERNEL_DEP="${ZFS_KERNEL_DEP%%.*}.$(( ${ZFS_KERNEL_DEP##*.} + 1))" - - if [[ ${PV} != *_rc* ]] ; then - KEYWORDS="amd64 arm64 ppc64 ~riscv ~sparc" - fi -fi - -LICENSE="CDDL MIT debug? ( GPL-2+ )" -SLOT="0/${PVR}" -IUSE="custom-cflags debug +rootfs" -RESTRICT="test" - -BDEPEND=" - dev-lang/perl - app-alternatives/awk -" - -if [[ ${PV} != 9999 ]] ; then - BDEPEND+=" verify-sig? ( sec-keys/openpgp-keys-openzfs )" - - IUSE+=" +dist-kernel-cap" - RDEPEND=" - dist-kernel-cap? ( dist-kernel? ( - 5.15, and still supports override. - ZFS_KERNEL_DEP="${ZFS_KERNEL_COMPAT_OVERRIDE:-${ZFS_KERNEL_COMPAT}}" - ZFS_KERNEL_DEP="${ZFS_KERNEL_DEP%%.*}.$(( ${ZFS_KERNEL_DEP##*.} + 1))" - - if [[ ${PV} != *_rc* ]] ; then - KEYWORDS="~amd64 ~arm64 ~loong ~ppc64 ~riscv ~sparc" - fi -fi - -LICENSE="CDDL MIT debug? ( GPL-2+ )" -SLOT="0/${PVR}" -IUSE="custom-cflags debug +rootfs" -RESTRICT="test" - -BDEPEND=" - app-alternatives/awk - dev-lang/perl -" - -if [[ ${PV} != 9999 ]] ; then - BDEPEND+=" verify-sig? ( sec-keys/openpgp-keys-openzfs )" - - IUSE+=" +dist-kernel-cap" - RDEPEND=" - dist-kernel-cap? ( dist-kernel? ( - 5.15, and still supports override. - ZFS_KERNEL_DEP="${ZFS_KERNEL_COMPAT_OVERRIDE:-${ZFS_KERNEL_COMPAT}}" - ZFS_KERNEL_DEP="${ZFS_KERNEL_DEP%%.*}.$(( ${ZFS_KERNEL_DEP##*.} + 1))" - - if [[ ${PV} != *_rc* ]] ; then - KEYWORDS="amd64 arm64 ~loong ppc64 ~riscv ~sparc" - fi -fi - -LICENSE="CDDL MIT debug? ( GPL-2+ )" -SLOT="0/${PVR}" -IUSE="custom-cflags debug +rootfs" -RESTRICT="test" - -BDEPEND=" - app-alternatives/awk - dev-lang/perl -" - -if [[ ${PV} != 9999 ]] ; then - BDEPEND+=" verify-sig? ( sec-keys/openpgp-keys-openzfs )" - - IUSE+=" +dist-kernel-cap" - RDEPEND=" - dist-kernel-cap? ( dist-kernel? ( - 5.15, and still supports override. - ZFS_KERNEL_DEP="${ZFS_KERNEL_COMPAT_OVERRIDE:-${ZFS_KERNEL_COMPAT}}" - ZFS_KERNEL_DEP="${ZFS_KERNEL_DEP%%.*}.$(( ${ZFS_KERNEL_DEP##*.} + 1))" - - if [[ ${PV} != *_rc* ]] ; then - KEYWORDS="~amd64 ~arm64 ~loong ~ppc64 ~riscv ~sparc" - fi -fi - -LICENSE="CDDL MIT debug? ( GPL-2+ )" -SLOT="0/${PVR}" -IUSE="custom-cflags debug +rootfs" -RESTRICT="test" - -BDEPEND=" - app-alternatives/awk - dev-lang/perl -" - -if [[ ${PV} != 9999 ]] ; then - BDEPEND+=" verify-sig? ( sec-keys/openpgp-keys-openzfs )" - - IUSE+=" +dist-kernel-cap" - RDEPEND=" - dist-kernel-cap? ( dist-kernel? ( - 5.15, and still supports override. - ZFS_KERNEL_DEP="${ZFS_KERNEL_COMPAT_OVERRIDE:-${ZFS_KERNEL_COMPAT}}" - ZFS_KERNEL_DEP="${ZFS_KERNEL_DEP%%.*}.$(( ${ZFS_KERNEL_DEP##*.} + 1))" - - if [[ ${PV} != *_rc* ]] ; then - KEYWORDS="amd64 arm64 ~loong ppc64 ~riscv ~sparc" - fi -fi - -LICENSE="CDDL MIT debug? ( GPL-2+ )" -SLOT="0/${PVR}" -IUSE="custom-cflags debug +rootfs" -RESTRICT="test" - -BDEPEND=" - app-alternatives/awk - dev-lang/perl -" - -if [[ ${PV} != 9999 ]] ; then - BDEPEND+=" verify-sig? ( sec-keys/openpgp-keys-openzfs )" - - IUSE+=" +dist-kernel-cap" - RDEPEND=" - dist-kernel-cap? ( dist-kernel? ( - 5.15, and still supports override. - ZFS_KERNEL_DEP="${ZFS_KERNEL_COMPAT_OVERRIDE:-${ZFS_KERNEL_COMPAT}}" - ZFS_KERNEL_DEP="${ZFS_KERNEL_DEP%%.*}.$(( ${ZFS_KERNEL_DEP##*.} + 1))" - - if [[ ${PV} != *_rc* ]] ; then - KEYWORDS="amd64 arm64 ~loong ppc64 ~riscv ~sparc" - fi -fi - -LICENSE="CDDL MIT debug? ( GPL-2+ )" -SLOT="0/${PVR}" -IUSE="custom-cflags debug +rootfs" -RESTRICT="test" - -BDEPEND=" - app-alternatives/awk - dev-lang/perl -" - -if [[ ${PV} != 9999 ]] ; then - BDEPEND+=" verify-sig? ( sec-keys/openpgp-keys-openzfs )" - - IUSE+=" +dist-kernel-cap" - RDEPEND=" - dist-kernel-cap? ( dist-kernel? ( - 5.15, and still supports override. - ZFS_KERNEL_DEP="${ZFS_KERNEL_COMPAT_OVERRIDE:-${ZFS_KERNEL_COMPAT}}" - ZFS_KERNEL_DEP="${ZFS_KERNEL_DEP%%.*}.$(( ${ZFS_KERNEL_DEP##*.} + 1))" - - if [[ ${PV} != *_rc* ]] ; then - KEYWORDS="~amd64 ~arm64 ~loong ~ppc64 ~riscv ~sparc" - fi -fi - -LICENSE="CDDL MIT debug? ( GPL-2+ )" -SLOT="0/${PVR}" -IUSE="custom-cflags debug +rootfs" -RESTRICT="test" - -BDEPEND=" - app-alternatives/awk - dev-lang/perl -" - -if [[ ${PV} != 9999 ]] ; then - BDEPEND+=" verify-sig? ( sec-keys/openpgp-keys-openzfs )" - - IUSE+=" +dist-kernel-cap" - RDEPEND=" - dist-kernel-cap? ( dist-kernel? ( - 5.15, and still supports override. - ZFS_KERNEL_DEP="${ZFS_KERNEL_COMPAT_OVERRIDE:-${ZFS_KERNEL_COMPAT}}" - ZFS_KERNEL_DEP="${ZFS_KERNEL_DEP%%.*}.$(( ${ZFS_KERNEL_DEP##*.} + 1))" - - if [[ ${PV} != *_rc* ]] ; then - KEYWORDS="~amd64 ~arm64 ~loong ~ppc64 ~riscv ~sparc" - fi -fi - -LICENSE="CDDL MIT debug? ( GPL-2+ )" -SLOT="0/${PVR}" -IUSE="custom-cflags debug +rootfs" -RESTRICT="test" - -BDEPEND=" - app-alternatives/awk - dev-lang/perl -" - -if [[ ${PV} != 9999 ]] ; then - BDEPEND+=" verify-sig? ( sec-keys/openpgp-keys-openzfs )" - - IUSE+=" +dist-kernel-cap" - RDEPEND=" - dist-kernel-cap? ( dist-kernel? ( - -Date: Thu, 30 Jun 2022 13:47:58 -0400 -Subject: [PATCH] dracut: fix boot on non-zfs-root systems - -Simply prevent overwriting root until it needs to be overwritten. - -Dracut could change this value before this module is called, but won't -change the kernel command line. - -Reviewed-by: Andrew J. Hesford -Signed-off-by: Toyam Cox -Closes #13592 ---- - contrib/dracut/90zfs/zfs-lib.sh.in | 10 +++++----- - 1 file changed, 5 insertions(+), 5 deletions(-) - -diff --git a/contrib/dracut/90zfs/zfs-lib.sh.in b/contrib/dracut/90zfs/zfs-lib.sh.in -index e44673c2d75..3a43e514d6f 100755 ---- a/contrib/dracut/90zfs/zfs-lib.sh.in -+++ b/contrib/dracut/90zfs/zfs-lib.sh.in -@@ -88,11 +88,11 @@ decode_root_args() { - return - fi - -- root=$(getarg root=) -+ xroot=$(getarg root=) - rootfstype=$(getarg rootfstype=) - - # shellcheck disable=SC2249 -- case "$root" in -+ case "$xroot" in - ""|zfs|zfs:|zfs:AUTO) - root=zfs:AUTO - rootfstype=zfs -@@ -100,7 +100,7 @@ decode_root_args() { - ;; - - ZFS=*|zfs:*) -- root="${root#zfs:}" -+ root="${xroot#zfs:}" - root="${root#ZFS=}" - root=$(echo "$root" | tr '+' ' ') - rootfstype=zfs -@@ -109,9 +109,9 @@ decode_root_args() { - esac - - if [ "$rootfstype" = "zfs" ]; then -- case "$root" in -+ case "$xroot" in - "") root=zfs:AUTO ;; -- *) root=$(echo "$root" | tr '+' ' ') ;; -+ *) root=$(echo "$xroot" | tr '+' ' ') ;; - esac - return 0 - fi - diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/zfs/files/2.2.9-nfs-truncate-shares.patch b/sdk_container/src/third_party/portage-stable/sys-fs/zfs/files/2.2.9-nfs-truncate-shares.patch deleted file mode 100644 index 2dd5f5da2ba..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-fs/zfs/files/2.2.9-nfs-truncate-shares.patch +++ /dev/null @@ -1,74 +0,0 @@ -From 41e55b476bcfc90f1ad81c02c5375367fdace9e9 Mon Sep 17 00:00:00 2001 -From: siv0 -Date: Tue, 31 Oct 2023 21:57:54 +0100 -Subject: [PATCH] Fix nfs_truncate_shares without /etc/exports.d - -Calling nfs_reset_shares on Linux prints a warning: -`failed to lock /etc/exports.d/zfs.exports.lock: No such file or -directory` -when /etc/exports.d does not exist. The directory gets created, when a -filesystem is actually exported through nfs_toggle_share and -nfs_init_share. The truncation of /etc/exports.d/zfs.exports happens -unconditionally when calling `zfs mount -a` (via zfs_do_mount and -share_mount in `cmd/zfs/zfs_main.c`). - -Fixing the issue only in the Linux part, since the exports file on -freebsd is in `/etc/zfs/`, which seems present on 2 FreeBSD systems I -have access to (through `/etc/zfs/compatibility.d/`), while a Debian -box does not have the directory even if `/usr/sbin/exportfs` is -present through the `nfs-kernel-server` package. - -The code for exports_available is copied from nfs_available above. - -Fixes: ede037cda73675f42b1452187e8dd3438fafc220 -("Make zfs-share service resilient to stale exports") - -Reviewed-by: Brian Atkinson -Reviewed-by: Brian Behlendorf -Signed-off-by: Stoiko Ivanov -Closes #15369 -Closes #15468 ---- - lib/libshare/os/linux/nfs.c | 18 ++++++++++++++++++ - 1 file changed, 18 insertions(+) - -diff --git a/lib/libshare/os/linux/nfs.c b/lib/libshare/os/linux/nfs.c -index 004946b0cfe4..3dce818400fc 100644 ---- a/lib/libshare/os/linux/nfs.c -+++ b/lib/libshare/os/linux/nfs.c -@@ -47,6 +47,7 @@ - - - static boolean_t nfs_available(void); -+static boolean_t exports_available(void); - - typedef int (*nfs_shareopt_callback_t)(const char *opt, const char *value, - void *cookie); -@@ -539,6 +540,8 @@ nfs_commit_shares(void) - static void - nfs_truncate_shares(void) - { -+ if (!exports_available()) -+ return; - nfs_reset_shares(ZFS_EXPORTS_LOCK, ZFS_EXPORTS_FILE); - } - -@@ -566,3 +569,18 @@ nfs_available(void) - - return (avail == 1); - } -+ -+static boolean_t -+exports_available(void) -+{ -+ static int avail; -+ -+ if (!avail) { -+ if (access(ZFS_EXPORTS_DIR, F_OK) != 0) -+ avail = -1; -+ else -+ avail = 1; -+ } -+ -+ return (avail == 1); -+} diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/zfs/files/2.3.4-musl.patch b/sdk_container/src/third_party/portage-stable/sys-fs/zfs/files/2.3.4-musl.patch deleted file mode 100644 index 1b2a4d63d27..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-fs/zfs/files/2.3.4-musl.patch +++ /dev/null @@ -1,80 +0,0 @@ -https://github.com/openzfs/zfs/pull/17675 -https://bugs.gentoo.org/962045 - -From 0f90c740b0264512cd1eea611a3c3571fb68d9c7 Mon Sep 17 00:00:00 2001 -From: classabbyamp -Date: Wed, 27 Aug 2025 09:14:55 -0400 -Subject: [PATCH] linux: use sys/stat.h instead of linux/stat.h - -glibc includes linux/stat.h for statx, but musl defines its own statx -struct and associated constants, which does not include STATX_MNT_ID -yet. Thus, including linux/stat.h directly should be avoided for -maximum libc compatibility. - -Tested on: - - glibc: x86_64, i686, aarch64, armv7l, armv6l - - musl: x86_64, aarch64, armv7l, armv6l - -Signed-off-by: classabbyamp ---- - config/user-statx.m4 | 6 +++--- - include/os/linux/spl/sys/stat.h | 2 +- - lib/libspl/include/os/linux/sys/stat.h | 2 +- - 3 files changed, 5 insertions(+), 5 deletions(-) - -diff --git a/config/user-statx.m4 b/config/user-statx.m4 -index 0315f93e0c20..1ba74a40e9b8 100644 ---- a/config/user-statx.m4 -+++ b/config/user-statx.m4 -@@ -2,7 +2,7 @@ dnl # - dnl # Check for statx() function and STATX_MNT_ID availability - dnl # - AC_DEFUN([ZFS_AC_CONFIG_USER_STATX], [ -- AC_CHECK_HEADERS([linux/stat.h], -+ AC_CHECK_HEADERS([sys/stat.h], - [have_stat_headers=yes], - [have_stat_headers=no]) - -@@ -14,7 +14,7 @@ AC_DEFUN([ZFS_AC_CONFIG_USER_STATX], [ - AC_MSG_CHECKING([for STATX_MNT_ID]) - AC_COMPILE_IFELSE([ - AC_LANG_PROGRAM([[ -- #include -+ #include - ]], [[ - struct statx stx; - int mask = STATX_MNT_ID; -@@ -29,6 +29,6 @@ AC_DEFUN([ZFS_AC_CONFIG_USER_STATX], [ - ]) - ]) - ], [ -- AC_MSG_WARN([linux/stat.h not found; skipping statx support]) -+ AC_MSG_WARN([sys/stat.h not found; skipping statx support]) - ]) - ]) dnl end AC_DEFUN -diff --git a/include/os/linux/spl/sys/stat.h b/include/os/linux/spl/sys/stat.h -index 087389b57b34..ad2815e46394 100644 ---- a/include/os/linux/spl/sys/stat.h -+++ b/include/os/linux/spl/sys/stat.h -@@ -25,6 +25,6 @@ - #ifndef _SPL_STAT_H - #define _SPL_STAT_H - --#include -+#include - - #endif /* SPL_STAT_H */ -diff --git a/lib/libspl/include/os/linux/sys/stat.h b/lib/libspl/include/os/linux/sys/stat.h -index a605af962a6d..13cc0b46ac93 100644 ---- a/lib/libspl/include/os/linux/sys/stat.h -+++ b/lib/libspl/include/os/linux/sys/stat.h -@@ -33,7 +33,7 @@ - - #ifdef HAVE_STATX - #include --#include -+#include - #endif - - /* - diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/zfs/files/2.4.2-gcc16-earlyclobber-fix.patch b/sdk_container/src/third_party/portage-stable/sys-fs/zfs/files/2.4.2-gcc16-earlyclobber-fix.patch deleted file mode 100644 index 3a2421c1dec..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-fs/zfs/files/2.4.2-gcc16-earlyclobber-fix.patch +++ /dev/null @@ -1,68 +0,0 @@ -From be04f4acfa83261571dad5c9c4bfda9fe38063ff Mon Sep 17 00:00:00 2001 -From: Brian Behlendorf -Date: Wed, 13 May 2026 17:55:23 +0000 -Subject: [PATCH] Fix aarch64 build failure by removing earlyclobber -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -The UVR macros used "+&w" (read-write + earlyclobber) as the -constraint for NEON register operands that are declared as explicit -hard-register variables via: - -register unsigned char wN asm("vN") __attribute__((vector_size(16))); - -The + modifier implicitly makes the operand also an input (reading the -register before the asm runs). The & (earlyclobber) modifier says "this -output may be written before all inputs are consumed." Having an -earlyclobber output on the same hard-register that is simultaneously -an input is a contradiction — GCC 16 now strictly diagnoses this. - -The fix removes the & from "+&w", yielding "+w". The earlyclobber -was both incorrect (contradicts the implicit input) and unnecessary -(the physical registers are already hard-bound, so the compiler has no -freedom to assign conflicting registers anyway). - -Co-Authored-by: Claude Sonnet 4.6 -Signed-off-by: Brian Behlendorf -Issue #18525 ---- - .../zfs/vdev_raidz_math_aarch64_neon_common.h | 18 +++++++++--------- - 1 file changed, 9 insertions(+), 9 deletions(-) - -diff --git a/module/zfs/vdev_raidz_math_aarch64_neon_common.h b/module/zfs/vdev_raidz_math_aarch64_neon_common.h -index 1ec4d0218bb0..3c3370290c88 100644 ---- a/module/zfs/vdev_raidz_math_aarch64_neon_common.h -+++ b/module/zfs/vdev_raidz_math_aarch64_neon_common.h -@@ -102,14 +102,14 @@ - - #define WVR(X) [w##X] "=w" (w##X) - --#define UVR0_(REG, ...) [w##REG] "+&w" (w##REG) --#define UVR1_(_1, REG, ...) [w##REG] "+&w" (w##REG) --#define UVR2_(_1, _2, REG, ...) [w##REG] "+&w" (w##REG) --#define UVR3_(_1, _2, _3, REG, ...) [w##REG] "+&w" (w##REG) --#define UVR4_(_1, _2, _3, _4, REG, ...) [w##REG] "+&w" (w##REG) --#define UVR5_(_1, _2, _3, _4, _5, REG, ...) [w##REG] "+&w" (w##REG) --#define UVR6_(_1, _2, _3, _4, _5, _6, REG, ...) [w##REG] "+&w" (w##REG) --#define UVR7_(_1, _2, _3, _4, _5, _6, _7, REG, ...) [w##REG] "+&w" (w##REG) -+#define UVR0_(REG, ...) [w##REG] "+w" (w##REG) -+#define UVR1_(_1, REG, ...) [w##REG] "+w" (w##REG) -+#define UVR2_(_1, _2, REG, ...) [w##REG] "+w" (w##REG) -+#define UVR3_(_1, _2, _3, REG, ...) [w##REG] "+w" (w##REG) -+#define UVR4_(_1, _2, _3, _4, REG, ...) [w##REG] "+w" (w##REG) -+#define UVR5_(_1, _2, _3, _4, _5, REG, ...) [w##REG] "+w" (w##REG) -+#define UVR6_(_1, _2, _3, _4, _5, _6, REG, ...) [w##REG] "+w" (w##REG) -+#define UVR7_(_1, _2, _3, _4, _5, _6, _7, REG, ...) [w##REG] "+w" (w##REG) - - #define UVR0(r...) UVR0_(r) - #define UVR1(r...) UVR1_(r) -@@ -120,7 +120,7 @@ - #define UVR6(r...) UVR6_(r, 36, 35, 34, 33, 32, 31) - #define UVR7(r...) UVR7_(r, 36, 35, 34, 33, 32, 31, 30) - --#define UVR(X) [w##X] "+&w" (w##X) -+#define UVR(X) [w##X] "+w" (w##X) - - #define R_01(REG1, REG2, ...) REG1, REG2 - #define _R_23(_0, _1, REG2, REG3, ...) REG2, REG3 diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/zfs/files/2.4.2-properly_apply_ro_rw_mount_option_to_superblock.patch b/sdk_container/src/third_party/portage-stable/sys-fs/zfs/files/2.4.2-properly_apply_ro_rw_mount_option_to_superblock.patch deleted file mode 100644 index b29d1e741c0..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-fs/zfs/files/2.4.2-properly_apply_ro_rw_mount_option_to_superblock.patch +++ /dev/null @@ -1,566 +0,0 @@ -From dbbef111623ff38efdb0fabcb26848c7a7c08789 Mon Sep 17 00:00:00 2001 -From: Rob Norris -Date: Tue, 19 May 2026 12:50:39 +1000 -Subject: [PATCH 1/3] ZTS/zfs_mount: lift & update helpers from - zfs_mount_remount - -zfs_mount_remount has some nice helpers for checking the claimed and -actual read-only/read-write state of a mount. I wanted to use them for -another test but they weren't exactly what I wanted. - -This adds separate functions for the different kinds of mounts the -zfs_mount_remount test wants to use, mostly to avoid the assymetry of -sometimes calling a helper function and sometimes doing it direct. It -also separates the code to get the current ro/rw mount option from -actually asserting it. - -Test has been updated to use the new functions, but the logic and -structure has not changed. - -Sponsored-by: TrueNAS -Signed-off-by: Rob Norris ---- - .../cli_root/zfs_mount/zfs_mount.kshlib | 128 ++++++++++++++++++ - .../cli_root/zfs_mount/zfs_mount_remount.ksh | 103 ++++---------- - 2 files changed, 156 insertions(+), 75 deletions(-) - -diff --git a/tests/zfs-tests/tests/functional/cli_root/zfs_mount/zfs_mount.kshlib b/tests/zfs-tests/tests/functional/cli_root/zfs_mount/zfs_mount.kshlib -index 08795a7ea257..5d7ceb971123 100644 ---- a/tests/zfs-tests/tests/functional/cli_root/zfs_mount/zfs_mount.kshlib -+++ b/tests/zfs-tests/tests/functional/cli_root/zfs_mount/zfs_mount.kshlib -@@ -27,6 +27,8 @@ - - # - # Copyright (c) 2017 by Delphix. All rights reserved. -+# Copyright 2017, loli10K . All rights reserved. -+# Copyright (c) 2026, TrueNAS. - # - - . $STF_SUITE/include/libtest.shlib -@@ -131,3 +133,129 @@ function verify_mount_display - done - return 0 - } -+ -+# Helper functions to call the system mount(8) with various options -+function mount_default # -+{ -+ typeset opts= -+ if is_freebsd; then -+ opts="-t zfs" -+ else -+ opts="-t zfs" -+ fi -+ -+ mount $opts "$@" -+ return $? -+} -+ -+function mount_ro # -+{ -+ typeset opts= -+ if is_freebsd; then -+ opts="-t zfs -r" -+ else -+ opts="-t zfs -o ro" -+ fi -+ -+ mount $opts "$@" -+ return $? -+} -+ -+function mount_rw # -+{ -+ typeset opts= -+ if is_freebsd; then -+ opts="-t zfs -w" -+ else -+ opts="-t zfs -o rw" -+ fi -+ -+ mount $opts "$@" -+ return $? -+} -+ -+function remount_ro # -+{ -+ typeset opts= -+ if is_freebsd; then -+ opts="-t zfs -ur" -+ else -+ opts="-o remount,ro" -+ fi -+ -+ mount $opts "$@" -+ return $? -+} -+ -+function remount_rw # -+{ -+ typeset opts= -+ if is_freebsd; then -+ opts="-t zfs -uw" -+ else -+ opts="-o remount,rw" -+ fi -+ -+ mount $opts "$@" -+ return $? -+} -+ -+# -+# Verify that $mountpoint is mounted readonly -+# This is preferred over "log_mustnot touch $fs" because we actually want to -+# verify the error returned is EROFS -+# -+function mount_is_ro # mountpoint -+{ -+ typeset mountpoint="$1" -+ -+ file_write -o create -f $mountpoint/file.dat -+ ret=$? -+ if [[ $ret != 30 ]]; then -+ log_fail "Writing to $mountpoint did not return EROFS ($ret)." -+ fi -+} -+ -+function mount_is_rw # mountpoint -+{ -+ typeset mountpoint="$1" -+ log_must touch $mountpoint/file.dat -+} -+ -+# Get the read-only/read-write option for $mountpoint -+# Prints either "ro" or "rw", or nothing if $mountpoint is not in the mount -+# table, or is not a ZFS mount. -+function mount_get_ro_rw # mountpoint -+{ -+ typeset mountpoint="$1" -+ -+ if is_freebsd; then -+ # tank/hello /tank/hello zfs rw,nfsv4acls 0 0 -+ mount -p | \ -+ awk -v mountpoint="$mountpoint" ' -+ $2 != mountpoint || $3 != "zfs" { next } -+ $4 ~ /(^|,)ro(,|$)/ { print "ro" } -+ $4 ~ /(^|,)rw(,|$)/ { print "rw" }' -+ else -+ # tank/hello /tank/hello zfs rw,relatime,xattr,noacl,casesensitive 0 0 -+ awk -v mountpoint="$mountpoint" ' -+ $2 != mountpoint || $3 != "zfs" { next } -+ $4 ~ /(^|,)ro(,|$)/ { print "ro" } -+ $4 ~ /(^|,)rw(,|$)/ { print "rw" }' /proc/mounts -+ fi -+} -+ -+# Verify that $mountpoint is mounted with a "read-only" option -+function mount_has_ro_option # mountpoint -+{ -+ typeset ropt=$(mount_get_ro_rw "$1") -+ log_must test $ropt == "ro" -+} -+ -+# Verify that $mountpoint is mounted with a "read-write" option -+function mount_has_rw_option # mountpoint -+{ -+ typeset ropt=$(mount_get_ro_rw "$1") -+ log_must test $ropt == "rw" -+} -+ -diff --git a/tests/zfs-tests/tests/functional/cli_root/zfs_mount/zfs_mount_remount.ksh b/tests/zfs-tests/tests/functional/cli_root/zfs_mount/zfs_mount_remount.ksh -index c54128f7b9e7..a16d17a12291 100755 ---- a/tests/zfs-tests/tests/functional/cli_root/zfs_mount/zfs_mount_remount.ksh -+++ b/tests/zfs-tests/tests/functional/cli_root/zfs_mount/zfs_mount_remount.ksh -@@ -23,6 +23,7 @@ - - # - # Copyright 2017, loli10K . All rights reserved. -+# Copyright (c) 2026, TrueNAS. - # - - . $STF_SUITE/include/libtest.shlib -@@ -54,54 +55,6 @@ function cleanup - return 0 - } - --if is_freebsd; then -- typeset RO="-t zfs -ur" -- typeset RW="-t zfs -uw" --else -- typeset RO="-o remount,ro" -- typeset RW="-o remount,rw" --fi -- --# --# Verify the $filesystem is mounted readonly --# This is preferred over "log_mustnot touch $fs" because we actually want to --# verify the error returned is EROFS --# --function readonlyfs # filesystem --{ -- typeset filesystem="$1" -- -- file_write -o create -f $filesystem/file.dat -- ret=$? -- if [[ $ret != 30 ]]; then -- log_fail "Writing to $filesystem did not return EROFS ($ret)." -- fi --} -- --# --# Verify $dataset is mounted with $option --# --function checkmount # dataset option --{ -- typeset dataset="$1" -- typeset option="$2" -- typeset options="" -- -- if is_freebsd; then -- options=$(mount -p | awk -v ds="$dataset" '$1 == ds { print $4 }') -- else -- options=$(awk -v ds="$dataset" '$1 == ds { print $4 }' /proc/mounts) -- fi -- if [[ "$options" == '' ]]; then -- log_fail "Dataset $dataset is not mounted" -- elif [[ ! -z "${options##*$option*}" ]]; then -- log_fail "Dataset $dataset is not mounted with expected "\ -- "option $option ($options)" -- else -- log_note "Dataset $dataset is mounted with option $option" -- fi --} -- - log_assert "Verify remount functionality on both filesystem and snapshots" - - log_onexit cleanup -@@ -117,35 +70,35 @@ MNTPSNAP="$TESTDIR/zfs_snap_mount" - log_must mkdir -p $MNTPSNAP - - # 2. Verify we can (re)mount the dataset readonly/read-write --log_must touch $MNTPFS/file.dat --checkmount $TESTFS 'rw' --log_must mount $RO $TESTFS $MNTPFS --readonlyfs $MNTPFS --checkmount $TESTFS 'ro' --log_must mount $RW $TESTFS $MNTPFS --log_must touch $MNTPFS/file.dat --checkmount $TESTFS 'rw' -+mount_is_rw $MNTPFS -+mount_has_rw_option $MNTPFS -+log_must remount_ro $TESTFS $MNTPFS -+mount_is_ro $MNTPFS -+mount_has_ro_option $MNTPFS -+log_must remount_rw $TESTFS $MNTPFS -+mount_is_rw $MNTPFS -+mount_has_rw_option $MNTPFS - - if is_linux; then - # 3. Verify we can (re)mount the snapshot readonly -- log_must mount -t zfs $TESTSNAP $MNTPSNAP -- readonlyfs $MNTPSNAP -- checkmount $TESTSNAP 'ro' -- log_must mount $RO $TESTSNAP $MNTPSNAP -- readonlyfs $MNTPSNAP -- checkmount $TESTSNAP 'ro' -+ log_must mount_default $TESTSNAP $MNTPSNAP -+ mount_is_ro $MNTPSNAP -+ mount_has_ro_option $MNTPSNAP -+ log_must remount_ro $TESTSNAP $MNTPSNAP -+ mount_is_ro $MNTPSNAP -+ mount_has_ro_option $MNTPSNAP - log_must umount $MNTPSNAP - fi - - # 4. Verify we can't remount a snapshot read-write - # The "mount -o rw" command will succeed but the snapshot is mounted readonly. - # The "mount -o remount,rw" command must fail with an explicit error. --log_must mount -t zfs -o rw $TESTSNAP $MNTPSNAP --readonlyfs $MNTPSNAP --checkmount $TESTSNAP 'ro' --log_mustnot mount $RW $TESTSNAP $MNTPSNAP --readonlyfs $MNTPSNAP --checkmount $TESTSNAP 'ro' -+log_must mount_rw $TESTSNAP $MNTPSNAP -+mount_is_ro $MNTPSNAP -+mount_has_ro_option $MNTPSNAP -+log_mustnot remount_rw $TESTSNAP $MNTPSNAP -+mount_is_ro $MNTPSNAP -+mount_has_ro_option $MNTPSNAP - log_must umount $MNTPSNAP - - # 5. Verify we can remount a dataset readonly and unmount it with -@@ -153,8 +106,8 @@ log_must umount $MNTPSNAP - log_must eval "echo 'password' | zfs create -o sync=disabled \ - -o encryption=on -o keyformat=passphrase $TESTFS/crypt" - CRYPT_MNTPFS="$(get_prop mountpoint $TESTFS/crypt)" --log_must touch $CRYPT_MNTPFS/file.dat --log_must mount $RO $TESTFS/crypt $CRYPT_MNTPFS -+mount_is_rw $CRYPT_MNTPFS -+log_must remount_ro $TESTFS/crypt $CRYPT_MNTPFS - log_must umount -f $CRYPT_MNTPFS - sync_pool $TESTPOOL - -@@ -163,10 +116,10 @@ log_must zpool export $TESTPOOL - log_must zpool import -o readonly=on $TESTPOOL - - # 7. Verify we can't remount its filesystem read-write --readonlyfs $MNTPFS --checkmount $TESTFS 'ro' --log_mustnot mount $RW $MNTPFS --readonlyfs $MNTPFS --checkmount $TESTFS 'ro' -+mount_is_ro $MNTPFS -+mount_has_ro_option $MNTPFS -+log_mustnot remount_rw $MNTPFS -+mount_is_ro $MNTPFS -+mount_has_ro_option $MNTPFS - - log_pass "Both filesystem and snapshots can be remounted correctly." - -From b8216fb774a831042c321d13ce748d455df82936 Mon Sep 17 00:00:00 2001 -From: Rob Norris -Date: Tue, 19 May 2026 14:27:12 +1000 -Subject: [PATCH 2/3] ZTS/zfs_mount: test that ro/rw mount methods remain - consistent - -Whether a mount ends up as read-only or read-write depends on a -combination of platform, readonly= filesystem property, mount method -(system mount(8) or zfs-mount(8)) and mount option provided (ro, rw or -none). - -This tests all combinations, and ensures they match what has -traditionally been expected on this platform, so we'll know if we -accidentally changed it. - -Sponsored-by: TrueNAS -Signed-off-by: Rob Norris ---- - tests/runfiles/common.run | 4 +- - tests/runfiles/sanity.run | 2 +- - tests/zfs-tests/tests/Makefile.am | 1 + - .../cli_root/zfs_mount/zfs_mount_ro_rw.ksh | 130 ++++++++++++++++++ - 4 files changed, 134 insertions(+), 3 deletions(-) - create mode 100755 tests/zfs-tests/tests/functional/cli_root/zfs_mount/zfs_mount_ro_rw.ksh - -diff --git a/tests/runfiles/common.run b/tests/runfiles/common.run -index 82a2d1e815e4..6e62b552a0db 100644 ---- a/tests/runfiles/common.run -+++ b/tests/runfiles/common.run -@@ -271,8 +271,8 @@ tests = ['zfs_mount_001_pos', 'zfs_mount_002_pos', 'zfs_mount_003_pos', - 'zfs_mount_004_pos', 'zfs_mount_005_pos', 'zfs_mount_007_pos', - 'zfs_mount_009_neg', 'zfs_mount_010_neg', 'zfs_mount_011_neg', - 'zfs_mount_012_pos', 'zfs_mount_all_001_pos', 'zfs_mount_encrypted', -- 'zfs_mount_remount', 'zfs_mount_all_fail', 'zfs_mount_all_mountpoints', -- 'zfs_mount_test_race', 'zfs_mount_recursive'] -+ 'zfs_mount_remount', 'zfs_mount_ro_rw', 'zfs_mount_all_fail', -+ 'zfs_mount_all_mountpoints', 'zfs_mount_test_race', 'zfs_mount_recursive'] - tags = ['functional', 'cli_root', 'zfs_mount'] - - [tests/functional/cli_root/zfs_program] -diff --git a/tests/runfiles/sanity.run b/tests/runfiles/sanity.run -index d62f8f3fb161..0deaa038a31f 100644 ---- a/tests/runfiles/sanity.run -+++ b/tests/runfiles/sanity.run -@@ -156,7 +156,7 @@ tests = ['zfs_mount_001_pos', 'zfs_mount_002_pos', 'zfs_mount_003_pos', - 'zfs_mount_004_pos', 'zfs_mount_005_pos', 'zfs_mount_007_pos', - 'zfs_mount_009_neg', 'zfs_mount_010_neg', 'zfs_mount_011_neg', - 'zfs_mount_012_pos', 'zfs_mount_encrypted', 'zfs_mount_remount', -- 'zfs_mount_all_fail', 'zfs_mount_all_mountpoints', -+ 'zfs_mount_ro_rw', 'zfs_mount_all_fail', 'zfs_mount_all_mountpoints', - 'zfs_mount_test_race', 'zfs_mount_recursive'] - tags = ['functional', 'cli_root', 'zfs_mount'] - -diff --git a/tests/zfs-tests/tests/Makefile.am b/tests/zfs-tests/tests/Makefile.am -index 85f00f28b0f9..98f392538821 100644 ---- a/tests/zfs-tests/tests/Makefile.am -+++ b/tests/zfs-tests/tests/Makefile.am -@@ -814,6 +814,7 @@ nobase_dist_datadir_zfs_tests_tests_SCRIPTS += \ - functional/cli_root/zfs_mount/zfs_mount_encrypted.ksh \ - functional/cli_root/zfs_mount/zfs_mount_recursive.ksh \ - functional/cli_root/zfs_mount/zfs_mount_remount.ksh \ -+ functional/cli_root/zfs_mount/zfs_mount_ro_rw.ksh \ - functional/cli_root/zfs_mount/zfs_mount_test_race.ksh \ - functional/cli_root/zfs_mount/zfs_multi_mount.ksh \ - functional/cli_root/zfs_program/cleanup.ksh \ -diff --git a/tests/zfs-tests/tests/functional/cli_root/zfs_mount/zfs_mount_ro_rw.ksh b/tests/zfs-tests/tests/functional/cli_root/zfs_mount/zfs_mount_ro_rw.ksh -new file mode 100755 -index 000000000000..15e78e6fd88c ---- /dev/null -+++ b/tests/zfs-tests/tests/functional/cli_root/zfs_mount/zfs_mount_ro_rw.ksh -@@ -0,0 +1,130 @@ -+#!/bin/ksh -p -+# SPDX-License-Identifier: CDDL-1.0 -+# -+# CDDL HEADER START -+# -+# The contents of this file are subject to the terms of the -+# Common Development and Distribution License (the "License"). -+# You may not use this file except in compliance with the License. -+# -+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE -+# or https://opensource.org/licenses/CDDL-1.0. -+# See the License for the specific language governing permissions -+# and limitations under the License. -+# -+# When distributing Covered Code, include this CDDL HEADER in each -+# file and include the License file at usr/src/OPENSOLARIS.LICENSE. -+# If applicable, add the following below this CDDL HEADER, with the -+# fields enclosed by brackets "[]" replaced with your own identifying -+# information: Portions Copyright [yyyy] [name of copyright owner] -+# -+# CDDL HEADER END -+# -+ -+# -+# Copyright (c) 2026, TrueNAS. -+# -+ -+. $STF_SUITE/include/libtest.shlib -+. $STF_SUITE/tests/functional/cli_root/zfs_mount/zfs_mount.kshlib -+ -+# -+# we set up and mount multiple times, with these combinations: -+# - readonly property: on, off -+# - mount method: mount(8) (mountpoint=legacy), zfs-mount(8) (mountpoint=path) -+# - mount option: [none], ro, rw -+# -+# after each mount, we check whether we ended up mounting read-only or -+# read-write, and note the result. once we've done them all, we compare the -+# result set to the "correct" set for this platform (by observation). the -+# test passes if they match, fail if they don't -+# -+# readonly | on | off | -+# mount method | legacy | path | legacy | path | -+# mount option | -- ro rw | -- ro rw | -- ro rw | -- ro rw | -+typeset -a rs_linux=( rw ro rw ro ro rw rw ro rw rw ro rw ) -+typeset -a rs_freebsd=( ro ro ro ro ro rw rw ro rw rw ro rw ) -+ -+if is_linux ; then -+ typeset -n rs_wanted=rs_linux -+elif is_freebsd ; then -+ typeset -n rs_wanted=rs_freebsd -+else -+ log_unsupported "no result set defined for this platform" -+fi -+ -+verify_runnable "both" -+ -+testfs=$TESTPOOL/$TESTFS -+testmnt=$TESTDIR/mountpoint -+ -+function cleanup -+{ -+ log_must zfs inherit -S canmount $testfs -+ log_must zfs inherit readonly $testfs -+ log_must zfs inherit mountpoint $testfs -+ log_must rm -rf $testmnt -+} -+ -+log_assert "Verify combinations of readonly/readwrite produce correct mount." -+ -+log_onexit cleanup -+ -+ -+# setup -+log_must datasetexists $testfs -+log_must zfs set canmount=noauto $testfs -+umount $testfs -+ -+ -+typeset -a rs=() -+ -+for readonly in on off ; do -+ for method in legacy path ; do -+ for option in default ro rw ; do -+ -+ log_must zfs set readonly=$readonly $testfs -+ -+ if [[ $method == 'legacy' ]] ; then -+ log_must zfs set mountpoint=legacy $testfs -+ else -+ log_must zfs set mountpoint=$testmnt $testfs -+ fi -+ -+ # recreate the mountpoint. even if it wasn't mounted, -+ # changing the mountpoint property can remove it -+ log_must mkdir -p $testmnt -+ -+ # issue the mount with the wanted method and option -+ case $method in -+ legacy) -+ case $option in -+ default) log_must mount_default $testfs $testmnt ;; -+ ro) log_must mount_ro $testfs $testmnt ;; -+ rw) log_must mount_rw $testfs $testmnt ;; -+ esac -+ ;; -+ path) -+ case $option in -+ default) log_must zfs mount $testfs ;; -+ ro) log_must zfs mount -o ro $testfs ;; -+ rw) log_must zfs mount -o rw $testfs ;; -+ esac -+ ;; -+ esac -+ -+ result=$(mount_get_ro_rw $testmnt) -+ rs+=($result) -+ log_note "result: $result" -+ -+ log_must umount $testfs -+ done -+ done -+done -+ -+log_note "results: ${rs[@]}" -+log_note "wanted: ${rs_wanted[@]}" -+ -+log_must test "${rs[*]}" == "${rs_wanted[*]}" -+ -+log_pass "All mounts correct for this platform." - -From 2ecaacff41d6cc9c08c65530d3d7401500a9c817 Mon Sep 17 00:00:00 2001 -From: Rob Norris -Date: Wed, 20 May 2026 09:42:19 +1000 -Subject: [PATCH 3/3] linux/super: properly apply ro/rw mount option to - superblock - -f5a9e3a622 changed how SB_RDONLY was applied to the new mount in a way -that was too simplistic - it only sets readonly on the filesystem if the -mount was 'ro', but it never clears it if the mount was 'rw'. This -causes the 'rw' option to effectively be ignored, and so the readonly= -property wins out. - -This fixes it by doing it the right way: checking the flags mask to see -if it was actually provided as an option at all, and then setting or -clearing it as appropriate. - -Sponsored-by: TrueNAS -Signed-off-by: Rob Norris ---- - module/os/linux/zfs/zpl_super.c | 11 ++++++++--- - 1 file changed, 8 insertions(+), 3 deletions(-) - -diff --git a/module/os/linux/zfs/zpl_super.c b/module/os/linux/zfs/zpl_super.c -index c1460edd16d0..e1fa0f8e88e8 100644 ---- a/module/os/linux/zfs/zpl_super.c -+++ b/module/os/linux/zfs/zpl_super.c -@@ -883,9 +883,14 @@ zpl_get_tree(struct fs_context *fc) - if (sb->s_root == NULL) { - vfs_t *vfs = fc->fs_private; - -- /* Apply readonly flag as mount option */ -- if (fc->sb_flags & SB_RDONLY) { -- vfs->vfs_readonly = B_TRUE; -+ /* -+ * If SB_RDONLY was set/cleared from mount options, update -+ * them in the options struct so we set up the filesystem -+ * in the proper state. -+ */ -+ if (fc->sb_flags_mask & SB_RDONLY) { -+ vfs->vfs_readonly = -+ (fc->sb_flags & SB_RDONLY) ? B_TRUE : B_FALSE; - vfs->vfs_do_readonly = B_TRUE; - } - diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/zfs/zfs-2.1.16.ebuild b/sdk_container/src/third_party/portage-stable/sys-fs/zfs/zfs-2.1.16.ebuild deleted file mode 100644 index 9a10684bb6b..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-fs/zfs/zfs-2.1.16.ebuild +++ /dev/null @@ -1,311 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DISTUTILS_OPTIONAL=1 -DISTUTILS_USE_PEP517=setuptools -PYTHON_COMPAT=( python3_{10..12} ) - -inherit autotools bash-completion-r1 dist-kernel-utils distutils-r1 flag-o-matic linux-info pam systemd udev usr-ldscript - -DESCRIPTION="Userland utilities for ZFS Linux kernel module" -HOMEPAGE="https://github.com/openzfs/zfs" - -if [[ ${PV} == "9999" ]]; then - inherit git-r3 - EGIT_REPO_URI="https://github.com/openzfs/zfs.git" -else - VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/openzfs.asc - inherit verify-sig - - MY_P="${P/_rc/-rc}" - SRC_URI="https://github.com/openzfs/${PN}/releases/download/${MY_P}/${MY_P}.tar.gz" - SRC_URI+=" verify-sig? ( https://github.com/openzfs/${PN}/releases/download/${MY_P}/${MY_P}.tar.gz.asc )" - S="${WORKDIR}/${P%_rc?}" - - if [[ ${PV} != *_rc* ]]; then - KEYWORDS="amd64 arm64 ppc64 ~riscv ~sparc" - fi -fi - -LICENSE="BSD-2 CDDL MIT" -# just libzfs soname major for now. -# possible candidates: libuutil, libzpool, libnvpair. Those do not provide stable abi, but are considered. -# see libsoversion_check() below as well -SLOT="0/5" -IUSE="custom-cflags debug dist-kernel kernel-builtin minimal nls pam python +rootfs selinux test-suite" - -DEPEND=" - net-libs/libtirpc:= - sys-apps/util-linux - virtual/zlib:= - virtual/libudev:= - dev-libs/openssl:0= - !minimal? ( ${PYTHON_DEPS} ) - pam? ( sys-libs/pam ) - python? ( - $(python_gen_cond_dep 'dev-python/cffi[${PYTHON_USEDEP}]' 'python*') - ) -" - -BDEPEND="app-alternatives/awk - virtual/pkgconfig - nls? ( sys-devel/gettext ) - python? ( - ${DISTUTILS_DEPS} - || ( - dev-python/packaging[${PYTHON_USEDEP}] - dev-python/distlib[${PYTHON_USEDEP}] - ) - ) -" - -if [[ ${PV} != "9999" ]] ; then - BDEPEND+=" verify-sig? ( sec-keys/openpgp-keys-openzfs )" -fi - -# awk is used for some scripts, completions, and the Dracut module -RDEPEND="${DEPEND} - !kernel-builtin? ( ~sys-fs/zfs-kmod-${PV}:= ) - !prefix? ( virtual/udev ) - sys-fs/udev-init-scripts - app-alternatives/awk - dist-kernel? ( virtual/dist-kernel:= ) - rootfs? ( - app-alternatives/cpio - app-misc/pax-utils - ) - selinux? ( sec-policy/selinux-zfs ) - test-suite? ( - app-shells/ksh - sys-apps/kmod[tools] - sys-apps/util-linux - app-alternatives/bc - sys-block/parted - sys-fs/lsscsi - sys-fs/mdadm - sys-process/procps - ) -" - -# PDEPEND in this form is needed to trick portage suggest -# enabling dist-kernel if only 1 package have it set, without suggesting to disable -PDEPEND="dist-kernel? ( ~sys-fs/zfs-kmod-${PV}[dist-kernel] )" - -REQUIRED_USE=" - !minimal? ( ${PYTHON_REQUIRED_USE} ) - python? ( !minimal ) - test-suite? ( !minimal ) -" - -RESTRICT="test" - -PATCHES=( - # bug #854333 - "${FILESDIR}"/2.1.5-r2-dracut-non-root.patch - - "${FILESDIR}"/2.1.5-dracut-zfs-missing.patch -) - -pkg_pretend() { - use rootfs || return 0 - - if has_version virtual/dist-kernel && ! use dist-kernel; then - ewarn "You have virtual/dist-kernel installed, but" - ewarn "USE=\"dist-kernel\" is not enabled for ${CATEGORY}/${PN}" - ewarn "It's recommended to globally enable dist-kernel USE flag" - ewarn "to auto-trigger initrd rebuilds with kernel updates" - fi -} - -pkg_setup() { - if use kernel_linux; then - linux-info_pkg_setup - - if ! linux_config_exists; then - ewarn "Cannot check the linux kernel configuration." - else - if use test-suite; then - if linux_chkconfig_present BLK_DEV_LOOP; then - eerror "The ZFS test suite requires loop device support enabled." - eerror "Please enable it:" - eerror " CONFIG_BLK_DEV_LOOP=y" - eerror "in /usr/src/linux/.config or" - eerror " Device Drivers --->" - eerror " Block devices --->" - eerror " [X] Loopback device support" - fi - fi - fi - fi -} - -libsoversion_check() { - local bugurl libzfs_sover - bugurl="https://bugs.gentoo.org/enter_bug.cgi?form_name=enter_bug&product=Gentoo+Linux&component=Current+packages" - - libzfs_sover="$(grep 'libzfs_la_LDFLAGS += -version-info' lib/libzfs/Makefile.am \ - | grep -Eo '[0-9]+:[0-9]+:[0-9]+')" - libzfs_sover="${libzfs_sover%%:*}" - - if [[ ${libzfs_sover} -ne $(ver_cut 2 ${SLOT}) ]]; then - echo - eerror "BUG BUG BUG BUG BUG BUG BUG BUG" - eerror "ebuild subslot does not match libzfs soversion!" - eerror "libzfs soversion: ${libzfs_sover}" - eerror "ebuild value: $(ver_cut 2 ${SLOT})" - eerror "This is a bug in the ebuild, please use the following URL to report it" - eerror "${bugurl}&short_desc=${CATEGORY}%2F${P}+update+subslot" - echo - # we want to abort for releases, but just print a warning for live ebuild - # to keep package installable - [[ ${PV} == "9999" ]] || die - fi -} - -src_prepare() { - default - libsoversion_check - - # Run unconditionally (bug #792627) - eautoreconf - - if [[ ${PV} != "9999" ]]; then - # Set revision number - sed -i "s/\(Release:\)\(.*\)1/\1\2${PR}-gentoo/" META || die "Could not set Gentoo release" - fi - - if use python; then - pushd contrib/pyzfs >/dev/null || die - distutils-r1_src_prepare - popd >/dev/null || die - fi - - # prevent errors showing up on zfs-mount stop, #647688 - # openrc will unmount all filesystems anyway. - sed -i "/^ZFS_UNMOUNT=/ s/yes/no/" "etc/default/zfs.in" || die -} - -src_configure() { - use custom-cflags || strip-flags - use minimal || python_setup - - # All the same issue: - # Segfaults w/ GCC 12 and 'zfs send' - # bug #856373 - # https://github.com/openzfs/zfs/issues/13620 - # https://github.com/openzfs/zfs/issues/13605 - append-flags -fno-tree-vectorize - - local myconf=( - --bindir="${EPREFIX}/bin" - --enable-shared - --enable-sysvinit - --localstatedir="${EPREFIX}/var" - --sbindir="${EPREFIX}/sbin" - --with-config=user - --with-dracutdir="${EPREFIX}/usr/lib/dracut" - --with-linux="${KV_DIR}" - --with-linux-obj="${KV_OUT_DIR}" - --with-udevdir="$(get_udevdir)" - --with-pamconfigsdir="${EPREFIX}/unwanted_files" - --with-pammoduledir="$(getpam_mod_dir)" - --with-systemdunitdir="$(systemd_get_systemunitdir)" - --with-systemdpresetdir="$(systemd_get_systempresetdir)" - --with-vendor=gentoo - # Building zfs-mount-generator.c on musl breaks as strndupa - # isn't available. But systemd doesn't support musl anyway, so - # just disable building it. - # UPDATE: it has been fixed since, - # https://github.com/openzfs/zfs/commit/1f19826c9ac85835cbde61a7439d9d1fefe43a4a - # but we still leave it as this for now. - $(use_enable !elibc_musl systemd) - $(use_enable debug) - $(use_enable nls) - $(use_enable pam) - $(use_enable python pyzfs) - --disable-static - $(usex minimal --without-python --with-python="${EPYTHON}") - ) - - econf "${myconf[@]}" -} - -src_compile() { - default - if use python; then - pushd contrib/pyzfs >/dev/null || die - distutils-r1_src_compile - popd >/dev/null || die - fi -} - -src_install() { - default - - gen_usr_ldscript -a nvpair uutil zfsbootenv zfs zfs_core zpool - - use pam && { rm -rv "${ED}/unwanted_files" || die ; } - - use test-suite || { rm -r "${ED}"/usr/share/zfs/{test-runner,zfs-tests,runfiles,*sh} || die ; } - - find "${ED}" -name '*.la' -delete || die - - dobashcomp contrib/bash_completion.d/zfs - bashcomp_alias zfs zpool - - # strip executable bit from conf.d file - fperms 0644 /etc/conf.d/zfs - - if use python; then - pushd contrib/pyzfs >/dev/null || die - distutils-r1_src_install - popd >/dev/null || die - fi - - # enforce best available python implementation - use minimal || python_fix_shebang "${ED}/bin" -} - -pkg_postinst() { - udev_reload - - # we always need userspace utils in sync with zfs-kmod - # so force initrd update for userspace as well, to avoid - # situation when zfs-kmod trigger initrd rebuild before - # userspace component is rebuilt - # KV_* variables are provided by linux-info.eclass - if [[ -z ${ROOT} ]] && use dist-kernel; then - dist-kernel_reinstall_initramfs "${KV_DIR}" "${KV_FULL}" - fi - - if use rootfs; then - if ! has_version sys-kernel/genkernel && ! has_version sys-kernel/dracut; then - elog "Root on zfs requires an initramfs to boot" - elog "The following packages provide one and are tested on a regular basis:" - elog " sys-kernel/dracut ( preferred, module maintained by zfs developers )" - elog " sys-kernel/genkernel" - fi - fi - - if systemd_is_booted || has_version sys-apps/systemd; then - einfo "Please refer to ${EROOT}/$(systemd_get_systempresetdir)/50-zfs.preset" - einfo "for default zfs systemd service configuration" - else - [[ -e "${EROOT}/etc/runlevels/boot/zfs-import" ]] || \ - einfo "You should add zfs-import to the boot runlevel." - [[ -e "${EROOT}/etc/runlevels/boot/zfs-load-key" ]] || \ - einfo "You should add zfs-load-key to the boot runlevel." - [[ -e "${EROOT}/etc/runlevels/boot/zfs-mount" ]]|| \ - einfo "You should add zfs-mount to the boot runlevel." - [[ -e "${EROOT}/etc/runlevels/default/zfs-share" ]] || \ - einfo "You should add zfs-share to the default runlevel." - [[ -e "${EROOT}/etc/runlevels/default/zfs-zed" ]] || \ - einfo "You should add zfs-zed to the default runlevel." - fi -} - -pkg_postrm() { - udev_reload -} diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/zfs/zfs-2.2.10.ebuild b/sdk_container/src/third_party/portage-stable/sys-fs/zfs/zfs-2.2.10.ebuild deleted file mode 100644 index f72dfb4e56f..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-fs/zfs/zfs-2.2.10.ebuild +++ /dev/null @@ -1,305 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DISTUTILS_OPTIONAL=1 -DISTUTILS_USE_PEP517=setuptools -PYTHON_COMPAT=( python3_{12..14} ) - -inherit autotools bash-completion-r1 dist-kernel-utils distutils-r1 flag-o-matic linux-info -inherit pam systemd udev usr-ldscript - -DESCRIPTION="Userland utilities for ZFS Linux kernel module" -HOMEPAGE="https://github.com/openzfs/zfs" - -if [[ ${PV} == "9999" ]]; then - inherit git-r3 - EGIT_REPO_URI="https://github.com/openzfs/zfs.git" -else - VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/openzfs.asc - inherit verify-sig - - MY_P="${P/_rc/-rc}" - SRC_URI="https://github.com/openzfs/${PN}/releases/download/${MY_P}/${MY_P}.tar.gz" - SRC_URI+=" verify-sig? ( https://github.com/openzfs/${PN}/releases/download/${MY_P}/${MY_P}.tar.gz.asc )" - S="${WORKDIR}/${MY_P}" - - if [[ ${PV} != *_rc* ]]; then - KEYWORDS="~amd64 ~arm64 ~loong ~ppc64 ~riscv ~sparc" - fi -fi - -LICENSE="BSD-2 CDDL MIT" -# just libzfs soname major for now. -# possible candidates: libuutil, libzpool, libnvpair. Those do not provide stable abi, but are considered. -# see libsoversion_check() below as well -SLOT="0/5" -IUSE="custom-cflags debug dist-kernel kernel-builtin minimal nls pam python +rootfs selinux test-suite unwind" - -DEPEND=" - dev-libs/openssl:= - net-libs/libtirpc:= - sys-apps/util-linux - virtual/zlib:= - virtual/libudev:= - !minimal? ( ${PYTHON_DEPS} ) - pam? ( sys-libs/pam ) - python? ( - $(python_gen_cond_dep 'dev-python/cffi[${PYTHON_USEDEP}]' 'python*') - ) - unwind? ( sys-libs/libunwind:= ) -" - -BDEPEND=" - app-alternatives/awk - virtual/pkgconfig - nls? ( sys-devel/gettext ) - python? ( - ${DISTUTILS_DEPS} - || ( - dev-python/packaging[${PYTHON_USEDEP}] - dev-python/distlib[${PYTHON_USEDEP}] - ) - ) -" - -if [[ ${PV} != "9999" ]] ; then - BDEPEND+=" verify-sig? ( sec-keys/openpgp-keys-openzfs )" -fi - -# awk is used for some scripts, completions, and the Dracut module -RDEPEND=" - ${DEPEND} - !kernel-builtin? ( ~sys-fs/zfs-kmod-${PV}:= ) - !prefix? ( virtual/udev ) - app-alternatives/awk - sys-fs/udev-init-scripts - dist-kernel? ( virtual/dist-kernel:= ) - rootfs? ( - app-alternatives/cpio - app-misc/pax-utils - ) - selinux? ( sec-policy/selinux-zfs ) - test-suite? ( - app-shells/ksh - sys-apps/kmod[tools] - sys-apps/util-linux - app-alternatives/bc - sys-block/parted - sys-fs/lsscsi - sys-fs/mdadm - sys-process/procps - ) -" - -# PDEPEND in this form is needed to trick portage suggest -# enabling dist-kernel if only 1 package have it set, without suggesting to disable -PDEPEND="dist-kernel? ( ~sys-fs/zfs-kmod-${PV}[dist-kernel] )" - -REQUIRED_USE=" - !minimal? ( ${PYTHON_REQUIRED_USE} ) - python? ( !minimal ) - test-suite? ( !minimal ) -" - -RESTRICT="test" - -pkg_pretend() { - use rootfs || return 0 - - if has_version virtual/dist-kernel && ! use dist-kernel; then - ewarn "You have virtual/dist-kernel installed, but" - ewarn "USE=\"dist-kernel\" is not enabled for ${CATEGORY}/${PN}" - ewarn "It's recommended to globally enable dist-kernel USE flag" - ewarn "to auto-trigger initrd rebuilds with kernel updates" - fi -} - -pkg_setup() { - if use kernel_linux; then - linux-info_pkg_setup - - if ! linux_config_exists; then - ewarn "Cannot check the linux kernel configuration." - else - if use test-suite; then - if linux_chkconfig_present BLK_DEV_LOOP; then - eerror "The ZFS test suite requires loop device support enabled." - eerror "Please enable it:" - eerror " CONFIG_BLK_DEV_LOOP=y" - eerror "in /usr/src/linux/.config or" - eerror " Device Drivers --->" - eerror " Block devices --->" - eerror " [X] Loopback device support" - fi - fi - fi - fi -} - -libsoversion_check() { - local bugurl libzfs_sover - bugurl="https://bugs.gentoo.org/enter_bug.cgi?form_name=enter_bug&product=Gentoo+Linux&component=Current+packages" - - libzfs_sover="$(grep 'libzfs_la_LDFLAGS += -version-info' lib/libzfs/Makefile.am \ - | grep -Eo '[0-9]+:[0-9]+:[0-9]+')" - libzfs_sover="${libzfs_sover%%:*}" - - if [[ ${libzfs_sover} -ne $(ver_cut 2 ${SLOT}) ]]; then - echo - eerror "BUG BUG BUG BUG BUG BUG BUG BUG" - eerror "ebuild subslot does not match libzfs soversion!" - eerror "libzfs soversion: ${libzfs_sover}" - eerror "ebuild value: $(ver_cut 2 ${SLOT})" - eerror "This is a bug in the ebuild, please use the following URL to report it" - eerror "${bugurl}&short_desc=${CATEGORY}%2F${P}+update+subslot" - echo - # we want to abort for releases, but just print a warning for live ebuild - # to keep package installable - [[ ${PV} == "9999" ]] || die - fi -} - -src_prepare() { - default - libsoversion_check - - # Run unconditionally (bug #792627) - eautoreconf - - if [[ ${PV} != "9999" ]]; then - # Set revision number - sed -i "s/\(Release:\)\(.*\)1/\1\2${PR}-gentoo/" META || die "Could not set Gentoo release" - fi - - if use python; then - pushd contrib/pyzfs >/dev/null || die - distutils-r1_src_prepare - popd >/dev/null || die - fi - - # Tries to use /etc/conf.d which we reserve for OpenRC - sed -i -e '/EnvironmentFile/d' etc/systemd/system/zfs*.in || die - - # prevent errors showing up on zfs-mount stop, #647688 - # openrc will unmount all filesystems anyway. - sed -i "/^ZFS_UNMOUNT=/ s/yes/no/" "etc/default/zfs.in" || die -} - -src_configure() { - use custom-cflags || strip-flags - use minimal || python_setup - - local myconf=( - --bindir="${EPREFIX}/bin" - --enable-shared - --enable-sysvinit - --localstatedir="${EPREFIX}/var" - --sbindir="${EPREFIX}/sbin" - --with-config=user - --with-dracutdir="${EPREFIX}/usr/lib/dracut" - --with-linux="${KV_DIR}" - --with-linux-obj="${KV_OUT_DIR}" - --with-udevdir="$(get_udevdir)" - --with-pamconfigsdir="${EPREFIX}/unwanted_files" - --with-pammoduledir="$(getpam_mod_dir)" - --with-systemdunitdir="$(systemd_get_systemunitdir)" - --with-systemdpresetdir="$(systemd_get_systempresetdir)" - --with-vendor=gentoo - # Building zfs-mount-generator.c on musl breaks as strndupa - # isn't available. But systemd doesn't support musl anyway, so - # just disable building it. - # UPDATE: it has been fixed since, - # https://github.com/openzfs/zfs/commit/1f19826c9ac85835cbde61a7439d9d1fefe43a4a - # but we still leave it as this for now. - $(use_enable !elibc_musl systemd) - $(use_enable debug) - $(use_enable nls) - $(use_enable pam) - $(use_enable python pyzfs) - $(use_with unwind libunwind) - --disable-static - $(usex minimal --without-python --with-python="${EPYTHON}") - ) - - econf "${myconf[@]}" -} - -src_compile() { - default - if use python; then - pushd contrib/pyzfs >/dev/null || die - distutils-r1_src_compile - popd >/dev/null || die - fi -} - -src_install() { - default - - gen_usr_ldscript -a nvpair uutil zfsbootenv zfs zfs_core zpool - - use pam && { rm -rv "${ED}/unwanted_files" || die ; } - - use test-suite || { rm -r "${ED}"/usr/share/zfs/{test-runner,zfs-tests,runfiles,*sh} || die ; } - - find "${ED}" -name '*.la' -delete || die - - dobashcomp contrib/bash_completion.d/zfs - bashcomp_alias zfs zpool - - # strip executable bit from conf.d file - fperms 0644 /etc/conf.d/zfs - - if use python; then - pushd contrib/pyzfs >/dev/null || die - distutils-r1_src_install - popd >/dev/null || die - fi - - # enforce best available python implementation - use minimal || python_fix_shebang "${ED}/bin" -} - -pkg_postinst() { - udev_reload - - # we always need userspace utils in sync with zfs-kmod - # so force initrd update for userspace as well, to avoid - # situation when zfs-kmod trigger initrd rebuild before - # userspace component is rebuilt - # KV_* variables are provided by linux-info.eclass - if [[ -z ${ROOT} ]] && use dist-kernel; then - dist-kernel_reinstall_initramfs "${KV_DIR}" "${KV_FULL}" - fi - - if use rootfs; then - if ! has_version sys-kernel/genkernel && ! has_version sys-kernel/dracut; then - elog "Root on zfs requires an initramfs to boot" - elog "The following packages provide one and are tested on a regular basis:" - elog " sys-kernel/dracut ( preferred, module maintained by zfs developers )" - elog " sys-kernel/genkernel" - fi - fi - - if systemd_is_booted || has_version sys-apps/systemd; then - einfo "Please refer to $(systemd_get_systempresetdir)/50-zfs.preset" - einfo "for default zfs systemd service configuration" - else - [[ -e "${EROOT}/etc/runlevels/boot/zfs-import" ]] || \ - einfo "You should add zfs-import to the boot runlevel." - [[ -e "${EROOT}/etc/runlevels/boot/zfs-load-key" ]] || \ - einfo "You should add zfs-load-key to the boot runlevel." - [[ -e "${EROOT}/etc/runlevels/boot/zfs-mount" ]]|| \ - einfo "You should add zfs-mount to the boot runlevel." - [[ -e "${EROOT}/etc/runlevels/default/zfs-share" ]] || \ - einfo "You should add zfs-share to the default runlevel." - [[ -e "${EROOT}/etc/runlevels/default/zfs-zed" ]] || \ - einfo "You should add zfs-zed to the default runlevel." - fi -} - -pkg_postrm() { - udev_reload -} diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/zfs/zfs-2.2.11.ebuild b/sdk_container/src/third_party/portage-stable/sys-fs/zfs/zfs-2.2.11.ebuild index f72dfb4e56f..43eb2a4d703 100644 --- a/sdk_container/src/third_party/portage-stable/sys-fs/zfs/zfs-2.2.11.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-fs/zfs/zfs-2.2.11.ebuild @@ -26,7 +26,7 @@ else S="${WORKDIR}/${MY_P}" if [[ ${PV} != *_rc* ]]; then - KEYWORDS="~amd64 ~arm64 ~loong ~ppc64 ~riscv ~sparc" + KEYWORDS="amd64 arm64 ~loong ppc64 ~riscv ~sparc" fi fi diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/zfs/zfs-2.2.8.ebuild b/sdk_container/src/third_party/portage-stable/sys-fs/zfs/zfs-2.2.8.ebuild deleted file mode 100644 index 7432622c3b3..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-fs/zfs/zfs-2.2.8.ebuild +++ /dev/null @@ -1,308 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DISTUTILS_OPTIONAL=1 -DISTUTILS_USE_PEP517=setuptools -PYTHON_COMPAT=( python3_{11..13} ) - -inherit autotools bash-completion-r1 dist-kernel-utils distutils-r1 flag-o-matic linux-info pam systemd udev usr-ldscript - -DESCRIPTION="Userland utilities for ZFS Linux kernel module" -HOMEPAGE="https://github.com/openzfs/zfs" - -if [[ ${PV} == "9999" ]]; then - inherit git-r3 - EGIT_REPO_URI="https://github.com/openzfs/zfs.git" -else - VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/openzfs.asc - inherit verify-sig - - MY_P="${P/_rc/-rc}" - SRC_URI="https://github.com/openzfs/${PN}/releases/download/${MY_P}/${MY_P}.tar.gz" - SRC_URI+=" verify-sig? ( https://github.com/openzfs/${PN}/releases/download/${MY_P}/${MY_P}.tar.gz.asc )" - S="${WORKDIR}/${MY_P}" - - if [[ ${PV} != *_rc* ]]; then - KEYWORDS="amd64 arm64 ~loong ppc64 ~riscv ~sparc" - fi -fi - -LICENSE="BSD-2 CDDL MIT" -# just libzfs soname major for now. -# possible candidates: libuutil, libzpool, libnvpair. Those do not provide stable abi, but are considered. -# see libsoversion_check() below as well -SLOT="0/5" -IUSE="custom-cflags debug dist-kernel kernel-builtin minimal nls pam python +rootfs selinux test-suite unwind" - -DEPEND=" - dev-libs/openssl:= - net-libs/libtirpc:= - sys-apps/util-linux - virtual/zlib:= - virtual/libudev:= - !minimal? ( ${PYTHON_DEPS} ) - pam? ( sys-libs/pam ) - python? ( - $(python_gen_cond_dep 'dev-python/cffi[${PYTHON_USEDEP}]' 'python*') - ) - unwind? ( sys-libs/libunwind:= ) -" - -BDEPEND=" - app-alternatives/awk - virtual/pkgconfig - nls? ( sys-devel/gettext ) - python? ( - ${DISTUTILS_DEPS} - || ( - dev-python/packaging[${PYTHON_USEDEP}] - dev-python/distlib[${PYTHON_USEDEP}] - ) - ) -" - -if [[ ${PV} != "9999" ]] ; then - BDEPEND+=" verify-sig? ( sec-keys/openpgp-keys-openzfs )" -fi - -# awk is used for some scripts, completions, and the Dracut module -RDEPEND=" - ${DEPEND} - !kernel-builtin? ( ~sys-fs/zfs-kmod-${PV}:= ) - !prefix? ( virtual/udev ) - app-alternatives/awk - sys-fs/udev-init-scripts - dist-kernel? ( virtual/dist-kernel:= ) - rootfs? ( - app-alternatives/cpio - app-misc/pax-utils - ) - selinux? ( sec-policy/selinux-zfs ) - test-suite? ( - app-shells/ksh - sys-apps/kmod[tools] - sys-apps/util-linux - app-alternatives/bc - sys-block/parted - sys-fs/lsscsi - sys-fs/mdadm - sys-process/procps - ) -" - -# PDEPEND in this form is needed to trick portage suggest -# enabling dist-kernel if only 1 package have it set, without suggesting to disable -PDEPEND="dist-kernel? ( ~sys-fs/zfs-kmod-${PV}[dist-kernel] )" - -REQUIRED_USE=" - !minimal? ( ${PYTHON_REQUIRED_USE} ) - python? ( !minimal ) - test-suite? ( !minimal ) -" - -RESTRICT="test" - -PATCHES=( - "${FILESDIR}"/2.1.5-dracut-zfs-missing.patch -) - -pkg_pretend() { - use rootfs || return 0 - - if has_version virtual/dist-kernel && ! use dist-kernel; then - ewarn "You have virtual/dist-kernel installed, but" - ewarn "USE=\"dist-kernel\" is not enabled for ${CATEGORY}/${PN}" - ewarn "It's recommended to globally enable dist-kernel USE flag" - ewarn "to auto-trigger initrd rebuilds with kernel updates" - fi -} - -pkg_setup() { - if use kernel_linux; then - linux-info_pkg_setup - - if ! linux_config_exists; then - ewarn "Cannot check the linux kernel configuration." - else - if use test-suite; then - if linux_chkconfig_present BLK_DEV_LOOP; then - eerror "The ZFS test suite requires loop device support enabled." - eerror "Please enable it:" - eerror " CONFIG_BLK_DEV_LOOP=y" - eerror "in /usr/src/linux/.config or" - eerror " Device Drivers --->" - eerror " Block devices --->" - eerror " [X] Loopback device support" - fi - fi - fi - fi -} - -libsoversion_check() { - local bugurl libzfs_sover - bugurl="https://bugs.gentoo.org/enter_bug.cgi?form_name=enter_bug&product=Gentoo+Linux&component=Current+packages" - - libzfs_sover="$(grep 'libzfs_la_LDFLAGS += -version-info' lib/libzfs/Makefile.am \ - | grep -Eo '[0-9]+:[0-9]+:[0-9]+')" - libzfs_sover="${libzfs_sover%%:*}" - - if [[ ${libzfs_sover} -ne $(ver_cut 2 ${SLOT}) ]]; then - echo - eerror "BUG BUG BUG BUG BUG BUG BUG BUG" - eerror "ebuild subslot does not match libzfs soversion!" - eerror "libzfs soversion: ${libzfs_sover}" - eerror "ebuild value: $(ver_cut 2 ${SLOT})" - eerror "This is a bug in the ebuild, please use the following URL to report it" - eerror "${bugurl}&short_desc=${CATEGORY}%2F${P}+update+subslot" - echo - # we want to abort for releases, but just print a warning for live ebuild - # to keep package installable - [[ ${PV} == "9999" ]] || die - fi -} - -src_prepare() { - default - libsoversion_check - - # Run unconditionally (bug #792627) - eautoreconf - - if [[ ${PV} != "9999" ]]; then - # Set revision number - sed -i "s/\(Release:\)\(.*\)1/\1\2${PR}-gentoo/" META || die "Could not set Gentoo release" - fi - - if use python; then - pushd contrib/pyzfs >/dev/null || die - distutils-r1_src_prepare - popd >/dev/null || die - fi - - # Tries to use /etc/conf.d which we reserve for OpenRC - sed -i -e '/EnvironmentFile/d' etc/systemd/system/zfs*.in || die - - # prevent errors showing up on zfs-mount stop, #647688 - # openrc will unmount all filesystems anyway. - sed -i "/^ZFS_UNMOUNT=/ s/yes/no/" "etc/default/zfs.in" || die -} - -src_configure() { - use custom-cflags || strip-flags - use minimal || python_setup - - local myconf=( - --bindir="${EPREFIX}/bin" - --enable-shared - --enable-sysvinit - --localstatedir="${EPREFIX}/var" - --sbindir="${EPREFIX}/sbin" - --with-config=user - --with-dracutdir="${EPREFIX}/usr/lib/dracut" - --with-linux="${KV_DIR}" - --with-linux-obj="${KV_OUT_DIR}" - --with-udevdir="$(get_udevdir)" - --with-pamconfigsdir="${EPREFIX}/unwanted_files" - --with-pammoduledir="$(getpam_mod_dir)" - --with-systemdunitdir="$(systemd_get_systemunitdir)" - --with-systemdpresetdir="$(systemd_get_systempresetdir)" - --with-vendor=gentoo - # Building zfs-mount-generator.c on musl breaks as strndupa - # isn't available. But systemd doesn't support musl anyway, so - # just disable building it. - # UPDATE: it has been fixed since, - # https://github.com/openzfs/zfs/commit/1f19826c9ac85835cbde61a7439d9d1fefe43a4a - # but we still leave it as this for now. - $(use_enable !elibc_musl systemd) - $(use_enable debug) - $(use_enable nls) - $(use_enable pam) - $(use_enable python pyzfs) - $(use_with unwind libunwind) - --disable-static - $(usex minimal --without-python --with-python="${EPYTHON}") - ) - - econf "${myconf[@]}" -} - -src_compile() { - default - if use python; then - pushd contrib/pyzfs >/dev/null || die - distutils-r1_src_compile - popd >/dev/null || die - fi -} - -src_install() { - default - - gen_usr_ldscript -a nvpair uutil zfsbootenv zfs zfs_core zpool - - use pam && { rm -rv "${ED}/unwanted_files" || die ; } - - use test-suite || { rm -r "${ED}"/usr/share/zfs/{test-runner,zfs-tests,runfiles,*sh} || die ; } - - find "${ED}" -name '*.la' -delete || die - - dobashcomp contrib/bash_completion.d/zfs - bashcomp_alias zfs zpool - - # strip executable bit from conf.d file - fperms 0644 /etc/conf.d/zfs - - if use python; then - pushd contrib/pyzfs >/dev/null || die - distutils-r1_src_install - popd >/dev/null || die - fi - - # enforce best available python implementation - use minimal || python_fix_shebang "${ED}/bin" -} - -pkg_postinst() { - udev_reload - - # we always need userspace utils in sync with zfs-kmod - # so force initrd update for userspace as well, to avoid - # situation when zfs-kmod trigger initrd rebuild before - # userspace component is rebuilt - # KV_* variables are provided by linux-info.eclass - if [[ -z ${ROOT} ]] && use dist-kernel; then - dist-kernel_reinstall_initramfs "${KV_DIR}" "${KV_FULL}" - fi - - if use rootfs; then - if ! has_version sys-kernel/genkernel && ! has_version sys-kernel/dracut; then - elog "Root on zfs requires an initramfs to boot" - elog "The following packages provide one and are tested on a regular basis:" - elog " sys-kernel/dracut ( preferred, module maintained by zfs developers )" - elog " sys-kernel/genkernel" - fi - fi - - if systemd_is_booted || has_version sys-apps/systemd; then - einfo "Please refer to ${EROOT}/$(systemd_get_systempresetdir)/50-zfs.preset" - einfo "for default zfs systemd service configuration" - else - [[ -e "${EROOT}/etc/runlevels/boot/zfs-import" ]] || \ - einfo "You should add zfs-import to the boot runlevel." - [[ -e "${EROOT}/etc/runlevels/boot/zfs-load-key" ]] || \ - einfo "You should add zfs-load-key to the boot runlevel." - [[ -e "${EROOT}/etc/runlevels/boot/zfs-mount" ]]|| \ - einfo "You should add zfs-mount to the boot runlevel." - [[ -e "${EROOT}/etc/runlevels/default/zfs-share" ]] || \ - einfo "You should add zfs-share to the default runlevel." - [[ -e "${EROOT}/etc/runlevels/default/zfs-zed" ]] || \ - einfo "You should add zfs-zed to the default runlevel." - fi -} - -pkg_postrm() { - udev_reload -} diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/zfs/zfs-2.2.9.ebuild b/sdk_container/src/third_party/portage-stable/sys-fs/zfs/zfs-2.2.9.ebuild deleted file mode 100644 index ba1e892802e..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-fs/zfs/zfs-2.2.9.ebuild +++ /dev/null @@ -1,311 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DISTUTILS_OPTIONAL=1 -DISTUTILS_USE_PEP517=setuptools -PYTHON_COMPAT=( python3_{11..14} ) - -inherit autotools bash-completion-r1 dist-kernel-utils distutils-r1 flag-o-matic linux-info -inherit pam systemd udev usr-ldscript - -DESCRIPTION="Userland utilities for ZFS Linux kernel module" -HOMEPAGE="https://github.com/openzfs/zfs" - -if [[ ${PV} == "9999" ]]; then - inherit git-r3 - EGIT_REPO_URI="https://github.com/openzfs/zfs.git" -else - VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/openzfs.asc - inherit verify-sig - - MY_P="${P/_rc/-rc}" - SRC_URI="https://github.com/openzfs/${PN}/releases/download/${MY_P}/${MY_P}.tar.gz" - SRC_URI+=" verify-sig? ( https://github.com/openzfs/${PN}/releases/download/${MY_P}/${MY_P}.tar.gz.asc )" - S="${WORKDIR}/${MY_P}" - - if [[ ${PV} != *_rc* ]]; then - KEYWORDS="~amd64 ~arm64 ~loong ~ppc64 ~riscv ~sparc" - fi -fi - -LICENSE="BSD-2 CDDL MIT" -# just libzfs soname major for now. -# possible candidates: libuutil, libzpool, libnvpair. Those do not provide stable abi, but are considered. -# see libsoversion_check() below as well -SLOT="0/5" -IUSE="custom-cflags debug dist-kernel kernel-builtin minimal nls pam python +rootfs selinux test-suite unwind" - -DEPEND=" - dev-libs/openssl:= - net-libs/libtirpc:= - sys-apps/util-linux - virtual/zlib:= - virtual/libudev:= - !minimal? ( ${PYTHON_DEPS} ) - pam? ( sys-libs/pam ) - python? ( - $(python_gen_cond_dep 'dev-python/cffi[${PYTHON_USEDEP}]' 'python*') - ) - unwind? ( sys-libs/libunwind:= ) -" - -BDEPEND=" - app-alternatives/awk - virtual/pkgconfig - nls? ( sys-devel/gettext ) - python? ( - ${DISTUTILS_DEPS} - || ( - dev-python/packaging[${PYTHON_USEDEP}] - dev-python/distlib[${PYTHON_USEDEP}] - ) - ) -" - -if [[ ${PV} != "9999" ]] ; then - BDEPEND+=" verify-sig? ( sec-keys/openpgp-keys-openzfs )" -fi - -# awk is used for some scripts, completions, and the Dracut module -RDEPEND=" - ${DEPEND} - !kernel-builtin? ( ~sys-fs/zfs-kmod-${PV}:= ) - !prefix? ( virtual/udev ) - app-alternatives/awk - sys-fs/udev-init-scripts - dist-kernel? ( virtual/dist-kernel:= ) - rootfs? ( - app-alternatives/cpio - app-misc/pax-utils - ) - selinux? ( sec-policy/selinux-zfs ) - test-suite? ( - app-shells/ksh - sys-apps/kmod[tools] - sys-apps/util-linux - app-alternatives/bc - sys-block/parted - sys-fs/lsscsi - sys-fs/mdadm - sys-process/procps - ) -" - -# PDEPEND in this form is needed to trick portage suggest -# enabling dist-kernel if only 1 package have it set, without suggesting to disable -PDEPEND="dist-kernel? ( ~sys-fs/zfs-kmod-${PV}[dist-kernel] )" - -REQUIRED_USE=" - !minimal? ( ${PYTHON_REQUIRED_USE} ) - python? ( !minimal ) - test-suite? ( !minimal ) -" - -RESTRICT="test" - -PATCHES=( - "${FILESDIR}"/2.1.5-dracut-zfs-missing.patch - "${FILESDIR}"/2.3.4-musl.patch - "${FILESDIR}"/2.2.9-nfs-truncate-shares.patch -) - -pkg_pretend() { - use rootfs || return 0 - - if has_version virtual/dist-kernel && ! use dist-kernel; then - ewarn "You have virtual/dist-kernel installed, but" - ewarn "USE=\"dist-kernel\" is not enabled for ${CATEGORY}/${PN}" - ewarn "It's recommended to globally enable dist-kernel USE flag" - ewarn "to auto-trigger initrd rebuilds with kernel updates" - fi -} - -pkg_setup() { - if use kernel_linux; then - linux-info_pkg_setup - - if ! linux_config_exists; then - ewarn "Cannot check the linux kernel configuration." - else - if use test-suite; then - if linux_chkconfig_present BLK_DEV_LOOP; then - eerror "The ZFS test suite requires loop device support enabled." - eerror "Please enable it:" - eerror " CONFIG_BLK_DEV_LOOP=y" - eerror "in /usr/src/linux/.config or" - eerror " Device Drivers --->" - eerror " Block devices --->" - eerror " [X] Loopback device support" - fi - fi - fi - fi -} - -libsoversion_check() { - local bugurl libzfs_sover - bugurl="https://bugs.gentoo.org/enter_bug.cgi?form_name=enter_bug&product=Gentoo+Linux&component=Current+packages" - - libzfs_sover="$(grep 'libzfs_la_LDFLAGS += -version-info' lib/libzfs/Makefile.am \ - | grep -Eo '[0-9]+:[0-9]+:[0-9]+')" - libzfs_sover="${libzfs_sover%%:*}" - - if [[ ${libzfs_sover} -ne $(ver_cut 2 ${SLOT}) ]]; then - echo - eerror "BUG BUG BUG BUG BUG BUG BUG BUG" - eerror "ebuild subslot does not match libzfs soversion!" - eerror "libzfs soversion: ${libzfs_sover}" - eerror "ebuild value: $(ver_cut 2 ${SLOT})" - eerror "This is a bug in the ebuild, please use the following URL to report it" - eerror "${bugurl}&short_desc=${CATEGORY}%2F${P}+update+subslot" - echo - # we want to abort for releases, but just print a warning for live ebuild - # to keep package installable - [[ ${PV} == "9999" ]] || die - fi -} - -src_prepare() { - default - libsoversion_check - - # Run unconditionally (bug #792627) - eautoreconf - - if [[ ${PV} != "9999" ]]; then - # Set revision number - sed -i "s/\(Release:\)\(.*\)1/\1\2${PR}-gentoo/" META || die "Could not set Gentoo release" - fi - - if use python; then - pushd contrib/pyzfs >/dev/null || die - distutils-r1_src_prepare - popd >/dev/null || die - fi - - # Tries to use /etc/conf.d which we reserve for OpenRC - sed -i -e '/EnvironmentFile/d' etc/systemd/system/zfs*.in || die - - # prevent errors showing up on zfs-mount stop, #647688 - # openrc will unmount all filesystems anyway. - sed -i "/^ZFS_UNMOUNT=/ s/yes/no/" "etc/default/zfs.in" || die -} - -src_configure() { - use custom-cflags || strip-flags - use minimal || python_setup - - local myconf=( - --bindir="${EPREFIX}/bin" - --enable-shared - --enable-sysvinit - --localstatedir="${EPREFIX}/var" - --sbindir="${EPREFIX}/sbin" - --with-config=user - --with-dracutdir="${EPREFIX}/usr/lib/dracut" - --with-linux="${KV_DIR}" - --with-linux-obj="${KV_OUT_DIR}" - --with-udevdir="$(get_udevdir)" - --with-pamconfigsdir="${EPREFIX}/unwanted_files" - --with-pammoduledir="$(getpam_mod_dir)" - --with-systemdunitdir="$(systemd_get_systemunitdir)" - --with-systemdpresetdir="$(systemd_get_systempresetdir)" - --with-vendor=gentoo - # Building zfs-mount-generator.c on musl breaks as strndupa - # isn't available. But systemd doesn't support musl anyway, so - # just disable building it. - # UPDATE: it has been fixed since, - # https://github.com/openzfs/zfs/commit/1f19826c9ac85835cbde61a7439d9d1fefe43a4a - # but we still leave it as this for now. - $(use_enable !elibc_musl systemd) - $(use_enable debug) - $(use_enable nls) - $(use_enable pam) - $(use_enable python pyzfs) - $(use_with unwind libunwind) - --disable-static - $(usex minimal --without-python --with-python="${EPYTHON}") - ) - - econf "${myconf[@]}" -} - -src_compile() { - default - if use python; then - pushd contrib/pyzfs >/dev/null || die - distutils-r1_src_compile - popd >/dev/null || die - fi -} - -src_install() { - default - - gen_usr_ldscript -a nvpair uutil zfsbootenv zfs zfs_core zpool - - use pam && { rm -rv "${ED}/unwanted_files" || die ; } - - use test-suite || { rm -r "${ED}"/usr/share/zfs/{test-runner,zfs-tests,runfiles,*sh} || die ; } - - find "${ED}" -name '*.la' -delete || die - - dobashcomp contrib/bash_completion.d/zfs - bashcomp_alias zfs zpool - - # strip executable bit from conf.d file - fperms 0644 /etc/conf.d/zfs - - if use python; then - pushd contrib/pyzfs >/dev/null || die - distutils-r1_src_install - popd >/dev/null || die - fi - - # enforce best available python implementation - use minimal || python_fix_shebang "${ED}/bin" -} - -pkg_postinst() { - udev_reload - - # we always need userspace utils in sync with zfs-kmod - # so force initrd update for userspace as well, to avoid - # situation when zfs-kmod trigger initrd rebuild before - # userspace component is rebuilt - # KV_* variables are provided by linux-info.eclass - if [[ -z ${ROOT} ]] && use dist-kernel; then - dist-kernel_reinstall_initramfs "${KV_DIR}" "${KV_FULL}" - fi - - if use rootfs; then - if ! has_version sys-kernel/genkernel && ! has_version sys-kernel/dracut; then - elog "Root on zfs requires an initramfs to boot" - elog "The following packages provide one and are tested on a regular basis:" - elog " sys-kernel/dracut ( preferred, module maintained by zfs developers )" - elog " sys-kernel/genkernel" - fi - fi - - if systemd_is_booted || has_version sys-apps/systemd; then - einfo "Please refer to $(systemd_get_systempresetdir)/50-zfs.preset" - einfo "for default zfs systemd service configuration" - else - [[ -e "${EROOT}/etc/runlevels/boot/zfs-import" ]] || \ - einfo "You should add zfs-import to the boot runlevel." - [[ -e "${EROOT}/etc/runlevels/boot/zfs-load-key" ]] || \ - einfo "You should add zfs-load-key to the boot runlevel." - [[ -e "${EROOT}/etc/runlevels/boot/zfs-mount" ]]|| \ - einfo "You should add zfs-mount to the boot runlevel." - [[ -e "${EROOT}/etc/runlevels/default/zfs-share" ]] || \ - einfo "You should add zfs-share to the default runlevel." - [[ -e "${EROOT}/etc/runlevels/default/zfs-zed" ]] || \ - einfo "You should add zfs-zed to the default runlevel." - fi -} - -pkg_postrm() { - udev_reload -} diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/zfs/zfs-2.3.4.ebuild b/sdk_container/src/third_party/portage-stable/sys-fs/zfs/zfs-2.3.4.ebuild deleted file mode 100644 index d91b1f06bcb..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-fs/zfs/zfs-2.3.4.ebuild +++ /dev/null @@ -1,314 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# Maintainers should consider lurking in the ZFS IRC channels (there's several) -# and regularly checking ZFS GitHub issues and PRs. Look out for the 'zfs-*' -# stable backport PRs when they're opened and subscribe to them for any important -# cherry-picks that may be needed in advance. - -DISTUTILS_OPTIONAL=1 -DISTUTILS_USE_PEP517=setuptools -PYTHON_COMPAT=( python3_{10..13} ) - -inherit autotools bash-completion-r1 dist-kernel-utils distutils-r1 flag-o-matic linux-info pam systemd udev usr-ldscript - -DESCRIPTION="Userland utilities for ZFS Linux kernel module" -HOMEPAGE="https://github.com/openzfs/zfs" - -if [[ ${PV} == "9999" ]]; then - inherit git-r3 - EGIT_REPO_URI="https://github.com/openzfs/zfs.git" -else - VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/openzfs.asc - inherit verify-sig - - MY_P="${P/_rc/-rc}" - SRC_URI="https://github.com/openzfs/${PN}/releases/download/${MY_P}/${MY_P}.tar.gz" - SRC_URI+=" verify-sig? ( https://github.com/openzfs/${PN}/releases/download/${MY_P}/${MY_P}.tar.gz.asc )" - S="${WORKDIR}/${MY_P}" - - if [[ ${PV} != *_rc* ]]; then - KEYWORDS="amd64 arm64 ~loong ppc64 ~riscv ~sparc" - fi -fi - -LICENSE="BSD-2 CDDL MIT" -# just libzfs soname major for now. -# possible candidates: libuutil, libzpool, libnvpair. Those do not provide stable abi, but are considered. -# see libsoversion_check() below as well -SLOT="0/6" -IUSE="custom-cflags debug dist-kernel kernel-builtin minimal nls pam python +rootfs selinux test-suite unwind" - -DEPEND=" - dev-libs/openssl:= - net-libs/libtirpc:= - sys-apps/util-linux - virtual/zlib:= - virtual/libudev:= - !minimal? ( ${PYTHON_DEPS} ) - pam? ( sys-libs/pam ) - python? ( - $(python_gen_cond_dep 'dev-python/cffi[${PYTHON_USEDEP}]' 'python*') - ) - unwind? ( sys-libs/libunwind:= ) -" - -BDEPEND=" - app-alternatives/awk - virtual/pkgconfig - nls? ( sys-devel/gettext ) - python? ( - ${DISTUTILS_DEPS} - || ( - dev-python/packaging[${PYTHON_USEDEP}] - dev-python/distlib[${PYTHON_USEDEP}] - ) - ) -" - -if [[ ${PV} != "9999" ]] ; then - BDEPEND+=" verify-sig? ( sec-keys/openpgp-keys-openzfs )" -fi - -# awk is used for some scripts, completions, and the Dracut module -RDEPEND=" - ${DEPEND} - !kernel-builtin? ( ~sys-fs/zfs-kmod-${PV}:= ) - !prefix? ( virtual/udev ) - app-alternatives/awk - sys-fs/udev-init-scripts - dist-kernel? ( virtual/dist-kernel:= ) - rootfs? ( - app-alternatives/cpio - app-misc/pax-utils - ) - selinux? ( sec-policy/selinux-zfs ) - test-suite? ( - app-shells/ksh - sys-apps/kmod[tools] - sys-apps/util-linux - app-alternatives/bc - sys-block/parted - sys-fs/lsscsi - sys-fs/mdadm - sys-process/procps - ) -" - -# PDEPEND in this form is needed to trick portage suggest -# enabling dist-kernel if only 1 package have it set, without suggesting to disable -PDEPEND="dist-kernel? ( ~sys-fs/zfs-kmod-${PV}[dist-kernel] )" - -REQUIRED_USE=" - !minimal? ( ${PYTHON_REQUIRED_USE} ) - python? ( !minimal ) - test-suite? ( !minimal ) -" - -RESTRICT="test" - -PATCHES=( - "${FILESDIR}"/2.1.5-dracut-zfs-missing.patch - "${FILESDIR}"/2.3.4-musl.patch -) - -pkg_pretend() { - use rootfs || return 0 - - if has_version virtual/dist-kernel && ! use dist-kernel; then - ewarn "You have virtual/dist-kernel installed, but" - ewarn "USE=\"dist-kernel\" is not enabled for ${CATEGORY}/${PN}" - ewarn "It's recommended to globally enable dist-kernel USE flag" - ewarn "to auto-trigger initrd rebuilds with kernel updates" - fi -} - -pkg_setup() { - if use kernel_linux; then - linux-info_pkg_setup - - if ! linux_config_exists; then - ewarn "Cannot check the linux kernel configuration." - else - if use test-suite; then - if linux_chkconfig_present BLK_DEV_LOOP; then - eerror "The ZFS test suite requires loop device support enabled." - eerror "Please enable it:" - eerror " CONFIG_BLK_DEV_LOOP=y" - eerror "in /usr/src/linux/.config or" - eerror " Device Drivers --->" - eerror " Block devices --->" - eerror " [X] Loopback device support" - fi - fi - fi - fi -} - -libsoversion_check() { - local bugurl libzfs_sover - bugurl="https://bugs.gentoo.org/enter_bug.cgi?form_name=enter_bug&product=Gentoo+Linux&component=Current+packages" - - libzfs_sover="$(grep 'libzfs_la_LDFLAGS += -version-info' lib/libzfs/Makefile.am \ - | grep -Eo '[0-9]+:[0-9]+:[0-9]+')" - libzfs_sover="${libzfs_sover%%:*}" - - if [[ ${libzfs_sover} -ne $(ver_cut 2 ${SLOT}) ]]; then - echo - eerror "BUG BUG BUG BUG BUG BUG BUG BUG" - eerror "ebuild subslot does not match libzfs soversion!" - eerror "libzfs soversion: ${libzfs_sover}" - eerror "ebuild value: $(ver_cut 2 ${SLOT})" - eerror "This is a bug in the ebuild, please use the following URL to report it" - eerror "${bugurl}&short_desc=${CATEGORY}%2F${P}+update+subslot" - echo - # we want to abort for releases, but just print a warning for live ebuild - # to keep package installable - [[ ${PV} == "9999" ]] || die - fi -} - -src_prepare() { - default - libsoversion_check - - # Run unconditionally (bug #792627) - eautoreconf - - if [[ ${PV} != "9999" ]]; then - # Set revision number - sed -i "s/\(Release:\)\(.*\)1/\1\2${PR}-gentoo/" META || die "Could not set Gentoo release" - fi - - if use python; then - pushd contrib/pyzfs >/dev/null || die - distutils-r1_src_prepare - popd >/dev/null || die - fi - - # Tries to use /etc/conf.d which we reserve for OpenRC - sed -i -e '/EnvironmentFile/d' etc/systemd/system/zfs*.in || die - - # prevent errors showing up on zfs-mount stop, #647688 - # openrc will unmount all filesystems anyway. - sed -i "/^ZFS_UNMOUNT=/ s/yes/no/" "etc/default/zfs.in" || die -} - -src_configure() { - use custom-cflags || strip-flags - use minimal || python_setup - - local myconf=( - --bindir="${EPREFIX}/bin" - --enable-shared - --enable-sysvinit - --localstatedir="${EPREFIX}/var" - --sbindir="${EPREFIX}/sbin" - --with-config=user - --with-dracutdir="${EPREFIX}/usr/lib/dracut" - --with-linux="${KV_DIR}" - --with-linux-obj="${KV_OUT_DIR}" - --with-udevdir="$(get_udevdir)" - --with-pamconfigsdir="${EPREFIX}/unwanted_files" - --with-pammoduledir="$(getpam_mod_dir)" - --with-systemdunitdir="$(systemd_get_systemunitdir)" - --with-systemdpresetdir="$(systemd_get_systempresetdir)" - --with-vendor=gentoo - # Building zfs-mount-generator.c on musl breaks as strndupa - # isn't available. But systemd doesn't support musl anyway, so - # just disable building it. - # UPDATE: it has been fixed since, - # https://github.com/openzfs/zfs/commit/1f19826c9ac85835cbde61a7439d9d1fefe43a4a - # but we still leave it as this for now. - $(use_enable !elibc_musl systemd) - $(use_enable debug) - $(use_enable nls) - $(use_enable pam) - $(use_enable python pyzfs) - $(use_with unwind libunwind) - --disable-static - $(usex minimal --without-python --with-python="${EPYTHON}") - ) - - econf "${myconf[@]}" -} - -src_compile() { - default - if use python; then - pushd contrib/pyzfs >/dev/null || die - distutils-r1_src_compile - popd >/dev/null || die - fi -} - -src_install() { - default - - gen_usr_ldscript -a nvpair uutil zfsbootenv zfs zfs_core zpool - - use pam && { rm -rv "${ED}/unwanted_files" || die ; } - - use test-suite || { rm -r "${ED}"/usr/share/zfs/{test-runner,zfs-tests,runfiles,*sh} || die ; } - - find "${ED}" -name '*.la' -delete || die - - dobashcomp contrib/bash_completion.d/zfs - bashcomp_alias zfs zpool - - # strip executable bit from conf.d file - fperms 0644 /etc/conf.d/zfs - - if use python; then - pushd contrib/pyzfs >/dev/null || die - distutils-r1_src_install - popd >/dev/null || die - fi - - # enforce best available python implementation - use minimal || python_fix_shebang "${ED}/bin" -} - -pkg_postinst() { - udev_reload - - # we always need userspace utils in sync with zfs-kmod - # so force initrd update for userspace as well, to avoid - # situation when zfs-kmod trigger initrd rebuild before - # userspace component is rebuilt - # KV_* variables are provided by linux-info.eclass - if [[ -z ${ROOT} ]] && use dist-kernel; then - dist-kernel_reinstall_initramfs "${KV_DIR}" "${KV_FULL}" - fi - - if use rootfs; then - if ! has_version sys-kernel/genkernel && ! has_version sys-kernel/dracut; then - elog "Root on zfs requires an initramfs to boot" - elog "The following packages provide one and are tested on a regular basis:" - elog " sys-kernel/dracut ( preferred, module maintained by zfs developers )" - elog " sys-kernel/genkernel" - fi - fi - - if systemd_is_booted || has_version sys-apps/systemd; then - einfo "Please refer to $(systemd_get_systempresetdir)/50-zfs.preset" - einfo "for default zfs systemd service configuration" - else - [[ -e "${EROOT}/etc/runlevels/boot/zfs-import" ]] || \ - einfo "You should add zfs-import to the boot runlevel." - [[ -e "${EROOT}/etc/runlevels/boot/zfs-load-key" ]] || \ - einfo "You should add zfs-load-key to the boot runlevel." - [[ -e "${EROOT}/etc/runlevels/boot/zfs-mount" ]]|| \ - einfo "You should add zfs-mount to the boot runlevel." - [[ -e "${EROOT}/etc/runlevels/default/zfs-share" ]] || \ - einfo "You should add zfs-share to the default runlevel." - [[ -e "${EROOT}/etc/runlevels/default/zfs-zed" ]] || \ - einfo "You should add zfs-zed to the default runlevel." - fi -} - -pkg_postrm() { - udev_reload -} diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/zfs/zfs-2.3.6.ebuild b/sdk_container/src/third_party/portage-stable/sys-fs/zfs/zfs-2.3.6.ebuild deleted file mode 100644 index 62d5e6af657..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-fs/zfs/zfs-2.3.6.ebuild +++ /dev/null @@ -1,313 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# Maintainers should consider lurking in the ZFS IRC channels (there's several) -# and regularly checking ZFS GitHub issues and PRs. Look out for the 'zfs-*' -# stable backport PRs when they're opened and subscribe to them for any important -# cherry-picks that may be needed in advance. - -DISTUTILS_OPTIONAL=1 -DISTUTILS_USE_PEP517=setuptools -PYTHON_COMPAT=( python3_{11..14} ) - -inherit autotools bash-completion-r1 dist-kernel-utils distutils-r1 flag-o-matic linux-info pam systemd udev usr-ldscript - -DESCRIPTION="Userland utilities for ZFS Linux kernel module" -HOMEPAGE="https://github.com/openzfs/zfs" - -if [[ ${PV} == "9999" ]]; then - inherit git-r3 - EGIT_REPO_URI="https://github.com/openzfs/zfs.git" -else - VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/openzfs.asc - inherit verify-sig - - MY_P="${P/_rc/-rc}" - SRC_URI="https://github.com/openzfs/${PN}/releases/download/${MY_P}/${MY_P}.tar.gz" - SRC_URI+=" verify-sig? ( https://github.com/openzfs/${PN}/releases/download/${MY_P}/${MY_P}.tar.gz.asc )" - S="${WORKDIR}/${MY_P}" - - if [[ ${PV} != *_rc* ]]; then - KEYWORDS="amd64 arm64 ~loong ppc64 ~riscv ~sparc" - fi -fi - -LICENSE="BSD-2 CDDL MIT" -# just libzfs soname major for now. -# possible candidates: libuutil, libzpool, libnvpair. Those do not provide stable abi, but are considered. -# see libsoversion_check() below as well -SLOT="0/6" -IUSE="custom-cflags debug dist-kernel kernel-builtin minimal nls pam python +rootfs selinux test-suite unwind" - -DEPEND=" - dev-libs/openssl:= - net-libs/libtirpc:= - sys-apps/util-linux - virtual/zlib:= - virtual/libudev:= - !minimal? ( ${PYTHON_DEPS} ) - pam? ( sys-libs/pam ) - python? ( - $(python_gen_cond_dep 'dev-python/cffi[${PYTHON_USEDEP}]' 'python*') - ) - unwind? ( sys-libs/libunwind:= ) -" - -BDEPEND=" - app-alternatives/awk - virtual/pkgconfig - nls? ( sys-devel/gettext ) - python? ( - ${DISTUTILS_DEPS} - || ( - dev-python/packaging[${PYTHON_USEDEP}] - dev-python/distlib[${PYTHON_USEDEP}] - ) - ) -" - -if [[ ${PV} != "9999" ]] ; then - BDEPEND+=" verify-sig? ( sec-keys/openpgp-keys-openzfs )" -fi - -# awk is used for some scripts, completions, and the Dracut module -RDEPEND=" - ${DEPEND} - !kernel-builtin? ( ~sys-fs/zfs-kmod-${PV}:= ) - !prefix? ( virtual/udev ) - app-alternatives/awk - sys-fs/udev-init-scripts - dist-kernel? ( virtual/dist-kernel:= ) - rootfs? ( - app-alternatives/cpio - app-misc/pax-utils - ) - selinux? ( sec-policy/selinux-zfs ) - test-suite? ( - app-shells/ksh - sys-apps/kmod[tools] - sys-apps/util-linux - app-alternatives/bc - sys-block/parted - sys-fs/lsscsi - sys-fs/mdadm - sys-process/procps - ) -" - -# PDEPEND in this form is needed to trick portage suggest -# enabling dist-kernel if only 1 package have it set, without suggesting to disable -PDEPEND="dist-kernel? ( ~sys-fs/zfs-kmod-${PV}[dist-kernel] )" - -REQUIRED_USE=" - !minimal? ( ${PYTHON_REQUIRED_USE} ) - python? ( !minimal ) - test-suite? ( !minimal ) -" - -RESTRICT="test" - -PATCHES=( - "${FILESDIR}"/2.1.5-dracut-zfs-missing.patch -) - -pkg_pretend() { - use rootfs || return 0 - - if has_version virtual/dist-kernel && ! use dist-kernel; then - ewarn "You have virtual/dist-kernel installed, but" - ewarn "USE=\"dist-kernel\" is not enabled for ${CATEGORY}/${PN}" - ewarn "It's recommended to globally enable dist-kernel USE flag" - ewarn "to auto-trigger initrd rebuilds with kernel updates" - fi -} - -pkg_setup() { - if use kernel_linux; then - linux-info_pkg_setup - - if ! linux_config_exists; then - ewarn "Cannot check the linux kernel configuration." - else - if use test-suite; then - if linux_chkconfig_present BLK_DEV_LOOP; then - eerror "The ZFS test suite requires loop device support enabled." - eerror "Please enable it:" - eerror " CONFIG_BLK_DEV_LOOP=y" - eerror "in /usr/src/linux/.config or" - eerror " Device Drivers --->" - eerror " Block devices --->" - eerror " [X] Loopback device support" - fi - fi - fi - fi -} - -libsoversion_check() { - local bugurl libzfs_sover - bugurl="https://bugs.gentoo.org/enter_bug.cgi?form_name=enter_bug&product=Gentoo+Linux&component=Current+packages" - - libzfs_sover="$(grep 'libzfs_la_LDFLAGS += -version-info' lib/libzfs/Makefile.am \ - | grep -Eo '[0-9]+:[0-9]+:[0-9]+')" - libzfs_sover="${libzfs_sover%%:*}" - - if [[ ${libzfs_sover} -ne $(ver_cut 2 ${SLOT}) ]]; then - echo - eerror "BUG BUG BUG BUG BUG BUG BUG BUG" - eerror "ebuild subslot does not match libzfs soversion!" - eerror "libzfs soversion: ${libzfs_sover}" - eerror "ebuild value: $(ver_cut 2 ${SLOT})" - eerror "This is a bug in the ebuild, please use the following URL to report it" - eerror "${bugurl}&short_desc=${CATEGORY}%2F${P}+update+subslot" - echo - # we want to abort for releases, but just print a warning for live ebuild - # to keep package installable - [[ ${PV} == "9999" ]] || die - fi -} - -src_prepare() { - default - libsoversion_check - - # Run unconditionally (bug #792627) - eautoreconf - - if [[ ${PV} != "9999" ]]; then - # Set revision number - sed -i "s/\(Release:\)\(.*\)1/\1\2${PR}-gentoo/" META || die "Could not set Gentoo release" - fi - - if use python; then - pushd contrib/pyzfs >/dev/null || die - distutils-r1_src_prepare - popd >/dev/null || die - fi - - # Tries to use /etc/conf.d which we reserve for OpenRC - sed -i -e '/EnvironmentFile/d' etc/systemd/system/zfs*.in || die - - # prevent errors showing up on zfs-mount stop, #647688 - # openrc will unmount all filesystems anyway. - sed -i "/^ZFS_UNMOUNT=/ s/yes/no/" "etc/default/zfs.in" || die -} - -src_configure() { - use custom-cflags || strip-flags - use minimal || python_setup - - local myconf=( - --bindir="${EPREFIX}/bin" - --enable-shared - --enable-sysvinit - --localstatedir="${EPREFIX}/var" - --sbindir="${EPREFIX}/sbin" - --with-config=user - --with-dracutdir="${EPREFIX}/usr/lib/dracut" - --with-linux="${KV_DIR}" - --with-linux-obj="${KV_OUT_DIR}" - --with-udevdir="$(get_udevdir)" - --with-pamconfigsdir="${EPREFIX}/unwanted_files" - --with-pammoduledir="$(getpam_mod_dir)" - --with-systemdunitdir="$(systemd_get_systemunitdir)" - --with-systemdpresetdir="$(systemd_get_systempresetdir)" - --with-vendor=gentoo - # Building zfs-mount-generator.c on musl breaks as strndupa - # isn't available. But systemd doesn't support musl anyway, so - # just disable building it. - # UPDATE: it has been fixed since, - # https://github.com/openzfs/zfs/commit/1f19826c9ac85835cbde61a7439d9d1fefe43a4a - # but we still leave it as this for now. - $(use_enable !elibc_musl systemd) - $(use_enable debug) - $(use_enable nls) - $(use_enable pam) - $(use_enable python pyzfs) - $(use_with unwind libunwind) - --disable-static - $(usex minimal --without-python --with-python="${EPYTHON}") - ) - - econf "${myconf[@]}" -} - -src_compile() { - default - if use python; then - pushd contrib/pyzfs >/dev/null || die - distutils-r1_src_compile - popd >/dev/null || die - fi -} - -src_install() { - default - - gen_usr_ldscript -a nvpair uutil zfsbootenv zfs zfs_core zpool - - use pam && { rm -rv "${ED}/unwanted_files" || die ; } - - use test-suite || { rm -r "${ED}"/usr/share/zfs/{test-runner,zfs-tests,runfiles,*sh} || die ; } - - find "${ED}" -name '*.la' -delete || die - - dobashcomp contrib/bash_completion.d/zfs - bashcomp_alias zfs zpool - - # strip executable bit from conf.d file - fperms 0644 /etc/conf.d/zfs - - if use python; then - pushd contrib/pyzfs >/dev/null || die - distutils-r1_src_install - popd >/dev/null || die - fi - - # enforce best available python implementation - use minimal || python_fix_shebang "${ED}/bin" -} - -pkg_postinst() { - udev_reload - - # we always need userspace utils in sync with zfs-kmod - # so force initrd update for userspace as well, to avoid - # situation when zfs-kmod trigger initrd rebuild before - # userspace component is rebuilt - # KV_* variables are provided by linux-info.eclass - if [[ -z ${ROOT} ]] && use dist-kernel; then - dist-kernel_reinstall_initramfs "${KV_DIR}" "${KV_FULL}" - fi - - if use rootfs; then - if ! has_version sys-kernel/genkernel && ! has_version sys-kernel/dracut; then - elog "Root on zfs requires an initramfs to boot" - elog "The following packages provide one and are tested on a regular basis:" - elog " sys-kernel/dracut ( preferred, module maintained by zfs developers )" - elog " sys-kernel/genkernel" - fi - fi - - if systemd_is_booted || has_version sys-apps/systemd; then - einfo "Please refer to $(systemd_get_systempresetdir)/50-zfs.preset" - einfo "for default zfs systemd service configuration" - else - [[ -e "${EROOT}/etc/runlevels/boot/zfs-import" ]] || \ - einfo "You should add zfs-import to the boot runlevel." - [[ -e "${EROOT}/etc/runlevels/boot/zfs-load-key" ]] || \ - einfo "You should add zfs-load-key to the boot runlevel." - [[ -e "${EROOT}/etc/runlevels/boot/zfs-mount" ]]|| \ - einfo "You should add zfs-mount to the boot runlevel." - [[ -e "${EROOT}/etc/runlevels/default/zfs-share" ]] || \ - einfo "You should add zfs-share to the default runlevel." - [[ -e "${EROOT}/etc/runlevels/default/zfs-zed" ]] || \ - einfo "You should add zfs-zed to the default runlevel." - fi -} - -pkg_postrm() { - udev_reload -} diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/zfs/zfs-2.3.7.ebuild b/sdk_container/src/third_party/portage-stable/sys-fs/zfs/zfs-2.3.7.ebuild deleted file mode 100644 index 3a9bd604cca..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-fs/zfs/zfs-2.3.7.ebuild +++ /dev/null @@ -1,313 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# Maintainers should consider lurking in the ZFS IRC channels (there's several) -# and regularly checking ZFS GitHub issues and PRs. Look out for the 'zfs-*' -# stable backport PRs when they're opened and subscribe to them for any important -# cherry-picks that may be needed in advance. - -DISTUTILS_OPTIONAL=1 -DISTUTILS_USE_PEP517=setuptools -PYTHON_COMPAT=( python3_{11..15} ) - -inherit autotools bash-completion-r1 dist-kernel-utils distutils-r1 flag-o-matic linux-info pam systemd udev usr-ldscript - -DESCRIPTION="Userland utilities for ZFS Linux kernel module" -HOMEPAGE="https://github.com/openzfs/zfs" - -if [[ ${PV} == "9999" ]]; then - inherit git-r3 - EGIT_REPO_URI="https://github.com/openzfs/zfs.git" -else - VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/openzfs.asc - inherit verify-sig - - MY_P="${P/_rc/-rc}" - SRC_URI="https://github.com/openzfs/${PN}/releases/download/${MY_P}/${MY_P}.tar.gz" - SRC_URI+=" verify-sig? ( https://github.com/openzfs/${PN}/releases/download/${MY_P}/${MY_P}.tar.gz.asc )" - S="${WORKDIR}/${MY_P}" - - if [[ ${PV} != *_rc* ]]; then - KEYWORDS="~amd64 ~arm64 ~loong ~ppc64 ~riscv ~sparc" - fi -fi - -LICENSE="BSD-2 CDDL MIT" -# just libzfs soname major for now. -# possible candidates: libuutil, libzpool, libnvpair. Those do not provide stable abi, but are considered. -# see libsoversion_check() below as well -SLOT="0/6" -IUSE="custom-cflags debug dist-kernel kernel-builtin minimal nls pam python +rootfs selinux test-suite unwind" - -DEPEND=" - dev-libs/openssl:= - net-libs/libtirpc:= - sys-apps/util-linux - virtual/zlib:= - virtual/libudev:= - !minimal? ( ${PYTHON_DEPS} ) - pam? ( sys-libs/pam ) - python? ( - $(python_gen_cond_dep 'dev-python/cffi[${PYTHON_USEDEP}]' 'python*') - ) - unwind? ( sys-libs/libunwind:= ) -" - -BDEPEND=" - app-alternatives/awk - virtual/pkgconfig - nls? ( sys-devel/gettext ) - python? ( - ${DISTUTILS_DEPS} - || ( - dev-python/packaging[${PYTHON_USEDEP}] - dev-python/distlib[${PYTHON_USEDEP}] - ) - ) -" - -if [[ ${PV} != "9999" ]] ; then - BDEPEND+=" verify-sig? ( sec-keys/openpgp-keys-openzfs )" -fi - -# awk is used for some scripts, completions, and the Dracut module -RDEPEND=" - ${DEPEND} - !kernel-builtin? ( ~sys-fs/zfs-kmod-${PV}:= ) - !prefix? ( virtual/udev ) - app-alternatives/awk - sys-fs/udev-init-scripts - dist-kernel? ( virtual/dist-kernel:= ) - rootfs? ( - app-alternatives/cpio - app-misc/pax-utils - ) - selinux? ( sec-policy/selinux-zfs ) - test-suite? ( - app-shells/ksh - sys-apps/kmod[tools] - sys-apps/util-linux - app-alternatives/bc - sys-block/parted - sys-fs/lsscsi - sys-fs/mdadm - sys-process/procps - ) -" - -# PDEPEND in this form is needed to trick portage suggest -# enabling dist-kernel if only 1 package have it set, without suggesting to disable -PDEPEND="dist-kernel? ( ~sys-fs/zfs-kmod-${PV}[dist-kernel] )" - -REQUIRED_USE=" - !minimal? ( ${PYTHON_REQUIRED_USE} ) - python? ( !minimal ) - test-suite? ( !minimal ) -" - -RESTRICT="test" - -PATCHES=( - "${FILESDIR}"/2.1.5-dracut-zfs-missing.patch -) - -pkg_pretend() { - use rootfs || return 0 - - if has_version virtual/dist-kernel && ! use dist-kernel; then - ewarn "You have virtual/dist-kernel installed, but" - ewarn "USE=\"dist-kernel\" is not enabled for ${CATEGORY}/${PN}" - ewarn "It's recommended to globally enable dist-kernel USE flag" - ewarn "to auto-trigger initrd rebuilds with kernel updates" - fi -} - -pkg_setup() { - if use kernel_linux; then - linux-info_pkg_setup - - if ! linux_config_exists; then - ewarn "Cannot check the linux kernel configuration." - else - if use test-suite; then - if linux_chkconfig_present BLK_DEV_LOOP; then - eerror "The ZFS test suite requires loop device support enabled." - eerror "Please enable it:" - eerror " CONFIG_BLK_DEV_LOOP=y" - eerror "in /usr/src/linux/.config or" - eerror " Device Drivers --->" - eerror " Block devices --->" - eerror " [X] Loopback device support" - fi - fi - fi - fi -} - -libsoversion_check() { - local bugurl libzfs_sover - bugurl="https://bugs.gentoo.org/enter_bug.cgi?form_name=enter_bug&product=Gentoo+Linux&component=Current+packages" - - libzfs_sover="$(grep 'libzfs_la_LDFLAGS += -version-info' lib/libzfs/Makefile.am \ - | grep -Eo '[0-9]+:[0-9]+:[0-9]+')" - libzfs_sover="${libzfs_sover%%:*}" - - if [[ ${libzfs_sover} -ne $(ver_cut 2 ${SLOT}) ]]; then - echo - eerror "BUG BUG BUG BUG BUG BUG BUG BUG" - eerror "ebuild subslot does not match libzfs soversion!" - eerror "libzfs soversion: ${libzfs_sover}" - eerror "ebuild value: $(ver_cut 2 ${SLOT})" - eerror "This is a bug in the ebuild, please use the following URL to report it" - eerror "${bugurl}&short_desc=${CATEGORY}%2F${P}+update+subslot" - echo - # we want to abort for releases, but just print a warning for live ebuild - # to keep package installable - [[ ${PV} == "9999" ]] || die - fi -} - -src_prepare() { - default - libsoversion_check - - # Run unconditionally (bug #792627) - eautoreconf - - if [[ ${PV} != "9999" ]]; then - # Set revision number - sed -i "s/\(Release:\)\(.*\)1/\1\2${PR}-gentoo/" META || die "Could not set Gentoo release" - fi - - if use python; then - pushd contrib/pyzfs >/dev/null || die - distutils-r1_src_prepare - popd >/dev/null || die - fi - - # Tries to use /etc/conf.d which we reserve for OpenRC - sed -i -e '/EnvironmentFile/d' etc/systemd/system/zfs*.in || die - - # prevent errors showing up on zfs-mount stop, #647688 - # openrc will unmount all filesystems anyway. - sed -i "/^ZFS_UNMOUNT=/ s/yes/no/" "etc/default/zfs.in" || die -} - -src_configure() { - use custom-cflags || strip-flags - use minimal || python_setup - - local myconf=( - --bindir="${EPREFIX}/bin" - --enable-shared - --enable-sysvinit - --localstatedir="${EPREFIX}/var" - --sbindir="${EPREFIX}/sbin" - --with-config=user - --with-dracutdir="${EPREFIX}/usr/lib/dracut" - --with-linux="${KV_DIR}" - --with-linux-obj="${KV_OUT_DIR}" - --with-udevdir="$(get_udevdir)" - --with-pamconfigsdir="${EPREFIX}/unwanted_files" - --with-pammoduledir="$(getpam_mod_dir)" - --with-systemdunitdir="$(systemd_get_systemunitdir)" - --with-systemdpresetdir="$(systemd_get_systempresetdir)" - --with-vendor=gentoo - # Building zfs-mount-generator.c on musl breaks as strndupa - # isn't available. But systemd doesn't support musl anyway, so - # just disable building it. - # UPDATE: it has been fixed since, - # https://github.com/openzfs/zfs/commit/1f19826c9ac85835cbde61a7439d9d1fefe43a4a - # but we still leave it as this for now. - $(use_enable !elibc_musl systemd) - $(use_enable debug) - $(use_enable nls) - $(use_enable pam) - $(use_enable python pyzfs) - $(use_with unwind libunwind) - --disable-static - $(usex minimal --without-python --with-python="${EPYTHON}") - ) - - econf "${myconf[@]}" -} - -src_compile() { - default - if use python; then - pushd contrib/pyzfs >/dev/null || die - distutils-r1_src_compile - popd >/dev/null || die - fi -} - -src_install() { - default - - gen_usr_ldscript -a nvpair uutil zfsbootenv zfs zfs_core zpool - - use pam && { rm -rv "${ED}/unwanted_files" || die ; } - - use test-suite || { rm -r "${ED}"/usr/share/zfs/{test-runner,zfs-tests,runfiles,*sh} || die ; } - - find "${ED}" -name '*.la' -delete || die - - dobashcomp contrib/bash_completion.d/zfs - bashcomp_alias zfs zpool - - # strip executable bit from conf.d file - fperms 0644 /etc/conf.d/zfs - - if use python; then - pushd contrib/pyzfs >/dev/null || die - distutils-r1_src_install - popd >/dev/null || die - fi - - # enforce best available python implementation - use minimal || python_fix_shebang "${ED}/bin" -} - -pkg_postinst() { - udev_reload - - # we always need userspace utils in sync with zfs-kmod - # so force initrd update for userspace as well, to avoid - # situation when zfs-kmod trigger initrd rebuild before - # userspace component is rebuilt - # KV_* variables are provided by linux-info.eclass - if [[ -z ${ROOT} ]] && use dist-kernel; then - dist-kernel_reinstall_initramfs "${KV_DIR}" "${KV_FULL}" - fi - - if use rootfs; then - if ! has_version sys-kernel/genkernel && ! has_version sys-kernel/dracut; then - elog "Root on zfs requires an initramfs to boot" - elog "The following packages provide one and are tested on a regular basis:" - elog " sys-kernel/dracut ( preferred, module maintained by zfs developers )" - elog " sys-kernel/genkernel" - fi - fi - - if systemd_is_booted || has_version sys-apps/systemd; then - einfo "Please refer to $(systemd_get_systempresetdir)/50-zfs.preset" - einfo "for default zfs systemd service configuration" - else - [[ -e "${EROOT}/etc/runlevels/boot/zfs-import" ]] || \ - einfo "You should add zfs-import to the boot runlevel." - [[ -e "${EROOT}/etc/runlevels/boot/zfs-load-key" ]] || \ - einfo "You should add zfs-load-key to the boot runlevel." - [[ -e "${EROOT}/etc/runlevels/boot/zfs-mount" ]]|| \ - einfo "You should add zfs-mount to the boot runlevel." - [[ -e "${EROOT}/etc/runlevels/default/zfs-share" ]] || \ - einfo "You should add zfs-share to the default runlevel." - [[ -e "${EROOT}/etc/runlevels/default/zfs-zed" ]] || \ - einfo "You should add zfs-zed to the default runlevel." - fi -} - -pkg_postrm() { - udev_reload -} diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/zfs/zfs-2.3.8.ebuild b/sdk_container/src/third_party/portage-stable/sys-fs/zfs/zfs-2.3.8.ebuild deleted file mode 100644 index 5a445a51984..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-fs/zfs/zfs-2.3.8.ebuild +++ /dev/null @@ -1,313 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# Maintainers should consider lurking in the ZFS IRC channels (there's several) -# and regularly checking ZFS GitHub issues and PRs. Look out for the 'zfs-*' -# stable backport PRs when they're opened and subscribe to them for any important -# cherry-picks that may be needed in advance. - -DISTUTILS_OPTIONAL=1 -DISTUTILS_USE_PEP517=setuptools -PYTHON_COMPAT=( python3_{12..15} ) - -inherit autotools bash-completion-r1 dist-kernel-utils distutils-r1 flag-o-matic linux-info pam systemd udev usr-ldscript - -DESCRIPTION="Userland utilities for ZFS Linux kernel module" -HOMEPAGE="https://github.com/openzfs/zfs" - -if [[ ${PV} == "9999" ]]; then - inherit git-r3 - EGIT_REPO_URI="https://github.com/openzfs/zfs.git" -else - VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/openzfs.asc - inherit verify-sig - - MY_P="${P/_rc/-rc}" - SRC_URI="https://github.com/openzfs/${PN}/releases/download/${MY_P}/${MY_P}.tar.gz" - SRC_URI+=" verify-sig? ( https://github.com/openzfs/${PN}/releases/download/${MY_P}/${MY_P}.tar.gz.asc )" - S="${WORKDIR}/${MY_P}" - - if [[ ${PV} != *_rc* ]]; then - KEYWORDS="~amd64 ~arm64 ~loong ~ppc64 ~riscv ~sparc" - fi -fi - -LICENSE="BSD-2 CDDL MIT" -# just libzfs soname major for now. -# possible candidates: libuutil, libzpool, libnvpair. Those do not provide stable abi, but are considered. -# see libsoversion_check() below as well -SLOT="0/6" -IUSE="custom-cflags debug dist-kernel kernel-builtin minimal nls pam python +rootfs selinux test-suite unwind" - -DEPEND=" - dev-libs/openssl:= - net-libs/libtirpc:= - sys-apps/util-linux - virtual/zlib:= - virtual/libudev:= - !minimal? ( ${PYTHON_DEPS} ) - pam? ( sys-libs/pam ) - python? ( - $(python_gen_cond_dep 'dev-python/cffi[${PYTHON_USEDEP}]' 'python*') - ) - unwind? ( sys-libs/libunwind:= ) -" - -BDEPEND=" - app-alternatives/awk - virtual/pkgconfig - nls? ( sys-devel/gettext ) - python? ( - ${DISTUTILS_DEPS} - || ( - dev-python/packaging[${PYTHON_USEDEP}] - dev-python/distlib[${PYTHON_USEDEP}] - ) - ) -" - -if [[ ${PV} != "9999" ]] ; then - BDEPEND+=" verify-sig? ( sec-keys/openpgp-keys-openzfs )" -fi - -# awk is used for some scripts, completions, and the Dracut module -RDEPEND=" - ${DEPEND} - !kernel-builtin? ( ~sys-fs/zfs-kmod-${PV}:= ) - !prefix? ( virtual/udev ) - app-alternatives/awk - sys-fs/udev-init-scripts - dist-kernel? ( virtual/dist-kernel:= ) - rootfs? ( - app-alternatives/cpio - app-misc/pax-utils - ) - selinux? ( sec-policy/selinux-zfs ) - test-suite? ( - app-shells/ksh - sys-apps/kmod[tools] - sys-apps/util-linux - app-alternatives/bc - sys-block/parted - sys-fs/lsscsi - sys-fs/mdadm - sys-process/procps - ) -" - -# PDEPEND in this form is needed to trick portage suggest -# enabling dist-kernel if only 1 package have it set, without suggesting to disable -PDEPEND="dist-kernel? ( ~sys-fs/zfs-kmod-${PV}[dist-kernel] )" - -REQUIRED_USE=" - !minimal? ( ${PYTHON_REQUIRED_USE} ) - python? ( !minimal ) - test-suite? ( !minimal ) -" - -RESTRICT="test" - -PATCHES=( - "${FILESDIR}"/${PN}-2.1.11-gentoo.patch -) - -pkg_pretend() { - use rootfs || return 0 - - if has_version virtual/dist-kernel && ! use dist-kernel; then - ewarn "You have virtual/dist-kernel installed, but" - ewarn "USE=\"dist-kernel\" is not enabled for ${CATEGORY}/${PN}" - ewarn "It's recommended to globally enable dist-kernel USE flag" - ewarn "to auto-trigger initrd rebuilds with kernel updates" - fi -} - -pkg_setup() { - if use kernel_linux; then - linux-info_pkg_setup - - if ! linux_config_exists; then - ewarn "Cannot check the linux kernel configuration." - else - if use test-suite; then - if linux_chkconfig_present BLK_DEV_LOOP; then - eerror "The ZFS test suite requires loop device support enabled." - eerror "Please enable it:" - eerror " CONFIG_BLK_DEV_LOOP=y" - eerror "in /usr/src/linux/.config or" - eerror " Device Drivers --->" - eerror " Block devices --->" - eerror " [X] Loopback device support" - fi - fi - fi - fi -} - -libsoversion_check() { - local bugurl libzfs_sover - bugurl="https://bugs.gentoo.org/enter_bug.cgi?form_name=enter_bug&product=Gentoo+Linux&component=Current+packages" - - libzfs_sover="$(grep 'libzfs_la_LDFLAGS += -version-info' lib/libzfs/Makefile.am \ - | grep -Eo '[0-9]+:[0-9]+:[0-9]+')" - libzfs_sover="${libzfs_sover%%:*}" - - if [[ ${libzfs_sover} -ne $(ver_cut 2 ${SLOT}) ]]; then - echo - eerror "BUG BUG BUG BUG BUG BUG BUG BUG" - eerror "ebuild subslot does not match libzfs soversion!" - eerror "libzfs soversion: ${libzfs_sover}" - eerror "ebuild value: $(ver_cut 2 ${SLOT})" - eerror "This is a bug in the ebuild, please use the following URL to report it" - eerror "${bugurl}&short_desc=${CATEGORY}%2F${P}+update+subslot" - echo - # we want to abort for releases, but just print a warning for live ebuild - # to keep package installable - [[ ${PV} == "9999" ]] || die - fi -} - -src_prepare() { - default - libsoversion_check - - # Run unconditionally (bug #792627) - eautoreconf - - if [[ ${PV} != "9999" ]]; then - # Set revision number - sed -i "s/\(Release:\)\(.*\)1/\1\2${PR}-gentoo/" META || die "Could not set Gentoo release" - fi - - if use python; then - pushd contrib/pyzfs >/dev/null || die - distutils-r1_src_prepare - popd >/dev/null || die - fi - - # Tries to use /etc/conf.d which we reserve for OpenRC - sed -i -e '/EnvironmentFile/d' etc/systemd/system/zfs*.in || die - - # prevent errors showing up on zfs-mount stop, #647688 - # openrc will unmount all filesystems anyway. - sed -i "/^ZFS_UNMOUNT=/ s/yes/no/" "etc/default/zfs.in" || die -} - -src_configure() { - use custom-cflags || strip-flags - use minimal || python_setup - - local myconf=( - --bindir="${EPREFIX}/bin" - --enable-shared - --enable-sysvinit - --localstatedir="${EPREFIX}/var" - --sbindir="${EPREFIX}/sbin" - --with-config=user - --with-dracutdir="${EPREFIX}/usr/lib/dracut" - --with-linux="${KV_DIR}" - --with-linux-obj="${KV_OUT_DIR}" - --with-udevdir="$(get_udevdir)" - --with-pamconfigsdir="${EPREFIX}/unwanted_files" - --with-pammoduledir="$(getpam_mod_dir)" - --with-systemdunitdir="$(systemd_get_systemunitdir)" - --with-systemdpresetdir="$(systemd_get_systempresetdir)" - --with-vendor=gentoo - # Building zfs-mount-generator.c on musl breaks as strndupa - # isn't available. But systemd doesn't support musl anyway, so - # just disable building it. - # UPDATE: it has been fixed since, - # https://github.com/openzfs/zfs/commit/1f19826c9ac85835cbde61a7439d9d1fefe43a4a - # but we still leave it as this for now. - $(use_enable !elibc_musl systemd) - $(use_enable debug) - $(use_enable nls) - $(use_enable pam) - $(use_enable python pyzfs) - $(use_with unwind libunwind) - --disable-static - $(usex minimal --without-python --with-python="${EPYTHON}") - ) - - econf "${myconf[@]}" -} - -src_compile() { - default - if use python; then - pushd contrib/pyzfs >/dev/null || die - distutils-r1_src_compile - popd >/dev/null || die - fi -} - -src_install() { - default - - gen_usr_ldscript -a nvpair uutil zfsbootenv zfs zfs_core zpool - - use pam && { rm -rv "${ED}/unwanted_files" || die ; } - - use test-suite || { rm -r "${ED}"/usr/share/zfs/{test-runner,zfs-tests,runfiles,*sh} || die ; } - - find "${ED}" -name '*.la' -delete || die - - dobashcomp contrib/bash_completion.d/zfs - bashcomp_alias zfs zpool - - # strip executable bit from conf.d file - fperms 0644 /etc/conf.d/zfs - - if use python; then - pushd contrib/pyzfs >/dev/null || die - distutils-r1_src_install - popd >/dev/null || die - fi - - # enforce best available python implementation - use minimal || python_fix_shebang "${ED}/bin" -} - -pkg_postinst() { - udev_reload - - # we always need userspace utils in sync with zfs-kmod - # so force initrd update for userspace as well, to avoid - # situation when zfs-kmod trigger initrd rebuild before - # userspace component is rebuilt - # KV_* variables are provided by linux-info.eclass - if [[ -z ${ROOT} ]] && use dist-kernel; then - dist-kernel_reinstall_initramfs "${KV_DIR}" "${KV_FULL}" - fi - - if use rootfs; then - if ! has_version sys-kernel/genkernel && ! has_version sys-kernel/dracut; then - elog "Root on zfs requires an initramfs to boot" - elog "The following packages provide one and are tested on a regular basis:" - elog " sys-kernel/dracut ( preferred, module maintained by zfs developers )" - elog " sys-kernel/genkernel" - fi - fi - - if systemd_is_booted || has_version sys-apps/systemd; then - einfo "Please refer to $(systemd_get_systempresetdir)/50-zfs.preset" - einfo "for default zfs systemd service configuration" - else - [[ -e "${EROOT}/etc/runlevels/boot/zfs-import" ]] || \ - einfo "You should add zfs-import to the boot runlevel." - [[ -e "${EROOT}/etc/runlevels/boot/zfs-load-key" ]] || \ - einfo "You should add zfs-load-key to the boot runlevel." - [[ -e "${EROOT}/etc/runlevels/boot/zfs-mount" ]]|| \ - einfo "You should add zfs-mount to the boot runlevel." - [[ -e "${EROOT}/etc/runlevels/default/zfs-share" ]] || \ - einfo "You should add zfs-share to the default runlevel." - [[ -e "${EROOT}/etc/runlevels/default/zfs-zed" ]] || \ - einfo "You should add zfs-zed to the default runlevel." - fi -} - -pkg_postrm() { - udev_reload -} diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/zfs/zfs-2.3.9.ebuild b/sdk_container/src/third_party/portage-stable/sys-fs/zfs/zfs-2.3.9.ebuild index 5a445a51984..16e13b0bf3f 100644 --- a/sdk_container/src/third_party/portage-stable/sys-fs/zfs/zfs-2.3.9.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-fs/zfs/zfs-2.3.9.ebuild @@ -30,7 +30,7 @@ else S="${WORKDIR}/${MY_P}" if [[ ${PV} != *_rc* ]]; then - KEYWORDS="~amd64 ~arm64 ~loong ~ppc64 ~riscv ~sparc" + KEYWORDS="amd64 arm64 ~loong ppc64 ~riscv ~sparc" fi fi diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/zfs/zfs-2.4.1.ebuild b/sdk_container/src/third_party/portage-stable/sys-fs/zfs/zfs-2.4.1.ebuild deleted file mode 100644 index db1820a241f..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-fs/zfs/zfs-2.4.1.ebuild +++ /dev/null @@ -1,437 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# Maintainers should consider lurking in the ZFS IRC channels (there's several) -# and regularly checking ZFS GitHub issues and PRs. Look out for the 'zfs-*' -# stable backport PRs when they're opened and subscribe to them for any important -# cherry-picks that may be needed in advance. - -DISTUTILS_OPTIONAL=1 -DISTUTILS_USE_PEP517=setuptools -PYTHON_COMPAT=( python3_{11..14} ) - -MODULES_INITRAMFS_IUSE=+initramfs -MODULES_OPTIONAL_IUSE=+modules - -inherit autotools bash-completion-r1 distutils-r1 flag-o-matic linux-info -inherit linux-mod-r1 multiprocessing pam systemd udev usr-ldscript - -DESCRIPTION="Linux kernel module and userland utilities for ZFS" -HOMEPAGE="https://github.com/openzfs/zfs" - -MODULES_KERNEL_MAX=6.19 -MODULES_KERNEL_MIN=4.18 - -if [[ ${PV} == "9999" ]]; then - inherit git-r3 - EGIT_REPO_URI="https://github.com/openzfs/zfs.git" -else - VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/openzfs.asc - inherit verify-sig - - MY_P="${P/_rc/-rc}" - SRC_URI="https://github.com/openzfs/${PN}/releases/download/${MY_P}/${MY_P}.tar.gz" - SRC_URI+=" verify-sig? ( https://github.com/openzfs/${PN}/releases/download/${MY_P}/${MY_P}.tar.gz.asc )" - S="${WORKDIR}/${MY_P}" - - ZFS_KERNEL_COMPAT="${MODULES_KERNEL_MAX}" - # Increments minor eg 5.14 -> 5.15, and still supports override. - ZFS_KERNEL_DEP="${ZFS_KERNEL_COMPAT_OVERRIDE:-${ZFS_KERNEL_COMPAT}}" - ZFS_KERNEL_DEP="${ZFS_KERNEL_DEP%%.*}.$(( ${ZFS_KERNEL_DEP##*.} + 1))" - - if [[ ${PV} != *_rc* ]]; then - KEYWORDS="~amd64 ~arm64 ~loong ~ppc64 ~riscv ~sparc" - fi -fi - -LICENSE="BSD-2 CDDL MIT modules? ( debug? ( GPL-2+ ) )" -# just libzfs soname major for now. -# possible candidates: libuutil, libzpool, libnvpair. Those do not provide stable abi, but are considered. -# see libsoversion_check() below as well -SLOT="0/7" -IUSE="custom-cflags debug dist-kernel minimal nls pam python +rootfs selinux test-suite unwind" - -DEPEND=" - dev-libs/openssl:= - net-libs/libtirpc:= - sys-apps/util-linux - virtual/zlib:= - virtual/libudev:= - !minimal? ( ${PYTHON_DEPS} ) - pam? ( sys-libs/pam ) - python? ( - $(python_gen_cond_dep 'dev-python/cffi[${PYTHON_USEDEP}]' 'python*') - ) - unwind? ( sys-libs/libunwind:= ) -" - -BDEPEND=" - app-alternatives/awk - virtual/pkgconfig - modules? ( dev-lang/perl ) - nls? ( sys-devel/gettext ) - python? ( - ${DISTUTILS_DEPS} - || ( - dev-python/packaging[${PYTHON_USEDEP}] - dev-python/distlib[${PYTHON_USEDEP}] - ) - ) -" - -# awk is used for some scripts, completions, and the Dracut module -RDEPEND=" - ${DEPEND} - !prefix? ( virtual/udev ) - app-alternatives/awk - sys-fs/udev-init-scripts - dist-kernel? ( virtual/dist-kernel:= ) - rootfs? ( - app-alternatives/cpio - app-misc/pax-utils - ) - selinux? ( sec-policy/selinux-zfs ) - test-suite? ( - app-shells/ksh - sys-apps/kmod[tools] - sys-apps/util-linux - app-alternatives/bc - sys-block/parted - sys-fs/lsscsi - sys-fs/mdadm - sys-process/procps - ) - !" - eerror " Block devices --->" - eerror " [X] Loopback device support" - fi - fi - fi - fi -} - -libsoversion_check() { - local bugurl libzfs_sover - bugurl="https://bugs.gentoo.org/enter_bug.cgi?form_name=enter_bug&product=Gentoo+Linux&component=Current+packages" - - libzfs_sover="$(grep 'libzfs_la_LDFLAGS += -version-info' lib/libzfs/Makefile.am \ - | grep -Eo '[0-9]+:[0-9]+:[0-9]+')" - libzfs_sover="${libzfs_sover%%:*}" - - if [[ ${libzfs_sover} -ne $(ver_cut 2 ${SLOT}) ]]; then - echo - eerror "BUG BUG BUG BUG BUG BUG BUG BUG" - eerror "ebuild subslot does not match libzfs soversion!" - eerror "libzfs soversion: ${libzfs_sover}" - eerror "ebuild value: $(ver_cut 2 ${SLOT})" - eerror "This is a bug in the ebuild, please use the following URL to report it" - eerror "${bugurl}&short_desc=${CATEGORY}%2F${P}+update+subslot" - echo - # we want to abort for releases, but just print a warning for live ebuild - # to keep package installable - [[ ${PV} == "9999" ]] || die - fi -} - -src_prepare() { - default - libsoversion_check - - # Run unconditionally (bug #792627) - eautoreconf - - if [[ ${PV} != "9999" ]]; then - # Set revision number - sed -i "s/\(Release:\)\(.*\)1/\1\2${PR}-gentoo/" META || die "Could not set Gentoo release" - fi - - if use python; then - pushd contrib/pyzfs >/dev/null || die - distutils-r1_src_prepare - popd >/dev/null || die - fi - - # Tries to use /etc/conf.d which we reserve for OpenRC - sed -i -e '/EnvironmentFile/d' etc/systemd/system/zfs*.in || die - - # prevent errors showing up on zfs-mount stop, #647688 - # openrc will unmount all filesystems anyway. - sed -i "/^ZFS_UNMOUNT=/ s/yes/no/" "etc/default/zfs.in" || die -} - -src_configure() { - use custom-cflags || strip-flags - use minimal || python_setup - - local myconf=( - --bindir="${EPREFIX}/bin" - --sbindir="${EPREFIX}/sbin" - --enable-shared - --enable-sysvinit - --localstatedir="${EPREFIX}/var" - --sbindir="${EPREFIX}/sbin" - --with-config="$(usex modules all user)" - --with-dracutdir="${EPREFIX}/usr/lib/dracut" - --with-linux="${KV_DIR}" - --with-linux-obj="${KV_OUT_DIR}" - --with-udevdir="$(get_udevdir)" - --with-pamconfigsdir="${EPREFIX}/unwanted_files" - --with-pammoduledir="$(getpam_mod_dir)" - --with-systemdunitdir="$(systemd_get_systemunitdir)" - --with-systemdpresetdir="$(systemd_get_systempresetdir)" - --with-vendor=gentoo - # Building zfs-mount-generator.c on musl breaks as strndupa - # isn't available. But systemd doesn't support musl anyway, so - # just disable building it. - # UPDATE: it has been fixed since, - # https://github.com/openzfs/zfs/commit/1f19826c9ac85835cbde61a7439d9d1fefe43a4a - # but we still leave it as this for now. - $(use_enable !elibc_musl systemd) - $(use_enable debug) - $(use_enable nls) - $(use_enable pam) - $(use_enable python pyzfs) - $(use_with unwind libunwind) - --disable-static - $(usex minimal --without-python --with-python="${EPYTHON}") - - # See gentoo.patch - GENTOO_MAKEARGS_EVAL="${MODULES_MAKEARGS[*]@Q}" - TEST_JOBS="$(makeopts_jobs)" - ) - - econf "${myconf[@]}" -} - -src_compile() { - if use modules; then - emake "${MODULES_MAKEARGS[@]}" - else - default - fi - - if use python; then - pushd contrib/pyzfs >/dev/null || die - distutils-r1_src_compile - popd >/dev/null || die - fi -} - -src_install() { - DOCS=( AUTHORS COPYRIGHT META README.md ) - - if use modules; then - emake "${MODULES_MAKEARGS[@]}" DESTDIR="${ED}" install - modules_post_process - einstalldocs - else - default - fi - # distutils-r1_src_install tries to run einstalldocs as well - # bug #965156 - unset DOCS - - gen_usr_ldscript -a nvpair uutil zfsbootenv zfs zfs_core zpool - - use pam && { rm -rv "${ED}/unwanted_files" || die ; } - - use test-suite || { rm -r "${ED}"/usr/share/zfs/{test-runner,zfs-tests,runfiles,*sh} || die ; } - - find "${ED}" -name '*.la' -delete || die - - dobashcomp contrib/bash_completion.d/zfs - bashcomp_alias zfs zpool - - # strip executable bit from conf.d file - fperms 0644 /etc/conf.d/zfs - - if use python; then - pushd contrib/pyzfs >/dev/null || die - distutils-r1_src_install - popd >/dev/null || die - fi - - # enforce best available python implementation - use minimal || python_fix_shebang "${ED}/bin" -} - -_old_layout_cleanup() { - # new files are just extra/{spl,zfs}.ko with no subdirs. - local olddir=( - avl/zavl - icp/icp - lua/zlua - nvpair/znvpair - spl/spl - unicode/zunicode - zcommon/zcommon - zfs/zfs - zstd/zzstd - ) - - # kernel/module/Kconfig contains possible compressed extentions. - local kext kextfiles - for kext in .ko{,.{gz,xz,zst}}; do - kextfiles+=( "${olddir[@]/%/${kext}}" ) - done - - local oldfile oldpath - for oldfile in "${kextfiles[@]}"; do - oldpath="${EROOT}/lib/modules/${KV_FULL}/extra/${oldfile}" - if [[ -f "${oldpath}" ]]; then - ewarn "Found obsolete zfs module ${oldfile} for current kernel ${KV_FULL}, removing." - rm -rv "${oldpath}" || die - # we do not remove non-empty directories just for safety in case there's something else. - # also it may fail if there are both compressed and uncompressed modules installed. - rmdir -v --ignore-fail-on-non-empty "${oldpath%/*.*}" || die - fi - done -} - -pkg_postinst() { - udev_reload - - if use modules; then - # Check for old module layout before doing anything else. - # only attempt layout cleanup if new .ko location is used. - local newko=( "${EROOT}/lib/modules/${KV_FULL}/extra"/{zfs,spl}.ko* ) - # We check first array member, if glob above did not exand, it will be "zfs.ko*" and -f will return false. - # if glob expanded -f will do correct file precense check. - [[ -f ${newko[0]} ]] && _old_layout_cleanup - - linux-mod-r1_pkg_postinst - - if use x86 || use arm ; then - ewarn "32-bit kernels will likely require increasing vmalloc to" - ewarn "at least 256M and decreasing zfs_arc_max to some value less than that." - fi - - if has_version sys-boot/grub ; then - ewarn "This version of OpenZFS includes support for new feature flags" - ewarn "that are incompatible with previous versions. GRUB2 support for" - ewarn "/boot with the new feature flags is not yet available." - ewarn "Do *NOT* upgrade root pools to use the new feature flags." - ewarn "Any new pools will be created with the new feature flags by default" - ewarn "and will not be compatible with older versions of OpenZFS. To" - ewarn "create a new pool that is backward compatible wih GRUB2, use " - ewarn - ewarn "zpool create -o compatibility=grub2 ..." - ewarn - ewarn "Refer to /usr/share/zfs/compatibility.d/grub2 for list of features." - fi - fi - - if use rootfs; then - if ! has_version sys-kernel/genkernel && ! has_version sys-kernel/dracut; then - elog "Root on zfs requires an initramfs to boot" - elog "The following packages provide one and are tested on a regular basis:" - elog " sys-kernel/dracut ( preferred, module maintained by zfs developers )" - elog " sys-kernel/genkernel" - fi - fi - - if systemd_is_booted || has_version sys-apps/systemd; then - einfo "Please refer to $(systemd_get_systempresetdir)/50-zfs.preset" - einfo "for default zfs systemd service configuration" - else - [[ -e "${EROOT}/etc/runlevels/boot/zfs-import" ]] || \ - einfo "You should add zfs-import to the boot runlevel." - [[ -e "${EROOT}/etc/runlevels/boot/zfs-load-key" ]] || \ - einfo "You should add zfs-load-key to the boot runlevel." - [[ -e "${EROOT}/etc/runlevels/boot/zfs-mount" ]]|| \ - einfo "You should add zfs-mount to the boot runlevel." - [[ -e "${EROOT}/etc/runlevels/default/zfs-share" ]] || \ - einfo "You should add zfs-share to the default runlevel." - [[ -e "${EROOT}/etc/runlevels/default/zfs-zed" ]] || \ - einfo "You should add zfs-zed to the default runlevel." - fi -} - -pkg_postrm() { - udev_reload -} diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/zfs/zfs-2.4.2-r1.ebuild b/sdk_container/src/third_party/portage-stable/sys-fs/zfs/zfs-2.4.2-r1.ebuild deleted file mode 100644 index e90f579e588..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-fs/zfs/zfs-2.4.2-r1.ebuild +++ /dev/null @@ -1,439 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# Maintainers should consider lurking in the ZFS IRC channels (there's several) -# and regularly checking ZFS GitHub issues and PRs. Look out for the 'zfs-*' -# stable backport PRs when they're opened and subscribe to them for any important -# cherry-picks that may be needed in advance. - -DISTUTILS_OPTIONAL=1 -DISTUTILS_USE_PEP517=setuptools -PYTHON_COMPAT=( python3_{11..15} ) - -MODULES_INITRAMFS_IUSE=+initramfs -MODULES_OPTIONAL_IUSE=+modules - -inherit autotools bash-completion-r1 distutils-r1 flag-o-matic linux-info -inherit linux-mod-r1 multiprocessing pam systemd udev usr-ldscript - -DESCRIPTION="Linux kernel module and userland utilities for ZFS" -HOMEPAGE="https://github.com/openzfs/zfs" - -MODULES_KERNEL_MAX=7.0 -MODULES_KERNEL_MIN=4.18 - -if [[ ${PV} == "9999" ]]; then - inherit git-r3 - EGIT_REPO_URI="https://github.com/openzfs/zfs.git" -else - VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/openzfs.asc - inherit verify-sig - - MY_P="${P/_rc/-rc}" - SRC_URI="https://github.com/openzfs/${PN}/releases/download/${MY_P}/${MY_P}.tar.gz" - SRC_URI+=" verify-sig? ( https://github.com/openzfs/${PN}/releases/download/${MY_P}/${MY_P}.tar.gz.asc )" - S="${WORKDIR}/${MY_P}" - - ZFS_KERNEL_COMPAT="${MODULES_KERNEL_MAX}" - # Increments minor eg 5.14 -> 5.15, and still supports override. - ZFS_KERNEL_DEP="${ZFS_KERNEL_COMPAT_OVERRIDE:-${ZFS_KERNEL_COMPAT}}" - ZFS_KERNEL_DEP="${ZFS_KERNEL_DEP%%.*}.$(( ${ZFS_KERNEL_DEP##*.} + 1))" - - if [[ ${PV} != *_rc* ]]; then - KEYWORDS="~amd64 ~arm64 ~loong ~ppc64 ~riscv ~sparc" - fi -fi - -LICENSE="BSD-2 CDDL MIT modules? ( debug? ( GPL-2+ ) )" -# just libzfs soname major for now. -# possible candidates: libuutil, libzpool, libnvpair. Those do not provide stable abi, but are considered. -# see libsoversion_check() below as well -SLOT="0/7" -IUSE="custom-cflags debug dist-kernel minimal nls pam python +rootfs selinux test-suite unwind" - -DEPEND=" - dev-libs/openssl:= - net-libs/libtirpc:= - sys-apps/util-linux - virtual/zlib:= - virtual/libudev:= - !minimal? ( ${PYTHON_DEPS} ) - pam? ( sys-libs/pam ) - python? ( - $(python_gen_cond_dep 'dev-python/cffi[${PYTHON_USEDEP}]' 'python*') - ) - unwind? ( sys-libs/libunwind:= ) -" - -BDEPEND=" - app-alternatives/awk - virtual/pkgconfig - modules? ( dev-lang/perl ) - nls? ( sys-devel/gettext ) - python? ( - ${DISTUTILS_DEPS} - || ( - dev-python/packaging[${PYTHON_USEDEP}] - dev-python/distlib[${PYTHON_USEDEP}] - ) - ) -" - -# awk is used for some scripts, completions, and the Dracut module -RDEPEND=" - ${DEPEND} - !prefix? ( virtual/udev ) - app-alternatives/awk - sys-fs/udev-init-scripts - dist-kernel? ( virtual/dist-kernel:= ) - rootfs? ( - app-alternatives/cpio - app-misc/pax-utils - ) - selinux? ( sec-policy/selinux-zfs ) - test-suite? ( - app-shells/ksh - sys-apps/kmod[tools] - sys-apps/util-linux - app-alternatives/bc - sys-block/parted - sys-fs/lsscsi - sys-fs/mdadm - sys-process/procps - ) - !" - eerror " Block devices --->" - eerror " [X] Loopback device support" - fi - fi - fi - fi -} - -libsoversion_check() { - local bugurl libzfs_sover - bugurl="https://bugs.gentoo.org/enter_bug.cgi?form_name=enter_bug&product=Gentoo+Linux&component=Current+packages" - - libzfs_sover="$(grep 'libzfs_la_LDFLAGS += -version-info' lib/libzfs/Makefile.am \ - | grep -Eo '[0-9]+:[0-9]+:[0-9]+')" - libzfs_sover="${libzfs_sover%%:*}" - - if [[ ${libzfs_sover} -ne $(ver_cut 2 ${SLOT}) ]]; then - echo - eerror "BUG BUG BUG BUG BUG BUG BUG BUG" - eerror "ebuild subslot does not match libzfs soversion!" - eerror "libzfs soversion: ${libzfs_sover}" - eerror "ebuild value: $(ver_cut 2 ${SLOT})" - eerror "This is a bug in the ebuild, please use the following URL to report it" - eerror "${bugurl}&short_desc=${CATEGORY}%2F${P}+update+subslot" - echo - # we want to abort for releases, but just print a warning for live ebuild - # to keep package installable - [[ ${PV} == "9999" ]] || die - fi -} - -src_prepare() { - default - libsoversion_check - - # Run unconditionally (bug #792627) - eautoreconf - - if [[ ${PV} != "9999" ]]; then - # Set revision number - sed -i "s/\(Release:\)\(.*\)1/\1\2${PR}-gentoo/" META || die "Could not set Gentoo release" - fi - - if use python; then - pushd contrib/pyzfs >/dev/null || die - distutils-r1_src_prepare - popd >/dev/null || die - fi - - # Tries to use /etc/conf.d which we reserve for OpenRC - sed -i -e '/EnvironmentFile/d' etc/systemd/system/zfs*.in || die - - # prevent errors showing up on zfs-mount stop, #647688 - # openrc will unmount all filesystems anyway. - sed -i "/^ZFS_UNMOUNT=/ s/yes/no/" "etc/default/zfs.in" || die -} - -src_configure() { - use custom-cflags || strip-flags - use minimal || python_setup - - local myconf=( - --bindir="${EPREFIX}/bin" - --sbindir="${EPREFIX}/sbin" - --enable-shared - --enable-sysvinit - --localstatedir="${EPREFIX}/var" - --sbindir="${EPREFIX}/sbin" - --with-config="$(usex modules all user)" - --with-dracutdir="${EPREFIX}/usr/lib/dracut" - --with-linux="${KV_DIR}" - --with-linux-obj="${KV_OUT_DIR}" - --with-udevdir="$(get_udevdir)" - --with-pamconfigsdir="${EPREFIX}/unwanted_files" - --with-pammoduledir="$(getpam_mod_dir)" - --with-systemdunitdir="$(systemd_get_systemunitdir)" - --with-systemdpresetdir="$(systemd_get_systempresetdir)" - --with-vendor=gentoo - # Building zfs-mount-generator.c on musl breaks as strndupa - # isn't available. But systemd doesn't support musl anyway, so - # just disable building it. - # UPDATE: it has been fixed since, - # https://github.com/openzfs/zfs/commit/1f19826c9ac85835cbde61a7439d9d1fefe43a4a - # but we still leave it as this for now. - $(use_enable !elibc_musl systemd) - $(use_enable debug) - $(use_enable nls) - $(use_enable pam) - $(use_enable python pyzfs) - $(use_with unwind libunwind) - --disable-static - $(usex minimal --without-python --with-python="${EPYTHON}") - - # See gentoo.patch - GENTOO_MAKEARGS_EVAL="${MODULES_MAKEARGS[*]@Q}" - TEST_JOBS="$(makeopts_jobs)" - ) - - econf "${myconf[@]}" -} - -src_compile() { - if use modules; then - emake "${MODULES_MAKEARGS[@]}" - else - default - fi - - if use python; then - pushd contrib/pyzfs >/dev/null || die - distutils-r1_src_compile - popd >/dev/null || die - fi -} - -src_install() { - DOCS=( AUTHORS COPYRIGHT META README.md ) - - if use modules; then - emake "${MODULES_MAKEARGS[@]}" DESTDIR="${ED}" install - modules_post_process - einstalldocs - else - default - fi - # distutils-r1_src_install tries to run einstalldocs as well - # bug #965156 - unset DOCS - - gen_usr_ldscript -a nvpair uutil zfsbootenv zfs zfs_core zpool - - use pam && { rm -rv "${ED}/unwanted_files" || die ; } - - use test-suite || { rm -r "${ED}"/usr/share/zfs/{test-runner,zfs-tests,runfiles,*sh} || die ; } - - find "${ED}" -name '*.la' -delete || die - - dobashcomp contrib/bash_completion.d/zfs - bashcomp_alias zfs zpool - - # strip executable bit from conf.d file - fperms 0644 /etc/conf.d/zfs - - if use python; then - pushd contrib/pyzfs >/dev/null || die - distutils-r1_src_install - popd >/dev/null || die - fi - - # enforce best available python implementation - use minimal || python_fix_shebang "${ED}/bin" -} - -_old_layout_cleanup() { - # new files are just extra/{spl,zfs}.ko with no subdirs. - local olddir=( - avl/zavl - icp/icp - lua/zlua - nvpair/znvpair - spl/spl - unicode/zunicode - zcommon/zcommon - zfs/zfs - zstd/zzstd - ) - - # kernel/module/Kconfig contains possible compressed extentions. - local kext kextfiles - for kext in .ko{,.{gz,xz,zst}}; do - kextfiles+=( "${olddir[@]/%/${kext}}" ) - done - - local oldfile oldpath - for oldfile in "${kextfiles[@]}"; do - oldpath="${EROOT}/lib/modules/${KV_FULL}/extra/${oldfile}" - if [[ -f "${oldpath}" ]]; then - ewarn "Found obsolete zfs module ${oldfile} for current kernel ${KV_FULL}, removing." - rm -rv "${oldpath}" || die - # we do not remove non-empty directories just for safety in case there's something else. - # also it may fail if there are both compressed and uncompressed modules installed. - rmdir -v --ignore-fail-on-non-empty "${oldpath%/*.*}" || die - fi - done -} - -pkg_postinst() { - udev_reload - - if use modules; then - # Check for old module layout before doing anything else. - # only attempt layout cleanup if new .ko location is used. - local newko=( "${EROOT}/lib/modules/${KV_FULL}/extra"/{zfs,spl}.ko* ) - # We check first array member, if glob above did not exand, it will be "zfs.ko*" and -f will return false. - # if glob expanded -f will do correct file precense check. - [[ -f ${newko[0]} ]] && _old_layout_cleanup - - linux-mod-r1_pkg_postinst - - if use x86 || use arm ; then - ewarn "32-bit kernels will likely require increasing vmalloc to" - ewarn "at least 256M and decreasing zfs_arc_max to some value less than that." - fi - - if has_version sys-boot/grub ; then - ewarn "This version of OpenZFS includes support for new feature flags" - ewarn "that are incompatible with previous versions. GRUB2 support for" - ewarn "/boot with the new feature flags is not yet available." - ewarn "Do *NOT* upgrade root pools to use the new feature flags." - ewarn "Any new pools will be created with the new feature flags by default" - ewarn "and will not be compatible with older versions of OpenZFS. To" - ewarn "create a new pool that is backward compatible wih GRUB2, use " - ewarn - ewarn "zpool create -o compatibility=grub2 ..." - ewarn - ewarn "Refer to /usr/share/zfs/compatibility.d/grub2 for list of features." - fi - fi - - if use rootfs; then - if ! has_version sys-kernel/genkernel && ! has_version sys-kernel/dracut; then - elog "Root on zfs requires an initramfs to boot" - elog "The following packages provide one and are tested on a regular basis:" - elog " sys-kernel/dracut ( preferred, module maintained by zfs developers )" - elog " sys-kernel/genkernel" - fi - fi - - if systemd_is_booted || has_version sys-apps/systemd; then - einfo "Please refer to $(systemd_get_systempresetdir)/50-zfs.preset" - einfo "for default zfs systemd service configuration" - else - [[ -e "${EROOT}/etc/runlevels/boot/zfs-import" ]] || \ - einfo "You should add zfs-import to the boot runlevel." - [[ -e "${EROOT}/etc/runlevels/boot/zfs-load-key" ]] || \ - einfo "You should add zfs-load-key to the boot runlevel." - [[ -e "${EROOT}/etc/runlevels/boot/zfs-mount" ]]|| \ - einfo "You should add zfs-mount to the boot runlevel." - [[ -e "${EROOT}/etc/runlevels/default/zfs-share" ]] || \ - einfo "You should add zfs-share to the default runlevel." - [[ -e "${EROOT}/etc/runlevels/default/zfs-zed" ]] || \ - einfo "You should add zfs-zed to the default runlevel." - fi -} - -pkg_postrm() { - udev_reload -} diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/zfs/zfs-2.4.3.ebuild b/sdk_container/src/third_party/portage-stable/sys-fs/zfs/zfs-2.4.3.ebuild deleted file mode 100644 index dc33317864a..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-fs/zfs/zfs-2.4.3.ebuild +++ /dev/null @@ -1,440 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# Maintainers should consider lurking in the ZFS IRC channels (there's several) -# and regularly checking ZFS GitHub issues and PRs. Look out for the 'zfs-*' -# stable backport PRs when they're opened and subscribe to them for any important -# cherry-picks that may be needed in advance. - -DISTUTILS_OPTIONAL=1 -DISTUTILS_USE_PEP517=setuptools -PYTHON_COMPAT=( python3_{12..15} ) - -MODULES_INITRAMFS_IUSE=+initramfs -MODULES_OPTIONAL_IUSE=+modules - -inherit autotools bash-completion-r1 distutils-r1 flag-o-matic linux-info -inherit linux-mod-r1 multiprocessing pam systemd udev usr-ldscript - -DESCRIPTION="Linux kernel module and userland utilities for ZFS" -HOMEPAGE="https://github.com/openzfs/zfs" - -MODULES_KERNEL_MAX=7.0 -MODULES_KERNEL_MIN=4.18 - -if [[ ${PV} == "9999" ]]; then - inherit git-r3 - EGIT_REPO_URI="https://github.com/openzfs/zfs.git" -else - VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/openzfs.asc - inherit verify-sig - - MY_P="${P/_rc/-rc}" - SRC_URI="https://github.com/openzfs/${PN}/releases/download/${MY_P}/${MY_P}.tar.gz" - SRC_URI+=" verify-sig? ( https://github.com/openzfs/${PN}/releases/download/${MY_P}/${MY_P}.tar.gz.asc )" - S="${WORKDIR}/${MY_P}" - - ZFS_KERNEL_COMPAT="${MODULES_KERNEL_MAX}" - # Increments minor eg 5.14 -> 5.15, and still supports override. - ZFS_KERNEL_DEP="${ZFS_KERNEL_COMPAT_OVERRIDE:-${ZFS_KERNEL_COMPAT}}" - ZFS_KERNEL_DEP="${ZFS_KERNEL_DEP%%.*}.$(( ${ZFS_KERNEL_DEP##*.} + 1))" - - if [[ ${PV} != *_rc* ]]; then - KEYWORDS="amd64 arm64 ~loong ppc64 ~riscv ~sparc" - fi -fi - -LICENSE="BSD-2 CDDL MIT modules? ( debug? ( GPL-2+ ) )" -# just libzfs soname major for now. -# possible candidates: libuutil, libzpool, libnvpair. Those do not provide stable abi, but are considered. -# see libsoversion_check() below as well -SLOT="0/7" -IUSE="custom-cflags debug dist-kernel minimal nls pam python +rootfs selinux test-suite unwind" - -DEPEND=" - dev-libs/openssl:= - net-libs/libtirpc:= - sys-apps/util-linux - virtual/zlib:= - virtual/libudev:= - !minimal? ( ${PYTHON_DEPS} ) - pam? ( sys-libs/pam ) - python? ( - $(python_gen_cond_dep 'dev-python/cffi[${PYTHON_USEDEP}]' 'python*') - ) - unwind? ( sys-libs/libunwind:= ) -" - -BDEPEND=" - app-alternatives/awk - virtual/pkgconfig - modules? ( dev-lang/perl ) - nls? ( sys-devel/gettext ) - python? ( - ${DISTUTILS_DEPS} - || ( - dev-python/packaging[${PYTHON_USEDEP}] - dev-python/distlib[${PYTHON_USEDEP}] - ) - ) -" - -# awk is used for some scripts, completions, and the Dracut module -RDEPEND=" - ${DEPEND} - !prefix? ( virtual/udev ) - app-alternatives/awk - sys-fs/udev-init-scripts - dist-kernel? ( virtual/dist-kernel:= ) - rootfs? ( - app-alternatives/cpio - app-misc/pax-utils - ) - selinux? ( sec-policy/selinux-zfs ) - test-suite? ( - app-shells/ksh - sys-apps/kmod[tools] - sys-apps/util-linux - app-alternatives/bc - sys-block/parted - sys-fs/lsscsi - sys-fs/mdadm - sys-process/procps - ) - !" - eerror " Block devices --->" - eerror " [X] Loopback device support" - fi - fi - fi - fi -} - -libsoversion_check() { - local bugurl libzfs_sover - bugurl="https://bugs.gentoo.org/enter_bug.cgi?form_name=enter_bug&product=Gentoo+Linux&component=Current+packages" - - libzfs_sover="$(grep 'libzfs_la_LDFLAGS += -version-info' lib/libzfs/Makefile.am \ - | grep -Eo '[0-9]+:[0-9]+:[0-9]+')" - libzfs_sover="${libzfs_sover%%:*}" - - if [[ ${libzfs_sover} -ne $(ver_cut 2 ${SLOT}) ]]; then - echo - eerror "BUG BUG BUG BUG BUG BUG BUG BUG" - eerror "ebuild subslot does not match libzfs soversion!" - eerror "libzfs soversion: ${libzfs_sover}" - eerror "ebuild value: $(ver_cut 2 ${SLOT})" - eerror "This is a bug in the ebuild, please use the following URL to report it" - eerror "${bugurl}&short_desc=${CATEGORY}%2F${P}+update+subslot" - echo - # we want to abort for releases, but just print a warning for live ebuild - # to keep package installable - [[ ${PV} == "9999" ]] || die - fi -} - -src_prepare() { - default - libsoversion_check - - # Run unconditionally (bug #792627) - eautoreconf - - # strip forced -Werror, #904378 - sed -i '/BUILD_FREEBSD_TRUE/s/-Werror //g' Makefile.in || die - - if [[ ${PV} != "9999" ]]; then - # Set revision number - sed -i "s/\(Release:\)\(.*\)1/\1\2${PR}-gentoo/" META || die "Could not set Gentoo release" - fi - - if use python; then - pushd contrib/pyzfs >/dev/null || die - distutils-r1_src_prepare - popd >/dev/null || die - fi - - # Tries to use /etc/conf.d which we reserve for OpenRC - sed -i -e '/EnvironmentFile/d' etc/systemd/system/zfs*.in || die - - # prevent errors showing up on zfs-mount stop, #647688 - # openrc will unmount all filesystems anyway. - sed -i "/^ZFS_UNMOUNT=/ s/yes/no/" "etc/default/zfs.in" || die -} - -src_configure() { - use custom-cflags || strip-flags - use minimal || python_setup - - local myconf=( - --bindir="${EPREFIX}/bin" - --sbindir="${EPREFIX}/sbin" - --enable-shared - --enable-sysvinit - --localstatedir="${EPREFIX}/var" - --sbindir="${EPREFIX}/sbin" - --with-config="$(usex modules all user)" - --with-dracutdir="${EPREFIX}/usr/lib/dracut" - --with-linux="${KV_DIR}" - --with-linux-obj="${KV_OUT_DIR}" - --with-udevdir="$(get_udevdir)" - --with-pamconfigsdir="${EPREFIX}/unwanted_files" - --with-pammoduledir="$(getpam_mod_dir)" - --with-systemdunitdir="$(systemd_get_systemunitdir)" - --with-systemdpresetdir="$(systemd_get_systempresetdir)" - --with-vendor=gentoo - # Building zfs-mount-generator.c on musl breaks as strndupa - # isn't available. But systemd doesn't support musl anyway, so - # just disable building it. - # UPDATE: it has been fixed since, - # https://github.com/openzfs/zfs/commit/1f19826c9ac85835cbde61a7439d9d1fefe43a4a - # but we still leave it as this for now. - $(use_enable !elibc_musl systemd) - $(use_enable debug) - $(use_enable nls) - $(use_enable pam) - $(use_enable python pyzfs) - $(use_with unwind libunwind) - --disable-static - $(usex minimal --without-python --with-python="${EPYTHON}") - - # See gentoo.patch - GENTOO_MAKEARGS_EVAL="${MODULES_MAKEARGS[*]@Q}" - TEST_JOBS="$(makeopts_jobs)" - ) - - econf "${myconf[@]}" -} - -src_compile() { - if use modules; then - emake "${MODULES_MAKEARGS[@]}" - else - default - fi - - if use python; then - pushd contrib/pyzfs >/dev/null || die - distutils-r1_src_compile - popd >/dev/null || die - fi -} - -src_install() { - DOCS=( AUTHORS COPYRIGHT META README.md ) - - if use modules; then - emake "${MODULES_MAKEARGS[@]}" DESTDIR="${ED}" install - modules_post_process - einstalldocs - else - default - fi - # distutils-r1_src_install tries to run einstalldocs as well - # bug #965156 - unset DOCS - - gen_usr_ldscript -a nvpair uutil zfsbootenv zfs zfs_core zpool - - use pam && { rm -rv "${ED}/unwanted_files" || die ; } - - use test-suite || { rm -r "${ED}"/usr/share/zfs/{test-runner,zfs-tests,runfiles,*sh} || die ; } - - find "${ED}" -name '*.la' -delete || die - - dobashcomp contrib/bash_completion.d/zfs - bashcomp_alias zfs zpool - - # strip executable bit from conf.d file - fperms 0644 /etc/conf.d/zfs - - if use python; then - pushd contrib/pyzfs >/dev/null || die - distutils-r1_src_install - popd >/dev/null || die - fi - - # enforce best available python implementation - use minimal || python_fix_shebang "${ED}/bin" -} - -_old_layout_cleanup() { - # new files are just extra/{spl,zfs}.ko with no subdirs. - local olddir=( - avl/zavl - icp/icp - lua/zlua - nvpair/znvpair - spl/spl - unicode/zunicode - zcommon/zcommon - zfs/zfs - zstd/zzstd - ) - - # kernel/module/Kconfig contains possible compressed extentions. - local kext kextfiles - for kext in .ko{,.{gz,xz,zst}}; do - kextfiles+=( "${olddir[@]/%/${kext}}" ) - done - - local oldfile oldpath - for oldfile in "${kextfiles[@]}"; do - oldpath="${EROOT}/lib/modules/${KV_FULL}/extra/${oldfile}" - if [[ -f "${oldpath}" ]]; then - ewarn "Found obsolete zfs module ${oldfile} for current kernel ${KV_FULL}, removing." - rm -rv "${oldpath}" || die - # we do not remove non-empty directories just for safety in case there's something else. - # also it may fail if there are both compressed and uncompressed modules installed. - rmdir -v --ignore-fail-on-non-empty "${oldpath%/*.*}" || die - fi - done -} - -pkg_postinst() { - udev_reload - - if use modules; then - # Check for old module layout before doing anything else. - # only attempt layout cleanup if new .ko location is used. - local newko=( "${EROOT}/lib/modules/${KV_FULL}/extra"/{zfs,spl}.ko* ) - # We check first array member, if glob above did not exand, it will be "zfs.ko*" and -f will return false. - # if glob expanded -f will do correct file precense check. - [[ -f ${newko[0]} ]] && _old_layout_cleanup - - linux-mod-r1_pkg_postinst - - if use x86 || use arm ; then - ewarn "32-bit kernels will likely require increasing vmalloc to" - ewarn "at least 256M and decreasing zfs_arc_max to some value less than that." - fi - - if has_version sys-boot/grub ; then - ewarn "This version of OpenZFS includes support for new feature flags" - ewarn "that are incompatible with previous versions. GRUB2 support for" - ewarn "/boot with the new feature flags is not yet available." - ewarn "Do *NOT* upgrade root pools to use the new feature flags." - ewarn "Any new pools will be created with the new feature flags by default" - ewarn "and will not be compatible with older versions of OpenZFS. To" - ewarn "create a new pool that is backward compatible wih GRUB2, use " - ewarn - ewarn "zpool create -o compatibility=grub2 ..." - ewarn - ewarn "Refer to /usr/share/zfs/compatibility.d/grub2 for list of features." - fi - fi - - if use rootfs; then - if ! has_version sys-kernel/genkernel && ! has_version sys-kernel/dracut; then - elog "Root on zfs requires an initramfs to boot" - elog "The following packages provide one and are tested on a regular basis:" - elog " sys-kernel/dracut ( preferred, module maintained by zfs developers )" - elog " sys-kernel/genkernel" - fi - fi - - if systemd_is_booted || has_version sys-apps/systemd; then - einfo "Please refer to $(systemd_get_systempresetdir)/50-zfs.preset" - einfo "for default zfs systemd service configuration" - else - [[ -e "${EROOT}/etc/runlevels/boot/zfs-import" ]] || \ - einfo "You should add zfs-import to the boot runlevel." - [[ -e "${EROOT}/etc/runlevels/boot/zfs-load-key" ]] || \ - einfo "You should add zfs-load-key to the boot runlevel." - [[ -e "${EROOT}/etc/runlevels/boot/zfs-mount" ]]|| \ - einfo "You should add zfs-mount to the boot runlevel." - [[ -e "${EROOT}/etc/runlevels/default/zfs-share" ]] || \ - einfo "You should add zfs-share to the default runlevel." - [[ -e "${EROOT}/etc/runlevels/default/zfs-zed" ]] || \ - einfo "You should add zfs-zed to the default runlevel." - fi -} - -pkg_postrm() { - udev_reload -} diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/zfs/zfs-2.4.4.ebuild b/sdk_container/src/third_party/portage-stable/sys-fs/zfs/zfs-2.4.4.ebuild index 526d89fecd0..983a366f6ac 100644 --- a/sdk_container/src/third_party/portage-stable/sys-fs/zfs/zfs-2.4.4.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-fs/zfs/zfs-2.4.4.ebuild @@ -42,7 +42,7 @@ else ZFS_KERNEL_DEP="${ZFS_KERNEL_DEP%%.*}.$(( ${ZFS_KERNEL_DEP##*.} + 1))" if [[ ${PV} != *_rc* ]]; then - KEYWORDS="~amd64 ~arm64 ~loong ~ppc64 ~riscv ~sparc" + KEYWORDS="amd64 arm64 ~loong ppc64 ~riscv ~sparc" fi fi @@ -103,7 +103,7 @@ RDEPEND=" sys-fs/mdadm sys-process/procps ) - !/dev/null + + rm -f glibc-test* + printf '%b' "$*" > glibc-test.c + + # We assume CC is already set up. + nonfatal emake glibc-test + ret=$? + + popd >/dev/null + + CFLAGS=${save_cflags} + return ${ret} +} + +do_run_test() { + local ret + + if [[ ${MERGE_TYPE} == "binary" ]] ; then + # ignore build failures when installing a binary package #324685 + CC="${glibc__ORIG_CC}" CXX="${glibc__ORIG_CXX}" CPP="${glibc__ORIG_CPP}" \ + CFLAGS="-O2" LDFLAGS="" do_compile_test "" "$@" 2>/dev/null || return 0 + else + ebegin "Performing simple compile test for ABI=${ABI}" + if ! do_compile_test "" "$@" ; then + ewarn "Simple build failed ... assuming this is desired #324685" + eend 1 + return 0 + else + eend 0 + fi + fi + + pushd "${T}" >/dev/null + + ./glibc-test + ret=$? + rm -f glibc-test* + + popd >/dev/null + + return ${ret} +} + +setup_target_flags() { + # This largely mucks with compiler flags. None of which should matter + # when building up just the headers. + just_headers && return 0 + + case $(tc-arch) in + alpha) + # glibc selects its hand-written assembly mem*/str* routines by the + # host triplet's machine prefix (sysdeps/alpha/preconfigure does + # machine=alpha/$machine), NOT by the -mcpu codegen flag. With the + # bare alpha-*-* CHOST only the generic C is built. Map -mcpu to the + # most specific sysdeps/alpha/alphaev* dir that exists (Implies chain + # alphaev67 -> alphaev6 -> alphaev5) so the tuned asm is selected. + local cpu + case $(get-flag mcpu) in + 21264a|ev67) cpu="alphaev67" ;; + 21264|ev6) cpu="alphaev6" ;; + 21164*|ev5|ev56|pca56) cpu="alphaev5" ;; + esac + [[ -n ${cpu} ]] && CTARGET_OPT="${cpu}-${CTARGET#*-}" + ;; + x86) + # -march needed for #185404 #199334 + # TODO: When creating the first glibc cross-compile, this test will + # always fail as it does a full link which in turn requires glibc. + # Probably also applies when changing multilib profile settings (e.g. + # enabling x86 when the profile was amd64-only previously). + # We could change main to _start and pass -nostdlib here so that we + # only test the gcc code compilation. Or we could do a compile and + # then look for the symbol via scanelf. + if ! do_compile_test "" 'void f(int i, void *p) {if (__sync_fetch_and_add(&i, 1)) f(i, p);}\nint main(){return 0;}\n'; then + local t=${CTARGET_OPT:-${CTARGET}} + t=${t%%-*} + filter-flags '-march=*' + export CFLAGS="-march=${t} ${CFLAGS}" + einfo "Auto adding -march=${t} to CFLAGS #185404" + fi + # For compatibility with older binaries at slight performance cost. + use stack-realign && export CFLAGS+=" -mstackrealign" + ;; + amd64) + # -march needed for #185404 #199334 + # TODO: See cross-compile issues listed above for x86. + if [[ ${ABI} == x86 ]]; then + if ! do_compile_test "${CFLAGS_x86}" 'void f(int i, void *p) {if (__sync_fetch_and_add(&i, 1)) f(i, p);}\nint main(){return 0;}\n'; then + local t=${CTARGET_OPT:-${CTARGET}} + t=${t%%-*} + # Normally the target is x86_64-xxx, so turn that into the -march that + # gcc actually accepts. #528708 + [[ ${t} == "x86_64" ]] && t="x86-64" + filter-flags '-march=*' + # ugly, ugly, ugly. ugly. + CFLAGS_x86=$( + CFLAGS=${CFLAGS_x86} + filter-flags '-march=*' + is-flagq '-mfpmath=sse' && append-cflags -msse + echo "${CFLAGS}" + ) + export CFLAGS_x86="${CFLAGS_x86} -march=${t}" + einfo "Auto adding -march=${t} to CFLAGS_x86 #185404 (ABI=${ABI})" + fi + # For compatibility with older binaries at slight performance cost. + use stack-realign && export CFLAGS_x86+=" -mstackrealign" + fi + + if is_hurd ; then + # doesnt build with -march=native and probably other values, debugging required + filter-flags '-march=*' + fi + ;; + mips) + # The mips abi cannot support the GNU style hashes. #233233 + filter-ldflags -Wl,--hash-style=gnu -Wl,--hash-style=both + ;; + ppc|ppc64) + # Many arch-specific implementations do not work on ppc with + # cache-block not equal to 128 bytes. This breaks memset: + # https://sourceware.org/PR26522 + # https://bugs.gentoo.org/737996 + # Use default -mcpu=. For ppc it means non-multiarch setup. + filter-flags '-mcpu=*' + ;; + sparc) + # Both sparc and sparc64 can use -fcall-used-g6. -g7 is bad, though. + filter-flags "-fcall-used-g7" + append-flags "-fcall-used-g6" + + local cpu + case ${CTARGET} in + sparc64-*) + cpu="sparc64" + case $(get-flag mcpu) in + v9) + # We need to force at least v9a because the base build doesn't + # work with just v9. + # https://sourceware.org/bugzilla/show_bug.cgi?id=19477 + append-flags "-Wa,-xarch=v9a" + ;; + esac + ;; + sparc-*) + case $(get-flag mcpu) in + v8|supersparc|hypersparc|leon|leon3) + cpu="sparcv8" + ;; + *) + cpu="sparcv9" + ;; + esac + ;; + esac + [[ -n ${cpu} ]] && CTARGET_OPT="${cpu}-${CTARGET#*-}" + ;; + esac +} + +setup_flags() { + # Make sure host make.conf doesn't pollute us + if is_crosscompile || tc-is-cross-compiler ; then + CHOST=${CTARGET} strip-unsupported-flags + fi + + # Store our CFLAGS because it's changed depending on which CTARGET + # we are building when pulling glibc on a multilib profile + CFLAGS_BASE=${CFLAGS_BASE-${CFLAGS}} + CFLAGS=${CFLAGS_BASE} + CXXFLAGS_BASE=${CXXFLAGS_BASE-${CXXFLAGS}} + CXXFLAGS=${CXXFLAGS_BASE} + ASFLAGS_BASE=${ASFLAGS_BASE-${ASFLAGS}} + ASFLAGS=${ASFLAGS_BASE} + + # Allow users to explicitly avoid flag sanitization via + # USE=custom-cflags. + if ! use custom-cflags; then + # Over-zealous CFLAGS can often cause problems. What may work for one + # person may not work for another. To avoid a large influx of bugs + # relating to failed builds, we strip most CFLAGS out to ensure as few + # problems as possible. + strip-flags + + # Allow -O2 and -O3, but nothing else for now. + # TODO: Test -Os, -Oz. + if ! is-flagq '-O@(2|3)' ; then + # Lock glibc at -O2. We want to be conservative here. + filter-flags '-O?' + append-flags -O2 + fi + fi + + strip-unsupported-flags + filter-lto + filter-flags -m32 -m64 '-mabi=*' + + # glibc aborts if rpath is set by LDFLAGS + filter-ldflags '-Wl,-rpath=*' + + # ld can't use -r & --relax at the same time, bug #788901 + # https://sourceware.org/PR27837 + filter-ldflags '-Wl,--relax' + + # Flag added for cross-prefix, but causes ldconfig to segfault. Not needed + # anyway because glibc already handles this by itself. + filter-ldflags '-Wl,--dynamic-linker=*' + + # Fails to link (bug #940709) in some cases but even if it manages to, + # subtle runtime breakage will occur because the linker scripts need + # adaptation. Mentioned in PR21557#c0. + filter-ldflags '-Wl,--gc-sections' + + # some weird software relies on sysv hashes in glibc, bug 863863, bug 864100 + # we have to do that here already so mips can filter it out again :P + if use hash-sysv-compat ; then + append-ldflags '-Wl,--hash-style=both' + fi + + # clang warns about linker flags unused during compilation, but we don't + # want that to turn into errors! + # Let's turn the warning off entirely since it spams. + append-flags -Wno-unused-command-line-argument + + # #492892 + filter-flags -frecord-gcc-switches + + # #898098 + filter-flags -fno-builtin + + # #798774 + filter-flags -fno-semantic-interposition + + # #829583 + filter-lfs-flags + + case ${CTARGET} in + *-linux*) + ;; + *-gnu) + # -g3 confuses MIG which relies on preprocessed input + replace-flags -ggdb[3-9] -ggdb2 + replace-flags -g3 -g + ;; + esac + + unset CBUILD_OPT CTARGET_OPT + if use multilib ; then + CTARGET_OPT=$(get_abi_CTARGET) + [[ -z ${CTARGET_OPT} ]] && CTARGET_OPT=$(get_abi_CHOST) + fi + + setup_target_flags + + if [[ -n ${CTARGET_OPT} && ${CBUILD} == ${CHOST} ]] && ! is_crosscompile; then + CBUILD_OPT=${CTARGET_OPT} + fi + + # glibc's headers disallow -O0 and fail at build time: + # include/libc-symbols.h:75:3: #error "glibc cannot be compiled without optimization" + # https://sourceware.org/glibc/wiki/FAQ#Why_do_I_get:.60.23error_.22glibc_cannot_be_compiled_without_optimization.22.27.2C_when_trying_to_compile_GNU_libc_with_GNU_CC.3F + replace-flags -O0 -O1 + + # Similar issues as with SSP. Can't inject yourself that early. + filter-flags '-fsanitize=*' + + # See end of bug #830454; we handle this via USE=cet + filter-flags '-fcf-protection=*' + + # When bootstrapping, we may have a situation where + # CET-enabled gcc from seed is used to build CET-disabled + # glibc. As such, gcc implicitly enables CET if no + # -fcf-protection flag is passed. For a typical package it + # should not be a problem, but for glibc it matters as it is + # dealing with CET in ld.so. So if CET is supposed to be + # disabled for glibc, be explicit about it. + if ! use cet; then + case ${ABI}-${CTARGET} in + amd64-x86_64-*|x32-x86_64-*-*-gnux32) + append-flags '-fcf-protection=none' + ;; + arm64-aarch64*) + append-flags '-mbranch-protection=none' + ;; + esac + fi +} + +use_multiarch() { + # Allow user to disable runtime arch detection in multilib. + use multiarch || return 1 + # Make sure binutils is new enough to support indirect functions, + # #336792. This funky sed supports gold and bfd linkers. + local bver nver + bver=$($(tc-getLD ${CTARGET}) -v | sed -n -r '1{s:[^0-9]*::;s:^([0-9.]*).*:\1:;p}') + case $(tc-arch ${CTARGET}) in + amd64|x86) nver="2.20" ;; + arm) nver="2.22" ;; + hppa) nver="2.23" ;; + ppc|ppc64) nver="2.20" ;; + # ifunc support was added in 2.23, but glibc also needs + # machinemode which is in 2.24. + s390) nver="2.24" ;; + sparc) nver="2.21" ;; + *) return 1 ;; + esac + ver_test ${bver} -ge ${nver} +} + +# Setup toolchain variables that had historically been defined in the +# profiles for these archs. +setup_env() { + # silly users + unset LD_RUN_PATH + unset LD_ASSUME_KERNEL + + if is_crosscompile || tc-is-cross-compiler ; then + multilib_env ${CTARGET_OPT:-${CTARGET}} + + if ! use multilib ; then + MULTILIB_ABIS=${DEFAULT_ABI} + else + MULTILIB_ABIS=${MULTILIB_ABIS:-${DEFAULT_ABI}} + fi + + # If the user has CFLAGS_ in their make.conf, use that, + # and fall back on CFLAGS. + local VAR=CFLAGS_${CTARGET//[-.]/_} + CFLAGS=${!VAR-${CFLAGS}} + einfo " $(printf '%15s' 'Manual CFLAGS:') ${CFLAGS}" + fi + + setup_flags + + export ABI=${ABI:-${DEFAULT_ABI:-default}} + + if just_headers ; then + # Avoid mixing host's CC and target's CFLAGS_${ABI}: + # At this bootstrap stage we have only binutils for + # target but not compiler yet. + einfo "Skip CC ABI injection. We can't use (cross-)compiler yet." + return 0 + fi + + # glibc does not work with non-bfd (for various reasons): + # * gold (bug #269274) + # * mold (bug #860900) + tc-ld-force-bfd + + if use doc ; then + export MAKEINFO=makeinfo + else + export MAKEINFO=/dev/null + fi + + # 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 clang || use custom-cflags ) && ! is_crosscompile ; then + export glibc__force_gcc=yes + # once this is toggled on, it needs to stay on, since with CPP manipulated + # tc-is-clang does not work correctly anymore... + fi + + if [[ ${glibc__force_gcc} == "yes" ]] ; then + # If we are running in an otherwise clang/llvm environment, we need to + # recover the proper gcc and binutils settings here, at least until glibc + # is finally building with clang. So let's override everything that is + # set in the clang profiles. + # Want to shoot yourself into the foot? Set USE="clang" or USE="custom-cflags". + # Also, if you are crosscompiling, let's assume you know what you are doing. + # Hopefully. + # Last, we need the settings of the *build* environment, not of the + # target environment... + + local current_binutils_path=$(env CHOST="${CBUILD}" ROOT="${BROOT}" binutils-config -B "${CTARGET}") + local current_gcc_path=$(env ROOT="${BROOT}" gcc-config -B) + einfo "Overriding clang configuration, since it won't work here" + + export CC="${current_gcc_path}/${CTARGET}-gcc" + export CPP="${current_gcc_path}/${CTARGET}-cpp" + export CXX="${current_gcc_path}/${CTARGET}-g++" + export LD="${current_binutils_path}/ld.bfd" + export AR="${current_binutils_path}/ar" + export AS="${current_binutils_path}/as" + export NM="${current_binutils_path}/nm" + export STRIP="${current_binutils_path}/strip" + export RANLIB="${current_binutils_path}/ranlib" + export OBJCOPY="${current_binutils_path}/objcopy" + export STRINGS="${current_binutils_path}/strings" + export OBJDUMP="${current_binutils_path}/objdump" + export READELF="${current_binutils_path}/readelf" + export ADDR2LINE="${current_binutils_path}/addr2line" + + # do we need to also do flags munging here? yes! at least... + filter-flags '-fuse-ld=*' + filter-flags '-D_FORTIFY_SOURCE=*' + + else + # this is the "normal" case + + # Always use tuple-prefixed toolchain. For non-native ABI glibc's configure + # can't detect them automatically due to ${CHOST} mismatch and fallbacks + # to unprefixed tools. Similar to multilib.eclass:multilib_toolchain_setup(). + export CC="$(tc-getCC ${CTARGET})" + export CXX="$(tc-getCXX ${CTARGET})" + export CPP="$(tc-getCPP ${CTARGET})" + export NM="$(tc-getNM ${CTARGET})" + export READELF="$(tc-getREADELF ${CTARGET})" + + fi + + # We need to move CFLAGS with abi information into CC etc per glibc upstream + # requirement. Keep around the original clean value to avoid appending + # multiple ABIs on top of each other. + export glibc__GLIBC_CC=${CC} + export glibc__GLIBC_CXX=${CXX} + export glibc__GLIBC_CPP=${CPP} + + export glibc__abi_CFLAGS="$(get_abi_CFLAGS)" + + # CFLAGS can contain ABI-specific flags like -mfpu=neon, see bug #657760 + # To build .S (assembly) files with the same ABI-specific flags + # upstream currently recommends adding CFLAGS to CC/CXX: + # https://sourceware.org/PR23273 + # Note: Passing CFLAGS via CPPFLAGS overrides glibc's arch-specific CFLAGS + # and breaks multiarch support. See 659030#c3 for an example. + # The glibc configure script doesn't properly use LDFLAGS all the time. + export CC="${glibc__GLIBC_CC} ${glibc__abi_CFLAGS} ${CFLAGS} ${LDFLAGS}" + + # 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} ${CFLAGS}" + + if is_crosscompile; then + # Assume worst-case bootstrap: glibc is built for the first time + # with ${CTARGET}-g++ not available yet. We avoid + # building auxiliary programs that require C++: bug #683074 + # It should not affect final result. + export libc_cv_cxx_link_ok=no + # The line above has the same effect. We set CXX explicitly + # to make build logs less confusing. + export CXX= + fi +} + +foreach_abi() { + setup_env + + local ret=0 + local abilist="" + if use multilib ; then + abilist=$(get_install_abis) + else + abilist=${DEFAULT_ABI} + fi + local -x ABI + for ABI in ${abilist:-default} ; do + setup_env + einfo "Running $1 for ABI ${ABI}" + $1 + : $(( ret |= $? )) + done + return ${ret} +} + +glibc_banner() { + local b="Gentoo ${PVR}" + [[ -n ${PATCH_VER} ]] && ! use vanilla && b+=" (patchset ${PATCH_VER})" + echo "${b}" +} + +# The following Kernel version handling functions are mostly copied from portage +# source. It's better not to use linux-info.eclass here since a) it adds too +# much magic, see bug 326693 for some of the arguments, and b) some of the +# functions are just not provided. + +g_get_running_KV() { + uname -r + return $? +} + +g_KV_major() { + [[ -z $1 ]] && return 1 + local KV=$@ + echo "${KV%%.*}" +} + +g_KV_minor() { + [[ -z $1 ]] && return 1 + local KV=$@ + KV=${KV#*.} + echo "${KV%%.*}" +} + +g_KV_micro() { + [[ -z $1 ]] && return 1 + local KV=$@ + KV=${KV#*.*.} + echo "${KV%%[^[:digit:]]*}" +} + +g_KV_to_int() { + [[ -z $1 ]] && return 1 + local KV_MAJOR=$(g_KV_major "$1") + local KV_MINOR=$(g_KV_minor "$1") + local KV_MICRO=$(g_KV_micro "$1") + local KV_int=$(( KV_MAJOR * 65536 + KV_MINOR * 256 + KV_MICRO )) + + # We make version 2.2.0 the minimum version we will handle as + # a sanity check ... if its less, we fail ... + if [[ ${KV_int} -ge 131584 ]] ; then + echo "${KV_int}" + return 0 + fi + return 1 +} + +g_int_to_KV() { + local version=$1 major minor micro + major=$((version / 65536)) + minor=$(((version % 65536) / 256)) + micro=$((version % 256)) + echo ${major}.${minor}.${micro} +} + +get_kheader_version() { + printf '#include \nLINUX_VERSION_CODE\n' | \ + $(tc-getCPP ${CTARGET}) -I "${ESYSROOT}$(alt_headers)" - | \ + tail -n 1 +} + +# We collect all sanity checks here. Consistency is not guranteed between +# pkg_ and src_ phases, so we call this function both in pkg_pretend and in +# src_unpack. +sanity_prechecks() { + # Prevent native builds from downgrading + if [[ ${MERGE_TYPE} != "buildonly" ]] && \ + [[ -z ${ROOT} ]] && \ + [[ ${CBUILD} == ${CHOST} ]] && \ + [[ ${CHOST} == ${CTARGET} ]] ; then + + # The high rev # is to allow people to downgrade between -r# + # versions. We want to block 2.20->2.19, but 2.20-r3->2.20-r2 + # should be fine. Hopefully we never actually use a r# this + # high. + if has_version ">${CATEGORY}/${P}-r10000" ; then + eerror "Sanity check to keep you from breaking your system:" + eerror " Downgrading glibc is not supported and a sure way to destruction." + [[ ${I_ALLOW_TO_BREAK_MY_SYSTEM} = yes ]] || die "Aborting to save your system." + fi + + if is_linux && ! do_run_test '#include \n#include \nint main(){return syscall(1000)!=-1;}\n' ; then + eerror "Your old kernel is broken. You need to update it to a newer" + eerror "version as syscall() will break. See bug 279260." + [[ ${I_ALLOW_TO_BREAK_MY_SYSTEM} = yes ]] || die "Old and broken kernel." + fi + fi + + if [[ ${CTARGET} == i386-* ]] ; then + eerror "i386 CHOSTs are no longer supported." + eerror "Chances are you don't actually want/need i386." + eerror "Please read https://www.gentoo.org/doc/en/change-chost.xml" + die "Please fix your CHOST" + fi + + if [[ -e /proc/xen ]] && [[ $(tc-arch) == "x86" ]] && ! is-flag -mno-tls-direct-seg-refs ; then + ewarn "You are using Xen but don't have -mno-tls-direct-seg-refs in your CFLAGS." + ewarn "This will result in a 50% performance penalty when running with a 32bit" + ewarn "hypervisor, which is probably not what you want." + fi + + # ABI-specific checks follow here. Hey, we have a lot more specific conditions that + # we test for... + if ! is_crosscompile && ! tc-is-cross-compiler ; then + if use amd64 && use multilib && [[ ${MERGE_TYPE} != "binary" ]] ; then + ebegin "Checking if the system can execute 32-bit binaries" + echo 'int main(){return 0;}' > "${T}/check-ia32-emulation.c" + local STAT + if ${CC-${CHOST}-gcc} ${CFLAGS_x86} "${T}/check-ia32-emulation.c" -o "${T}/check-ia32-emulation.elf32"; then + "${T}/check-ia32-emulation.elf32" + STAT=$? + else + # Don't fail here to allow single->multi ABI switch + # or recover from breakage like bug #646424 + ewarn "Failed to compile the ABI test. Broken host glibc?" + STAT=0 + fi + rm -f "${T}/check-ia32-emulation.elf32" + eend $STAT + if [[ $STAT -ne 0 ]]; then + eerror "Ensure that CONFIG_IA32_EMULATION is enabled in the kernel." + eerror "Seek support otherwise." + die "Unable to execute 32-bit binaries" + fi + fi + + fi + + # When we actually have to compile something... + if ! just_headers && [[ ${MERGE_TYPE} != "binary" ]] ; then + if [[ -d "${ESYSROOT}"/usr/lib/include ]] ; then + # bug #833620, bug #643302 + eerror "Found ${ESYSROOT}/usr/lib/include directory!" + eerror "This is known to break glibc's build." + eerror "Please backup its contents then remove the directory." + die "Found directory (${ESYSROOT}/usr/lib/include) which will break build (bug #833620)!" + fi + + if is_linux ; then + local run_kv build_kv want_kv + + run_kv=$(g_get_running_KV) + build_kv=$(g_int_to_KV $(get_kheader_version)) + want_kv=${MIN_KERN_VER} + + if ! is_crosscompile && ! tc-is-cross-compiler ; then + # Building fails on an non-supporting kernel + ebegin "Checking running kernel version (${run_kv} >= ${want_kv})" + if ! [[ $(g_KV_to_int ${run_kv}) -ge $(g_KV_to_int ${want_kv}) ]] ; then + eend 1 + echo + eerror "You need a kernel of at least ${want_kv}!" + die "Kernel version too low!" + fi + eend 0 + fi + + # Do not run this check for pkg_pretend, just pkg_setup and friends (if we ever get used there). + # It's plausible (seen it in the wild) that Portage will (correctly) schedule a linux-headers + # upgrade before glibc, but because pkg_pretend gets run before any packages are merged at all (not + # just glibc), the whole emerge gets aborted without a good reason. We probably don't + # need to run this check at all given we have a dependency on the right headers, + # but let's leave it as-is for now. + if [[ ${EBUILD_PHASE_FUNC} != pkg_pretend ]] ; then + ebegin "Checking linux-headers version (${build_kv} >= ${want_kv})" + if ! [[ $(g_KV_to_int ${build_kv}) -ge $(g_KV_to_int ${want_kv}) ]] ; then + eend 1 + echo + eerror "You need linux-headers of at least ${want_kv}!" + die "linux-headers version too low!" + fi + eend 0 + fi + fi + fi +} + +upgrade_warning() { + is_crosscompile && return + + if [[ ${MERGE_TYPE} != buildonly && -n ${REPLACING_VERSIONS} && -z ${ROOT} ]]; then + if ver_replacing -lt $(ver_cut 1-2 ${PV}); then + ewarn "After upgrading glibc, please restart all running processes." + ewarn "Be sure to include init (telinit u) or systemd (systemctl daemon-reexec)." + ewarn "Alternatively, reboot your system." + ewarn "(See bug #660556, bug #741116, bug #823756, etc)" + fi + fi +} + +# +# the phases +# + +# pkg_pretend + +pkg_pretend() { + upgrade_warning +} + +# pkg_setup + +pkg_setup() { + # see bug 682570 + [[ -z ${BOOTSTRAP_RAP} ]] && python-any-r1_pkg_setup +} + +# src_unpack + +src_unpack() { + setup_env + + einfo "Checking general environment sanity." + sanity_prechecks + + use multilib-bootstrap && unpack gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}.tar.xz + + if [[ ${PV} == *9999 ]] ; then + EGIT_REPO_URI=" + https://anongit.gentoo.org/git/proj/toolchain/glibc-patches.git + https://github.com/gentoo/glibc-patches.git + " + EGIT_CHECKOUT_DIR=${WORKDIR}/patches-git + git-r3_src_unpack + mv patches-git/9999 patches || die + EGIT_REPO_URI=" + https://sourceware.org/git/glibc.git + https://git.sr.ht/~sourceware/glibc + https://gitlab.com/x86-glibc/glibc.git + " + EGIT_CHECKOUT_DIR=${S} + [[ ${PV} == *.*.9999 ]] && EGIT_BRANCH=release/${PV%.*}/master + git-r3_src_unpack + else + if use verify-sig; then + verify-sig_verify_detached "${DISTDIR}/${P}.tar.xz" "${DISTDIR}/${P}.tar.xz.sig" + fi + unpack ${P}.tar.xz + + cd "${WORKDIR}" || die + unpack ${P}-patches-${PATCH_VER}.tar.xz + fi + + cd "${WORKDIR}" || die + use systemd && unpack glibc-systemd-${GLIBC_SYSTEMD_VER}.tar.gz +} + +# src_prepare + +src_prepare() { + local patchsetname + if ! use vanilla ; then + if [[ ${PV} == 9999* ]] ; then + patchsetname="from git master" + else + patchsetname="${PV}-${PATCH_VER}" + fi + einfo "Applying Gentoo Glibc patchset ${patchsetname}" + eapply "${WORKDIR}"/patches + einfo "Done." + + # Patches we should apply only for Hurd to be conservative + if is_hurd ; then + eapply "${FILESDIR}"/glibc-2.43-hurd-CLOCK_MONOTONIC.patch + fi + fi + + case ${CTARGET} in + m68*-aligned-*) + einfo "Applying utmp format fix for m68k with -maligned-int" + eapply "${FILESDIR}/glibc-2.41-m68k-malign.patch" + ;; + *) + ;; + esac + + default + + gnuconfig_update + + cd "${WORKDIR}" || die + find . -name configure -exec touch {} + + + # Fix permissions on some of the scripts. + chmod u+x "${S}"/scripts/*.sh + + cd "${S}" || die +} + +# src_configure + +glibc_do_configure() { + dump_build_environment + + local myconf=() + + # Use '=strong' instead of '=all' to protect only functions + # worth protecting from stack smashes. + myconf+=( --enable-stack-protector=$(usex ssp strong no) ) + + # Keep a whitelist of targets supporting IFUNC. glibc's ./configure + # is not robust enough to detect proper support: + # https://bugs.gentoo.org/641216 + # https://sourceware.org/PR22634#c0 + case $(tc-arch ${CTARGET}) in + # Keep whitelist of targets where autodetection mostly works. + amd64|x86|sparc|ppc|ppc64|arm|arm64|s390|riscv|loong) ;; + # Blacklist everywhere else + *) myconf+=( libc_cv_ld_gnu_indirect_function=no ) ;; + esac + + case ${ABI}-${CTARGET} in + amd64-x86_64-*|x32-x86_64-*-*-gnux32) myconf+=( $(use_enable cet) ) ;; + *) ;; + esac + + case ${ABI}-${CTARGET} in + amd64-x86_64-*|arm64-aarch64-*) myconf+=( $(use_enable sframe) ) ;; + *) ;; + esac + + [[ $(tc-is-softfloat) == "yes" ]] && myconf+=( --without-fp ) + + myconf+=( --enable-kernel=${MIN_KERN_VER} ) + + # Since SELinux support is only required for nscd, only enable it if: + # 1. USE selinux + # 2. only for the primary ABI on multilib systems + # 3. Not a crosscompile + if ! is_crosscompile && use selinux ; then + if use multilib ; then + if is_final_abi ; then + myconf+=( --with-selinux ) + else + myconf+=( --without-selinux ) + fi + else + myconf+=( --with-selinux ) + fi + else + myconf+=( --without-selinux ) + fi + + # Force a few tests where we always know the answer but + # configure is incapable of finding it. + if is_crosscompile ; then + export \ + libc_cv_c_cleanup=yes \ + libc_cv_forced_unwind=yes + fi + + myconf+=( + --disable-werror + --enable-bind-now + --enable-fortify-source + --build=${CBUILD_OPT:-${CBUILD}} + --host=${CTARGET_OPT:-${CTARGET}} + $(use_enable profile) + $(use_with gd) + --with-headers="${ESYSROOT}$(alt_headers)" + --prefix="$(host_eprefix)/usr" + --sysconfdir="$(host_eprefix)/etc" + --localstatedir="$(host_eprefix)/var" + --libdir='$(prefix)'/$(get_libdir) + --mandir='$(prefix)'/share/man + --infodir='$(prefix)'/share/info + --libexecdir='$(libdir)'/misc/glibc + --with-bugurl=https://bugs.gentoo.org/ + --with-pkgversion="$(glibc_banner)" + $(use_multiarch || echo --disable-multi-arch) + $(use_enable nscd) + + # /usr/bin/mtrace has a Perl shebang. Gentoo Prefix QA checks fail if + # Perl hasn't been installed inside the prefix yet and configure picks + # up a Perl from outside the prefix instead. configure will fail to + # execute Perl during configure if we're cross-compiling a prefix, but + # it will just disable mtrace in that case. + # Note: mtrace is needed by the test suite. + ac_cv_path_PERL="$(usex perl "${EPREFIX}"/usr/bin/perl $(usex test "${EPREFIX}"/usr/bin/perl $(usex doc "${EPREFIX}"/usr/bin/perl no)))" + + # locale data is arch-independent + # https://bugs.gentoo.org/753740 + libc_cv_complocaledir='${exec_prefix}/lib/locale' + + # On aarch64 there is no way to override -mcpu=native, and if + # the current cpu does not support SVE configure fails. + # Let's boldly assume our toolchain can always build SVE instructions. + libc_cv_aarch64_sve_asm=yes + + ${EXTRA_ECONF} + ) + + # We rely on sys-libs/timezone-data for timezone tools normally. + myconf+=( $(use_enable vanilla timezone-tools) ) + + if is_crosscompile ; then + myconf+=( --disable-systemtap ) + else + myconf+=( $(use_enable systemtap) ) + fi + + # These libs don't have configure flags. + ac_cv_lib_audit_audit_log_user_avc_message=$(usex audit || echo no) + ac_cv_lib_cap_cap_init=$(usex caps || echo no) + + # There is no configure option for this and we need to export it + # since the glibc build will re-run configure on itself + export libc_cv_rootsbindir="$(host_eprefix)/sbin" + export libc_cv_slibdir="$(host_eprefix)/$(get_libdir)" + + local builddir=$(builddir nptl) + mkdir -p "${builddir}" + cd "${builddir}" + set -- "${S}"/configure "${myconf[@]}" + echo "$@" + "$@" || die "failed to configure glibc" + + # If we're trying to migrate between ABI sets, we need + # to lie and use a local copy of gcc. Like if the system + # is built with MULTILIB_ABIS="amd64 x86" but we want to + # add x32 to it, gcc/glibc don't yet support x32. + # + if [[ -n ${GCC_BOOTSTRAP_VER} ]] && use multilib-bootstrap ; then + echo 'int main(void){}' > "${T}"/test.c || die + if ! $(tc-getCC ${CTARGET}) ${CFLAGS} ${LDFLAGS} "${T}"/test.c -Wl,-emain -lgcc 2>/dev/null ; then + sed -i -e '/^CC = /s:$: -B$(objdir)/../'"gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}/${ABI}:" config.make || die + fi + fi +} + +glibc_headers_configure() { + export ABI=default + + local builddir=$(builddir "headers") + mkdir -p "${builddir}" + cd "${builddir}" + + # if we don't have a compiler yet, we can't really test it now ... + # hopefully they don't affect header generation, so let's hope for + # the best here ... + local v vars=( + ac_cv_header_cpuid_h=yes + libc_cv_{386,390,alpha,arm,hppa,mips,{powerpc,sparc}{,32,64},sh,x86_64}_tls=yes + libc_cv_asm_cfi_directives=yes + libc_cv_broken_visibility_attribute=no + libc_cv_c_cleanup=yes + libc_cv_compiler_powerpc64le_binary128_ok=yes + libc_cv_forced_unwind=yes + libc_cv_gcc___thread=yes + libc_cv_mlong_double_128=yes + libc_cv_mlong_double_128ibm=yes + libc_cv_ppc_machine=yes + libc_cv_ppc_rel16=yes + libc_cv_predef_fortify_source=no + libc_cv_target_power8_ok=yes + libc_cv_visibility_attribute=yes + libc_cv_z_combreloc=yes + libc_cv_z_execstack=yes + libc_cv_z_initfirst=yes + libc_cv_z_nodelete=yes + libc_cv_z_nodlopen=yes + libc_cv_z_relro=yes + libc_mips_abi=${ABI} + libc_mips_float=$([[ $(tc-is-softfloat) == "yes" ]] && echo soft || echo hard) + # These libs don't have configure flags. + ac_cv_lib_audit_audit_log_user_avc_message=no + ac_cv_lib_cap_cap_init=no + ) + + einfo "Forcing cached settings:" + for v in "${vars[@]}" ; do + einfo " ${v}" + export ${v} + done + + local headers_only_arch_CPPFLAGS=() + + # Blow away some random CC settings that screw things up. #550192 + if [[ -d ${S}/sysdeps/mips ]]; then + pushd "${S}"/sysdeps/mips >/dev/null + sed -i -e '/^CC +=/s:=.*:= -D_MIPS_SZPTR=32:' mips32/Makefile mips64/n32/Makefile || die + sed -i -e '/^CC +=/s:=.*:= -D_MIPS_SZPTR=64:' mips64/n64/Makefile || die + + # Force the mips ABI to the default. This is OK because the set of + # installed headers in this phase is the same between the 3 ABIs. + # If this ever changes, this hack will break, but that's unlikely + # as glibc discourages that behavior. + # https://crbug.com/647033 + sed -i -e 's:abiflag=.*:abiflag=_ABIO32:' preconfigure || die + + popd >/dev/null + fi + + local myconf=() + + case ${CTARGET} in + aarch64*) + # The configure checks fail during cross-build, so disable here + # for headers-only + myconf+=( + --disable-mathvec + ) ;; + riscv*) + # RISC-V interrogates the compiler to determine which target to + # build. If building the headers then we don't strictly need a + # RISC-V compiler, so the built-in definitions that are provided + # along with all RISC-V compiler might not exist. This causes + # glibc's RISC-V preconfigure script to blow up. Since we're just + # building the headers any value will actually work here, so just + # pick the standard one (rv64g/lp64d) to make the build scripts + # happy for now -- the headers are all the same anyway so it + # doesn't matter. + headers_only_arch_CPPFLAGS+=( + -D__riscv_xlen=64 + -D__riscv_flen=64 + -D__riscv_float_abi_double=1 + -D__riscv_atomic=1 + ) ;; + esac + + myconf+=( + --disable-sanity-checks + --enable-hacker-mode + --disable-werror + --enable-bind-now + --build=${CBUILD_OPT:-${CBUILD}} + --host=${CTARGET_OPT:-${CTARGET}} + --with-headers="${ESYSROOT}$(alt_headers)" + --prefix="$(host_eprefix)/usr" + ${EXTRA_ECONF} + ) + + # Nothing is compiled here which would affect the headers for the target. + # So forcing CC/CFLAGS is sane. + local headers_only_CC=$(tc-getBUILD_CC) + local headers_only_CFLAGS="-O1 -pipe" + local headers_only_CPPFLAGS="-U_FORTIFY_SOURCE ${headers_only_arch_CPPFLAGS[*]}" + local headers_only_LDFLAGS="" + set -- "${S}"/configure "${myconf[@]}" + echo \ + "CC=${headers_only_CC}" \ + "CFLAGS=${headers_only_CFLAGS}" \ + "CPPFLAGS=${headers_only_CPPFLAGS}" \ + "LDFLAGS=${headers_only_LDFLAGS}" \ + "$@" + CC=${headers_only_CC} \ + CFLAGS=${headers_only_CFLAGS} \ + CPPFLAGS=${headers_only_CPPFLAGS} \ + LDFLAGS="" \ + "$@" || die "failed to configure glibc" +} + +do_src_configure() { + if just_headers ; then + glibc_headers_configure + else + glibc_do_configure nptl + fi +} + +src_configure() { + foreach_abi do_src_configure +} + +# src_compile + +do_src_compile() { + emake -C "$(builddir nptl)" +} + +src_compile() { + if just_headers ; then + return + fi + + foreach_abi do_src_compile +} + +# src_test + +glibc_src_test() { + cd "$(builddir nptl)" + + local myxfailparams="" + if [[ "${GENTOO_GLIBC_XFAIL_TESTS}" == "yes" ]] ; then + local virt=$(systemd-detect-virt 2>/dev/null) + if [[ ${virt} == systemd-nspawn ]] ; then + ewarn "Skipping extra tests because in systemd-nspawn container" + XFAIL_TEST_LIST+=( "${XFAIL_NSPAWN_TEST_LIST[@]}" ) + fi + if [[ "$(nice)" == "19" ]] ; then + # Expects to be able to increase niceness, which it can't do if + # already at the highest nice value + XFAIL_TEST_LIST+=( "tst-nice" ) + fi + + for myt in ${XFAIL_TEST_LIST[@]} ; do + myxfailparams+="test-xfail-${myt}=yes " + done + fi + + # https://inbox.sourceware.org/libc-alpha/lhuikb5ibey.fsf@oldenburg.str.redhat.com/ + local -x GAWK_GNU_MATCHERS=1 + + # sandbox does not understand unshare() and prevents + # writes to /proc/, which makes many tests fail + + # we give the tests a bit more time to avoid spurious + # bug reports on slow arches + + SANDBOX_ON=0 LD_PRELOAD= TIMEOUTFACTOR=16 nonfatal emake ${myxfailparams} check +} + +src_test() { + if just_headers ; then + return + fi + + # glibc_src_test uses nonfatal so that we can run tests for all ABIs + # and fail at the end instead. + foreach_abi glibc_src_test || die "tests failed" +} + +# src_install + +run_locale_gen() { + local fatal=$1 prefix=$2 + local user_config action config stderr noun ret + local -a hasversion_opts localegen_args + + if [[ ${EBUILD_PHASE_FUNC} == src_install ]]; then + hasversion_opts=( -b ) + fi + + if has_version "${hasversion_opts[@]}" '>=sys-apps/locale-gen-3'; then + localegen_args=( --prefix "${prefix}" ) + else + config="${prefix}/usr/share/i18n/SUPPORTED" + user_config="${prefix}/etc/locale.gen" + if [[ ${EBUILD_PHASE_FUNC} == src_install ]]; then + # For USE=compile-locales, all locales should be built. + mkdir -p -- "${prefix}/usr/lib/locale" || die + elif locale-gen --list --config "${user_config}" | read -r; then + config=${user_config} + fi + localegen_args=( --config "${config}" --destdir "${prefix}" ) + fi + + # bug 736794: we need to be careful with the parallelization... the + # number of processors saved in the environment of a binary package may + # differ strongly from the number of processes available during postinst + if [[ ${EMERGE_FROM} != binary ]]; then + localegen_args+=( --jobs "$(get_makeopts_jobs)" ) + fi + + printf 'Executing: locale-gen %s\n' "${localegen_args[*]@Q}" >&2 + { stderr=$(locale-gen "${localegen_args[@]}" 2>&1 >&3); } 3>&1 + ret=$? + action="ewarn" + if (( ret == 0 )); then + noun="warning" + else + noun="error" + if (( fatal )); then + action="die" + fi + fi + # Convey warnings/errors so that they can be reseen upon emerge exiting. + if [[ ${stderr} ]]; then + ewarn "locale-gen(8) issued the following ${noun}s:" + while read -r; do + ewarn "$REPLY" + done <<<"${stderr}" + fi + if (( ret != 0 )); then + "${action}" "locale-gen(8) unexpectedly failed during the ${EBUILD_PHASE_FUNC} phase" + fi +} + +glibc_do_src_install() { + local builddir=$(builddir nptl) + cd "${builddir}" + + emake install_root="${D}/$(build_eprefix)$(alt_prefix)" install + + # This version (2.26) provides some compatibility libraries for the NIS/NIS+ support + # which come without headers etc. Only needed for binary packages since the + # external net-libs/libnsl has increased soversion. Keep only versioned libraries. + find "${D}" -name "libnsl.a" -delete + find "${D}" -name "libnsl.so" -delete + + # Normally upstream_pv is ${PV}. Live ebuilds are exception, there we need + # to infer upstream version: + # '#define VERSION "2.26.90"' -> '2.26.90' + local upstream_pv=$(sed -n -r 's/#define VERSION "(.*)"/\1/p' "${S}"/version.h) + + # Avoid stripping binaries not targeted by ${CHOST}. Or else + # ${CHOST}-strip would break binaries build for ${CTARGET}. + is_crosscompile && dostrip -x / + + # gdb thread introspection relies on local libpthreads symbols. stripping breaks it + # See Note [Disable automatic stripping] + dostrip -x $(alt_libdir)/libpthread-${upstream_pv}.so + # valgrind requires knowledge about ld.so symbols. + dostrip -x $(alt_libdir)/ld-*.so* + + if [[ -e ${ED}/$(alt_usrlibdir)/libm-${upstream_pv}.a ]] ; then + # Move versioned .a file out of libdir to evade portage QA checks + # instead of using gen_usr_ldscript(). We fix ldscript as: + # "GROUP ( /usr/lib64/libm-.a ..." -> "GROUP ( /usr/lib64/glibc-/libm-.a ..." + sed -i "s@\(libm-${upstream_pv}.a\)@${P}/\1@" \ + "${ED}"/$(alt_usrlibdir)/libm.a || die + dodir $(alt_usrlibdir)/${P} + mv "${ED}"/$(alt_usrlibdir)/libm-${upstream_pv}.a \ + "${ED}"/$(alt_usrlibdir)/${P}/libm-${upstream_pv}.a || die + fi + + # We configure toolchains for standalone prefix systems with a sysroot, + # which is prepended to paths in ld scripts, so strip the prefix from these. + # Before: GROUP ( /foo/lib64/libc.so.6 /foo/usr/lib64/libc_nonshared.a AS_NEEDED ( /foo/lib64/ld-linux-x86-64.so.2 ) ) + # After: GROUP ( /lib64/libc.so.6 /usr/lib64/libc_nonshared.a AS_NEEDED ( /lib64/ld-linux-x86-64.so.2 ) ) + if [[ -n $(host_eprefix) ]] ; then + local file + grep -lZIF "ld script" "${ED}/$(alt_usrlibdir)"/lib*.{a,so} 2>/dev/null | while read -rd '' file ; do + sed -i "s|$(host_eprefix)/|/|g" "${file}" || die + done + fi + + # We'll take care of the cache ourselves + rm -f "${ED}"/etc/ld.so.cache + + # Everything past this point just needs to be done once ... + is_final_abi || return 0 + + # Make sure the non-native interp can be found on multilib systems even + # if the main library set isn't installed into the right place. Maybe + # we should query the active gcc for info instead of hardcoding it ? + local i ldso_abi ldso_name + if is_linux ; then + local ldso_abi_list=( + # x86 + amd64 /lib64/ld-linux-x86-64.so.2 + x32 /libx32/ld-linux-x32.so.2 + x86 /lib/ld-linux.so.2 + # mips + o32 /lib/ld.so.1 + n32 /lib32/ld.so.1 + n64 /lib64/ld.so.1 + # powerpc + ppc /lib/ld.so.1 + # riscv + ilp32d /lib/ld-linux-riscv32-ilp32d.so.1 + ilp32 /lib/ld-linux-riscv32-ilp32.so.1 + lp64d /lib/ld-linux-riscv64-lp64d.so.1 + lp64 /lib/ld-linux-riscv64-lp64.so.1 + # s390 + s390 /lib/ld.so.1 + s390x /lib/ld64.so.1 + # sparc + sparc32 /lib/ld-linux.so.2 + sparc64 /lib64/ld-linux.so.2 + ) + case $(tc-endian) in + little) + ldso_abi_list+=( + # arm + arm64 /lib/ld-linux-aarch64.so.1 + # ELFv2 (glibc does not support ELFv1 on LE) + ppc64 /lib64/ld64.so.2 + ) + ;; + big) + ldso_abi_list+=( + # arm + arm64 /lib/ld-linux-aarch64_be.so.1 + # ELFv1 (glibc does not support ELFv2 on BE) + ppc64 /lib64/ld64.so.1 + ) + ;; + esac + else + # we must be using hurd then + local ldso_abi_list=( + # x86 + amd64 /lib64/ld-x86-64.so.1 + x86 /lib/ld.so.1 + ) + fi + if [[ ${SYMLINK_LIB} == "yes" ]] && [[ ! -e ${ED}/$(alt_prefix)/lib ]] ; then + dosym $(get_abi_LIBDIR ${DEFAULT_ABI}) $(alt_prefix)/lib + fi + for (( i = 0; i < ${#ldso_abi_list[@]}; i += 2 )) ; do + ldso_abi=${ldso_abi_list[i]} + has ${ldso_abi} $(get_install_abis) || continue + + ldso_name="$(alt_prefix)${ldso_abi_list[i+1]}" + if [[ ! -L ${ED}/${ldso_name} && ! -e ${ED}/${ldso_name} ]] ; then + dosym ../$(get_abi_LIBDIR ${ldso_abi})/${ldso_name##*/} ${ldso_name} + fi + done + + if is_linux ; then + # In the LSB 5.0 definition, someone had the excellent idea to "standardize" + # the runtime loader name, see also https://xkcd.com/927/ + # Normally, in Gentoo one should never come across executables that require this. + # However, binary commercial packages are known to adhere to weird practices. + # https://refspecs.linuxfoundation.org/LSB_5.0.0/LSB-Core-AMD64/LSB-Core-AMD64.html#BASELIB + local lsb_ldso_name native_ldso_name lsb_ldso_abi + local lsb_ldso_abi_list=( + # x86 + amd64 ld-linux-x86-64.so.2 ld-lsb-x86-64.so.3 + ) + for (( i = 0; i < ${#lsb_ldso_abi_list[@]}; i += 3 )) ; do + lsb_ldso_abi=${lsb_ldso_abi_list[i]} + native_ldso_name=${lsb_ldso_abi_list[i+1]} + lsb_ldso_name=${lsb_ldso_abi_list[i+2]} + has ${lsb_ldso_abi} $(get_install_abis) || continue + + if [[ ! -L ${ED}/$(get_abi_LIBDIR ${lsb_ldso_abi})/${lsb_ldso_name} && ! -e ${ED}/$(get_abi_LIBDIR ${lsb_ldso_abi})/${lsb_ldso_name} ]] ; then + dosym ${native_ldso_name} "$(alt_prefix)/$(get_abi_LIBDIR ${lsb_ldso_abi})/${lsb_ldso_name}" + fi + done + fi + + # On Hurd, glibc and (unpatched) gcc tend to disagree about the proper location for + # the dynamic loader. Which is maximally stupid since this one information is hardcoded + # into every single binary, and even if we were to fix *our* gcc it could still prevent + # us from running binaries prepared anywhere else... + + if is_hurd && has amd64 $(get_install_abis) ; then + # First, let's check for sanity + if [[ -f "${D}/$(alt_prefix)/lib/ld-x86-64.so.1" ]] ; then + die "Somehow your amd64 hurd glibc installed /lib/ld-x86-64.so.1 ... this should not happen." + fi + + # Then make a compatibility symlink. + dosym ../lib64/ld-x86-64.so.1 "$(alt_prefix)/lib/ld-x86-64.so.1" + fi + + if is_hurd && has x86 $(get_install_abis) ; then + # First, let's check for sanity + if [[ -f "${D}/$(alt_prefix)/$(get_abi_LIBDIR x86)/ld.so" ]] ; then + die "Somehow your x86 hurd glibc installed ld.so ... this should not happen." + fi + + # Then make a compatibility symlink. + dosym ld.so.1 "$(alt_prefix)/$(get_abi_LIBDIR x86)/ld.so" + fi + + # With devpts under Linux mounted properly, we do not need the pt_chown + # binary to be setuid. This is because the default owners/perms will be + # exactly what we want. + if ! use suid ; then + find "${ED}" -name pt_chown -exec chmod -s {} + + fi + + ################################################################# + # EVERYTHING AFTER THIS POINT IS FOR NATIVE GLIBC INSTALLS ONLY # + ################################################################# + + # Make sure we install some symlink hacks so that when we build + # a 2nd stage cross-compiler, gcc finds the target system + # headers correctly. See gcc/doc/gccinstall.info + if is_crosscompile ; then + # We need to make sure that /lib and /usr/lib always exists. + # gcc likes to use relative paths to get to its multilibs like + # /usr/lib/../lib64/. So while we don't install any files into + # /usr/lib/, we do need it to exist. + keepdir $(alt_prefix)/lib + keepdir $(alt_prefix)/usr/lib + + dosym usr/include $(alt_prefix)/sys-include + return 0 + fi + + # Files for Debian-style locale updating + dodir /usr/share/i18n + sed \ + -e "/^#/d" \ + -e "/SUPPORTED-LOCALES=/d" \ + -e "s: \\\\::g" -e "s:/: :g" \ + "${S}"/localedata/SUPPORTED > "${ED}"/usr/share/i18n/SUPPORTED \ + || die "generating /usr/share/i18n/SUPPORTED failed" + + cd "${S}" || die + + # Install misc network config files + insinto /etc + doins posix/gai.conf + + if use systemd ; then + doins "${WORKDIR}/glibc-systemd-${GLIBC_SYSTEMD_VER}/gentoo-config/nsswitch.conf" + else + doins nss/nsswitch.conf + fi + + # Gentoo-specific + newins "${FILESDIR}"/host.conf-1 host.conf + + if use nscd ; then + doins nscd/nscd.conf + + newinitd "$(prefixify_ro "${FILESDIR}"/nscd-1)" nscd + + local nscd_args=( + -e "s:@PIDFILE@:$(strings "${ED}"/usr/sbin/nscd | grep nscd.pid):" + ) + + sed -i "${nscd_args[@]}" "${ED}"/etc/init.d/nscd + + use systemd && systemd_dounit nscd/nscd.service + newtmpfiles nscd/nscd.tmpfiles nscd.conf + fi + + echo 'LDPATH="include ld.so.conf.d/*.conf"' > "${T}"/00glibc + doenvd "${T}"/00glibc + + for d in BUGS ChangeLog CONFORMANCE FAQ NEWS NOTES PROJECTS README* ; do + [[ -s ${d} ]] && dodoc ${d} + done + dodoc -r ChangeLog.old + + # Prevent overwriting of the /etc/localtime symlink. We'll handle the + # creation of the "factory" symlink in pkg_postinst(). + rm -f "${ED}"/etc/localtime + + # Generate all locales if this is a native build as locale generation + if use compile-locales && ! is_crosscompile; then + run_locale_gen 1 "${ED}" + fi +} + +glibc_headers_install() { + local builddir=$(builddir "headers") + cd "${builddir}" + emake install_root="${D}/$(build_eprefix)$(alt_prefix)" install-headers + + insinto $(alt_headers)/gnu + doins "${S}"/include/gnu/stubs.h + + # Make sure we install the sys-include symlink so that when + # we build a 2nd stage cross-compiler, gcc finds the target + # system headers correctly. See gcc/doc/gccinstall.info + dosym usr/include $(alt_prefix)/sys-include +} + +src_install() { + if just_headers ; then + export ABI=default + glibc_headers_install + return + fi + + foreach_abi glibc_do_src_install + + if ! use static-libs ; then + einfo "Not installing static glibc libraries" + find "${ED}" -name "*.a" -and -not -name "*_nonshared.a" -delete + fi +} + +# Simple test to make sure our new glibc isn't completely broken. +# Make sure we don't test with statically built binaries since +# they will fail. Also, skip if this glibc is a cross compiler. +# +# If coreutils is built with USE=multicall, some of these files +# will just be wrapper scripts, not actual ELFs we can test. +glibc_sanity_check() { + cd / #228809 + + # We enter ${ED} so to avoid trouble if the path contains + # special characters; for instance if the path contains the + # colon character (:), then the linker will try to split it + # and look for the libraries in an unexpected place. This can + # lead to unsafe code execution if the generated prefix is + # within a world-writable directory. + # (e.g. /var/tmp/portage:${HOSTNAME}) + pushd "${ED}"/$(get_libdir) >/dev/null + + # first let's find the actual dynamic linker here + # symlinks may point to the wrong abi + local newldso=$(find . -maxdepth 1 -name 'ld*so.?' -type f -print -quit) + + einfo Last-minute run tests with ${newldso} in /$(get_libdir) ... + + local x striptest + for x in cal date env free ls true uname uptime ; do + x=$(type -p ${x}) + [[ -z ${x} || ${x} != ${EPREFIX}/* ]] && continue + striptest=$(LC_ALL="C" file -L ${x} 2>/dev/null) || continue + case ${striptest} in + *"statically linked"*) continue;; + *"ASCII text"*) continue;; + esac + # We need to clear the locale settings as the upgrade might want + # incompatible locale data. This test is not for verifying that. + LC_ALL=C \ + ${newldso} --library-path . ${x} > /dev/null \ + || die "simple run test (${x}) failed" + done + + popd >/dev/null +} + +pkg_preinst() { + # nothing to do if just installing headers + just_headers && return + + einfo "Checking general environment sanity." + sanity_prechecks + + # prepare /etc/ld.so.conf.d/ for files + mkdir -p "${EROOT}"/etc/ld.so.conf.d + + # Default /etc/hosts.conf:multi to on for systems with small dbs. + if [[ $(wc -l < "${EROOT}"/etc/hosts) -lt 1000 ]] ; then + sed -i '/^multi off/s:off:on:' "${ED}"/etc/host.conf + einfo "Defaulting /etc/host.conf:multi to on" + fi + + [[ -n ${ROOT} ]] && return 0 + [[ -d ${ED}/$(get_libdir) ]] || return 0 + [[ -z ${BOOTSTRAP_RAP} ]] && glibc_sanity_check + + if [[ -L ${EROOT}/usr/lib/locale ]]; then + # Help portage migrate this to a directory + # https://bugs.gentoo.org/753740 + rm "${EROOT}"/usr/lib/locale || die + fi + + # Keep around libcrypt so that Perl doesn't break when merging libxcrypt + # (libxcrypt is the new provider for now of libcrypt.so.{1,2}). + # bug #802207 + if has_version "${CATEGORY}/${PN}[crypt]" && ! has preserve-libs ${FEATURES}; then + PRESERVED_OLD_LIBCRYPT=1 + cp -p "${EROOT}/$(get_libdir)/libcrypt$(get_libname 1)" \ + "${T}/libcrypt$(get_libname 1)" || die + else + PRESERVED_OLD_LIBCRYPT=0 + fi +} + +glibc_refresh_ldconfig() { + if [[ ${MERGE_TYPE} == buildonly ]]; then + return + fi + + # Version check could be added to avoid unnecessary work, but ldconfig + # should finish quickly enough to not matter. + ebegin "Refreshing ld.so.cache" + ldconfig -i + if ! eend $?; then + ewarn "Failed to refresh the ld.so.cache for you. Some programs may be broken" + ewarn "before you manually do so (ldconfig -i)." + fi +} + +pkg_postinst() { + # nothing to do if just installing headers + just_headers && return + + if ! tc-is-cross-compiler && [[ -x ${EROOT}/usr/sbin/iconvconfig ]] ; then + # Generate fastloading iconv module configuration file. + "${EROOT}"/usr/sbin/iconvconfig --prefix="${ROOT}/" + fi + + if ! is_crosscompile && [[ -z ${ROOT} ]] ; then + # glibc-2.38+ on loong has ldconfig support added, but the ELF e_flags + # handling has changed as well, which means stale ldconfig auxiliary + # cache entries and failure to lookup libgcc_s / libstdc++ (breaking + # every C++ application) / libgomp etc., among other breakages. + # + # To fix this, simply refresh the ld.so.cache without using the + # auxiliary cache if we're natively installing on loong. This should + # be done relatively soon because we want to minimize the breakage + # window for the affected programs. + use loong && glibc_refresh_ldconfig + + if ! use compile-locales; then + run_locale_gen 0 "${EROOT}" + fi + + # If fixincludes was/is active for a particular GCC slot, we + # must refresh it. See bug #933282 and GCC's documentation: + # https://gcc.gnu.org/onlinedocs/gcc/Fixed-Headers.html + # + # TODO: Could this be done for cross? Some care would be needed + # to pass the right arguments. + while IFS= read -r -d $'\0' slot ; do + local mkheaders_path="${BROOT}"/usr/libexec/gcc/${CBUILD}/${slot##*/}/install-tools/mkheaders + local pthread_h="${BROOT}"/usr/lib/gcc/${CBUILD}/${slot##*/}/include-fixed/pthread.h + if [[ -x ${mkheaders_path} ]] ; then + ebegin "Refreshing fixincludes for ${CBUILD} with gcc-${slot##*/}" + ${mkheaders_path} -v + eend $? + elif [[ -f ${pthread_h} ]] ; then + # fixincludes might have been enabled in the past for this + # GCC slot but not since we fixed toolchain.eclass to install + # mkheaders, so we need to manually delete pthread.h at least. + ebegin "Deleting stale fixincludes'd pthread.h for ${CBUILD} with gcc-${slot##*/}" + mv -v "${pthread_h}" "${pthread_h}.bak" + eend $? + fi + done < <(find "${BROOT}"/usr/libexec/gcc/${CBUILD}/ -mindepth 1 -maxdepth 1 -type d -print0) + fi + + upgrade_warning + + # Check for sanity of /etc/nsswitch.conf, take 2 + if [[ -e ${EROOT}/etc/nsswitch.conf ]] && ! has_version sys-auth/libnss-nis ; then + local entry + for entry in passwd group shadow; do + if grep -E -q "^[ \t]*${entry}:.*nis" "${EROOT}"/etc/nsswitch.conf; then + ewarn "" + ewarn "Your ${EROOT}/etc/nsswitch.conf uses NIS. Support for that has been" + ewarn "removed from glibc and is now provided by the package" + ewarn " sys-auth/libnss-nis" + ewarn "Install it now to keep your NIS setup working." + ewarn "" + fi + done + fi + + if [[ ${PRESERVED_OLD_LIBCRYPT} -eq 1 ]] ; then + cp -p "${T}/libcrypt$(get_libname 1)" "${EROOT}/$(get_libdir)/libcrypt$(get_libname 1)" || die + preserve_old_lib_notify /$(get_libdir)/libcrypt$(get_libname 1) + + elog "Please ignore a possible later error message about a file collision involving" + elog "${EROOT}/$(get_libdir)/libcrypt$(get_libname 1). We need to preserve this file for the moment to keep" + elog "the upgrade working, but it also needs to be overwritten when" + elog "sys-libs/libxcrypt is installed. See bug 802210 for more details." + fi +} diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.44-r2.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.44-r2.ebuild new file mode 100644 index 00000000000..1bee01fe7c7 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.44-r2.ebuild @@ -0,0 +1,1934 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Bumping notes: https://wiki.gentoo.org/wiki/Project:Toolchain/sys-libs/glibc +# Please read & adapt the page as necessary if obsolete. + +PYTHON_COMPAT=( python3_{11..14} ) +TMPFILES_OPTIONAL=1 + +EMULTILIB_PKG="true" + +# Gentoo patchset (ignored for live ebuilds) +PATCH_VER=3 + +# gcc mulitilib bootstrap files version +GCC_BOOTSTRAP_VER=20201208 + +# systemd integration version +GLIBC_SYSTEMD_VER=20210729 + +# Minimum kernel version that glibc requires (used with USE=old-kernel) +MIN_KERN_VER_UPSTREAM="3.2.0" + +# Minimum kernel version that Gentoo recommends (oldest in the tree) +MIN_KERN_VER_GENTOO="6.1.0" + +# Minimum pax-utils version needed (which contains any new syscall changes for +# its seccomp filter!). Please double check this! +MIN_PAX_UTILS_VER="1.3.3" + +# Minimum systemd version needed (which contains any new syscall changes for +# its seccomp filter!). Please double check this! +MIN_SYSTEMD_VER="254.9-r1" + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/glibc.asc + +inherit python-any-r1 prefix preserve-libs toolchain-funcs flag-o-matic gnuconfig \ + multilib systemd multiprocessing tmpfiles eapi9-ver verify-sig + +DESCRIPTION="GNU libc C library" +HOMEPAGE="https://www.gnu.org/software/libc/" + +if [[ ${PV} == *9999 ]]; then + inherit git-r3 +else + #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + SRC_URI="mirror://gnu/glibc/${P}.tar.xz" + SRC_URI+=" https://distfiles.gentoo.org/pub/proj/toolchain/glibc/patches/${P}-patches-${PATCH_VER}.tar.xz" + SRC_URI+=" verify-sig? ( mirror://gnu/glibc/${P}.tar.xz.sig )" +fi + +SRC_URI+=" multilib-bootstrap? ( https://dev.gentoo.org/~dilfridge/distfiles/gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}.tar.xz )" +SRC_URI+=" systemd? ( https://gitweb.gentoo.org/proj/toolchain/glibc-systemd.git/snapshot/glibc-systemd-${GLIBC_SYSTEMD_VER}.tar.gz )" + +LICENSE="LGPL-2.1+ BSD HPND ISC inner-net rc PCRE" +SLOT="2.2" +IUSE="audit caps cet clang compile-locales custom-cflags doc gd hash-sysv-compat headers-only +multiarch multilib multilib-bootstrap nscd old-kernel perl profile selinux sframe +ssp stack-realign +static-libs suid systemd systemtap test vanilla" + +# Here's how the cross-compile logic breaks down ... +# CTARGET - machine that will target the binaries +# CHOST - machine that will host the binaries +# CBUILD - machine that will build the binaries +# If CTARGET != CHOST, it means you want a libc for cross-compiling. +# If CHOST != CBUILD, it means you want to cross-compile the libc. +# CBUILD = CHOST = CTARGET - native build/install +# CBUILD != (CHOST = CTARGET) - cross-compile a native build +# (CBUILD = CHOST) != CTARGET - libc for cross-compiler +# CBUILD != CHOST != CTARGET - cross-compile a libc for a cross-compiler +# For install paths: +# CHOST = CTARGET - install into / +# CHOST != CTARGET - install into /usr/CTARGET/ +# +export CBUILD=${CBUILD:-${CHOST}} +export CTARGET=${CTARGET:-${CHOST}} +if [[ ${CTARGET} == ${CHOST} ]] ; then + if [[ ${CATEGORY} == cross-* ]] ; then + export CTARGET=${CATEGORY#cross-} + fi +fi + +# Note [Disable automatic stripping] +# Disabling automatic stripping for a few reasons: +# - portage's attempt to strip breaks non-native binaries at least on +# arm: bug #697428 +# - portage's attempt to strip libpthread.so.0 breaks gdb thread +# enumeration: bug #697910. This is quite subtle: +# * gdb uses glibc's libthread_db-1.0.so to enumerate threads. +# * libthread_db-1.0.so needs access to libpthread.so.0 local symbols +# via 'ps_pglobal_lookup' symbol defined in gdb. +# * 'ps_pglobal_lookup' uses '.symtab' section table to resolve all +# known symbols in 'libpthread.so.0'. Specifically 'nptl_version' +# (unexported) is used to sanity check compatibility before enabling +# debugging. +# Also see https://sourceware.org/gdb/wiki/FAQ#GDB_does_not_see_any_threads_besides_the_one_in_which_crash_occurred.3B_or_SIGTRAP_kills_my_program_when_I_set_a_breakpoint +# * normal 'strip' command trims '.symtab' +# Thus our main goal here is to prevent 'libpthread.so.0' from +# losing it's '.symtab' entries. +# - similarly, valgrind requires knowledge about symbols in ld.so: +# bug #920753 +# As Gentoo's strip does not allow us to pass less aggressive stripping +# options and does not check the machine target we strip selectively. + +# We need a new-enough binutils/gcc to match upstream baseline. +# Also we need to make sure our binutils/gcc supports TLS, +# and that gcc already contains the hardened patches. +# Lastly, let's avoid some openssh nastiness, bug 708224, as +# convenience to our users. + +IDEPEND=" + !compile-locales? ( sys-apps/locale-gen ) +" +BDEPEND=" + ${PYTHON_DEPS} + >=app-misc/pax-utils-${MIN_PAX_UTILS_VER} + sys-devel/bison + compile-locales? ( sys-apps/locale-gen ) + doc? ( + dev-lang/perl + sys-apps/texinfo + ) + sframe? ( >=sys-devel/binutils-2.45 ) + test? ( + dev-lang/perl + >=net-dns/libidn2-2.3.0 + sys-apps/gawk[mpfr] + ) + verify-sig? ( sec-keys/openpgp-keys-glibc ) +" +COMMON_DEPEND=" + gd? ( media-libs/gd:2= ) + nscd? ( selinux? ( + audit? ( sys-process/audit ) + caps? ( sys-libs/libcap ) + ) ) + suid? ( caps? ( sys-libs/libcap ) ) + selinux? ( sys-libs/libselinux ) + systemtap? ( dev-debug/systemtap ) +" +DEPEND="${COMMON_DEPEND} +" +RDEPEND="${COMMON_DEPEND} + !/dev/null + + rm -f glibc-test* + printf '%b' "$*" > glibc-test.c + + # We assume CC is already set up. + nonfatal emake glibc-test + ret=$? + + popd >/dev/null + + CFLAGS=${save_cflags} + return ${ret} +} + +do_run_test() { + local ret + + if [[ ${MERGE_TYPE} == "binary" ]] ; then + # ignore build failures when installing a binary package #324685 + CC="${glibc__ORIG_CC}" CXX="${glibc__ORIG_CXX}" CPP="${glibc__ORIG_CPP}" \ + CFLAGS="-O2" LDFLAGS="" do_compile_test "" "$@" 2>/dev/null || return 0 + else + ebegin "Performing simple compile test for ABI=${ABI}" + if ! do_compile_test "" "$@" ; then + ewarn "Simple build failed ... assuming this is desired #324685" + eend 1 + return 0 + else + eend 0 + fi + fi + + pushd "${T}" >/dev/null + + ./glibc-test + ret=$? + rm -f glibc-test* + + popd >/dev/null + + return ${ret} +} + +setup_target_flags() { + # This largely mucks with compiler flags. None of which should matter + # when building up just the headers. + just_headers && return 0 + + case $(tc-arch) in + alpha) + # glibc selects its hand-written assembly mem*/str* routines by the + # host triplet's machine prefix (sysdeps/alpha/preconfigure does + # machine=alpha/$machine), NOT by the -mcpu codegen flag. With the + # bare alpha-*-* CHOST only the generic C is built. Map -mcpu to the + # most specific sysdeps/alpha/alphaev* dir that exists (Implies chain + # alphaev67 -> alphaev6 -> alphaev5) so the tuned asm is selected. + local cpu + case $(get-flag mcpu) in + 21264a|ev67) cpu="alphaev67" ;; + 21264|ev6) cpu="alphaev6" ;; + 21164*|ev5|ev56|pca56) cpu="alphaev5" ;; + esac + [[ -n ${cpu} ]] && CTARGET_OPT="${cpu}-${CTARGET#*-}" + ;; + x86) + # -march needed for #185404 #199334 + # TODO: When creating the first glibc cross-compile, this test will + # always fail as it does a full link which in turn requires glibc. + # Probably also applies when changing multilib profile settings (e.g. + # enabling x86 when the profile was amd64-only previously). + # We could change main to _start and pass -nostdlib here so that we + # only test the gcc code compilation. Or we could do a compile and + # then look for the symbol via scanelf. + if ! do_compile_test "" 'void f(int i, void *p) {if (__sync_fetch_and_add(&i, 1)) f(i, p);}\nint main(){return 0;}\n'; then + local t=${CTARGET_OPT:-${CTARGET}} + t=${t%%-*} + filter-flags '-march=*' + export CFLAGS="-march=${t} ${CFLAGS}" + einfo "Auto adding -march=${t} to CFLAGS #185404" + fi + # For compatibility with older binaries at slight performance cost. + use stack-realign && export CFLAGS+=" -mstackrealign" + ;; + amd64) + # -march needed for #185404 #199334 + # TODO: See cross-compile issues listed above for x86. + if [[ ${ABI} == x86 ]]; then + if ! do_compile_test "${CFLAGS_x86}" 'void f(int i, void *p) {if (__sync_fetch_and_add(&i, 1)) f(i, p);}\nint main(){return 0;}\n'; then + local t=${CTARGET_OPT:-${CTARGET}} + t=${t%%-*} + # Normally the target is x86_64-xxx, so turn that into the -march that + # gcc actually accepts. #528708 + [[ ${t} == "x86_64" ]] && t="x86-64" + filter-flags '-march=*' + # ugly, ugly, ugly. ugly. + CFLAGS_x86=$( + CFLAGS=${CFLAGS_x86} + filter-flags '-march=*' + is-flagq '-mfpmath=sse' && append-cflags -msse + echo "${CFLAGS}" + ) + export CFLAGS_x86="${CFLAGS_x86} -march=${t}" + einfo "Auto adding -march=${t} to CFLAGS_x86 #185404 (ABI=${ABI})" + fi + # For compatibility with older binaries at slight performance cost. + use stack-realign && export CFLAGS_x86+=" -mstackrealign" + fi + + if is_hurd ; then + # doesnt build with -march=native and probably other values, debugging required + filter-flags '-march=*' + fi + ;; + mips) + # The mips abi cannot support the GNU style hashes. #233233 + filter-ldflags -Wl,--hash-style=gnu -Wl,--hash-style=both + ;; + ppc|ppc64) + # Many arch-specific implementations do not work on ppc with + # cache-block not equal to 128 bytes. This breaks memset: + # https://sourceware.org/PR26522 + # https://bugs.gentoo.org/737996 + # Use default -mcpu=. For ppc it means non-multiarch setup. + filter-flags '-mcpu=*' + ;; + sparc) + # Both sparc and sparc64 can use -fcall-used-g6. -g7 is bad, though. + filter-flags "-fcall-used-g7" + append-flags "-fcall-used-g6" + + local cpu + case ${CTARGET} in + sparc64-*) + cpu="sparc64" + case $(get-flag mcpu) in + v9) + # We need to force at least v9a because the base build doesn't + # work with just v9. + # https://sourceware.org/bugzilla/show_bug.cgi?id=19477 + append-flags "-Wa,-xarch=v9a" + ;; + esac + ;; + sparc-*) + case $(get-flag mcpu) in + v8|supersparc|hypersparc|leon|leon3) + cpu="sparcv8" + ;; + *) + cpu="sparcv9" + ;; + esac + ;; + esac + [[ -n ${cpu} ]] && CTARGET_OPT="${cpu}-${CTARGET#*-}" + ;; + esac +} + +setup_flags() { + # Make sure host make.conf doesn't pollute us + if is_crosscompile || tc-is-cross-compiler ; then + CHOST=${CTARGET} strip-unsupported-flags + fi + + # Store our CFLAGS because it's changed depending on which CTARGET + # we are building when pulling glibc on a multilib profile + CFLAGS_BASE=${CFLAGS_BASE-${CFLAGS}} + CFLAGS=${CFLAGS_BASE} + CXXFLAGS_BASE=${CXXFLAGS_BASE-${CXXFLAGS}} + CXXFLAGS=${CXXFLAGS_BASE} + ASFLAGS_BASE=${ASFLAGS_BASE-${ASFLAGS}} + ASFLAGS=${ASFLAGS_BASE} + + # Allow users to explicitly avoid flag sanitization via + # USE=custom-cflags. + if ! use custom-cflags; then + # Over-zealous CFLAGS can often cause problems. What may work for one + # person may not work for another. To avoid a large influx of bugs + # relating to failed builds, we strip most CFLAGS out to ensure as few + # problems as possible. + strip-flags + + # Allow -O2 and -O3, but nothing else for now. + # TODO: Test -Os, -Oz. + if ! is-flagq '-O@(2|3)' ; then + # Lock glibc at -O2. We want to be conservative here. + filter-flags '-O?' + append-flags -O2 + fi + fi + + strip-unsupported-flags + filter-lto + filter-flags -m32 -m64 '-mabi=*' + + # glibc aborts if rpath is set by LDFLAGS + filter-ldflags '-Wl,-rpath=*' + + # ld can't use -r & --relax at the same time, bug #788901 + # https://sourceware.org/PR27837 + filter-ldflags '-Wl,--relax' + + # Flag added for cross-prefix, but causes ldconfig to segfault. Not needed + # anyway because glibc already handles this by itself. + filter-ldflags '-Wl,--dynamic-linker=*' + + # Fails to link (bug #940709) in some cases but even if it manages to, + # subtle runtime breakage will occur because the linker scripts need + # adaptation. Mentioned in PR21557#c0. + filter-ldflags '-Wl,--gc-sections' + + # some weird software relies on sysv hashes in glibc, bug 863863, bug 864100 + # we have to do that here already so mips can filter it out again :P + if use hash-sysv-compat ; then + append-ldflags '-Wl,--hash-style=both' + fi + + # clang warns about linker flags unused during compilation, but we don't + # want that to turn into errors! + # Let's turn the warning off entirely since it spams. + append-flags -Wno-unused-command-line-argument + + # #492892 + filter-flags -frecord-gcc-switches + + # #898098 + filter-flags -fno-builtin + + # #798774 + filter-flags -fno-semantic-interposition + + # #829583 + filter-lfs-flags + + case ${CTARGET} in + *-linux*) + ;; + *-gnu) + # -g3 confuses MIG which relies on preprocessed input + replace-flags -ggdb[3-9] -ggdb2 + replace-flags -g3 -g + ;; + esac + + unset CBUILD_OPT CTARGET_OPT + if use multilib ; then + CTARGET_OPT=$(get_abi_CTARGET) + [[ -z ${CTARGET_OPT} ]] && CTARGET_OPT=$(get_abi_CHOST) + fi + + setup_target_flags + + if [[ -n ${CTARGET_OPT} && ${CBUILD} == ${CHOST} ]] && ! is_crosscompile; then + CBUILD_OPT=${CTARGET_OPT} + fi + + # glibc's headers disallow -O0 and fail at build time: + # include/libc-symbols.h:75:3: #error "glibc cannot be compiled without optimization" + # https://sourceware.org/glibc/wiki/FAQ#Why_do_I_get:.60.23error_.22glibc_cannot_be_compiled_without_optimization.22.27.2C_when_trying_to_compile_GNU_libc_with_GNU_CC.3F + replace-flags -O0 -O1 + + # Similar issues as with SSP. Can't inject yourself that early. + filter-flags '-fsanitize=*' + + # See end of bug #830454; we handle this via USE=cet + filter-flags '-fcf-protection=*' + + # When bootstrapping, we may have a situation where + # CET-enabled gcc from seed is used to build CET-disabled + # glibc. As such, gcc implicitly enables CET if no + # -fcf-protection flag is passed. For a typical package it + # should not be a problem, but for glibc it matters as it is + # dealing with CET in ld.so. So if CET is supposed to be + # disabled for glibc, be explicit about it. + if ! use cet; then + case ${ABI}-${CTARGET} in + amd64-x86_64-*|x32-x86_64-*-*-gnux32) + append-flags '-fcf-protection=none' + ;; + arm64-aarch64*) + append-flags '-mbranch-protection=none' + ;; + esac + fi +} + +use_multiarch() { + # Allow user to disable runtime arch detection in multilib. + use multiarch || return 1 + # Make sure binutils is new enough to support indirect functions, + # #336792. This funky sed supports gold and bfd linkers. + local bver nver + bver=$($(tc-getLD ${CTARGET}) -v | sed -n -r '1{s:[^0-9]*::;s:^([0-9.]*).*:\1:;p}') + case $(tc-arch ${CTARGET}) in + amd64|x86) nver="2.20" ;; + arm) nver="2.22" ;; + hppa) nver="2.23" ;; + ppc|ppc64) nver="2.20" ;; + # ifunc support was added in 2.23, but glibc also needs + # machinemode which is in 2.24. + s390) nver="2.24" ;; + sparc) nver="2.21" ;; + *) return 1 ;; + esac + ver_test ${bver} -ge ${nver} +} + +# Setup toolchain variables that had historically been defined in the +# profiles for these archs. +setup_env() { + # silly users + unset LD_RUN_PATH + unset LD_ASSUME_KERNEL + + if is_crosscompile || tc-is-cross-compiler ; then + multilib_env ${CTARGET_OPT:-${CTARGET}} + + if ! use multilib ; then + MULTILIB_ABIS=${DEFAULT_ABI} + else + MULTILIB_ABIS=${MULTILIB_ABIS:-${DEFAULT_ABI}} + fi + + # If the user has CFLAGS_ in their make.conf, use that, + # and fall back on CFLAGS. + local VAR=CFLAGS_${CTARGET//[-.]/_} + CFLAGS=${!VAR-${CFLAGS}} + einfo " $(printf '%15s' 'Manual CFLAGS:') ${CFLAGS}" + fi + + setup_flags + + export ABI=${ABI:-${DEFAULT_ABI:-default}} + + if just_headers ; then + # Avoid mixing host's CC and target's CFLAGS_${ABI}: + # At this bootstrap stage we have only binutils for + # target but not compiler yet. + einfo "Skip CC ABI injection. We can't use (cross-)compiler yet." + return 0 + fi + + # glibc does not work with non-bfd (for various reasons): + # * gold (bug #269274) + # * mold (bug #860900) + tc-ld-force-bfd + + if use doc ; then + export MAKEINFO=makeinfo + else + export MAKEINFO=/dev/null + fi + + # 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 clang || use custom-cflags ) && ! is_crosscompile ; then + export glibc__force_gcc=yes + # once this is toggled on, it needs to stay on, since with CPP manipulated + # tc-is-clang does not work correctly anymore... + fi + + if [[ ${glibc__force_gcc} == "yes" ]] ; then + # If we are running in an otherwise clang/llvm environment, we need to + # recover the proper gcc and binutils settings here, at least until glibc + # is finally building with clang. So let's override everything that is + # set in the clang profiles. + # Want to shoot yourself into the foot? Set USE="clang" or USE="custom-cflags". + # Also, if you are crosscompiling, let's assume you know what you are doing. + # Hopefully. + # Last, we need the settings of the *build* environment, not of the + # target environment... + + local current_binutils_path=$(env CHOST="${CBUILD}" ROOT="${BROOT}" binutils-config -B "${CTARGET}") + local current_gcc_path=$(env ROOT="${BROOT}" gcc-config -B) + einfo "Overriding clang configuration, since it won't work here" + + export CC="${current_gcc_path}/${CTARGET}-gcc" + export CPP="${current_gcc_path}/${CTARGET}-cpp" + export CXX="${current_gcc_path}/${CTARGET}-g++" + export LD="${current_binutils_path}/ld.bfd" + export AR="${current_binutils_path}/ar" + export AS="${current_binutils_path}/as" + export NM="${current_binutils_path}/nm" + export STRIP="${current_binutils_path}/strip" + export RANLIB="${current_binutils_path}/ranlib" + export OBJCOPY="${current_binutils_path}/objcopy" + export STRINGS="${current_binutils_path}/strings" + export OBJDUMP="${current_binutils_path}/objdump" + export READELF="${current_binutils_path}/readelf" + export ADDR2LINE="${current_binutils_path}/addr2line" + + # do we need to also do flags munging here? yes! at least... + filter-flags '-fuse-ld=*' + filter-flags '-D_FORTIFY_SOURCE=*' + + else + # this is the "normal" case + + # Always use tuple-prefixed toolchain. For non-native ABI glibc's configure + # can't detect them automatically due to ${CHOST} mismatch and fallbacks + # to unprefixed tools. Similar to multilib.eclass:multilib_toolchain_setup(). + export CC="$(tc-getCC ${CTARGET})" + export CXX="$(tc-getCXX ${CTARGET})" + export CPP="$(tc-getCPP ${CTARGET})" + export NM="$(tc-getNM ${CTARGET})" + export READELF="$(tc-getREADELF ${CTARGET})" + + fi + + # We need to move CFLAGS with abi information into CC etc per glibc upstream + # requirement. Keep around the original clean value to avoid appending + # multiple ABIs on top of each other. + export glibc__GLIBC_CC=${CC} + export glibc__GLIBC_CXX=${CXX} + export glibc__GLIBC_CPP=${CPP} + + export glibc__abi_CFLAGS="$(get_abi_CFLAGS)" + + # CFLAGS can contain ABI-specific flags like -mfpu=neon, see bug #657760 + # To build .S (assembly) files with the same ABI-specific flags + # upstream currently recommends adding CFLAGS to CC/CXX: + # https://sourceware.org/PR23273 + # Note: Passing CFLAGS via CPPFLAGS overrides glibc's arch-specific CFLAGS + # and breaks multiarch support. See 659030#c3 for an example. + # The glibc configure script doesn't properly use LDFLAGS all the time. + export CC="${glibc__GLIBC_CC} ${glibc__abi_CFLAGS} ${CFLAGS} ${LDFLAGS}" + + # 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} ${CFLAGS}" + + if is_crosscompile; then + # Assume worst-case bootstrap: glibc is built for the first time + # with ${CTARGET}-g++ not available yet. We avoid + # building auxiliary programs that require C++: bug #683074 + # It should not affect final result. + export libc_cv_cxx_link_ok=no + # The line above has the same effect. We set CXX explicitly + # to make build logs less confusing. + export CXX= + fi +} + +foreach_abi() { + setup_env + + local ret=0 + local abilist="" + if use multilib ; then + abilist=$(get_install_abis) + else + abilist=${DEFAULT_ABI} + fi + local -x ABI + for ABI in ${abilist:-default} ; do + setup_env + einfo "Running $1 for ABI ${ABI}" + $1 + : $(( ret |= $? )) + done + return ${ret} +} + +glibc_banner() { + local b="Gentoo ${PVR}" + [[ -n ${PATCH_VER} ]] && ! use vanilla && b+=" (patchset ${PATCH_VER})" + echo "${b}" +} + +# The following Kernel version handling functions are mostly copied from portage +# source. It's better not to use linux-info.eclass here since a) it adds too +# much magic, see bug 326693 for some of the arguments, and b) some of the +# functions are just not provided. + +g_get_running_KV() { + uname -r + return $? +} + +g_KV_major() { + [[ -z $1 ]] && return 1 + local KV=$@ + echo "${KV%%.*}" +} + +g_KV_minor() { + [[ -z $1 ]] && return 1 + local KV=$@ + KV=${KV#*.} + echo "${KV%%.*}" +} + +g_KV_micro() { + [[ -z $1 ]] && return 1 + local KV=$@ + KV=${KV#*.*.} + echo "${KV%%[^[:digit:]]*}" +} + +g_KV_to_int() { + [[ -z $1 ]] && return 1 + local KV_MAJOR=$(g_KV_major "$1") + local KV_MINOR=$(g_KV_minor "$1") + local KV_MICRO=$(g_KV_micro "$1") + local KV_int=$(( KV_MAJOR * 65536 + KV_MINOR * 256 + KV_MICRO )) + + # We make version 2.2.0 the minimum version we will handle as + # a sanity check ... if its less, we fail ... + if [[ ${KV_int} -ge 131584 ]] ; then + echo "${KV_int}" + return 0 + fi + return 1 +} + +g_int_to_KV() { + local version=$1 major minor micro + major=$((version / 65536)) + minor=$(((version % 65536) / 256)) + micro=$((version % 256)) + echo ${major}.${minor}.${micro} +} + +get_kheader_version() { + printf '#include \nLINUX_VERSION_CODE\n' | \ + $(tc-getCPP ${CTARGET}) -I "${ESYSROOT}$(alt_headers)" - | \ + tail -n 1 +} + +# We collect all sanity checks here. Consistency is not guranteed between +# pkg_ and src_ phases, so we call this function both in pkg_pretend and in +# src_unpack. +sanity_prechecks() { + # Prevent native builds from downgrading + if [[ ${MERGE_TYPE} != "buildonly" ]] && \ + [[ -z ${ROOT} ]] && \ + [[ ${CBUILD} == ${CHOST} ]] && \ + [[ ${CHOST} == ${CTARGET} ]] ; then + + # The high rev # is to allow people to downgrade between -r# + # versions. We want to block 2.20->2.19, but 2.20-r3->2.20-r2 + # should be fine. Hopefully we never actually use a r# this + # high. + if has_version ">${CATEGORY}/${P}-r10000" ; then + eerror "Sanity check to keep you from breaking your system:" + eerror " Downgrading glibc is not supported and a sure way to destruction." + [[ ${I_ALLOW_TO_BREAK_MY_SYSTEM} = yes ]] || die "Aborting to save your system." + fi + + if is_linux && ! do_run_test '#include \n#include \nint main(){return syscall(1000)!=-1;}\n' ; then + eerror "Your old kernel is broken. You need to update it to a newer" + eerror "version as syscall() will break. See bug 279260." + [[ ${I_ALLOW_TO_BREAK_MY_SYSTEM} = yes ]] || die "Old and broken kernel." + fi + fi + + if [[ ${CTARGET} == i386-* ]] ; then + eerror "i386 CHOSTs are no longer supported." + eerror "Chances are you don't actually want/need i386." + eerror "Please read https://www.gentoo.org/doc/en/change-chost.xml" + die "Please fix your CHOST" + fi + + if [[ -e /proc/xen ]] && [[ $(tc-arch) == "x86" ]] && ! is-flag -mno-tls-direct-seg-refs ; then + ewarn "You are using Xen but don't have -mno-tls-direct-seg-refs in your CFLAGS." + ewarn "This will result in a 50% performance penalty when running with a 32bit" + ewarn "hypervisor, which is probably not what you want." + fi + + # ABI-specific checks follow here. Hey, we have a lot more specific conditions that + # we test for... + if ! is_crosscompile && ! tc-is-cross-compiler ; then + if use amd64 && use multilib && [[ ${MERGE_TYPE} != "binary" ]] ; then + ebegin "Checking if the system can execute 32-bit binaries" + echo 'int main(){return 0;}' > "${T}/check-ia32-emulation.c" + local STAT + if ${CC-${CHOST}-gcc} ${CFLAGS_x86} "${T}/check-ia32-emulation.c" -o "${T}/check-ia32-emulation.elf32"; then + "${T}/check-ia32-emulation.elf32" + STAT=$? + else + # Don't fail here to allow single->multi ABI switch + # or recover from breakage like bug #646424 + ewarn "Failed to compile the ABI test. Broken host glibc?" + STAT=0 + fi + rm -f "${T}/check-ia32-emulation.elf32" + eend $STAT + if [[ $STAT -ne 0 ]]; then + eerror "Ensure that CONFIG_IA32_EMULATION is enabled in the kernel." + eerror "Seek support otherwise." + die "Unable to execute 32-bit binaries" + fi + fi + + fi + + # When we actually have to compile something... + if ! just_headers && [[ ${MERGE_TYPE} != "binary" ]] ; then + if [[ -d "${ESYSROOT}"/usr/lib/include ]] ; then + # bug #833620, bug #643302 + eerror "Found ${ESYSROOT}/usr/lib/include directory!" + eerror "This is known to break glibc's build." + eerror "Please backup its contents then remove the directory." + die "Found directory (${ESYSROOT}/usr/lib/include) which will break build (bug #833620)!" + fi + + if is_linux ; then + if use old-kernel ; then + MIN_KERN_VER=${MIN_KERN_VER_UPSTREAM} + else + MIN_KERN_VER=${MIN_KERN_VER_GENTOO} + fi + + local run_kv build_kv want_kv + + run_kv=$(g_get_running_KV) + build_kv=$(g_int_to_KV $(get_kheader_version)) + want_kv=${MIN_KERN_VER} + + if ! is_crosscompile && ! tc-is-cross-compiler ; then + # Building fails on an non-supporting kernel + ebegin "Checking running kernel version (${run_kv} >= ${want_kv})" + if ! [[ $(g_KV_to_int ${run_kv}) -ge $(g_KV_to_int ${want_kv}) ]] ; then + eend 1 + echo + eerror "You need a kernel of at least ${want_kv}!" + die "Kernel version too low! Maybe setting USE=old-kernel helps." + fi + eend 0 + fi + + # Do not run this check for pkg_pretend, just pkg_setup and friends (if we ever get used there). + # It's plausible (seen it in the wild) that Portage will (correctly) schedule a linux-headers + # upgrade before glibc, but because pkg_pretend gets run before any packages are merged at all (not + # just glibc), the whole emerge gets aborted without a good reason. We probably don't + # need to run this check at all given we have a dependency on the right headers, + # but let's leave it as-is for now. + if [[ ${EBUILD_PHASE_FUNC} != pkg_pretend ]] ; then + ebegin "Checking linux-headers version (${build_kv} >= ${want_kv})" + if ! [[ $(g_KV_to_int ${build_kv}) -ge $(g_KV_to_int ${want_kv}) ]] ; then + eend 1 + echo + eerror "You need linux-headers of at least ${want_kv}!" + die "linux-headers version too low!" + fi + eend 0 + fi + fi + fi +} + +upgrade_warning() { + is_crosscompile && return + + if [[ ${MERGE_TYPE} != buildonly && -n ${REPLACING_VERSIONS} && -z ${ROOT} ]]; then + if ver_replacing -lt $(ver_cut 1-2 ${PV}); then + ewarn "After upgrading glibc, please restart all running processes." + ewarn "Be sure to include init (telinit u) or systemd (systemctl daemon-reexec)." + ewarn "Alternatively, reboot your system." + ewarn "(See bug #660556, bug #741116, bug #823756, etc)" + fi + fi +} + +# +# the phases +# + +# pkg_pretend + +pkg_pretend() { + upgrade_warning +} + +# pkg_setup + +pkg_setup() { + # see bug 682570 + [[ -z ${BOOTSTRAP_RAP} ]] && python-any-r1_pkg_setup +} + +# src_unpack + +src_unpack() { + setup_env + + einfo "Checking general environment sanity." + sanity_prechecks + + use multilib-bootstrap && unpack gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}.tar.xz + + if [[ ${PV} == *9999 ]] ; then + EGIT_REPO_URI=" + https://anongit.gentoo.org/git/proj/toolchain/glibc-patches.git + https://github.com/gentoo/glibc-patches.git + " + EGIT_CHECKOUT_DIR=${WORKDIR}/patches-git + git-r3_src_unpack + mv patches-git/9999 patches || die + EGIT_REPO_URI=" + https://sourceware.org/git/glibc.git + https://git.sr.ht/~sourceware/glibc + https://gitlab.com/x86-glibc/glibc.git + " + EGIT_CHECKOUT_DIR=${S} + [[ ${PV} == *.*.9999 ]] && EGIT_BRANCH=release/${PV%.*}/master + git-r3_src_unpack + else + if use verify-sig; then + verify-sig_verify_detached "${DISTDIR}/${P}.tar.xz" "${DISTDIR}/${P}.tar.xz.sig" + fi + unpack ${P}.tar.xz + + cd "${WORKDIR}" || die + unpack ${P}-patches-${PATCH_VER}.tar.xz + fi + + cd "${WORKDIR}" || die + use systemd && unpack glibc-systemd-${GLIBC_SYSTEMD_VER}.tar.gz +} + +# src_prepare + +src_prepare() { + local patchsetname + if ! use vanilla ; then + if [[ ${PV} == 9999* ]] ; then + patchsetname="from git master" + else + patchsetname="${PV}-${PATCH_VER}" + fi + einfo "Applying Gentoo Glibc patchset ${patchsetname}" + eapply "${WORKDIR}"/patches + einfo "Done." + + # Patches we should apply only for Hurd to be conservative + if is_hurd ; then + eapply "${FILESDIR}"/glibc-2.43-hurd-CLOCK_MONOTONIC.patch + fi + fi + + case ${CTARGET} in + m68*-aligned-*) + einfo "Applying utmp format fix for m68k with -maligned-int" + eapply "${FILESDIR}/glibc-2.41-m68k-malign.patch" + ;; + *) + ;; + esac + + default + + gnuconfig_update + + cd "${WORKDIR}" || die + find . -name configure -exec touch {} + + + # Fix permissions on some of the scripts. + chmod u+x "${S}"/scripts/*.sh + + cd "${S}" || die +} + +# src_configure + +glibc_do_configure() { + dump_build_environment + + local myconf=() + + # Use '=strong' instead of '=all' to protect only functions + # worth protecting from stack smashes. + myconf+=( --enable-stack-protector=$(usex ssp strong no) ) + + # Keep a whitelist of targets supporting IFUNC. glibc's ./configure + # is not robust enough to detect proper support: + # https://bugs.gentoo.org/641216 + # https://sourceware.org/PR22634#c0 + case $(tc-arch ${CTARGET}) in + # Keep whitelist of targets where autodetection mostly works. + amd64|x86|sparc|ppc|ppc64|arm|arm64|s390|riscv|loong) ;; + # Blacklist everywhere else + *) myconf+=( libc_cv_ld_gnu_indirect_function=no ) ;; + esac + + case ${ABI}-${CTARGET} in + amd64-x86_64-*|x32-x86_64-*-*-gnux32) myconf+=( $(use_enable cet) ) ;; + *) ;; + esac + + case ${ABI}-${CTARGET} in + amd64-x86_64-*|arm64-aarch64-*) myconf+=( $(use_enable sframe) ) ;; + *) ;; + esac + + [[ $(tc-is-softfloat) == "yes" ]] && myconf+=( --without-fp ) + + if use old-kernel ; then + MIN_KERN_VER=${MIN_KERN_VER_UPSTREAM} + else + MIN_KERN_VER=${MIN_KERN_VER_GENTOO} + fi + myconf+=( --enable-kernel=${MIN_KERN_VER} ) + + # Since SELinux support is only required for nscd, only enable it if: + # 1. USE selinux + # 2. only for the primary ABI on multilib systems + # 3. Not a crosscompile + if ! is_crosscompile && use selinux ; then + if use multilib ; then + if is_final_abi ; then + myconf+=( --with-selinux ) + else + myconf+=( --without-selinux ) + fi + else + myconf+=( --with-selinux ) + fi + else + myconf+=( --without-selinux ) + fi + + # Force a few tests where we always know the answer but + # configure is incapable of finding it. + if is_crosscompile ; then + export \ + libc_cv_c_cleanup=yes \ + libc_cv_forced_unwind=yes + fi + + myconf+=( + --disable-werror + --enable-bind-now + --enable-fortify-source + --build=${CBUILD_OPT:-${CBUILD}} + --host=${CTARGET_OPT:-${CTARGET}} + $(use_enable profile) + $(use_with gd) + --with-headers="${ESYSROOT}$(alt_headers)" + --prefix="$(host_eprefix)/usr" + --sysconfdir="$(host_eprefix)/etc" + --localstatedir="$(host_eprefix)/var" + --libdir='$(prefix)'/$(get_libdir) + --mandir='$(prefix)'/share/man + --infodir='$(prefix)'/share/info + --libexecdir='$(libdir)'/misc/glibc + --with-bugurl=https://bugs.gentoo.org/ + --with-pkgversion="$(glibc_banner)" + $(use_multiarch || echo --disable-multi-arch) + $(use_enable nscd) + + # /usr/bin/mtrace has a Perl shebang. Gentoo Prefix QA checks fail if + # Perl hasn't been installed inside the prefix yet and configure picks + # up a Perl from outside the prefix instead. configure will fail to + # execute Perl during configure if we're cross-compiling a prefix, but + # it will just disable mtrace in that case. + # Note: mtrace is needed by the test suite. + ac_cv_path_PERL="$(usex perl "${EPREFIX}"/usr/bin/perl $(usex test "${EPREFIX}"/usr/bin/perl $(usex doc "${EPREFIX}"/usr/bin/perl no)))" + + # locale data is arch-independent + # https://bugs.gentoo.org/753740 + libc_cv_complocaledir='${exec_prefix}/lib/locale' + + # On aarch64 there is no way to override -mcpu=native, and if + # the current cpu does not support SVE configure fails. + # Let's boldly assume our toolchain can always build SVE instructions. + libc_cv_aarch64_sve_asm=yes + + ${EXTRA_ECONF} + ) + + # We rely on sys-libs/timezone-data for timezone tools normally. + myconf+=( $(use_enable vanilla timezone-tools) ) + + if is_crosscompile ; then + myconf+=( --disable-systemtap ) + else + myconf+=( $(use_enable systemtap) ) + fi + + # These libs don't have configure flags. + ac_cv_lib_audit_audit_log_user_avc_message=$(usex audit || echo no) + ac_cv_lib_cap_cap_init=$(usex caps || echo no) + + # There is no configure option for this and we need to export it + # since the glibc build will re-run configure on itself + export libc_cv_rootsbindir="$(host_eprefix)/sbin" + export libc_cv_slibdir="$(host_eprefix)/$(get_libdir)" + + local builddir=$(builddir nptl) + mkdir -p "${builddir}" + cd "${builddir}" + set -- "${S}"/configure "${myconf[@]}" + echo "$@" + "$@" || die "failed to configure glibc" + + # If we're trying to migrate between ABI sets, we need + # to lie and use a local copy of gcc. Like if the system + # is built with MULTILIB_ABIS="amd64 x86" but we want to + # add x32 to it, gcc/glibc don't yet support x32. + # + if [[ -n ${GCC_BOOTSTRAP_VER} ]] && use multilib-bootstrap ; then + echo 'int main(void){}' > "${T}"/test.c || die + if ! $(tc-getCC ${CTARGET}) ${CFLAGS} ${LDFLAGS} "${T}"/test.c -Wl,-emain -lgcc 2>/dev/null ; then + sed -i -e '/^CC = /s:$: -B$(objdir)/../'"gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}/${ABI}:" config.make || die + fi + fi +} + +glibc_headers_configure() { + export ABI=default + + local builddir=$(builddir "headers") + mkdir -p "${builddir}" + cd "${builddir}" + + # if we don't have a compiler yet, we can't really test it now ... + # hopefully they don't affect header generation, so let's hope for + # the best here ... + local v vars=( + ac_cv_header_cpuid_h=yes + libc_cv_{386,390,alpha,arm,hppa,mips,{powerpc,sparc}{,32,64},sh,x86_64}_tls=yes + libc_cv_asm_cfi_directives=yes + libc_cv_broken_visibility_attribute=no + libc_cv_c_cleanup=yes + libc_cv_compiler_powerpc64le_binary128_ok=yes + libc_cv_forced_unwind=yes + libc_cv_gcc___thread=yes + libc_cv_mlong_double_128=yes + libc_cv_mlong_double_128ibm=yes + libc_cv_ppc_machine=yes + libc_cv_ppc_rel16=yes + libc_cv_predef_fortify_source=no + libc_cv_target_power8_ok=yes + libc_cv_visibility_attribute=yes + libc_cv_z_combreloc=yes + libc_cv_z_execstack=yes + libc_cv_z_initfirst=yes + libc_cv_z_nodelete=yes + libc_cv_z_nodlopen=yes + libc_cv_z_relro=yes + libc_mips_abi=${ABI} + libc_mips_float=$([[ $(tc-is-softfloat) == "yes" ]] && echo soft || echo hard) + # These libs don't have configure flags. + ac_cv_lib_audit_audit_log_user_avc_message=no + ac_cv_lib_cap_cap_init=no + ) + + einfo "Forcing cached settings:" + for v in "${vars[@]}" ; do + einfo " ${v}" + export ${v} + done + + local headers_only_arch_CPPFLAGS=() + + # Blow away some random CC settings that screw things up. #550192 + if [[ -d ${S}/sysdeps/mips ]]; then + pushd "${S}"/sysdeps/mips >/dev/null + sed -i -e '/^CC +=/s:=.*:= -D_MIPS_SZPTR=32:' mips32/Makefile mips64/n32/Makefile || die + sed -i -e '/^CC +=/s:=.*:= -D_MIPS_SZPTR=64:' mips64/n64/Makefile || die + + # Force the mips ABI to the default. This is OK because the set of + # installed headers in this phase is the same between the 3 ABIs. + # If this ever changes, this hack will break, but that's unlikely + # as glibc discourages that behavior. + # https://crbug.com/647033 + sed -i -e 's:abiflag=.*:abiflag=_ABIO32:' preconfigure || die + + popd >/dev/null + fi + + local myconf=() + + case ${CTARGET} in + aarch64*) + # The configure checks fail during cross-build, so disable here + # for headers-only + myconf+=( + --disable-mathvec + ) ;; + riscv*) + # RISC-V interrogates the compiler to determine which target to + # build. If building the headers then we don't strictly need a + # RISC-V compiler, so the built-in definitions that are provided + # along with all RISC-V compiler might not exist. This causes + # glibc's RISC-V preconfigure script to blow up. Since we're just + # building the headers any value will actually work here, so just + # pick the standard one (rv64g/lp64d) to make the build scripts + # happy for now -- the headers are all the same anyway so it + # doesn't matter. + headers_only_arch_CPPFLAGS+=( + -D__riscv_xlen=64 + -D__riscv_flen=64 + -D__riscv_float_abi_double=1 + -D__riscv_atomic=1 + ) ;; + esac + + myconf+=( + --disable-sanity-checks + --enable-hacker-mode + --disable-werror + --enable-bind-now + --build=${CBUILD_OPT:-${CBUILD}} + --host=${CTARGET_OPT:-${CTARGET}} + --with-headers="${ESYSROOT}$(alt_headers)" + --prefix="$(host_eprefix)/usr" + ${EXTRA_ECONF} + ) + + # Nothing is compiled here which would affect the headers for the target. + # So forcing CC/CFLAGS is sane. + local headers_only_CC=$(tc-getBUILD_CC) + local headers_only_CFLAGS="-O1 -pipe" + local headers_only_CPPFLAGS="-U_FORTIFY_SOURCE ${headers_only_arch_CPPFLAGS[*]}" + local headers_only_LDFLAGS="" + set -- "${S}"/configure "${myconf[@]}" + echo \ + "CC=${headers_only_CC}" \ + "CFLAGS=${headers_only_CFLAGS}" \ + "CPPFLAGS=${headers_only_CPPFLAGS}" \ + "LDFLAGS=${headers_only_LDFLAGS}" \ + "$@" + CC=${headers_only_CC} \ + CFLAGS=${headers_only_CFLAGS} \ + CPPFLAGS=${headers_only_CPPFLAGS} \ + LDFLAGS="" \ + "$@" || die "failed to configure glibc" +} + +do_src_configure() { + if just_headers ; then + glibc_headers_configure + else + glibc_do_configure nptl + fi +} + +src_configure() { + foreach_abi do_src_configure +} + +# src_compile + +do_src_compile() { + emake -C "$(builddir nptl)" +} + +src_compile() { + if just_headers ; then + return + fi + + foreach_abi do_src_compile +} + +# src_test + +glibc_src_test() { + cd "$(builddir nptl)" + + local myxfailparams="" + if [[ "${GENTOO_GLIBC_XFAIL_TESTS}" == "yes" ]] ; then + local virt=$(systemd-detect-virt 2>/dev/null) + if [[ ${virt} == systemd-nspawn ]] ; then + ewarn "Skipping extra tests because in systemd-nspawn container" + XFAIL_TEST_LIST+=( "${XFAIL_NSPAWN_TEST_LIST[@]}" ) + fi + if [[ "$(nice)" == "19" ]] ; then + # Expects to be able to increase niceness, which it can't do if + # already at the highest nice value + XFAIL_TEST_LIST+=( "tst-nice" ) + fi + + for myt in ${XFAIL_TEST_LIST[@]} ; do + myxfailparams+="test-xfail-${myt}=yes " + done + fi + + # https://inbox.sourceware.org/libc-alpha/lhuikb5ibey.fsf@oldenburg.str.redhat.com/ + local -x GAWK_GNU_MATCHERS=1 + + # sandbox does not understand unshare() and prevents + # writes to /proc/, which makes many tests fail + + # we give the tests a bit more time to avoid spurious + # bug reports on slow arches + + SANDBOX_ON=0 LD_PRELOAD= TIMEOUTFACTOR=16 nonfatal emake ${myxfailparams} check +} + +src_test() { + if just_headers ; then + return + fi + + # glibc_src_test uses nonfatal so that we can run tests for all ABIs + # and fail at the end instead. + foreach_abi glibc_src_test || die "tests failed" +} + +# src_install + +run_locale_gen() { + local fatal=$1 prefix=$2 + local user_config action config stderr noun ret + local -a hasversion_opts localegen_args + + if [[ ${EBUILD_PHASE_FUNC} == src_install ]]; then + hasversion_opts=( -b ) + fi + + if has_version "${hasversion_opts[@]}" '>=sys-apps/locale-gen-3'; then + localegen_args=( --prefix "${prefix}" ) + else + config="${prefix}/usr/share/i18n/SUPPORTED" + user_config="${prefix}/etc/locale.gen" + if [[ ${EBUILD_PHASE_FUNC} == src_install ]]; then + # For USE=compile-locales, all locales should be built. + mkdir -p -- "${prefix}/usr/lib/locale" || die + elif locale-gen --list --config "${user_config}" | read -r; then + config=${user_config} + fi + localegen_args=( --config "${config}" --destdir "${prefix}" ) + fi + + # bug 736794: we need to be careful with the parallelization... the + # number of processors saved in the environment of a binary package may + # differ strongly from the number of processes available during postinst + if [[ ${EMERGE_FROM} != binary ]]; then + localegen_args+=( --jobs "$(get_makeopts_jobs)" ) + fi + + printf 'Executing: locale-gen %s\n' "${localegen_args[*]@Q}" >&2 + { stderr=$(locale-gen "${localegen_args[@]}" 2>&1 >&3); } 3>&1 + ret=$? + action="ewarn" + if (( ret == 0 )); then + noun="warning" + else + noun="error" + if (( fatal )); then + action="die" + fi + fi + # Convey warnings/errors so that they can be reseen upon emerge exiting. + if [[ ${stderr} ]]; then + ewarn "locale-gen(8) issued the following ${noun}s:" + while read -r; do + ewarn "$REPLY" + done <<<"${stderr}" + fi + if (( ret != 0 )); then + "${action}" "locale-gen(8) unexpectedly failed during the ${EBUILD_PHASE_FUNC} phase" + fi +} + +glibc_do_src_install() { + local builddir=$(builddir nptl) + cd "${builddir}" + + emake install_root="${D}/$(build_eprefix)$(alt_prefix)" install + + # This version (2.26) provides some compatibility libraries for the NIS/NIS+ support + # which come without headers etc. Only needed for binary packages since the + # external net-libs/libnsl has increased soversion. Keep only versioned libraries. + find "${D}" -name "libnsl.a" -delete + find "${D}" -name "libnsl.so" -delete + + # Normally upstream_pv is ${PV}. Live ebuilds are exception, there we need + # to infer upstream version: + # '#define VERSION "2.26.90"' -> '2.26.90' + local upstream_pv=$(sed -n -r 's/#define VERSION "(.*)"/\1/p' "${S}"/version.h) + + # Avoid stripping binaries not targeted by ${CHOST}. Or else + # ${CHOST}-strip would break binaries build for ${CTARGET}. + is_crosscompile && dostrip -x / + + # gdb thread introspection relies on local libpthreads symbols. stripping breaks it + # See Note [Disable automatic stripping] + dostrip -x $(alt_libdir)/libpthread-${upstream_pv}.so + # valgrind requires knowledge about ld.so symbols. + dostrip -x $(alt_libdir)/ld-*.so* + + if [[ -e ${ED}/$(alt_usrlibdir)/libm-${upstream_pv}.a ]] ; then + # Move versioned .a file out of libdir to evade portage QA checks + # instead of using gen_usr_ldscript(). We fix ldscript as: + # "GROUP ( /usr/lib64/libm-.a ..." -> "GROUP ( /usr/lib64/glibc-/libm-.a ..." + sed -i "s@\(libm-${upstream_pv}.a\)@${P}/\1@" \ + "${ED}"/$(alt_usrlibdir)/libm.a || die + dodir $(alt_usrlibdir)/${P} + mv "${ED}"/$(alt_usrlibdir)/libm-${upstream_pv}.a \ + "${ED}"/$(alt_usrlibdir)/${P}/libm-${upstream_pv}.a || die + fi + + # We configure toolchains for standalone prefix systems with a sysroot, + # which is prepended to paths in ld scripts, so strip the prefix from these. + # Before: GROUP ( /foo/lib64/libc.so.6 /foo/usr/lib64/libc_nonshared.a AS_NEEDED ( /foo/lib64/ld-linux-x86-64.so.2 ) ) + # After: GROUP ( /lib64/libc.so.6 /usr/lib64/libc_nonshared.a AS_NEEDED ( /lib64/ld-linux-x86-64.so.2 ) ) + if [[ -n $(host_eprefix) ]] ; then + local file + grep -lZIF "ld script" "${ED}/$(alt_usrlibdir)"/lib*.{a,so} 2>/dev/null | while read -rd '' file ; do + sed -i "s|$(host_eprefix)/|/|g" "${file}" || die + done + fi + + # We'll take care of the cache ourselves + rm -f "${ED}"/etc/ld.so.cache + + # Everything past this point just needs to be done once ... + is_final_abi || return 0 + + # Make sure the non-native interp can be found on multilib systems even + # if the main library set isn't installed into the right place. Maybe + # we should query the active gcc for info instead of hardcoding it ? + local i ldso_abi ldso_name + if is_linux ; then + local ldso_abi_list=( + # x86 + amd64 /lib64/ld-linux-x86-64.so.2 + x32 /libx32/ld-linux-x32.so.2 + x86 /lib/ld-linux.so.2 + # mips + o32 /lib/ld.so.1 + n32 /lib32/ld.so.1 + n64 /lib64/ld.so.1 + # powerpc + ppc /lib/ld.so.1 + # riscv + ilp32d /lib/ld-linux-riscv32-ilp32d.so.1 + ilp32 /lib/ld-linux-riscv32-ilp32.so.1 + lp64d /lib/ld-linux-riscv64-lp64d.so.1 + lp64 /lib/ld-linux-riscv64-lp64.so.1 + # s390 + s390 /lib/ld.so.1 + s390x /lib/ld64.so.1 + # sparc + sparc32 /lib/ld-linux.so.2 + sparc64 /lib64/ld-linux.so.2 + ) + case $(tc-endian) in + little) + ldso_abi_list+=( + # arm + arm64 /lib/ld-linux-aarch64.so.1 + # ELFv2 (glibc does not support ELFv1 on LE) + ppc64 /lib64/ld64.so.2 + ) + ;; + big) + ldso_abi_list+=( + # arm + arm64 /lib/ld-linux-aarch64_be.so.1 + # ELFv1 (glibc does not support ELFv2 on BE) + ppc64 /lib64/ld64.so.1 + ) + ;; + esac + else + # we must be using hurd then + local ldso_abi_list=( + # x86 + amd64 /lib64/ld-x86-64.so.1 + x86 /lib/ld.so.1 + ) + fi + if [[ ${SYMLINK_LIB} == "yes" ]] && [[ ! -e ${ED}/$(alt_prefix)/lib ]] ; then + dosym $(get_abi_LIBDIR ${DEFAULT_ABI}) $(alt_prefix)/lib + fi + for (( i = 0; i < ${#ldso_abi_list[@]}; i += 2 )) ; do + ldso_abi=${ldso_abi_list[i]} + has ${ldso_abi} $(get_install_abis) || continue + + ldso_name="$(alt_prefix)${ldso_abi_list[i+1]}" + if [[ ! -L ${ED}/${ldso_name} && ! -e ${ED}/${ldso_name} ]] ; then + dosym ../$(get_abi_LIBDIR ${ldso_abi})/${ldso_name##*/} ${ldso_name} + fi + done + + if is_linux ; then + # In the LSB 5.0 definition, someone had the excellent idea to "standardize" + # the runtime loader name, see also https://xkcd.com/927/ + # Normally, in Gentoo one should never come across executables that require this. + # However, binary commercial packages are known to adhere to weird practices. + # https://refspecs.linuxfoundation.org/LSB_5.0.0/LSB-Core-AMD64/LSB-Core-AMD64.html#BASELIB + local lsb_ldso_name native_ldso_name lsb_ldso_abi + local lsb_ldso_abi_list=( + # x86 + amd64 ld-linux-x86-64.so.2 ld-lsb-x86-64.so.3 + ) + for (( i = 0; i < ${#lsb_ldso_abi_list[@]}; i += 3 )) ; do + lsb_ldso_abi=${lsb_ldso_abi_list[i]} + native_ldso_name=${lsb_ldso_abi_list[i+1]} + lsb_ldso_name=${lsb_ldso_abi_list[i+2]} + has ${lsb_ldso_abi} $(get_install_abis) || continue + + if [[ ! -L ${ED}/$(get_abi_LIBDIR ${lsb_ldso_abi})/${lsb_ldso_name} && ! -e ${ED}/$(get_abi_LIBDIR ${lsb_ldso_abi})/${lsb_ldso_name} ]] ; then + dosym ${native_ldso_name} "$(alt_prefix)/$(get_abi_LIBDIR ${lsb_ldso_abi})/${lsb_ldso_name}" + fi + done + fi + + # On Hurd, glibc and (unpatched) gcc tend to disagree about the proper location for + # the dynamic loader. Which is maximally stupid since this one information is hardcoded + # into every single binary, and even if we were to fix *our* gcc it could still prevent + # us from running binaries prepared anywhere else... + + if is_hurd && has amd64 $(get_install_abis) ; then + # First, let's check for sanity + if [[ -f "${D}/$(alt_prefix)/lib/ld-x86-64.so.1" ]] ; then + die "Somehow your amd64 hurd glibc installed /lib/ld-x86-64.so.1 ... this should not happen." + fi + + # Then make a compatibility symlink. + dosym ../lib64/ld-x86-64.so.1 "$(alt_prefix)/lib/ld-x86-64.so.1" + fi + + if is_hurd && has x86 $(get_install_abis) ; then + # First, let's check for sanity + if [[ -f "${D}/$(alt_prefix)/$(get_abi_LIBDIR x86)/ld.so" ]] ; then + die "Somehow your x86 hurd glibc installed ld.so ... this should not happen." + fi + + # Then make a compatibility symlink. + dosym ld.so.1 "$(alt_prefix)/$(get_abi_LIBDIR x86)/ld.so" + fi + + # With devpts under Linux mounted properly, we do not need the pt_chown + # binary to be setuid. This is because the default owners/perms will be + # exactly what we want. + if ! use suid ; then + find "${ED}" -name pt_chown -exec chmod -s {} + + fi + + ################################################################# + # EVERYTHING AFTER THIS POINT IS FOR NATIVE GLIBC INSTALLS ONLY # + ################################################################# + + # Make sure we install some symlink hacks so that when we build + # a 2nd stage cross-compiler, gcc finds the target system + # headers correctly. See gcc/doc/gccinstall.info + if is_crosscompile ; then + # We need to make sure that /lib and /usr/lib always exists. + # gcc likes to use relative paths to get to its multilibs like + # /usr/lib/../lib64/. So while we don't install any files into + # /usr/lib/, we do need it to exist. + keepdir $(alt_prefix)/lib + keepdir $(alt_prefix)/usr/lib + + dosym usr/include $(alt_prefix)/sys-include + return 0 + fi + + # Files for Debian-style locale updating + dodir /usr/share/i18n + sed \ + -e "/^#/d" \ + -e "/SUPPORTED-LOCALES=/d" \ + -e "s: \\\\::g" -e "s:/: :g" \ + "${S}"/localedata/SUPPORTED > "${ED}"/usr/share/i18n/SUPPORTED \ + || die "generating /usr/share/i18n/SUPPORTED failed" + + cd "${S}" || die + + # Install misc network config files + insinto /etc + doins posix/gai.conf + + if use systemd ; then + doins "${WORKDIR}/glibc-systemd-${GLIBC_SYSTEMD_VER}/gentoo-config/nsswitch.conf" + else + doins nss/nsswitch.conf + fi + + # Gentoo-specific + newins "${FILESDIR}"/host.conf-1 host.conf + + if use nscd ; then + doins nscd/nscd.conf + + newinitd "$(prefixify_ro "${FILESDIR}"/nscd-1)" nscd + + local nscd_args=( + -e "s:@PIDFILE@:$(strings "${ED}"/usr/sbin/nscd | grep nscd.pid):" + ) + + sed -i "${nscd_args[@]}" "${ED}"/etc/init.d/nscd + + use systemd && systemd_dounit nscd/nscd.service + newtmpfiles nscd/nscd.tmpfiles nscd.conf + fi + + echo 'LDPATH="include ld.so.conf.d/*.conf"' > "${T}"/00glibc + doenvd "${T}"/00glibc + + for d in BUGS ChangeLog CONFORMANCE FAQ NEWS NOTES PROJECTS README* ; do + [[ -s ${d} ]] && dodoc ${d} + done + dodoc -r ChangeLog.old + + # Prevent overwriting of the /etc/localtime symlink. We'll handle the + # creation of the "factory" symlink in pkg_postinst(). + rm -f "${ED}"/etc/localtime + + # Generate all locales if this is a native build as locale generation + if use compile-locales && ! is_crosscompile; then + run_locale_gen 1 "${ED}" + fi +} + +glibc_headers_install() { + local builddir=$(builddir "headers") + cd "${builddir}" + emake install_root="${D}/$(build_eprefix)$(alt_prefix)" install-headers + + insinto $(alt_headers)/gnu + doins "${S}"/include/gnu/stubs.h + + # Make sure we install the sys-include symlink so that when + # we build a 2nd stage cross-compiler, gcc finds the target + # system headers correctly. See gcc/doc/gccinstall.info + dosym usr/include $(alt_prefix)/sys-include +} + +src_install() { + if just_headers ; then + export ABI=default + glibc_headers_install + return + fi + + foreach_abi glibc_do_src_install + + if ! use static-libs ; then + einfo "Not installing static glibc libraries" + find "${ED}" -name "*.a" -and -not -name "*_nonshared.a" -delete + fi +} + +# Simple test to make sure our new glibc isn't completely broken. +# Make sure we don't test with statically built binaries since +# they will fail. Also, skip if this glibc is a cross compiler. +# +# If coreutils is built with USE=multicall, some of these files +# will just be wrapper scripts, not actual ELFs we can test. +glibc_sanity_check() { + cd / #228809 + + # We enter ${ED} so to avoid trouble if the path contains + # special characters; for instance if the path contains the + # colon character (:), then the linker will try to split it + # and look for the libraries in an unexpected place. This can + # lead to unsafe code execution if the generated prefix is + # within a world-writable directory. + # (e.g. /var/tmp/portage:${HOSTNAME}) + pushd "${ED}"/$(get_libdir) >/dev/null + + # first let's find the actual dynamic linker here + # symlinks may point to the wrong abi + local newldso=$(find . -maxdepth 1 -name 'ld*so.?' -type f -print -quit) + + einfo Last-minute run tests with ${newldso} in /$(get_libdir) ... + + local x striptest + for x in cal date env free ls true uname uptime ; do + x=$(type -p ${x}) + [[ -z ${x} || ${x} != ${EPREFIX}/* ]] && continue + striptest=$(LC_ALL="C" file -L ${x} 2>/dev/null) || continue + case ${striptest} in + *"statically linked"*) continue;; + *"ASCII text"*) continue;; + esac + # We need to clear the locale settings as the upgrade might want + # incompatible locale data. This test is not for verifying that. + LC_ALL=C \ + ${newldso} --library-path . ${x} > /dev/null \ + || die "simple run test (${x}) failed" + done + + popd >/dev/null +} + +pkg_preinst() { + # nothing to do if just installing headers + just_headers && return + + einfo "Checking general environment sanity." + sanity_prechecks + + # prepare /etc/ld.so.conf.d/ for files + mkdir -p "${EROOT}"/etc/ld.so.conf.d + + # Default /etc/hosts.conf:multi to on for systems with small dbs. + if [[ $(wc -l < "${EROOT}"/etc/hosts) -lt 1000 ]] ; then + sed -i '/^multi off/s:off:on:' "${ED}"/etc/host.conf + einfo "Defaulting /etc/host.conf:multi to on" + fi + + [[ -n ${ROOT} ]] && return 0 + [[ -d ${ED}/$(get_libdir) ]] || return 0 + [[ -z ${BOOTSTRAP_RAP} ]] && glibc_sanity_check + + if [[ -L ${EROOT}/usr/lib/locale ]]; then + # Help portage migrate this to a directory + # https://bugs.gentoo.org/753740 + rm "${EROOT}"/usr/lib/locale || die + fi + + # Keep around libcrypt so that Perl doesn't break when merging libxcrypt + # (libxcrypt is the new provider for now of libcrypt.so.{1,2}). + # bug #802207 + if has_version "${CATEGORY}/${PN}[crypt]" && ! has preserve-libs ${FEATURES}; then + PRESERVED_OLD_LIBCRYPT=1 + cp -p "${EROOT}/$(get_libdir)/libcrypt$(get_libname 1)" \ + "${T}/libcrypt$(get_libname 1)" || die + else + PRESERVED_OLD_LIBCRYPT=0 + fi +} + +glibc_refresh_ldconfig() { + if [[ ${MERGE_TYPE} == buildonly ]]; then + return + fi + + # Version check could be added to avoid unnecessary work, but ldconfig + # should finish quickly enough to not matter. + ebegin "Refreshing ld.so.cache" + ldconfig -i + if ! eend $?; then + ewarn "Failed to refresh the ld.so.cache for you. Some programs may be broken" + ewarn "before you manually do so (ldconfig -i)." + fi +} + +pkg_postinst() { + # nothing to do if just installing headers + just_headers && return + + if ! tc-is-cross-compiler && [[ -x ${EROOT}/usr/sbin/iconvconfig ]] ; then + # Generate fastloading iconv module configuration file. + "${EROOT}"/usr/sbin/iconvconfig --prefix="${ROOT}/" + fi + + if ! is_crosscompile && [[ -z ${ROOT} ]] ; then + # glibc-2.38+ on loong has ldconfig support added, but the ELF e_flags + # handling has changed as well, which means stale ldconfig auxiliary + # cache entries and failure to lookup libgcc_s / libstdc++ (breaking + # every C++ application) / libgomp etc., among other breakages. + # + # To fix this, simply refresh the ld.so.cache without using the + # auxiliary cache if we're natively installing on loong. This should + # be done relatively soon because we want to minimize the breakage + # window for the affected programs. + use loong && glibc_refresh_ldconfig + + if ! use compile-locales; then + run_locale_gen 0 "${EROOT}" + fi + + # If fixincludes was/is active for a particular GCC slot, we + # must refresh it. See bug #933282 and GCC's documentation: + # https://gcc.gnu.org/onlinedocs/gcc/Fixed-Headers.html + # + # TODO: Could this be done for cross? Some care would be needed + # to pass the right arguments. + while IFS= read -r -d $'\0' slot ; do + local mkheaders_path="${BROOT}"/usr/libexec/gcc/${CBUILD}/${slot##*/}/install-tools/mkheaders + local pthread_h="${BROOT}"/usr/lib/gcc/${CBUILD}/${slot##*/}/include-fixed/pthread.h + if [[ -x ${mkheaders_path} ]] ; then + ebegin "Refreshing fixincludes for ${CBUILD} with gcc-${slot##*/}" + ${mkheaders_path} -v + eend $? + elif [[ -f ${pthread_h} ]] ; then + # fixincludes might have been enabled in the past for this + # GCC slot but not since we fixed toolchain.eclass to install + # mkheaders, so we need to manually delete pthread.h at least. + ebegin "Deleting stale fixincludes'd pthread.h for ${CBUILD} with gcc-${slot##*/}" + mv -v "${pthread_h}" "${pthread_h}.bak" + eend $? + fi + done < <(find "${BROOT}"/usr/libexec/gcc/${CBUILD}/ -mindepth 1 -maxdepth 1 -type d -print0) + fi + + upgrade_warning + + # Check for sanity of /etc/nsswitch.conf, take 2 + if [[ -e ${EROOT}/etc/nsswitch.conf ]] && ! has_version sys-auth/libnss-nis ; then + local entry + for entry in passwd group shadow; do + if grep -E -q "^[ \t]*${entry}:.*nis" "${EROOT}"/etc/nsswitch.conf; then + ewarn "" + ewarn "Your ${EROOT}/etc/nsswitch.conf uses NIS. Support for that has been" + ewarn "removed from glibc and is now provided by the package" + ewarn " sys-auth/libnss-nis" + ewarn "Install it now to keep your NIS setup working." + ewarn "" + fi + done + fi + + if [[ ${PRESERVED_OLD_LIBCRYPT} -eq 1 ]] ; then + cp -p "${T}/libcrypt$(get_libname 1)" "${EROOT}/$(get_libdir)/libcrypt$(get_libname 1)" || die + preserve_old_lib_notify /$(get_libdir)/libcrypt$(get_libname 1) + + elog "Please ignore a possible later error message about a file collision involving" + elog "${EROOT}/$(get_libdir)/libcrypt$(get_libname 1). We need to preserve this file for the moment to keep" + elog "the upgrade working, but it also needs to be overwritten when" + elog "sys-libs/libxcrypt is installed. See bug 802210 for more details." + fi +} diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/libselinux/libselinux-3.10-r2.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/libselinux/libselinux-3.10-r3.ebuild similarity index 96% rename from sdk_container/src/third_party/portage-stable/sys-libs/libselinux/libselinux-3.10-r2.ebuild rename to sdk_container/src/third_party/portage-stable/sys-libs/libselinux/libselinux-3.10-r3.ebuild index 9ea9803d160..c97879def11 100644 --- a/sdk_container/src/third_party/portage-stable/sys-libs/libselinux/libselinux-3.10-r2.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-libs/libselinux/libselinux-3.10-r3.ebuild @@ -33,22 +33,26 @@ SLOT="0" IUSE="python ruby static-libs ruby_targets_ruby32 ruby_targets_ruby33" REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" -RDEPEND="dev-libs/libpcre2:=[static-libs?,${MULTILIB_USEDEP}] +RDEPEND=" >=sys-libs/libsepol-${PV}:=[${MULTILIB_USEDEP},static-libs(+)] + virtual/libpcre2-internals:=[static-libs?,${MULTILIB_USEDEP}] python? ( ${PYTHON_DEPS} ) ruby? ( ruby_targets_ruby32? ( dev-lang/ruby:3.2 ) ruby_targets_ruby33? ( dev-lang/ruby:3.3 ) ) - elibc_musl? ( sys-libs/fts-standalone )" + elibc_musl? ( sys-libs/fts-standalone ) +" DEPEND="${RDEPEND}" -BDEPEND="virtual/pkgconfig +BDEPEND=" + virtual/pkgconfig python? ( >=dev-lang/swig-2.0.9 ${PYTHON_DEPS} ${DISTUTILS_DEPS} ) - ruby? ( >=dev-lang/swig-2.0.9 )" + ruby? ( >=dev-lang/swig-2.0.9 ) +" src_prepare() { eapply_user diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/libselinux/libselinux-3.10.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/libselinux/libselinux-3.10.ebuild index 6d01961913d..2bb36d8fd9e 100644 --- a/sdk_container/src/third_party/portage-stable/sys-libs/libselinux/libselinux-3.10.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-libs/libselinux/libselinux-3.10.ebuild @@ -32,21 +32,25 @@ SLOT="0" IUSE="python ruby static-libs ruby_targets_ruby32 ruby_targets_ruby33" REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" -RDEPEND="dev-libs/libpcre2:=[static-libs?,${MULTILIB_USEDEP}] +RDEPEND=" >=sys-libs/libsepol-${PV}:=[${MULTILIB_USEDEP},static-libs(+)] + virtual/libpcre2-internals:=[static-libs?,${MULTILIB_USEDEP}] python? ( ${PYTHON_DEPS} ) ruby? ( ruby_targets_ruby32? ( dev-lang/ruby:3.2 ) ruby_targets_ruby33? ( dev-lang/ruby:3.3 ) ) - elibc_musl? ( sys-libs/fts-standalone )" + elibc_musl? ( sys-libs/fts-standalone ) +" DEPEND="${RDEPEND}" -BDEPEND="virtual/pkgconfig +BDEPEND=" + virtual/pkgconfig python? ( >=dev-lang/swig-2.0.9 dev-python/pip[${PYTHON_USEDEP}] -) - ruby? ( >=dev-lang/swig-2.0.9 )" + ) + ruby? ( >=dev-lang/swig-2.0.9 ) +" src_prepare() { eapply_user diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/libselinux/libselinux-3.11.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/libselinux/libselinux-3.11-r1.ebuild similarity index 96% rename from sdk_container/src/third_party/portage-stable/sys-libs/libselinux/libselinux-3.11.ebuild rename to sdk_container/src/third_party/portage-stable/sys-libs/libselinux/libselinux-3.11-r1.ebuild index f7d79ca5744..847298557fc 100644 --- a/sdk_container/src/third_party/portage-stable/sys-libs/libselinux/libselinux-3.11.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-libs/libselinux/libselinux-3.11-r1.ebuild @@ -33,22 +33,26 @@ SLOT="0" IUSE="python ruby static-libs ruby_targets_ruby32 ruby_targets_ruby33" REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" -RDEPEND="dev-libs/libpcre2:=[static-libs?,${MULTILIB_USEDEP}] +RDEPEND=" >=sys-libs/libsepol-${PV}:=[${MULTILIB_USEDEP},static-libs(+)] + virtual/libpcre2-internals:=[static-libs?,${MULTILIB_USEDEP}] python? ( ${PYTHON_DEPS} ) ruby? ( ruby_targets_ruby32? ( dev-lang/ruby:3.2 ) ruby_targets_ruby33? ( dev-lang/ruby:3.3 ) ) - elibc_musl? ( sys-libs/fts-standalone )" + elibc_musl? ( sys-libs/fts-standalone ) +" DEPEND="${RDEPEND}" -BDEPEND="virtual/pkgconfig +BDEPEND=" + virtual/pkgconfig python? ( >=dev-lang/swig-2.0.9 ${PYTHON_DEPS} ${DISTUTILS_DEPS} ) - ruby? ( >=dev-lang/swig-2.0.9 )" + ruby? ( >=dev-lang/swig-2.0.9 ) +" src_prepare() { eapply_user diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/libselinux/libselinux-3.8.1-r2.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/libselinux/libselinux-3.8.1-r2.ebuild index e3929b3c323..de21499aade 100644 --- a/sdk_container/src/third_party/portage-stable/sys-libs/libselinux/libselinux-3.8.1-r2.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-libs/libselinux/libselinux-3.8.1-r2.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -32,21 +32,25 @@ SLOT="0" IUSE="python ruby static-libs ruby_targets_ruby32 ruby_targets_ruby33" REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" -RDEPEND="dev-libs/libpcre2:=[static-libs?,${MULTILIB_USEDEP}] +RDEPEND=" >=sys-libs/libsepol-${PV}:=[${MULTILIB_USEDEP},static-libs(+)] + virtual/libpcre2-internals:=[static-libs?,${MULTILIB_USEDEP}] python? ( ${PYTHON_DEPS} ) ruby? ( ruby_targets_ruby32? ( dev-lang/ruby:3.2 ) ruby_targets_ruby33? ( dev-lang/ruby:3.3 ) ) - elibc_musl? ( sys-libs/fts-standalone )" + elibc_musl? ( sys-libs/fts-standalone ) +" DEPEND="${RDEPEND}" -BDEPEND="virtual/pkgconfig +BDEPEND=" + virtual/pkgconfig python? ( >=dev-lang/swig-2.0.9 dev-python/pip[${PYTHON_USEDEP}] -) - ruby? ( >=dev-lang/swig-2.0.9 )" + ) + ruby? ( >=dev-lang/swig-2.0.9 ) +" src_prepare() { eapply_user diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/libselinux/libselinux-3.8.1-r3.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/libselinux/libselinux-3.8.1-r3.ebuild index 37186db206a..f4e61d3848d 100644 --- a/sdk_container/src/third_party/portage-stable/sys-libs/libselinux/libselinux-3.8.1-r3.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-libs/libselinux/libselinux-3.8.1-r3.ebuild @@ -33,23 +33,27 @@ SLOT="0" IUSE="python ruby static-libs ruby_targets_ruby32 ruby_targets_ruby33" REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" -RDEPEND="dev-libs/libpcre2:=[static-libs?,${MULTILIB_USEDEP}] +RDEPEND=" >=sys-libs/libsepol-${PV}:=[${MULTILIB_USEDEP},static-libs(+)] + virtual/libpcre2-internals:=[static-libs?,${MULTILIB_USEDEP}] python? ( ${PYTHON_DEPS} ) ruby? ( ruby_targets_ruby32? ( dev-lang/ruby:3.2 ) ruby_targets_ruby33? ( dev-lang/ruby:3.3 ) ) - elibc_musl? ( sys-libs/fts-standalone )" + elibc_musl? ( sys-libs/fts-standalone ) +" DEPEND="${RDEPEND}" -BDEPEND="virtual/pkgconfig +BDEPEND=" + virtual/pkgconfig python? ( >=dev-lang/swig-2.0.9 dev-python/pip[${PYTHON_USEDEP}] ${PYTHON_DEPS} ${DISTUTILS_DEPS} ) - ruby? ( >=dev-lang/swig-2.0.9 )" + ruby? ( >=dev-lang/swig-2.0.9 ) +" src_prepare() { eapply_user diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/libselinux/libselinux-3.9.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/libselinux/libselinux-3.9.ebuild index c0123bf4c53..5d72af7d8e9 100644 --- a/sdk_container/src/third_party/portage-stable/sys-libs/libselinux/libselinux-3.9.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-libs/libselinux/libselinux-3.9.ebuild @@ -32,21 +32,25 @@ SLOT="0" IUSE="python ruby static-libs ruby_targets_ruby32 ruby_targets_ruby33" REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" -RDEPEND="dev-libs/libpcre2:=[static-libs?,${MULTILIB_USEDEP}] +RDEPEND=" >=sys-libs/libsepol-${PV}:=[${MULTILIB_USEDEP},static-libs(+)] + virtual/libpcre2-internals:=[static-libs?,${MULTILIB_USEDEP}] python? ( ${PYTHON_DEPS} ) ruby? ( ruby_targets_ruby32? ( dev-lang/ruby:3.2 ) ruby_targets_ruby33? ( dev-lang/ruby:3.3 ) ) - elibc_musl? ( sys-libs/fts-standalone )" + elibc_musl? ( sys-libs/fts-standalone ) +" DEPEND="${RDEPEND}" -BDEPEND="virtual/pkgconfig +BDEPEND=" + virtual/pkgconfig python? ( >=dev-lang/swig-2.0.9 dev-python/pip[${PYTHON_USEDEP}] -) - ruby? ( >=dev-lang/swig-2.0.9 )" + ) + ruby? ( >=dev-lang/swig-2.0.9 ) +" src_prepare() { eapply_user diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/libselinux/libselinux-9999.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/libselinux/libselinux-9999.ebuild index f7d79ca5744..847298557fc 100644 --- a/sdk_container/src/third_party/portage-stable/sys-libs/libselinux/libselinux-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-libs/libselinux/libselinux-9999.ebuild @@ -33,22 +33,26 @@ SLOT="0" IUSE="python ruby static-libs ruby_targets_ruby32 ruby_targets_ruby33" REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" -RDEPEND="dev-libs/libpcre2:=[static-libs?,${MULTILIB_USEDEP}] +RDEPEND=" >=sys-libs/libsepol-${PV}:=[${MULTILIB_USEDEP},static-libs(+)] + virtual/libpcre2-internals:=[static-libs?,${MULTILIB_USEDEP}] python? ( ${PYTHON_DEPS} ) ruby? ( ruby_targets_ruby32? ( dev-lang/ruby:3.2 ) ruby_targets_ruby33? ( dev-lang/ruby:3.3 ) ) - elibc_musl? ( sys-libs/fts-standalone )" + elibc_musl? ( sys-libs/fts-standalone ) +" DEPEND="${RDEPEND}" -BDEPEND="virtual/pkgconfig +BDEPEND=" + virtual/pkgconfig python? ( >=dev-lang/swig-2.0.9 ${PYTHON_DEPS} ${DISTUTILS_DEPS} ) - ruby? ( >=dev-lang/swig-2.0.9 )" + ruby? ( >=dev-lang/swig-2.0.9 ) +" src_prepare() { eapply_user diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/libunwind/libunwind-1.8.3.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/libunwind/libunwind-1.8.3.ebuild index 9ddf3c008d5..175dbaee418 100644 --- a/sdk_container/src/third_party/portage-stable/sys-libs/libunwind/libunwind-1.8.3.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-libs/libunwind/libunwind-1.8.3.ebuild @@ -31,7 +31,7 @@ else S="${WORKDIR}"/${P/_rc/-rc} if [[ ${PV} != *_rc* ]] ; then - KEYWORDS="amd64 ~arm ~arm64 ~hppa ~loong ~mips ppc ~ppc64 ~riscv ~s390 -sparc x86" + KEYWORDS="amd64 arm ~arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 -sparc x86" fi fi diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/liburing/liburing-2.12.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/liburing/liburing-2.12.ebuild index 1a8d69915c0..599536b0b2f 100644 --- a/sdk_container/src/third_party/portage-stable/sys-libs/liburing/liburing-2.12.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-libs/liburing/liburing-2.12.ebuild @@ -15,7 +15,7 @@ else SRC_URI=" https://github.com/axboe/liburing/archive/refs/tags/${P}.tar.gz " - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" QA_PKGCONFIG_VERSION=${PV} S="${WORKDIR}"/liburing-${P} fi diff --git a/sdk_container/src/third_party/portage-stable/sys-process/lsof/lsof-4.99.7.ebuild b/sdk_container/src/third_party/portage-stable/sys-process/lsof/lsof-4.99.7.ebuild index c850d19f81d..3b3e4d9f0ad 100644 --- a/sdk_container/src/third_party/portage-stable/sys-process/lsof/lsof-4.99.7.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-process/lsof/lsof-4.99.7.ebuild @@ -12,7 +12,7 @@ SRC_URI="https://github.com/lsof-org/lsof/releases/download/${PV}/${P}.tar.gz" LICENSE="lsof" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" IUSE="rpc selinux" RDEPEND=" diff --git a/sdk_container/src/third_party/portage-stable/virtual/libpcre2-internals/libpcre2-internals-10.47.ebuild b/sdk_container/src/third_party/portage-stable/virtual/libpcre2-internals/libpcre2-internals-10.47.ebuild new file mode 100644 index 00000000000..7560c88d7c3 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/virtual/libpcre2-internals/libpcre2-internals-10.47.ebuild @@ -0,0 +1,14 @@ +# Copyright 2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit multilib-build + +DESCRIPTION="Virtual for dev-libs/libpcre2 internals" + +SLOT="0/${PV}" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" +IUSE="static-libs" + +RDEPEND="~dev-libs/libpcre2-${PV}[${MULTILIB_USEDEP},static-libs?]" diff --git a/sdk_container/src/third_party/portage-stable/virtual/libpcre2-internals/libpcre2-internals-10.48.ebuild b/sdk_container/src/third_party/portage-stable/virtual/libpcre2-internals/libpcre2-internals-10.48.ebuild new file mode 100644 index 00000000000..284f5561f1f --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/virtual/libpcre2-internals/libpcre2-internals-10.48.ebuild @@ -0,0 +1,14 @@ +# Copyright 2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit multilib-build + +DESCRIPTION="Virtual for dev-libs/libpcre2 internals" + +SLOT="0/${PV}" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" +IUSE="static-libs" + +RDEPEND="~dev-libs/libpcre2-${PV}[${MULTILIB_USEDEP},static-libs?]" diff --git a/sdk_container/src/third_party/portage-stable/virtual/libpcre2-internals/metadata.xml b/sdk_container/src/third_party/portage-stable/virtual/libpcre2-internals/metadata.xml new file mode 100644 index 00000000000..19552a9b88d --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/virtual/libpcre2-internals/metadata.xml @@ -0,0 +1,16 @@ + + + + + base-system@gentoo.org + Gentoo Base System + + + selinux@gentoo.org + SELinux Team + + + Virtual for use by packages like the SELinux userland suite which + rely on internals of libpcre2's representation being saved to disk. + + diff --git a/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/Manifest b/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/Manifest index abaee6b7976..d54a637889c 100644 --- a/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/Manifest +++ b/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/Manifest @@ -3,6 +3,7 @@ DIST NVIDIA-Linux-aarch64-580.173.02.run 315169067 BLAKE2B 18864723e8f75cb84ee8e DIST NVIDIA-Linux-aarch64-580.178.04.run 314757575 BLAKE2B 2dbe1f8ccd0df8ef882be9745c94732f7da691b960054b0ebaba8932486d30504251e263b2614c732c1ad15dfd9ac22962a6d0b3e00d811407a0fd41adef70cf SHA512 3753150ab1fc319137431d24d38aabab9d4dcb11d988cfe7f80813f946926a181415640ac874bf28104274b305ec2d29c7806fbea945224ea97fa5b4afb2475a DIST NVIDIA-Linux-aarch64-595.84.run 317751308 BLAKE2B b8682656e2fd75878b8990acf1d056d52bd4cd81e70d90928575e26e3fb93b21cbdc18aeed3b75eb0d2d40fe87584c29f93ea32087045ce532b188334c021085 SHA512 089eebe32cf97108514948edbbf2bc6e3bb73afb5e8ce9a8300b1d1c0a85f5b014f9910874be24fe41f58d7b232538668204eef0aecef222d0739b4011b1b043 DIST NVIDIA-Linux-aarch64-595.91.07.run 317767285 BLAKE2B a6df095212b3a8a18a5a53f41f6b2a27035d4513765fd44a6e52e3c5d0502a0e4c12ca887565fe8ee4938023e7734ccf941ca6e303104934552bcf6fede910c3 SHA512 a71dedd6dfa00a1283442aa141419ac4213c74913367502a8a1cba2bb3c8cdc4bd1e5c4d433c5d477716bfd7dd83d9829e7ed85f3529c6bb94f44815a769bbbe +DIST NVIDIA-Linux-aarch64-595.99.02.run 318089608 BLAKE2B fc71ec2bb0224b28146c4bbef4cc85d7a1759ad710e34faf71d02b6e7127e20fab6684c3269af55dd9fc8019e5143f9ddabf284885a72fe26760311eca91d8de SHA512 9b35d722928f880e2945567f33d65fc532cacdcc351fb84e0fef83aad884fc28be0661d56d59f852da6ed1320d3e9dcfd6b0603b129325fa5d46f1c47bc23930 DIST NVIDIA-Linux-aarch64-610.57.04.run 355850554 BLAKE2B b8fae1df1a54f793b272cabfbc35da68d0abd90739176ed308d7389304735688987ed847da4ad25f4fc30c93259f07b1cf8677faa6496f44f616d8fbe5399272 SHA512 cbb632182f4096e715cf28605ca93964e7ad329b7ac5eeffc1bd9d9338606f7ffaa4267ee3fa0e92cf00f4a50b177498bcb053686e869464db0e80ddbf7b4ecd DIST NVIDIA-Linux-x86-390.157.run 49417041 BLAKE2B 435b5e0e60468cc74b41cc5d9b5bb0105d29c11a2d408457835212a96519c9334ecf19278b36749d3ff7f498f5b0ae45a2efae2d428703dac21245c62f1efebe SHA512 dae9ac2c12f9ad90f7441e00e01a984147c577892421911d7f67f6a31e616ac1cb7d434bc9c7f58fbd9b8ae909521b5bece607a63c79588c0bb9d99c6bad5fb0 DIST NVIDIA-Linux-x86_64-390.157.run 85835541 BLAKE2B 44b855cd11f3b2f231f9fb90492ae2e67a67ea3ea83c413e7c90956d38c9730a8bd0321281ae03c6afce633d102f5b499aed25622b9bfd31bdd2c98f0717e95b SHA512 4780503a4cff0180b1b1f37d20a6ba3438dd78b51fa7f69b98d35521835e5d61099129746929d51d63afa2d47b672b3e145e1e1897584dc3799e7f822c5b3a0a @@ -10,9 +11,10 @@ DIST NVIDIA-Linux-x86_64-470.256.02.run 272850014 BLAKE2B 0fdc867f92b82b2a60810c DIST NVIDIA-Linux-x86_64-535.309.01.run 341945818 BLAKE2B dc7bca19eee348648ed6ded096ed9eedc953d7e5be84bb812baf98230096c9f3a92421abb9adfcd0c257dc63a31d9f4fe4a02c7bdc4be65975229941fc39fa5a SHA512 16a505fb053d514b98bed816559279cbe2962eef8a3d64cce7aaf859b2d27602ac9018bb099a56ab4223532f70e00984e5468a4ba9c2914dc68dcbe0d8b2d64d DIST NVIDIA-Linux-x86_64-580.173.02.run 398312209 BLAKE2B 8d5c322fc8267fabf4096d649bf2e98b0e844ec74430dd8a4a2c0bf08e4e5fd209524639a0f1578a953216ae5b16a34dd6a349fa5a83059fb608a69e2bdd0125 SHA512 ca394b1e3f6c3403dc7ffe5d5fd7301bb06607fdbf75c9ffd338d7641c06d1878790c629108162adf4289ae829568973a48b7557183dbf7588e668f6d8edf3b3 DIST NVIDIA-Linux-x86_64-580.178.04.run 397214534 BLAKE2B 53ea96e4d1342003238aaa37495df8939b0e8813b8088347ec406a4c066bdfcf9947abc71f05da9433bfbee7b04b67f8a2bfb9729423ec776c0b1e31d5ce1b77 SHA512 b463dec07dab14370e3bd89d559e54e5f81d5b01be9de2bac6c700334c10a8bce2f9049b978a01a97d515d5ebb16ec4ecf02ce35979a8833a619bc6bd97084de -DIST NVIDIA-Linux-x86_64-595.44.14.run 423799604 BLAKE2B 6118b46e997ce6382ad5edc9265bbedc0881473b9bbccf2364125e633ec3c379005dd58cd72720f5be03bbe365c93f3dac5e2c7918f2f1d8b214c2dfdaeda03d SHA512 f2d64b4414c2e20ec3de6a271d28a44f3f17160e80e760aa064c827d40c6dac56b94084f8668a8945db6c97be7106386fe9a33e85c29626d2ced15c506903c37 +DIST NVIDIA-Linux-x86_64-595.44.15.run 423974279 BLAKE2B 9a13bfbe7612a95041c43a14d7b579675504b28953449c037900b53488ab9f3391d357ef4bc9e642da54c9dee8f3d34a22655daaf9a1fb7de816e5ac9957a788 SHA512 b36af6233c795a6538bc0d1af678546b35330545b82bb7d2f70dcea59f9fd596861acb0cdca68404321716c1657589ba22d37c8cd6c513b320a80c36fb6a4130 DIST NVIDIA-Linux-x86_64-595.84.run 423524924 BLAKE2B 0ec68935d5e79097aaee1a85b6d69a4cfa6d8186fae2a449380c5c24497849b2940e525084db9bb74f12392d2da92ee1ac624098d3618277f4fcef51994cdfa4 SHA512 37df09d4cb711e6c46e03dfdd549c07e2d3f88aef23e89db468e92200e57895083bbed86491f4c519da61ba9b21f82d8cf74c8c95bba066812c253111ae39614 DIST NVIDIA-Linux-x86_64-595.91.07.run 423651201 BLAKE2B 01f9e8f566c810165673f12b68b95d6b32b329712a3bd43f67363ddc68a4b89e0d84671ed6cb453726d2d998eda5cc40e8fcb5278ee1dacf46b77de2de55a7e2 SHA512 79fa1cdb09ef7851b32aeab1a5e9588365536822e288accb39b04fd5e9fe01dd93ec58bd74366c37838023250d6b184fa7d22befa4cd2584281a2f1c2e6b11a9 +DIST NVIDIA-Linux-x86_64-595.99.02.run 423333820 BLAKE2B 09cf1e4bee9fa27ddc648e64786f794862a2d0572b5c0a83486377c6686d133dd30ab0bdb1e16400a11ef3ab08e311a5fc11a9ab63324ebd6f83287499ee66c5 SHA512 9473990fe80019aec737d2eaf4a10dcb85facc781dc3eb30aba7e8e380d90cf4df07df24155e07e12f0fa7b3e3deb7d7f4cab45f2218459093b63900e9b094fe DIST NVIDIA-Linux-x86_64-610.57.04.run 463025450 BLAKE2B bcf46e1fb7d887ffdd25212f17d8f9d5925740a4a64a9503d7255b131eaf811e777ec107c3ec3f3771a6da9e1cb9999993fbd7a8fdbd7b0ff2dd3cbe860a4bd1 SHA512 4c9566625716ba7257ed2203dbbabfbc7a2dfdfc8bcb16678212ec809dc7ff470d12973ad86ce5f925b271d04239425f43088e8e591cb4ed7f77ec0c8612ffc0 DIST NVIDIA-kernel-module-source-535.309.01.tar.xz 12537052 BLAKE2B 2bff6a129c7c407de95d140fefefd50c266c7c8dcf938a71690545cff65b3502872645e79d47f9091deac54b7e140bd93a321b18af0b9cb24ca958f033461c53 SHA512 5bd08038823f3f9c39307b441cadc6231d71195adf1835f33e5af794df24be8abed83d3b246edbf5cbaae2379b52ecdd5c975c722001e19fc96054528bada773 DIST NVIDIA-kernel-module-source-580.173.02.tar.xz 22260432 BLAKE2B 523f7cdbbc3819897358b120cd92f2f07499f5a72d0a82222aa4a9f788681223a28e895df8fb332edd4b556f79cb73ff16485eef8eebf9ea0a5254563095b55c SHA512 8af3226a43eda8c03e8773d6efe080e0cf85aecbab121d7b29cd82ab0cb13bdbb3b9b239827faef27b1e12c92b6b7bc77129b17537c715ddc020574c5fa4c45e @@ -27,6 +29,7 @@ DIST nvidia-installer-580.173.02.tar.bz2 170003 BLAKE2B 05229520744fd6ab0b57632f DIST nvidia-installer-580.178.04.tar.bz2 169996 BLAKE2B 231762680ac9dfb88ff553ad655dc9498b81f1c505d30ecd620609f2e912670c2846b16d05dc85273a4f5ec74bbf717d02f9b976adfa951dbd621a172e8a7174 SHA512 6995905e3c06ed1c284ec1302149f590ebca2278604f0206d543cc3202891044fe2badedf0608e31f522857c431dcd7d35f6c281667b2556fa0b290a9eccb62c DIST nvidia-installer-595.84.tar.bz2 172347 BLAKE2B 4fa015bc1807b6b8379cfc03a34daeba74c8a0a942822546aede7199d486ba2a78bd74976f2d67b4a893025321fb063956ea61df51dc4d59ab28ce71ba0723b8 SHA512 517361cf25ed0640cb8715b3c523004b0ca6539e2e8c54253198c4890c7268324386d1f0f1ebe321c6062052493e8306167ffe80da075d25cc52b039ef4c39e1 DIST nvidia-installer-595.91.07.tar.bz2 172429 BLAKE2B b4128b9075a5b302f825ff70af8ad210030292b920c5f9cb88930c6853e9fa915c9033b80d7ba1ac729a8a8c6c8787f61444419ae0aae47ceeefdefb4984fc19 SHA512 316d278f3f3500f33a92c993accb62333cbd6d719a8e730e28a387d5c80987f4bc7d6b05f0d2897f766d51cb067736e254057a0984d72207c67accb8510233e4 +DIST nvidia-installer-595.99.02.tar.gz 231425 BLAKE2B 69c6a09cf10a7f3918766879c3cd231ce3438c7154aabeb9de54e45ea54ccd08d163e2e56824bd902750dc5110813211ce1e0384a9abac4a8ddc40036d876be3 SHA512 7f248eba109ced2a7dc6fdd4e2711d0735b441e3529928de6c3d2d02945d28d26c2c1fab78f357b8f88e21658362fe7968e94208a7c483691e6761460919550a DIST nvidia-installer-610.57.04.tar.bz2 172182 BLAKE2B 03b67a6c8c89c924fe9dda076205d0b20dbbea827c9570acd08cd86d2668f23f4abeb8da60b93cd11f8c69e9e0e2408e772c7ad78bcae241ba87164ca4e0fb73 SHA512 ef842b493a9ef52d2a122dfd5f5901f997613ab891184774d2f9b01e3889e3347f95b96fdce074ec68d06cf6e8eddab09601a71ec4645aa8601e4339d898d272 DIST nvidia-modprobe-390.157.tar.bz2 35306 BLAKE2B 80d202b39c2f95ec0f909712c2e101483af50124092c32efb33bd98ff58ddfb97b737ff07f1ddc941f688c1b4c26a15f392566d522e18506771f10422fcd571c SHA512 109bbe24a3758b568ea65fe1e9d78f69fae6108ec0497b796c885a3912825fe04ffd7389a3e22987f1a10a2926bf6eaa384faabc59478aa3ee244dd3ac91c6d3 DIST nvidia-modprobe-470.256.02.tar.bz2 38769 BLAKE2B 0db444b09b0b6d24c04877fae95249e781d82b3141f90eb05d869b64d2b6e65ad00bf44c4e427c64dbd4765fa99a8699f80a1d95b00c66137a54dc878d7ea298 SHA512 c1cbfa6c8e188e5a5eb5d390b9a903406cbff103d212fc30e611e4023be3fde896ad84e8bb45b030beb5d1bcd8155c9e55a8f9636c45ce1e2a5c03f672989a31 @@ -35,6 +38,7 @@ DIST nvidia-modprobe-580.173.02.tar.bz2 41711 BLAKE2B 4524b0a7c8928c3c9a76b3190a DIST nvidia-modprobe-580.178.04.tar.bz2 41668 BLAKE2B 9d7f239a3189db7528a5a9c0f2565f6dc785d48cabb5a2d12857d8fc69cc4ef00a1a6c4f1b75e8a0af989b48764878c3cb80b21756a908a1bb2140ab56376f95 SHA512 80ee138546022b0bca3824a563fe5df26f14337e9ee3df7b28917455525f9ef4606d12d5394f74e53089d7ba3955fa077b1dd3702beb5688c4c6b1d6e796fa68 DIST nvidia-modprobe-595.84.tar.bz2 41672 BLAKE2B 0a19de7d2ff1ed81a5bc1ccdf1dc54d2baf192a18bb998ccc9f5aaae2979282a6dd58dac044536bcbd0335036e65fbdfab452a8781c72c2fb0891390037f543b SHA512 96e77e20515121aeac85b1bbcdfcdf12a9dace2335e63ae6a85e6a687e102324c2740e8a6af7fd727a5eee169a26e457eb0b727dcead99a45efbd1b981375753 DIST nvidia-modprobe-595.91.07.tar.bz2 41725 BLAKE2B 0ceec46af414ea6232014b25c384b01390fd85ca81c39f994f5bafcdc2e3bbf670ed6416fc7d8b8d0ae56bc689106356f956b5f9c4b7e69ff66b5fe3d05729c9 SHA512 9ad2780218119eaa55d2da0c1007ffa73c3262b0e692cae25260f18d993d531e4cacfe83356b4f4f923e62cc80903915073d0225810656798a9462c75a769a98 +DIST nvidia-modprobe-595.99.02.tar.gz 47246 BLAKE2B c522f4e732487ce9184bf2e4f0911b1afac7ddaeae630dd3975b89bd5ea3a16c53182aa8a2984a767e91640597dbfc0af50de7e529ffca57cdaa5cc959e268e3 SHA512 c6da7e1c9afdb127c658fe53fcd9ada8b85f7e724130d731adf1e3eb27bc4c551295dfc2b6f8454ab500eeb49977b60fd08796e9c1c40669a0168f1b539917fe DIST nvidia-modprobe-610.57.04.tar.bz2 41771 BLAKE2B faeeddaf91cc6beaeb06d94a9451a13ad70dba8795613eb81893019cc1b6a053b241fae7a220fdc862af710ce78eb546b7d61164af8ada39391f5fef3955e7cf SHA512 abfef56e453133ef057163041b7f9b62a23879791254a0cc8f0b10fd730d54e54ccad4056dc1a829fd2d3c2caebba2a8cc06839240ed8571bf5f699750dc6534 DIST nvidia-persistenced-390.157.tar.bz2 48654 BLAKE2B 2cf6c92da90acff55e8c180a06b0c6a29d48be9fd8ca3c541202fd14f0697220fba6b66452942aa7ae7cc8821f5c5eb9fa8f7a31d2248624e5f9141d83a176b8 SHA512 70f0707ed6f2b877e69ef90cf782f66cbc9d2071db53ca09ceb7b89427b0fe176708517340621fa251539b7d481b238adeeb60261674eed74de1f62db6dbb72e DIST nvidia-persistenced-470.256.02.tar.bz2 46567 BLAKE2B 8f837322a3b88412fd2f6acf38721b49a6cb444fbd842d652519e5596f2e545d8f06bbdf017f46a22301ce87455f96147fab2829ca5fbf26131ec3e4a772e282 SHA512 4fd19258649b7d39945fb5c8578bf11ab118617dd14f3d11cdf15cb3fe77daf7b4719e4ae57af59031b1b809d02f4e8e8afed0ec60b9d0aed4d2488bd3013cd9 @@ -43,6 +47,7 @@ DIST nvidia-persistenced-580.173.02.tar.bz2 62225 BLAKE2B e8f1111175e0447910aebb DIST nvidia-persistenced-580.178.04.tar.bz2 62230 BLAKE2B 387f778b3ec3e48112e35bd3cd3e161527005ff5dc52774755acbcee5e18a1d02f7dd88c7a58d2632863262ff0f4a7b1e091c60caf8f8823d49fe38e3791a0f9 SHA512 2b9e26833e63a81401d3c83c0379f2d86bb0f8f44e1fcbe3ff235739f284a0adf46d76520d802274d8e19df0de656d9a2e9b52dac539ced6ca7bb7b1f4be6629 DIST nvidia-persistenced-595.84.tar.bz2 62533 BLAKE2B 8cd22cb3365987059831b4f319301ee09ec61d78d4ebea9b68719902df95d30aad75a903c0c67048cb9a6b62b8160f3b8448ee1e16b2c80d0c4d200f1c949fb1 SHA512 cf418360022e1ff350c31ff2464e3af43a1ce4b2162da61b56ab0a097cfdd0257f5f7214d6b456d622bbe76c0ad13a3c3a9d50d4f782b08bd675424b3d1e360c DIST nvidia-persistenced-595.91.07.tar.bz2 62519 BLAKE2B 9da9fbacebc6c3c1b56621d7676ec78cf61081d824dbcabf8599168ce673444adf736b6cd62129b0f87d619f79c6d5f0bbce311f5ecba346cda8881bb7bce6f8 SHA512 b9f9c69fb85ce22676789f5d88c460dee1961c42e1bf4ad3e677ac800715f888ded41590fe287b2c5972e3b89982e7b4d6290ccdf7ff2fa870f3a5ef3a7ae9ae +DIST nvidia-persistenced-595.99.02.tar.gz 73431 BLAKE2B aef62f5def60b1c6fad2adc2d1e5c7c1b4cbb24ca5e09650e15cb06a8c27fc5c2f48601502ec83395344a0e18dd1af94c35e95015b7d3b210a2dca2968040d20 SHA512 0711804fbc874c6e406e302d9aa8cbe363f9d183bf306efaa5ae84963170161dcbe56e01df53d3364ab267a0e1dc27450f33e291d504a20f2d842158a0fe6d51 DIST nvidia-persistenced-610.57.04.tar.bz2 63192 BLAKE2B 41ed154c5df65bb645f26efab887cd6ef30b566520df995a367b6c9f03dd0e6e625b3fee573c81747406b882ecd72f9887b5bfbc14747b655459aeb4bfb2a0ed SHA512 f1b4bec67b92e9b83ece3f86217283d88424417b869ae58d2617efedef1c613581ecb6f3fc4a44f096ca451e776d56870c4a8f7336241ccd96c9d3cea1d4b575 DIST nvidia-settings-390.157.tar.bz2 1108938 BLAKE2B d9ec1ab5d7f157d74627272adf752a671dd17e2ede02069437b6180b927fe315b15cc6416d584ab2f038b76fe01e5b64514a834f24d88ac16676e55205fdecdd SHA512 b16699009bf56a1ff3b623a528c58061c4f5a2c5c4a373756a07bcd667743a1df7c733a572d2d0baa835a904ac2fda8a5c85890dcc00c3a0f223e0467aea902d DIST nvidia-settings-470.256.02.tar.bz2 1062273 BLAKE2B 8e66201e7861469b12932595ef8f9fd29d4cfd570c2576ae7fbb7383f61c55ac71fe721cc431e79d6d69f86d998b5b4c3cafe531b573f439e6b499b0fc047a19 SHA512 626e66118ae2e62eacfdf44e37529c409b945a6f33637b9690d74abd87a2afb581aaca5f90328d280da99ceb659959d0e5dc5c22ef8013b2205b2b1c72e08007 @@ -51,6 +56,7 @@ DIST nvidia-settings-580.173.02.tar.bz2 1133131 BLAKE2B 393e2be8551db1b8c509c446 DIST nvidia-settings-580.178.04.tar.bz2 1132866 BLAKE2B d17b698a73be1c1346eb2ba10f50432250b4167cffdc8cde40610f2dc733b9ff6e1ba5214ee0c0509c59e82f6984c1ab686d39379f7a00edba94e45166c6fa97 SHA512 2d336afd1ebbe6272404bd43f8756ac35932a3d7650c6d524fae0d77ee33cffc71cba94f6fe038c001964d5de20d7814d1e6092c062fb9cea946e8b60766a140 DIST nvidia-settings-595.84.tar.bz2 1136429 BLAKE2B 2faf98fb0bf6f0f5a07935ecd07dae44c15826f0f41e3221192811e2271d772879577dcc0d547d0aad7960574b999d8f977a22382484ba8df646499a212f3c62 SHA512 ebb79d0bc79d284711e388dbf9c818eaddf18ad9d7e41eecb4e5087a43fc2636b62922960547668274fa3832961f1f7030647bc9c3280a9f3e1e73d8175c8b1c DIST nvidia-settings-595.91.07.tar.bz2 1136346 BLAKE2B 56e4ed3d51b3210935f49918e9975a8ef7ae0a199ff45f9512ed5058a379fb8e7402e599965da071481e3501fa8081b0ef034e36981ab8816636e7b6b49e8ee7 SHA512 0a412f7923c4b8227b154106280165f9930b41c137beddf5f69e49e70b348ede664f859a51159b7d3e5eb6c0c271ba9a1c1a5930c7f652dbc861cdea9c59265d +DIST nvidia-settings-595.99.02.tar.gz 1327143 BLAKE2B 1e746ea3345bc8fe2c7dfb8d83ae544d0796f45b9e029a465098b3f2f8ca55cb146558d9eb3833f40d066b482860b1c54b03528fd0f21e857c02de203f684917 SHA512 755de710bd57f485afc47d3f6000a78f6d36925e400b2c44da405e43b2ca8a62de2901aae4e5cbf79c3df4e2ebf9204ff369ab7ef79ddcdba68a2cebefa191c4 DIST nvidia-settings-610.57.04.tar.bz2 1138157 BLAKE2B 51964fedb416da31c7e2e1c5f1d1b67e5cbcfd125bed0a4c4cfd0685d364f1e9086172eec1e31099d36e74af54dfe2c22aa541a498c93d569db62c6ade5a784a SHA512 522f2c91faeccf40209c1edf07da5e269b447efb8b4fa849617fd4281a4e677b5536994b0dd3338b9ad41eb0adac10bef65828598e3479b5f8617dd0280427fc DIST nvidia-xconfig-390.157.tar.bz2 107399 BLAKE2B 0cbb3b1ba508ddc3ba4a161c290b31bf7a67f67880bdbd01171a962c5fa97ca945b1ef17932403f8589309380743f1da632c728d8accb6d4e56dbd895e7486bb SHA512 50b390811c9bf091b14add41f886925b17496b41006b7d3981d2398caa65cf5db8a579c8cebed78278384bf3acc629befb07b54339c61abcc75852c0dcb8b8ca DIST nvidia-xconfig-470.256.02.tar.bz2 108698 BLAKE2B e468574e4bc57e7279d4120e2b08a201671b50d408be0c530eabe5da7d45daaf21cbf5c7fa31410d0d732fe8ea1551cbfb21d1ae193c1b3f5b5c50c764c9e236 SHA512 9dcec1e0c2b56b4d38a5f2c76086302f8bc0860cc15012cce29c3a5062f801a48b6a2bb78344361b07a2717b58502783441a2daf402d9973a17526175b1f15ca @@ -59,5 +65,7 @@ DIST nvidia-xconfig-580.173.02.tar.bz2 111531 BLAKE2B f0825338455d511bd2a273e709 DIST nvidia-xconfig-580.178.04.tar.bz2 111557 BLAKE2B 0ad4c36edafa3086ccd0189ad0b1768cdddd7159b8bc2153830ec95ec4b06b5d41215dd1c2408bb5ea2a529ea54996d9be952ad1effd437ce7eb82926e56dd74 SHA512 9cb3060e62c56686dab3d6ba75ac42998a5a16ac34b2785d47c15f50df67a85eefb475507fd0a605f4e60203e0cdecbe38a7d8d9e579687cb529d72806874d01 DIST nvidia-xconfig-595.84.tar.bz2 111532 BLAKE2B c76bb3b2bbbfdb2b9b670c395a721bc546a66619b127d943ff2ba568f2243cdf048ab271cea53e25cfedcbd303106252ade8267e6aac8116a754a4776dbfb206 SHA512 75ab16185ad00f627a2309694fda95d7319b9547d44c21e79b63cfa4504a6b84294f372b0aa2af36a53fa6001e55200e4cb3724cb99b56864cbb1479cab7bba3 DIST nvidia-xconfig-595.91.07.tar.bz2 111007 BLAKE2B 30f556a5b8c41cedc637f52064c402e39590d5df0381a8b2b74cd5bfa3c94a42bb6b95ff68898e240eef36736205a592cacf1595e8ea054b5290314bce8bcdea SHA512 6675a2f56fb2574f55b7342c1c3da221f5b1dc55329018075f71903706cbbf8b9e2ba91190d0c021e66a03e758c7cad1f5a1f1b266653849fe85773092ebc6e1 +DIST nvidia-xconfig-595.99.02.tar.gz 145292 BLAKE2B 3228469a5b22a2d333170dcbf32f299ad6296f22e670eef5c0024ff8dc63658443e1891a322062ca6634e123601027088eed1a8cf4c68986c991a2f3bf3dffba SHA512 4e740defccaed009b9d1725786a5d4bdb8dbc62e18450d27ad71f393817737a045ef88bc9d642b9afa666ef95057469ef58aed3e32efc429305516f627eb4ec5 DIST nvidia-xconfig-610.57.04.tar.bz2 111115 BLAKE2B bbd68a06d2e6605dce4d62cb06909cecdb18cdab18815814736d8a53e784ebf9c988c5a7e115676d5978a222b80c3a2f3a6c500c2464934ca045d7c814ef2c90 SHA512 d050291249ed18843f2419f730b31e15019d63ceeebf7c0f011fc13b90a1bc5b784cf603b03708de0b81c4a82f3c2bedecd8b3a6c2818e38e5fdec8b189c01e0 -DIST open-gpu-kernel-modules-595.44.14.tar.gz 24814871 BLAKE2B c00c0a24e555ed73e32a290f56fc6ef1ccfc7365668a7c8f26751fa0c0709006d09bb4a731554c1e21f87591dc43ddf003395b06524b67bb500d990e657db6af SHA512 e468138857d7b3b21daf8774cd35539fbb32a0142e89a12c7d33d61c049c7c9f299a399681ca3d388c91f33c55229b7f4e9200bb38a083b4010ed9e5b9142587 +DIST open-gpu-kernel-modules-595.44.15.tar.gz 24814978 BLAKE2B 896ff15e29469cf358765aa378d7c8fcbaf0dbaba78cf1815b0b2c49b0e67a9dacd6756356007eff9c1d899a832a3d703bae3e8bf527330db4a2b80fdc0d2173 SHA512 d3893088fdeecc6e128fed548df87b18d87c38d11274333e4f21b5ecf1a912a6a058f76fdcda4d969b670789f3fdc3eba54283a506caf043696a778a98388611 +DIST open-gpu-kernel-modules-595.99.02.tar.gz 24815430 BLAKE2B 91e80122355096570e6745faec456fed17a9e53eee2108c87a79851c687fc57df95939912e87292d8d28cd1be5f67f822cab7bc1fc4dcb03c2ace4732faed3bd SHA512 d1319de8e92e03954daede6a0c4daf3be9577263411a2b62967c53af9005d02e59156c854565a8522a4861235322ee652b4bafa501457bfacc805de92620638e diff --git a/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-595.44.14.ebuild b/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-595.44.15.ebuild similarity index 100% rename from sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-595.44.14.ebuild rename to sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-595.44.15.ebuild diff --git a/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-595.99.02.ebuild b/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-595.99.02.ebuild new file mode 100644 index 00000000000..f27c834f848 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-595.99.02.ebuild @@ -0,0 +1,555 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +MODULES_OPTIONAL_IUSE=+modules +inherit desktop dot-a eapi9-pipestatus eapi9-ver flag-o-matic linux-mod-r1 +inherit readme.gentoo-r1 systemd toolchain-funcs unpacker user-info + +MODULES_KERNEL_MAX=7.2 + +DESCRIPTION="NVIDIA Accelerated Graphics Driver" +HOMEPAGE="https://www.nvidia.com/" +SRC_URI=" + amd64? ( https://us.download.nvidia.com/XFree86/Linux-x86_64/${PV}/NVIDIA-Linux-x86_64-${PV}.run ) + arm64? ( https://us.download.nvidia.com/XFree86/aarch64/${PV}/NVIDIA-Linux-aarch64-${PV}.run ) + $(printf "https://github.com/NVIDIA/%s/archive/refs/tags/${PV}.tar.gz -> %s-${PV}.tar.gz " \ + nvidia-{installer,modprobe,persistenced,settings,xconfig}{,}) + https://github.com/NVIDIA/open-gpu-kernel-modules/archive/refs/tags/${PV}.tar.gz + -> open-gpu-kernel-modules-${PV}.tar.gz +" +# nvidia-installer is unused but here for GPL-2's "distribute sources" +S=${WORKDIR} + +LICENSE=" + NVIDIA-2025 Apache-2.0 Boost-1.0 BSD BSD-2 GPL-2 MIT ZLIB + curl openssl public-domain +" +SLOT="0/${PV%%.*}" +KEYWORDS="-* amd64 ~arm64" +IUSE="+X abi_x86_32 abi_x86_64 persistenced powerd +static-libs +tools wayland" + +COMMON_DEPEND=" + acct-group/video + X? ( x11-libs/libpciaccess ) + persistenced? ( + acct-user/nvpd + net-libs/libtirpc:= + ) + tools? ( + >=app-accessibility/at-spi2-core-2.46:2 + dev-libs/glib:2 + dev-libs/jansson:= + media-libs/harfbuzz:= + x11-libs/cairo + x11-libs/gdk-pixbuf:2 + x11-libs/gtk+:3[X] + x11-libs/libX11 + x11-libs/libXext + x11-libs/libXxf86vm + x11-libs/pango + ) +" +# egl-wayland2: nvidia currently ships both versions so, to ensure +# everything works properly, depend on both at same time for now +# (may use one or the other depending on setup) +RDEPEND=" + ${COMMON_DEPEND} + || ( + dev-libs/openssl-compat:3 + dev-libs/openssl:0/3 + ) + sys-libs/glibc + X? ( + media-libs/libglvnd[X,abi_x86_32(-)?] + x11-libs/libX11[abi_x86_32(-)?] + x11-libs/libXext[abi_x86_32(-)?] + ) + powerd? ( sys-apps/dbus[abi_x86_32(-)?] ) + wayland? ( + >=gui-libs/egl-gbm-1.1.1-r2[abi_x86_32(-)?] + >=gui-libs/egl-wayland-1.1.13.1[abi_x86_32(-)?] + gui-libs/egl-wayland2[abi_x86_32(-)?] + X? ( gui-libs/egl-x11[abi_x86_32(-)?] ) + ) +" +DEPEND=" + ${COMMON_DEPEND} + static-libs? ( + x11-base/xorg-proto + x11-libs/libX11 + x11-libs/libXext + ) + tools? ( + dev-util/vulkan-headers + media-libs/libglvnd + sys-apps/dbus + x11-base/xorg-proto + x11-libs/libXrandr + x11-libs/libXv + x11-libs/libvdpau + ) +" +BDEPEND=" + sys-devel/m4 + virtual/pkgconfig +" + +# there is some non-prebuilt exceptions but rather not maintain a list +QA_PREBUILT="lib/firmware/* usr/bin/* usr/lib*" + +PATCHES=( + "${FILESDIR}"/nvidia-modprobe-390.141-uvm-perms.patch + "${FILESDIR}"/nvidia-settings-530.30.02-desktop.patch +) + +pkg_setup() { + use modules && [[ ${MERGE_TYPE} != binary ]] || return + + # do early before linux-mod-r1 so can use chkconfig to setup CONFIG_CHECK + get_version + require_configured_kernel + + local CONFIG_CHECK=" + PROC_FS + ~DRM_KMS_HELPER + ~SYSVIPC + ~!LOCKDEP + ~!PREEMPT_RT + ~!SLUB_DEBUG_ON + !DEBUG_MUTEXES + $(usev amd64 'X86_PAT') + $(usev powerd '~CPU_FREQ') + " + + kernel_is -ge 6 11 && linux_chkconfig_present DRM_FBDEV_EMULATION && + CONFIG_CHECK+=" DRM_TTM_HELPER" + + linux_chkconfig_present DRM_KMS_HELPER && + CONFIG_CHECK+=" DRM_FBDEV_EMULATION" + + local drm_helper_msg="Cannot be directly selected in the kernel's config menus, and may need + selection of a DRM device even if unused, e.g. CONFIG_DRM_QXL=m or + DRM_AMDGPU=m (among others, consult the kernel config's help), can + also use DRM_NOUVEAU=m as long as built as module *not* built-in." + local ERROR_DRM_KMS_HELPER="CONFIG_DRM_KMS_HELPER: is not set but is needed for wayland support, + tty takeover (e.g. for simpledrm), and config-less Xorg auto-detection. + ${drm_helper_msg}" + local ERROR_DRM_TTM_HELPER="CONFIG_DRM_TTM_HELPER: is not set but is needed to compile when using + kernel version 6.11.x or newer while DRM_FBDEV_EMULATION is set. + ${drm_helper_msg}" + local ERROR_PREEMPT_RT="CONFIG_PREEMPT_RT: is set but is unsupported by NVIDIA upstream and + will fail to build unless the env var IGNORE_PREEMPT_RT_PRESENCE=1 is + set. Please do not report issues if run into e.g. kernel panics while + ignoring this." + + linux-mod-r1_pkg_setup +} + +src_prepare() { + # make patches usable across versions + rm nvidia-modprobe && mv nvidia-modprobe{-${PV},} || die + rm nvidia-persistenced && mv nvidia-persistenced{-${PV},} || die + rm nvidia-settings && mv nvidia-settings{-${PV},} || die + rm nvidia-xconfig && mv nvidia-xconfig{-${PV},} || die + mv open-gpu-kernel-modules-${PV} kernel-module-source || die + + default + + sed 's/__USER__/nvpd/' \ + nvidia-persistenced/init/systemd/nvidia-persistenced.service.template \ + > "${T}"/nvidia-persistenced.service || die + + # use alternative vulkan icd option if USE=-X (bug #909181) + use X || sed -i 's/"libGLX/"libEGL/' nvidia_{layers,icd}.json || die + + # makefile attempts to install wayland library even if not built + use wayland || sed -i 's/ WAYLAND_LIB_install$//' \ + nvidia-settings/src/Makefile || die +} + +src_compile() { + tc-export AR CC CXX LD OBJCOPY OBJDUMP PKG_CONFIG + + # extra flags for the libXNVCtrl.a static library + local xnvflags=-fPIC #840389 + tc-is-lto && xnvflags+=" $(test-flags-CC -ffat-lto-objects)" + + # same as uname -m + local target_arch + case ${ARCH} in + amd64) target_arch=x86_64;; + arm64) target_arch=aarch64;; + *) die "Unrecognised architecture: ${ARCH}";; + esac + + NV_ARGS=( + PREFIX="${EPREFIX}"/usr + HOST_CC="$(tc-getBUILD_CC)" + HOST_LD="$(tc-getBUILD_LD)" + BUILD_GTK2LIB= + NV_USE_BUNDLED_LIBJANSSON=0 + NV_VERBOSE=1 DO_STRIP= MANPAGE_GZIP= OUTPUTDIR=out + TARGET_ARCH="${target_arch}" + WAYLAND_AVAILABLE=$(usex wayland 1 0) + XNVCTRL_CFLAGS="${xnvflags}" + ) + + if use modules; then + local o_cflags=${CFLAGS} o_cxxflags=${CXXFLAGS} o_ldflags=${LDFLAGS} + + # environment flags are normally unused for modules, but nvidia uses + # them for building the formerly closed "blob" and it is a bit fragile + filter-flags -fno-plt #912949 + filter-lto + CC=${KERNEL_CC} CXX=${KERNEL_CXX} strip-unsupported-flags + LDFLAGS=$(raw-ldflags) + + # the "blob" uses C++ which is an issue if there is debug symbols + # when running pahole, there is a pahole.sh wrapper that tries to + # exclude C++ but it did not seem to be enough last time tried + linux_chkconfig_present DEBUG_INFO_BTF_MODULES && append-flags -g0 + + : video:kernel-module-source:kernel-module-source/kernel-open + local modlist=( nvidia{,-drm,-modeset,-peermem,-uvm}=${_} ) + local modargs=( + IGNORE_CC_MISMATCH=yes NV_VERBOSE=1 + SYSOUT="${KV_OUT_DIR}" SYSSRC="${KV_DIR}" + TARGET_ARCH="${target_arch}" + + # kernel takes "x86" and "x86_64" as meaning the same, but nvidia + # makes the distinction (since 550.135) and is not happy with "x86" + # TODO?: it should be ok/better for tc-arch-kernel to do x86_64 + $(usev amd64 ARCH=x86_64) + ) + + # temporary workaround for bug #914468 + addpredict "${KV_OUT_DIR}" + + linux-mod-r1_src_compile + CFLAGS=${o_cflags} CXXFLAGS=${o_cxxflags} LDFLAGS=${o_ldflags} + fi + + emake "${NV_ARGS[@]}" -C nvidia-modprobe + use persistenced && emake "${NV_ARGS[@]}" -C nvidia-persistenced + use X && emake "${NV_ARGS[@]}" -C nvidia-xconfig + + if use tools; then + # avoid noisy *very* noisy logs with deprecation warnings + CFLAGS="-Wno-deprecated-declarations ${CFLAGS}" \ + emake "${NV_ARGS[@]}" -C nvidia-settings + elif use static-libs; then + # pretend GTK+3 is available, not actually used (bug #880879) + emake "${NV_ARGS[@]}" BUILD_GTK3LIB=1 \ + -C nvidia-settings/src out/libXNVCtrl.a + fi +} + +src_install() { + local libdir=$(get_libdir) libdir32=$(ABI=x86 get_libdir) + + NV_ARGS+=( DESTDIR="${D}" LIBDIR="${ED}"/usr/${libdir} ) + + local -A paths=( + [APPLICATION_PROFILE]=/usr/share/nvidia + [CUDA_ICD]=/etc/OpenCL/vendors + [EGL_EXTERNAL_PLATFORM_JSON]=/usr/share/egl/egl_external_platform.d + [FIRMWARE]=/lib/firmware/nvidia/${PV} + [GBM_BACKEND_LIB_SYMLINK]=/usr/${libdir}/gbm + [GLVND_EGL_ICD_JSON]=/usr/share/glvnd/egl_vendor.d + [OPENGL_DATA]=/usr/share/nvidia + [VULKANSC_ICD_JSON]=/usr/share/vulkansc + [VULKAN_ICD_JSON]=/usr/share/vulkan + [WINE_LIB]=/usr/${libdir}/nvidia/wine + [XORG_OUTPUTCLASS_CONFIG]=/usr/share/X11/xorg.conf.d + + [GLX_MODULE_SHARED_LIB]=/usr/${libdir}/xorg/modules/extensions + [GLX_MODULE_SYMLINK]=/usr/${libdir}/xorg/modules + [XMODULE_SHARED_LIB]=/usr/${libdir}/xorg/modules + ) + + local skip_files=( + $(usev !X "libGLX_nvidia libglxserver_nvidia") + libGLX_indirect # non-glvnd unused fallback + libnvidia-{gtk,wayland-client} nvidia-{settings,xconfig} # from source + libnvidia-egl-gbm 15_nvidia_gbm # gui-libs/egl-gbm + libnvidia-egl-wayland 10_nvidia_wayland # gui-libs/egl-wayland + libnvidia-egl-wayland2 09_nvidia_wayland2 # gui-libs/egl-wayland2 + libnvidia-egl-xcb 20_nvidia_xcb.json # gui-libs/egl-x11 + libnvidia-egl-xlib 20_nvidia_xlib.json # gui-libs/egl-x11 + libnvidia-pkcs11.so # using the openssl3 version instead + ) + local skip_modules=( + $(usev !X "nvfbc vdpau xdriver") + $(usev !modules gsp) + $(usev !powerd nvtopps) + installer nvpd # handled separately / built from source + ) + local skip_types=( + GLVND_LIB GLVND_SYMLINK EGL_CLIENT.\* GLX_CLIENT.\* # media-libs/libglvnd + OPENCL_WRAPPER.\* # virtual/opencl + DOCUMENTATION DOT_DESKTOP .\*_SRC DKMS_CONF SYSTEMD_UNIT # handled separately / unused + ) + + local DOCS=( + README.txt NVIDIA_Changelog supported-gpus/supported-gpus.json + nvidia-settings/doc/{FRAMELOCK,NV-CONTROL-API}.txt + ) + local HTML_DOCS=( html/. ) + einstalldocs + + local DISABLE_AUTOFORMATTING=yes + local DOC_CONTENTS="\ +Trusted users should be in the 'video' group to use NVIDIA devices. +You can add yourself by using: gpasswd -a my-user video\ +$(usev modules " + +Like all out-of-tree kernel modules, it is necessary to rebuild +${PN} after upgrading or rebuilding the Linux kernel +by for example running \`emerge @module-rebuild\`. Alternatively, +if using a distribution kernel (sys-kernel/gentoo-kernel{,-bin}), +this can be automated by setting USE=dist-kernel globally. + +Loaded kernel modules also must not mismatch with the installed +${PN} version (excluding -r revision), meaning should +ensure \`eselect kernel list\` points to the kernel that will be +booted before building and preferably reboot after upgrading +${PN} (the ebuild will emit a warning if mismatching). + +See '${EPREFIX}/etc/modprobe.d/nvidia.conf' for modules options.")\ +$(use amd64 && usev !abi_x86_32 " + +Note that without USE=abi_x86_32 on ${PN}, 32bit applications +(typically using wine / steam) will not be able to use GPU acceleration.") + +For additional information or for troubleshooting issues, please see +https://wiki.gentoo.org/wiki/NVIDIA/nvidia-drivers and NVIDIA's own +documentation that is installed alongside this README." + readme.gentoo_create_doc + + if use modules; then + linux-mod-r1_src_install + + insinto /etc/modprobe.d + newins "${FILESDIR}"/nvidia-595.conf nvidia.conf + + # used for gpu verification with binpkgs (not kept, see pkg_preinst) + insinto /usr/share/nvidia + doins supported-gpus/supported-gpus.json + fi + + emake "${NV_ARGS[@]}" -C nvidia-modprobe install + fowners :video /usr/bin/nvidia-modprobe #505092 + fperms 4710 /usr/bin/nvidia-modprobe + + if use persistenced; then + emake "${NV_ARGS[@]}" -C nvidia-persistenced install + newconfd "${FILESDIR}"/nvidia-persistenced.confd nvidia-persistenced + newinitd "${FILESDIR}"/nvidia-persistenced.initd nvidia-persistenced + systemd_dounit "${T}"/nvidia-persistenced.service + fi + + if use tools; then + emake "${NV_ARGS[@]}" -C nvidia-settings install + + doicon nvidia-settings/doc/nvidia-settings.png + domenu nvidia-settings/doc/nvidia-settings.desktop + + exeinto /etc/X11/xinit/xinitrc.d + newexe "${FILESDIR}"/95-nvidia-settings-r1 95-nvidia-settings + fi + + if use static-libs; then + dolib.a nvidia-settings/src/out/libXNVCtrl.a + strip-lto-bytecode + + insinto /usr/include/NVCtrl + doins nvidia-settings/src/libXNVCtrl/NVCtrl{Lib,}.h + fi + + use X && emake "${NV_ARGS[@]}" -C nvidia-xconfig install + + # mimic nvidia-installer by reading .manifest to install files + # 0:file 1:perms 2:type 3+:subtype/arguments -:module + local m into + while IFS=' ' read -ra m; do + ! [[ ${#m[@]} -ge 2 && ${m[-1]} =~ MODULE: ]] || + [[ " ${m[0]##*/}" =~ ^(\ ${skip_files[*]/%/.*|\\} )$ ]] || + [[ " ${m[2]}" =~ ^(\ ${skip_types[*]/%/|\\} )$ ]] || + has ${m[-1]#MODULE:} "${skip_modules[@]}" && continue + + case ${m[2]} in + MANPAGE) + gzip -dc ${m[0]} | newman - ${m[0]%.gz} + pipestatus || die + continue + ;; + GBM_BACKEND_LIB_SYMLINK) m[4]=../${m[4]};; # missing ../ + VDPAU_SYMLINK) m[4]=vdpau/; m[5]=${m[5]#vdpau/};; # .so to vdpau/ + esac + + if [[ -v 'paths[${m[2]}]' ]]; then + into=${paths[${m[2]}]} + elif [[ ${m[2]} == EXPLICIT_PATH ]]; then + into=${m[3]} + elif [[ ${m[2]} == *_BINARY ]]; then + into=/usr/bin + elif [[ ${m[3]} == COMPAT32 ]]; then + use abi_x86_32 || continue + into=/usr/${libdir32} + elif [[ ${m[2]} == *_@(LIB|SYMLINK) ]]; then + into=/usr/${libdir} + else + die "No known installation path for ${m[0]}" + fi + [[ ${m[3]: -2} == ?/ ]] && into+=/${m[3]%/} + [[ ${m[4]: -2} == ?/ ]] && into+=/${m[4]%/} + + if [[ ${m[2]} =~ _SYMLINK$ ]]; then + [[ ${m[4]: -1} == / ]] && m[4]=${m[5]} + dosym ${m[4]} ${into}/${m[0]} + continue + fi + # avoid portage warning due to missing soname links in manifest + [[ ${m[0]} =~ ^libnvidia-ngx.so ]] && + dosym ${m[0]} ${into}/${m[0]%.so*}.so.1 + + printf -v m[1] %o $((m[1] | 0200)) # 444->644 + insopts -m${m[1]} + insinto ${into} + doins ${m[0]} + done < .manifest || die + insopts -m0644 # reset + + # MODULE:installer non-skipped extras + # (sleep services skipped, obsoleted by NVreg_UseKernelSuspendNotifiers=1) + dobin nvidia-bug-report.sh + + insinto /usr/share/nvidia/files.d + doins sandboxutils-filelist.json + + # needed with >=systemd-256 or may fail to resume with some setups + # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1072722 + : "$(systemd_get_systemunitdir)" + local unitdir=${_#"${EPREFIX}"} + insinto "${unitdir}"/systemd-homed.service.d + newins - 10-nvidia.conf <<-EOF + [Service] + Environment=SYSTEMD_HOME_LOCK_FREEZE_SESSION=false + EOF + insinto "${unitdir}"/systemd-suspend.service.d + newins systemd/system/systemd-suspend.service.d/nvidia-suspend-nofreeze.conf 10-nvidia.conf + dosym -r "${unitdir}"/systemd-{suspend,hibernate}.service.d/10-nvidia.conf + dosym -r "${unitdir}"/systemd-{suspend,hybrid-sleep}.service.d/10-nvidia.conf + dosym -r "${unitdir}"/systemd-{suspend,suspend-then-hibernate}.service.d/10-nvidia.conf + + # MODULE:powerd extras + if use powerd; then + newinitd "${FILESDIR}"/nvidia-powerd.initd nvidia-powerd #923117 + systemd_dounit systemd/system/nvidia-powerd.service + + insinto /usr/share/dbus-1/system.d + doins nvidia-dbus.conf + fi + + # symlink non-versioned so nvidia-settings can use it even if misdetected + dosym nvidia-application-profiles-${PV}-key-documentation \ + ${paths[APPLICATION_PROFILE]}/nvidia-application-profiles-key-documentation + + # don't attempt to strip firmware files (silences errors) + dostrip -x ${paths[FIRMWARE]} + + # sandbox issues with /dev/nvidiactl and others (bug #904292,#921578) + # are widespread and sometime affect revdeps of packages built with + # USE=opencl/cuda making it hard to manage in ebuilds (minimal set, + # ebuilds should handle manually if need others or addwrite) + insinto /etc/sandbox.d + newins - 20nvidia <<<'SANDBOX_PREDICT="/dev/nvidiactl:/dev/nvidia-caps:/dev/char"' + + # dracut does not use /etc/modprobe.d if hostonly=no, but want to make sure + # our settings are used for bug 932781#c8 and nouveau blacklist if either + # modules are included (however, just best-effort without initramfs regen) + if use modules; then + echo "install_items+=\" ${EPREFIX}/etc/modprobe.d/nvidia.conf \"" >> \ + "${ED}"/usr/lib/dracut/dracut.conf.d/10-${PN}.conf || die + fi +} + +pkg_preinst() { + use modules || return + + # set video group id based on live system (bug #491414) + local g=$(egetent group video | cut -d: -f3) + [[ ${g} =~ ^[0-9]+$ ]] || die "Failed to determine video group id (got '${g}')" + sed -i "s/@VIDEOGID@/${g}/" "${ED}"/etc/modprobe.d/nvidia.conf || die + + # try to find driver mismatches using temporary supported-gpus.json + for g in $(grep -l 0x10de /sys/bus/pci/devices/*/vendor 2>/dev/null); do + g=$(grep -io "\"devid\":\"$(<${g%vendor}device)\"[^}]*branch\":\"[0-9]*" \ + "${ED}"/usr/share/nvidia/supported-gpus.json 2>/dev/null) + if [[ ${g} ]]; then + g=$((${g##*\"}+1)) + if ver_test -ge ${g}; then + NV_LEGACY_MASK=">=${CATEGORY}/${PN}-${g}" + break + fi + fi + done + rm "${ED}"/usr/share/nvidia/supported-gpus.json || die +} + +pkg_postinst() { + linux-mod-r1_pkg_postinst + + readme.gentoo_print_elog + + if [[ -r /proc/driver/nvidia/version && + $( ${EROOT}/etc/portage/package.mask/${PN}" + else + ewarn "\n echo '${NV_LEGACY_MASK}' >> ${EROOT}/etc/portage/package.mask" + fi + ewarn "\n...then downgrade to a legacy[1] branch if possible (not all old versions" + ewarn "are available or fully functional, may need to consider nouveau[2])." + ewarn "\n[1] https://www.nvidia.com/object/IO_32667.html" + ewarn "[2] https://wiki.gentoo.org/wiki/Nouveau" + fi + + if ver_replacing -lt 595; then + elog "\n>=${PN}-595 has changes that may or may not need attention:" + elog "1. USE=kernel-open was removed and is now always enabled. If for some" + elog " reason you really need the closed variant (e.g. Runtime D3 on Turing" + elog " GPUs), please use LTS 580.xx instead as Gentoo has no intention to" + elog " support both variants anymore going forward" + elog "2. systemd/elogind sleep services (nvidia-sleep.sh) were tentatively" + elog " removed and replaced by setting NVreg_UseKernelSuspendNotifiers=1 in" + elog " ${EROOT}/etc/modprobe.d/nvidia.conf. If using a non-default custom" + elog " nvidia.conf, please ensure the option is set. Also, systemd users" + elog " may want to ensure that they do not have old sleep/suspend/resume" + elog " *nvidia* files in ${EROOT}/etc/systemd to avoid potential issues." + elog "3. nvidia-drm.modeset=1 was removed from nvidia.conf because it is now" + elog " default enabled regardless (new NVIDIA default)" + fi +}