diff --git a/.github/workflows/portage-stable-packages-list b/.github/workflows/portage-stable-packages-list index be2dcf3ce96..8b1b330ba4c 100644 --- a/.github/workflows/portage-stable-packages-list +++ b/.github/workflows/portage-stable-packages-list @@ -79,6 +79,7 @@ app-alternatives/awk app-alternatives/bc app-alternatives/bzip2 app-alternatives/cpio +app-alternatives/gpg app-alternatives/gzip app-alternatives/lex app-alternatives/ninja diff --git a/changelog/security/2025-11-05-weekly-updates.md b/changelog/security/2025-11-05-weekly-updates.md new file mode 100644 index 00000000000..21ce25c3275 --- /dev/null +++ b/changelog/security/2025-11-05-weekly-updates.md @@ -0,0 +1,2 @@ +- coreutils ([CVE-2025-5278](https://www.cve.org/CVERecord?id=CVE-2025-5278)) +- go ([CVE-2025-47912](https://www.cve.org/CVERecord?id=CVE-2025-47912), [CVE-2025-58183](https://www.cve.org/CVERecord?id=CVE-2025-58183), [CVE-2025-58185](https://www.cve.org/CVERecord?id=CVE-2025-58185), [CVE-2025-58186](https://www.cve.org/CVERecord?id=CVE-2025-58186), [CVE-2025-58187](https://www.cve.org/CVERecord?id=CVE-2025-58187), [CVE-2025-58188](https://www.cve.org/CVERecord?id=CVE-2025-58188), [CVE-2025-58189](https://www.cve.org/CVERecord?id=CVE-2025-58189), [CVE-2025-61723](https://www.cve.org/CVERecord?id=CVE-2025-61723), [CVE-2025-61724](https://www.cve.org/CVERecord?id=CVE-2025-61724), [CVE-2025-61725](https://www.cve.org/CVERecord?id=CVE-2025-61725)) diff --git a/changelog/updates/2025-11-05-weekly-updates.md b/changelog/updates/2025-11-05-weekly-updates.md new file mode 100644 index 00000000000..1a696f5ccc8 --- /dev/null +++ b/changelog/updates/2025-11-05-weekly-updates.md @@ -0,0 +1,19 @@ +- SDK: cmake ([4.1.2](https://cmake.org/cmake/help/v4.1/release/4.1.html#id22) (includes [4.1.1](https://cmake.org/cmake/help/v4.1/release/4.1.html#id21), [4.1](https://cmake.org/cmake/help/v4.1/release/4.1.html), [4.0](https://cmake.org/cmake/help/v4.0/release/4.0.html))) +- SDK: go ([1.25.3](https://go.dev/doc/devel/release#go1.25.minor)) +- base, dev: btrfs-progs ([6.17](https://github.com/kdave/btrfs-progs/releases/tag/v6.17)) +- base, dev: cifs-utils ([7.4](https://lwn.net/Articles/1024956/)) +- base, dev: coreutils ([9.8](https://lists.gnu.org/archive/html/info-gnu/2025-09/msg00005.html)) +- base, dev: hwdata ([0.399](https://github.com/vcrhonek/hwdata/releases/tag/v0.399)) +- base, dev: inih ([62](https://github.com/benhoyt/inih/releases/tag/r62) (includes [61](https://github.com/benhoyt/inih/releases/tag/r61))) +- base, dev: iproute2 ([6.17.0](https://lore.kernel.org/all/20250929095042.48200315@hermes.local/)) +- base, dev: kbd ([2.9.0](https://github.com/legionus/kbd/releases/tag/v2.9.0)) +- base, dev: libtirpc ([1.3.7](https://git.linux-nfs.org/?p=steved/libtirpc.git;a=log;h=refs/tags/libtirpc-1-3-7)) +- base, dev: samba ([4.22.5](https://www.samba.org/samba/history/samba-4.22.5.html) (includes [4.22.4](https://www.samba.org/samba/history/samba-4.22.4.html))) +- base, dev: strace ([6.17](https://github.com/strace/strace/releases/tag/v6.17)) +- base, dev: util-linux ([2.41.2](https://github.com/util-linux/util-linux/blob/v2.41.2/Documentation/releases/v2.41.2-ReleaseNotes)) +- dev: portage ([3.0.69.3](https://gitweb.gentoo.org/proj/portage.git/tree/NEWS?h=portage-3.0.69.3) (includes [3.0.69.2](https://gitweb.gentoo.org/proj/portage.git/tree/NEWS?h=portage-3.0.69.2), [3.0.69.1](https://gitweb.gentoo.org/proj/portage.git/tree/NEWS?h=portage-3.0.69.1), [3.0.69](https://gitweb.gentoo.org/proj/portage.git/tree/NEWS?h=portage-3.0.69))) +- sysext-overlaybd: overlaybd ([1.0.16](https://github.com/containerd/overlaybd/releases/tag/v1.0.16)) +- sysext-podman: netavark ([1.16.1](https://github.com/containers/netavark/releases/tag/v1.16.1) (includes [1.16.0](https://github.com/containers/netavark/releases/tag/v1.16.0))) +- sysext-python: more-itertools ([10.8.0](https://github.com/more-itertools/more-itertools/releases/tag/v10.8.0)) +- sysext-python: setuptools-scm ([9.2.0](https://github.com/pypa/setuptools-scm/releases/tag/v9.2.0) (includes [9.1.0](https://github.com/pypa/setuptools-scm/releases/tag/v9.1.0), [9.0.0](https://github.com/pypa/setuptools-scm/releases/tag/v9.0.0))) +- sysext-python: trove-classifiers ([2025.9.11.17](https://github.com/pypa/trove-classifiers/releases/tag/2025.9.11.17) (includes (2025.9.9.12)[https://github.com/pypa/trove-classifiers/releases/tag/2025.9.9.12], [2025.9.8.13](https://github.com/pypa/trove-classifiers/releases/tag/2025.9.8.13))) 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 efc0f7da025..e3605529854 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 @@ -56,9 +56,6 @@ dev-cpp/azure-security-keyvault-keys =dev-libs/cowsql-1.15.9 ~arm64 =dev-libs/ding-libs-0.6.2-r1 ~arm64 -# CVE-2025-7039 -=dev-libs/glib-2.84.4 ~amd64 ~arm64 - # The only available ebuild (from GURU) has ~amd64 and no keyword for arm64 yet. =dev-libs/jose-12 ** @@ -74,16 +71,9 @@ dev-cpp/azure-security-keyvault-keys # Catalyst 4 is not stable yet, but earlier versions are masked now. =dev-util/catalyst-4.0.0 ~amd64 ~arm64 -# CVE-2025-7039 -=dev-util/gdbus-codegen-2.84.4 ~amd64 ~arm64 -=dev-util/glib-utils-2.84.4 ~amd64 ~arm64 - # Keep versions on both arches in sync. =net-firewall/conntrack-tools-1.4.8-r1 ~arm64 -# Needed to address CVE-2025-2312. -=net-fs/cifs-utils-7.3 ~amd64 ~arm64 - # Keep versions on both arches in sync. =net-libs/libnetfilter_cthelper-1.0.1-r1 ~arm64 =net-libs/libnetfilter_cttimeout-1.0.1 ~arm64 @@ -100,6 +90,7 @@ dev-cpp/azure-security-keyvault-keys sys-apps/azure-vm-utils # Keep versions on both arches in sync. +=sys-apps/coreutils-9.8-r1 ~amd64 =sys-apps/zram-generator-1.2.1 ~arm64 =sys-auth/sssd-2.9.7 ~arm64 =sys-boot/mokutil-0.7.2 ** @@ -108,9 +99,7 @@ sys-apps/azure-vm-utils =sys-cluster/ipvsadm-1.31-r1 ~arm64 # Keep versions on both arches in sync. -=sys-devel/binutils-2.45-r1 ~arm64 =sys-fs/lxcfs-6.0.4 ~arm64 -=sys-libs/binutils-libs-2.45-r1 ~arm64 =app-containers/containerd-2.1* ~amd64 ~arm64 =app-containers/runc-1.3* ~amd64 ~arm64 diff --git a/sdk_container/src/third_party/coreos-overlay/profiles/coreos/base/package.use.force b/sdk_container/src/third_party/coreos-overlay/profiles/coreos/base/package.use.force index afc4ecf8731..775001b659d 100644 --- a/sdk_container/src/third_party/coreos-overlay/profiles/coreos/base/package.use.force +++ b/sdk_container/src/third_party/coreos-overlay/profiles/coreos/base/package.use.force @@ -7,6 +7,7 @@ app-alternatives/awk gawk app-alternatives/bc gnu app-alternatives/bzip2 reference app-alternatives/cpio gnu +app-alternatives/gpg reference app-alternatives/gzip reference app-alternatives/lex flex app-alternatives/ninja reference diff --git a/sdk_container/src/third_party/coreos-overlay/profiles/coreos/base/package.use.mask b/sdk_container/src/third_party/coreos-overlay/profiles/coreos/base/package.use.mask index 664eb479163..552f28f5805 100644 --- a/sdk_container/src/third_party/coreos-overlay/profiles/coreos/base/package.use.mask +++ b/sdk_container/src/third_party/coreos-overlay/profiles/coreos/base/package.use.mask @@ -1,5 +1,5 @@ -# We don't ship GnuTLS by default, and smartcard has a dep loop -app-crypt/gnupg smartcard ssl +# Smartcard has a dep loop. +app-crypt/gnupg smartcard # Our ISOs are not built with Catalyst. dev-util/catalyst iso diff --git a/sdk_container/src/third_party/coreos-overlay/sys-fs/overlaybd/files/0001-Patch-Photon-after-fetching-to-fix-cross-issues.patch b/sdk_container/src/third_party/coreos-overlay/sys-fs/overlaybd/files/0001-Patch-Photon-after-fetching-to-fix-cross-issues.patch new file mode 100644 index 00000000000..38aed738bbe --- /dev/null +++ b/sdk_container/src/third_party/coreos-overlay/sys-fs/overlaybd/files/0001-Patch-Photon-after-fetching-to-fix-cross-issues.patch @@ -0,0 +1,25 @@ +From 72d823c414a1416dffc2276e5a0a17f03c5e4549 Mon Sep 17 00:00:00 2001 +From: James Le Cuirot +Date: Mon, 28 Jul 2025 12:16:50 +0100 +Subject: [PATCH 1/2] Patch Photon after fetching to fix cross issues + +Signed-off-by: James Le Cuirot +--- + CMake/Findphoton.cmake | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/CMake/Findphoton.cmake b/CMake/Findphoton.cmake +index c905bd9..5507f66 100644 +--- a/CMake/Findphoton.cmake ++++ b/CMake/Findphoton.cmake +@@ -6,6 +6,7 @@ FetchContent_Declare( + photon + GIT_REPOSITORY https://github.com/alibaba/PhotonLibOS.git + GIT_TAG v0.6.17 ++ PATCH_COMMAND patch -p1 -i @FILESDIR@/photon-cross.patch + ) + + if(BUILD_TESTING) +-- +2.51.0 + diff --git a/sdk_container/src/third_party/coreos-overlay/sys-fs/overlaybd/files/0002-Patch-yaml-cpp-after-fetching-to-fix-cmake-issues.patch b/sdk_container/src/third_party/coreos-overlay/sys-fs/overlaybd/files/0002-Patch-yaml-cpp-after-fetching-to-fix-cmake-issues.patch new file mode 100644 index 00000000000..9a2715b403c --- /dev/null +++ b/sdk_container/src/third_party/coreos-overlay/sys-fs/overlaybd/files/0002-Patch-yaml-cpp-after-fetching-to-fix-cmake-issues.patch @@ -0,0 +1,25 @@ +From eae89e8432d993417e6f0e17ae519b4e02f72c9b Mon Sep 17 00:00:00 2001 +From: Krzesimir Nowak +Date: Fri, 7 Nov 2025 12:06:05 +0100 +Subject: [PATCH 2/2] Patch yaml-cpp after fetching to fix cmake issues + +Signed-off-by: Krzesimir Nowak +--- + CMakeLists.txt | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 753b081..03b2ab9 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -53,6 +53,7 @@ if (NOT yaml-cpp_FOUND) + yaml-cpp + GIT_REPOSITORY https://github.com/jbeder/yaml-cpp.git + GIT_TAG 0.8.0 ++ PATCH_COMMAND patch -p1 -i @FILESDIR@/yaml-cpp-cmake-4.0.patch + ) + FetchContent_MakeAvailable(yaml-cpp) + endif() +-- +2.51.0 + diff --git a/sdk_container/src/third_party/coreos-overlay/sys-fs/overlaybd/files/overlaybd-cross.patch b/sdk_container/src/third_party/coreos-overlay/sys-fs/overlaybd/files/overlaybd-cross.patch deleted file mode 100644 index 36a61d98e34..00000000000 --- a/sdk_container/src/third_party/coreos-overlay/sys-fs/overlaybd/files/overlaybd-cross.patch +++ /dev/null @@ -1,128 +0,0 @@ -From de68119855229db8e457043d86bbb38bbd5d55d9 Mon Sep 17 00:00:00 2001 -From: James Le Cuirot -Date: Fri, 25 Jul 2025 17:12:03 +0100 -Subject: [PATCH 1/3] Fix cross-compiling by using CMAKE_SYSTEM_PROCESSOR - rather than uname -m - -There is no need to check the architecture twice. Also check for arm64 -(MacOS) wherever we check for aarch64 (Linux). - -Signed-off-by: James Le Cuirot ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -9,10 +9,8 @@ enable_language(C) - set(CMAKE_CXX_FLAGS_RELEASE "-O2 -DNDEBUG") - set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -DNDEBUG -g") - --# Get CPU arch --execute_process(COMMAND uname -m OUTPUT_VARIABLE ARCH OUTPUT_STRIP_TRAILING_WHITESPACE) --if (NOT (${ARCH} STREQUAL x86_64) AND NOT (${ARCH} STREQUAL aarch64) AND NOT (${ARCH} STREQUAL arm64)) -- message(FATAL_ERROR "Unknown CPU architecture ${ARCH}") -+if (NOT (CMAKE_SYSTEM_PROCESSOR STREQUAL x86_64) AND NOT (CMAKE_SYSTEM_PROCESSOR STREQUAL aarch64) AND NOT (CMAKE_SYSTEM_PROCESSOR STREQUAL arm64)) -+ message(FATAL_ERROR "Unknown CPU architecture ${CMAKE_SYSTEM_PROCESSOR}") - endif () - - option(OBD_VER "Overlaybd version" "overlaybd/0.0.0-undefined") -@@ -25,7 +23,7 @@ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/CMake") - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fpic -Wall -Werror=sign-compare") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fpic -Wall -Werror=sign-compare -DOVERLAYBD_VER=${OBD_VER}") - --if (${ARCH} STREQUAL aarch64) -+if ((CMAKE_SYSTEM_PROCESSOR STREQUAL aarch64) OR (CMAKE_SYSTEM_PROCESSOR STREQUAL arm64)) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=armv8-a+crc -fsigned-char -fno-stack-protector -fomit-frame-pointer") - endif () - ---- a/src/overlaybd/zfile/CMakeLists.txt -+++ b/src/overlaybd/zfile/CMakeLists.txt -@@ -2,19 +2,13 @@ file(GLOB SOURCE_ZFILE "*.cpp") - file(GLOB SOURCE_LZ4 "lz4/*.c") - file(GLOB SOURCE_CRC32 "crc32/crc32c.cpp") - --# Get CPU arch --execute_process(COMMAND uname -m OUTPUT_VARIABLE ARCH OUTPUT_STRIP_TRAILING_WHITESPACE) --if (NOT (${ARCH} STREQUAL x86_64) AND NOT (${ARCH} STREQUAL aarch64)) -- message(FATAL_ERROR "Unknown CPU architecture ${ARCH}") --endif () -- - set (CMAKE_CXX_STANDARD 17) - add_library(crc32_lib STATIC ${SOURCE_CRC32}) - target_include_directories(crc32_lib PUBLIC - ${PHOTON_INCLUDE_DIR} - ) - --if (${ARCH} STREQUAL x86_64) -+if (CMAKE_SYSTEM_PROCESSOR STREQUAL x86_64) - target_compile_options(crc32_lib PUBLIC -msse4.2 -mcrc32) - else() - target_compile_options(crc32_lib PRIVATE -march=native -mcpu=generic+crc) --- -2.49.0 - - -From ee0e074c256ea1bcbcff2ed5a3e311becaf122cc Mon Sep 17 00:00:00 2001 -From: James Le Cuirot -Date: Mon, 28 Jul 2025 12:05:19 +0100 -Subject: [PATCH 2/3] Respect aarch64 -march=|-mcpu= flag and check whether - -mcpu=native works - -Packagers may specify a target system up front, which should be -respected. The CRC extensions are not strictly necessary as there is a -software fallback. - -Otherwise, use -mcpu=native if it works (it won't when cross-compiling) -or -mcpu=generic+crc. - -Signed-off-by: James Le Cuirot ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -24,7 +24,16 @@ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fpic -Wall -Werror=sign-compare") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fpic -Wall -Werror=sign-compare -DOVERLAYBD_VER=${OBD_VER}") - - if ((CMAKE_SYSTEM_PROCESSOR STREQUAL aarch64) OR (CMAKE_SYSTEM_PROCESSOR STREQUAL arm64)) -- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=armv8-a+crc -fsigned-char -fno-stack-protector -fomit-frame-pointer") -+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsigned-char -fno-stack-protector -fomit-frame-pointer") -+ if (NOT CMAKE_CXX_FLAGS MATCHES "-march=|-mcpu=") -+ include(CheckCXXCompilerFlag) -+ check_cxx_compiler_flag(-mcpu=native COMPILER_HAS_NATIVE_FLAG) -+ if (COMPILER_HAS_NATIVE_FLAG) -+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mcpu=native") -+ else () -+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mcpu=generic+crc") -+ endif () -+ endif () - endif () - - set(CMAKE_CXX_STANDARD_LIBRARIES "-static-libgcc ${CMAKE_CXX_STANDARD_LIBRARIES}") ---- a/src/overlaybd/zfile/CMakeLists.txt -+++ b/src/overlaybd/zfile/CMakeLists.txt -@@ -10,8 +10,6 @@ target_include_directories(crc32_lib PUBLIC - - if (CMAKE_SYSTEM_PROCESSOR STREQUAL x86_64) - target_compile_options(crc32_lib PUBLIC -msse4.2 -mcrc32) --else() -- target_compile_options(crc32_lib PRIVATE -march=native -mcpu=generic+crc) - endif() - - if(ENABLE_DSA OR ENABLE_ISAL) --- -2.49.0 - - -From 2e4edd416a42fad0e8d7ac21855a4e81f34f1e82 Mon Sep 17 00:00:00 2001 -From: James Le Cuirot -Date: Mon, 28 Jul 2025 12:16:50 +0100 -Subject: [PATCH 3/3] Patch Photon after fetching to fix cross issues - -Signed-off-by: James Le Cuirot ---- a/CMake/Findphoton.cmake -+++ b/CMake/Findphoton.cmake -@@ -6,6 +6,7 @@ FetchContent_Declare( - photon - GIT_REPOSITORY https://github.com/alibaba/PhotonLibOS.git - GIT_TAG v0.6.17 -+ PATCH_COMMAND patch -p1 -i @FILESDIR@/photon-cross.patch - ) - - if(BUILD_TESTING) --- -2.49.0 diff --git a/sdk_container/src/third_party/coreos-overlay/sys-fs/overlaybd/files/overlaybd-pin-tcmu.patch b/sdk_container/src/third_party/coreos-overlay/sys-fs/overlaybd/files/overlaybd-pin-tcmu.patch deleted file mode 100644 index 321ba3869bb..00000000000 --- a/sdk_container/src/third_party/coreos-overlay/sys-fs/overlaybd/files/overlaybd-pin-tcmu.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/CMake/Findtcmu.cmake -+++ b/CMake/Findtcmu.cmake -@@ -4,7 +4,7 @@ set(FETCHCONTENT_QUIET false) - FetchContent_Declare( - tcmu - GIT_REPOSITORY https://github.com/data-accelerator/photon-libtcmu.git -- GIT_TAG main -+ GIT_TAG 813fd65361bb2f348726b9c41478a44211847614 - ) - - if(BUILD_TESTING) diff --git a/sdk_container/src/third_party/coreos-overlay/sys-fs/overlaybd/files/yaml-cpp-cmake-4.0.patch b/sdk_container/src/third_party/coreos-overlay/sys-fs/overlaybd/files/yaml-cpp-cmake-4.0.patch new file mode 100644 index 00000000000..65bc465f0fb --- /dev/null +++ b/sdk_container/src/third_party/coreos-overlay/sys-fs/overlaybd/files/yaml-cpp-cmake-4.0.patch @@ -0,0 +1,42 @@ +From 10a573aa85db4eeb13df9e9cfa7047a0dc55d334 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Christoph=20Gr=C3=BCninger?= +Date: Mon, 24 Mar 2025 08:32:25 +0100 +Subject: [PATCH] [cmake] Require minimum CMake version 3.5 + +Soon CMake 4.0 will be released. It requires that projects +set a minimum required CMake version of 3.5. There is a +workaround with an additional flag, but it would is better +to increase the minimum required version. +--- + CMakeLists.txt | 5 +++-- + test/CMakeLists.txt | 1 - + 2 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 46dc180..ee04e75 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -1,5 +1,6 @@ +-# 3.5 is actually available almost everywhere, but this a good minimum +-cmake_minimum_required(VERSION 3.4) ++# 3.5 is actually available almost everywhere. ++# 3.30 as the upper policy limit avoids CMake deprecation warnings. ++cmake_minimum_required(VERSION 3.5...3.30) + + # enable MSVC_RUNTIME_LIBRARY target property + # see https://cmake.org/cmake/help/latest/policy/CMP0091.html +diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt +index 351b03f..210e629 100644 +--- a/test/CMakeLists.txt ++++ b/test/CMakeLists.txt +@@ -2,7 +2,6 @@ find_package(Threads REQUIRED) + + set(gtest_force_shared_crt ON CACHE BOOL "" FORCE) + set(BUILD_MOCK ON CACHE BOOL "" FORCE) +-set(CMAKE_POLICY_DEFAULT_CMP0048 NEW) + + add_subdirectory( + "${CMAKE_CURRENT_SOURCE_DIR}/gtest-1.11.0" +-- +2.51.0 + diff --git a/sdk_container/src/third_party/coreos-overlay/sys-fs/overlaybd/overlaybd-1.0.15.ebuild b/sdk_container/src/third_party/coreos-overlay/sys-fs/overlaybd/overlaybd-1.0.16.ebuild similarity index 100% rename from sdk_container/src/third_party/coreos-overlay/sys-fs/overlaybd/overlaybd-1.0.15.ebuild rename to sdk_container/src/third_party/coreos-overlay/sys-fs/overlaybd/overlaybd-1.0.16.ebuild diff --git a/sdk_container/src/third_party/coreos-overlay/sys-fs/overlaybd/overlaybd-9999.ebuild b/sdk_container/src/third_party/coreos-overlay/sys-fs/overlaybd/overlaybd-9999.ebuild index e0da60644f2..b7a27ba5303 100644 --- a/sdk_container/src/third_party/coreos-overlay/sys-fs/overlaybd/overlaybd-9999.ebuild +++ b/sdk_container/src/third_party/coreos-overlay/sys-fs/overlaybd/overlaybd-9999.ebuild @@ -44,13 +44,13 @@ RDEPEND=" " PATCHES=( - "${FILESDIR}"/${PN}-cross.patch - "${FILESDIR}"/${PN}-pin-tcmu.patch + "${FILESDIR}"/0001-Patch-Photon-after-fetching-to-fix-cross-issues.patch + "${FILESDIR}"/0002-Patch-yaml-cpp-after-fetching-to-fix-cmake-issues.patch ) src_prepare() { cmake_src_prepare - sed -i "s:@FILESDIR@:${FILESDIR}:g" CMake/Findphoton.cmake || die + sed -i "s:@FILESDIR@:${FILESDIR}:g" CMakeLists.txt CMake/Findphoton.cmake || die } src_configure() { @@ -58,7 +58,7 @@ src_configure() { # runtime. Only DSA hard requires at least AVX2. However, the code doesn't # try especially hard to avoid these instructions from being implicitly used # outside these runtime checks. :( - # ISAL similarly leads to "illegal instruction" termination on QEMU. + # ISAL similarly leads to "illegal instruction" termination on QEMU. local mycmakeargs=( -DBUILD_SHARED_LIBS=no -DBUILD_TESTING=no diff --git a/sdk_container/src/third_party/portage-stable/app-admin/eselect/Manifest b/sdk_container/src/third_party/portage-stable/app-admin/eselect/Manifest index 252ce62c4c9..23f69a377b3 100644 --- a/sdk_container/src/third_party/portage-stable/app-admin/eselect/Manifest +++ b/sdk_container/src/third_party/portage-stable/app-admin/eselect/Manifest @@ -1,2 +1,2 @@ -DIST eselect-1.4.29.tar.xz 185948 BLAKE2B bb387a14c81d5ff5bf2e6e703465b24140b047f1464dee3c7fc0a125c9d94544a9afd801b42d2902dd6dee1af705f7dcfad854286d7e243a0f654cec35ab8eea SHA512 0466be2634f9d632d628cb11793d604002d989c222758ed33259c6b1dede80765d80f782242b22704e890bde84b2e1e3b3fb3d31574812cc803aad64ba8e7cf6 DIST eselect-1.4.30.tar.xz 186060 BLAKE2B f58c2bdacfcb933aef2414e65866a4be33d02ddc42005770fd4f3200a7aa0437d31301ac35991309d51f2e95e8be2eafa0590600281801c6c63db08b3451b9ef SHA512 89ff9af40849e5d712716c35705e21bfc5d073536da8750566368d519d1b7de823575ffe730faabab4170ca773df31e7bb9d633d8e48361704102987c5d3e681 +DIST eselect-1.4.31.tar.xz 186520 BLAKE2B f40851ffea69c0d8b0142b49669e1112fc34384b0c8f1f6ce8aebbfd48fb6a6f8239e8682d7fe8b49c9d27cc9f7cee4b7c781baef7780e347df90f7cd4b5131e SHA512 ffcd6cdb5aef51b2949893abfc3af356d3011e256671eaae588e3fe6ff41f7bf74167dccef8c794422704097c3351f5c457009b051bbc8f008b2d2f250fa9c1b diff --git a/sdk_container/src/third_party/portage-stable/app-admin/eselect/eselect-1.4.29.ebuild b/sdk_container/src/third_party/portage-stable/app-admin/eselect/eselect-1.4.31.ebuild similarity index 89% rename from sdk_container/src/third_party/portage-stable/app-admin/eselect/eselect-1.4.29.ebuild rename to sdk_container/src/third_party/portage-stable/app-admin/eselect/eselect-1.4.31.ebuild index 123d65c499b..e93a6fd25b0 100644 --- a/sdk_container/src/third_party/portage-stable/app-admin/eselect/eselect-1.4.29.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-admin/eselect/eselect-1.4.31.ebuild @@ -1,7 +1,7 @@ # Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=7 +EAPI=8 # Packages sharing a common release tarball: # app-admin/eselect @@ -16,7 +16,7 @@ SRC_URI="https://dev.gentoo.org/~ulm/eselect/${P}.tar.xz" LICENSE="GPL-2+ || ( GPL-2+ CC-BY-SA-4.0 )" SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" IUSE="doc emacs vim-syntax" # coreutils for realpath diff --git a/sdk_container/src/third_party/portage-stable/app-alternatives/gpg/gpg-0-r2.ebuild b/sdk_container/src/third_party/portage-stable/app-alternatives/gpg/gpg-0-r2.ebuild new file mode 100644 index 00000000000..e7289db9bf7 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/app-alternatives/gpg/gpg-0-r2.ebuild @@ -0,0 +1,28 @@ +# Copyright 2022-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +ALTERNATIVES=( + "reference:>=app-crypt/gnupg-2.4.8-r1[alternatives(-),nls?,ssl?]" +) + +inherit app-alternatives + +DESCRIPTION="gpg symlink" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" +IUSE="nls ssl" + +RDEPEND=" + !app-crypt/gnupg[-alternatives(-)] +" + +src_install() { + local alt=$(get_alternative) + + dodir /usr/bin + dosym "gpg-${alt}" /usr/bin/gpg + dosym "gpgv-${alt}" /usr/bin/gpgv + dosym gpg /usr/bin/gpg2 + dosym gpgv /usr/bin/gpgv2 +} diff --git a/sdk_container/src/third_party/portage-stable/app-alternatives/gpg/gpg-0-r3.ebuild b/sdk_container/src/third_party/portage-stable/app-alternatives/gpg/gpg-0-r3.ebuild new file mode 100644 index 00000000000..d6002bcd5af --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/app-alternatives/gpg/gpg-0-r3.ebuild @@ -0,0 +1,35 @@ +# Copyright 2022-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +ALTERNATIVES=( + "reference:>=app-crypt/gnupg-2.4.8-r1[alternatives(-),nls?,ssl?]" +) + +inherit app-alternatives + +DESCRIPTION="gpg symlink" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" +IUSE="nls ssl" + +RDEPEND=" + !app-crypt/gnupg[-alternatives(-)] + !=app-crypt/gnupg-2.4.8-r1 + !=app-crypt/gnupg-2.5.13-r1 +" + +src_install() { + local alt=$(get_alternative) + + dodir /usr/bin + dosym "gpg-${alt}" /usr/bin/gpg + dosym "gpgv-${alt}" /usr/bin/gpgv + dosym gpg /usr/bin/gpg2 + dosym gpgv /usr/bin/gpgv2 + + newman - gpg.1 <<<".so gpg-${alt}.1" + newman - gpgv.1 <<<".so gpgv-${alt}.1" + newman - gpg2.1 <<<".so gpg.1" + newman - gpgv2.1 <<<".so gpgv.1" +} diff --git a/sdk_container/src/third_party/portage-stable/app-alternatives/gpg/gpg-1-r2.ebuild b/sdk_container/src/third_party/portage-stable/app-alternatives/gpg/gpg-1-r2.ebuild new file mode 100644 index 00000000000..8ccb126fbff --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/app-alternatives/gpg/gpg-1-r2.ebuild @@ -0,0 +1,36 @@ +# Copyright 2022-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +ALTERNATIVES=( + "reference:>=app-crypt/gnupg-2.4.8-r1[alternatives(-),nls?,ssl?]" + "freepg:app-crypt/freepg[nls?,ssl?]" + "sequoia:app-crypt/sequoia-chameleon-gnupg" +) + +inherit app-alternatives + +DESCRIPTION="gpg symlink" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris" +IUSE="nls ssl" + +RDEPEND=" + !app-crypt/gnupg[-alternatives(-)] +" + +src_install() { + local alt=$(get_alternative) + + case ${alt} in + sequoia) + alt=sq + ;; + esac + + dodir /usr/bin + dosym "gpg-${alt}" /usr/bin/gpg + dosym "gpgv-${alt}" /usr/bin/gpgv + dosym gpg /usr/bin/gpg2 + dosym gpgv /usr/bin/gpgv2 +} diff --git a/sdk_container/src/third_party/portage-stable/app-alternatives/gpg/gpg-1-r3.ebuild b/sdk_container/src/third_party/portage-stable/app-alternatives/gpg/gpg-1-r3.ebuild new file mode 100644 index 00000000000..03162dbd46d --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/app-alternatives/gpg/gpg-1-r3.ebuild @@ -0,0 +1,44 @@ +# Copyright 2022-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +ALTERNATIVES=( + "reference:>=app-crypt/gnupg-2.4.8-r2[alternatives(-),nls?,ssl?]" + "freepg:>=app-crypt/freepg-2.5.12_p1-r1[nls?,ssl?]" + "sequoia:>=app-crypt/sequoia-chameleon-gnupg-0.13.1-r3" +) + +inherit app-alternatives + +DESCRIPTION="gpg symlink" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris" +IUSE="nls ssl" + +RDEPEND=" + !app-crypt/gnupg[-alternatives(-)] + !=app-crypt/freepg-2.5.12_p1-r0 + !=app-crypt/gnupg-2.4.8-r1 + !=app-crypt/gnupg-2.5.13-r1 +" + +src_install() { + local alt=$(get_alternative) + + case ${alt} in + sequoia) + alt=sq + ;; + esac + + dodir /usr/bin + dosym "gpg-${alt}" /usr/bin/gpg + dosym "gpgv-${alt}" /usr/bin/gpgv + dosym gpg /usr/bin/gpg2 + dosym gpgv /usr/bin/gpgv2 + + newman - gpg.1 <<<".so gpg-${alt}.1" + newman - gpgv.1 <<<".so gpgv-${alt}.1" + newman - gpg2.1 <<<".so gpg.1" + newman - gpgv2.1 <<<".so gpgv.1" +} diff --git a/sdk_container/src/third_party/portage-stable/app-alternatives/gpg/metadata.xml b/sdk_container/src/third_party/portage-stable/app-alternatives/gpg/metadata.xml new file mode 100644 index 00000000000..ce786f5cc55 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/app-alternatives/gpg/metadata.xml @@ -0,0 +1,23 @@ + + + + + base-system@gentoo.org + Gentoo Base System + + + mgorny@gentoo.org + Michał Górny + + + + Symlink to app-crypt/freepg. + + + Symlink to app-crypt/gnupg. + + + Symlink to app-crypt/sequoia-chameleon-gnupg. + + + diff --git a/sdk_container/src/third_party/portage-stable/app-arch/libarchive/Manifest b/sdk_container/src/third_party/portage-stable/app-arch/libarchive/Manifest index 6526d87cf72..d30441e1619 100644 --- a/sdk_container/src/third_party/portage-stable/app-arch/libarchive/Manifest +++ b/sdk_container/src/third_party/portage-stable/app-arch/libarchive/Manifest @@ -1,2 +1,4 @@ DIST libarchive-3.8.1.tar.xz 5950428 BLAKE2B 92ce11758ea050c7f5b3b2440566b71d29d4fe3ee90ee3455117585ef629eb7cfbe6f3c67bfb309c38d02118ef8f71c1c30ffe14466bfef7929c6d6134b11fc8 SHA512 c794d1c6e6a6dcf4072438dc4e8ce5b1530bbe9ad40afad18f4e6a444aa5d85e48c58cfbd8af41d4d25e93844956de3ce262cb1d68097d2e5f95bd87b5a982b7 DIST libarchive-3.8.1.tar.xz.asc 659 BLAKE2B 0965437c5087b29c356280613fba546c0f08cbe3996c885957e1424304f3ea1cb4651168b34c3389ec6119bd5ab99160dc530dced31490cd2f6e8c3850e77223 SHA512 540ea8203920c1e8e6934f20c0f6b592a309c82f82561960d9adff3a3a09cf28c7a3d92070682b6b420ef82c6e30d6e9741d8c3e5473a78390da5137e61c05bd +DIST libarchive-3.8.2.tar.xz 5853628 BLAKE2B 4f5ed9afbedccf0f754b38743259a62f45d8407ddea8955e301b79b8c9c7653e633b58998a43d7a4bf8cfd35488b20af76ea8f948267230be0557797513b71a6 SHA512 0a6796a8b9f66ebfb4ed0d03f9ef85519855fe5835c060bd9d17e3d5d70f565f74f94e7a570c4f6787557d15f1264fc55900d8a66b34b15892e2b6e4b3eecdf1 +DIST libarchive-3.8.2.tar.xz.asc 659 BLAKE2B dc7183efc8e96a13d519d250194a9044c390042e1abc2257c82bc5c43453ad9fdbc5872643b6c008e8f6762356ced64304ed90c60edab034a4ef1ce3d91d26e0 SHA512 e1705acf226f14d9143efbc0b1649fcd2e10706966d21bf0c54f702db7eb64332b9f3927a7fa6c8322cb1a929af81bc584c1e6111c4d3c6523aee8ed7a8b4e1e diff --git a/sdk_container/src/third_party/portage-stable/app-arch/libarchive/libarchive-3.8.2.ebuild b/sdk_container/src/third_party/portage-stable/app-arch/libarchive/libarchive-3.8.2.ebuild new file mode 100644 index 00000000000..b957cea4b43 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/app-arch/libarchive/libarchive-3.8.2.ebuild @@ -0,0 +1,174 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 +inherit libtool multilib-minimal toolchain-funcs verify-sig + +DESCRIPTION="Multi-format archive and compression library" +HOMEPAGE=" + https://www.libarchive.org/ + https://github.com/libarchive/libarchive/ +" +SRC_URI=" + https://www.libarchive.de/downloads/${P}.tar.xz + verify-sig? ( https://www.libarchive.de/downloads/${P}.tar.xz.asc ) +" + +LICENSE="BSD BSD-2 BSD-4 public-domain" +SLOT="0/13" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" +IUSE=" + acl blake2 +bzip2 +e2fsprogs expat +iconv lz4 +lzma lzo nettle + static-libs test xattr +zstd +" +RESTRICT="!test? ( test )" + +RDEPEND=" + sys-libs/zlib:=[${MULTILIB_USEDEP}] + acl? ( virtual/acl:=[${MULTILIB_USEDEP}] ) + blake2? ( app-crypt/libb2:=[${MULTILIB_USEDEP}] ) + bzip2? ( app-arch/bzip2:=[${MULTILIB_USEDEP}] ) + expat? ( dev-libs/expat:=[${MULTILIB_USEDEP}] ) + !expat? ( dev-libs/libxml2:=[${MULTILIB_USEDEP}] ) + iconv? ( virtual/libiconv:=[${MULTILIB_USEDEP}] ) + dev-libs/openssl:=[${MULTILIB_USEDEP}] + lz4? ( >=app-arch/lz4-0_p131:=[${MULTILIB_USEDEP}] ) + lzma? ( >=app-arch/xz-utils-5.2.5-r1:=[${MULTILIB_USEDEP}] ) + lzo? ( >=dev-libs/lzo-2:=[${MULTILIB_USEDEP}] ) + nettle? ( dev-libs/nettle:=[${MULTILIB_USEDEP}] ) + zstd? ( app-arch/zstd:=[${MULTILIB_USEDEP}] ) +" +DEPEND="${RDEPEND} + kernel_linux? ( + virtual/os-headers + e2fsprogs? ( sys-fs/e2fsprogs[${MULTILIB_USEDEP}] ) + ) + test? ( + app-arch/lrzip + app-arch/lz4 + app-arch/lzip + app-arch/lzop + app-arch/xz-utils + app-arch/zstd + lzma? ( app-arch/xz-utils[extra-filters(+)] ) + ) +" +BDEPEND=" + virtual/pkgconfig + verify-sig? ( >=sec-keys/openpgp-keys-libarchive-20221209 ) + elibc_musl? ( sys-libs/queue-standalone ) +" + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/libarchive.org.asc + +# false positives (checks for libc-defined hash functions) +QA_CONFIG_IMPL_DECL_SKIP=( + SHA256_Init SHA256_Update SHA256_Final + SHA384_Init SHA384_Update SHA384_Final + SHA512_Init SHA512_Update SHA512_Final +) + +PATCHES=( + # https://github.com/libarchive/libarchive/issues/2069 + # (we can simply update the command since we don't support old lrzip) + "${FILESDIR}/${PN}-3.7.2-lrzip.patch" +) + +src_prepare() { + default + + # Needed for flags to be respected w/ LTO + elibtoolize +} + +multilib_src_configure() { + export ac_cv_header_ext2fs_ext2_fs_h=$(usex e2fsprogs) #354923 + + local myconf=( + $(use_enable acl) + $(use_enable static-libs static) + $(use_enable xattr) + $(use_with blake2 libb2) + $(use_with bzip2 bz2lib) + $(use_with expat) + $(use_with !expat xml2) + $(use_with iconv) + $(use_with lz4) + $(use_with lzma) + $(use_with lzo lzo2) + $(use_with nettle) + --with-zlib + $(use_with zstd) + + # Windows-specific + --without-cng + ) + if multilib_is_native_abi ; then + myconf+=( + --enable-bsdcat="$(tc-is-static-only && echo static || echo shared)" + --enable-bsdcpio="$(tc-is-static-only && echo static || echo shared)" + --enable-bsdtar="$(tc-is-static-only && echo static || echo shared)" + --enable-bsdunzip="$(tc-is-static-only && echo static || echo shared)" + ) + else + myconf+=( + --disable-bsdcat + --disable-bsdcpio + --disable-bsdtar + --disable-bsdunzip + ) + fi + + ECONF_SOURCE="${S}" econf "${myconf[@]}" +} + +multilib_src_compile() { + if multilib_is_native_abi ; then + emake + else + emake libarchive.la + fi +} + +src_test() { + mkdir -p "${T}"/bin || die + # tests fail when lbzip2[symlink] is used in place of ref bunzip2 + ln -s "${BROOT}/bin/bunzip2" "${T}"/bin || die + # workaround lrzip broken on 32-bit arches with >= 10 threads + # https://bugs.gentoo.org/927766 + cat > "${T}"/bin/lrzip <<-EOF || die + #!/bin/sh + exec "$(type -P lrzip)" -p1 "\${@}" + EOF + chmod +x "${T}/bin/lrzip" || die + local -x PATH=${T}/bin:${PATH} + multilib-minimal_src_test +} + +multilib_src_test() { + # sandbox is breaking long symlink behavior + local -x SANDBOX_ON=0 + local -x LD_PRELOAD= + # some locales trigger different output that breaks tests + local -x LC_ALL=C.UTF-8 + emake check +} + +multilib_src_install() { + if multilib_is_native_abi ; then + emake DESTDIR="${D}" install + else + local install_targets=( + install-includeHEADERS + install-libLTLIBRARIES + install-pkgconfigDATA + ) + emake DESTDIR="${D}" "${install_targets[@]}" + fi + + # Libs.private: should be used from libarchive.pc instead + find "${ED}" -type f -name "*.la" -delete || die + # https://github.com/libarchive/libarchive/issues/1766 + sed -e '/Requires\.private/s:iconv::' \ + -i "${ED}/usr/$(get_libdir)/pkgconfig/libarchive.pc" || die +} diff --git a/sdk_container/src/third_party/portage-stable/app-containers/netavark/Manifest b/sdk_container/src/third_party/portage-stable/app-containers/netavark/Manifest index 9aa6a4dbe24..2c80f488213 100644 --- a/sdk_container/src/third_party/portage-stable/app-containers/netavark/Manifest +++ b/sdk_container/src/third_party/portage-stable/app-containers/netavark/Manifest @@ -1,4 +1,6 @@ DIST netavark-1.14.1.crate 167516 BLAKE2B b6ec5eaef66798416fc0fc82f6de81d07feb52a95946a3844a9f4b34c16bfaa37bc3b5228e38b912d40381d30940f7e49bf052426989f20fffc712e2c4499ebb SHA512 ae7892858e85fda499742e9c9553f7e5e887bd62f155832b630c4b4fc0b32f52469d72d901d9b222816f324ec4f877cb758c9edad22e282eee77e05d98b05fc6 DIST netavark-1.15.2.crate 169643 BLAKE2B fcc3a3b691a4bc0dfcbc180408ee9d8c7f15275c8ec0b8ae27f63a6d84ff425a0035ab4c17328d31f4b6a9dbbeaab0f48188111f82ddf6e3be9994eff3944e5b SHA512 6b9880b4150b52818f7bb2179acf2b4ffe87ab36a0aa8cf0c4442781f818842236d4acb41077729e8a25d134b96639cd311f0a505d276df02e5cd5e0a83cce82 +DIST netavark-1.16.1.crate 173635 BLAKE2B c2d45164e5c7a6689e5dae4921163a128e7525eef75a5b98a810539c13988a4880727831c22252e418bf3c987e1e729a6bb001e9dacb48b1c73603053fd0abc4 SHA512 8d20e5cc1bd8d80eaf7a9263985478f27b994dbff0da9b4378e4be0beb71121624348b152d3891b78512e598e2887815534c806518e64ff8f95eed305fa33132 DIST netavark-v1.14.1-vendor.tar.gz 18508797 BLAKE2B 8b63673700f26e19ac2c2274e71a803bf99ba7aec58d8f66320e0cdd7c72c016f16083df46b0b454bd91df5e62e5c4170bcb2ee636c094a5578951bd8f38eb24 SHA512 84545bcb791a698a20d3b1f41502beaa568a5e519156cbb6e9d28bef34a24ed006a87cd77c8d972f63ad9c3ef9049637b15bd0d446d80c88dcdd9f268486959a DIST netavark-v1.15.2-vendor.tar.gz 21528390 BLAKE2B b1cc108b27e9c545baff6e52a17189200b3757216a35954b370ebf1dede2344094fad1885559c6397234387535cb921361b289ca938021d97544e2fd13d4dd54 SHA512 52f3512dae21f54a364e2287e43ea47d6ef36d291522ddf36a4c5ae24a40d1f0997ea4902ad0e28a466fc2a058d5122d405d2b675d3250599b8ca49deb771d19 +DIST netavark-v1.16.1-vendor.tar.gz 22434836 BLAKE2B d1b6d4954b54bfd9088428f82098a8f78ef5bec500643a0c2c570827e74be1e4fbfe9f516cf7a9506325b847ee8b6ab07fa47b9b0936b2e462ee1b52e27edfda SHA512 fdfb63c58314e89ee1ef1b95a34b07aec82c15958dfc379e3ee4475c13f9864b6c02e33b45ea59a17fd9921669fd7c0c3d9078d319983cfbd1f76ea22afd5be4 diff --git a/sdk_container/src/third_party/portage-stable/app-containers/netavark/netavark-1.16.1.ebuild b/sdk_container/src/third_party/portage-stable/app-containers/netavark/netavark-1.16.1.ebuild new file mode 100644 index 00000000000..d3753217a0c --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/app-containers/netavark/netavark-1.16.1.ebuild @@ -0,0 +1,61 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +[[ ${PV} == 9999* ]] || CRATES="${PN}@${PV}" + +RUST_MIN_VER="1.83" + +inherit cargo systemd + +DESCRIPTION="A container network stack" +HOMEPAGE="https://github.com/containers/netavark" + +if [[ ${PV} == 9999* ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/containers/netavark.git" +else + SRC_URI="${CARGO_CRATE_URIS} https://github.com/containers/netavark/releases/download/v${PV}/${PN}-v${PV}-vendor.tar.gz" + KEYWORDS="amd64 arm64 ~loong ~ppc64 ~riscv" +fi + +# main +LICENSE="Apache-2.0" +# deps +LICENSE+=" Apache-2.0-with-LLVM-exceptions BSD BSD-2 Boost-1.0 MIT Unicode-DFS-2016 Unlicense ZLIB" +SLOT="0" +BDEPEND="dev-go/go-md2man + dev-libs/protobuf[protoc(+)]" + +QA_FLAGS_IGNORED=" + usr/libexec/podman/${PN}" +QA_PRESTRIPPED=" + usr/libexec/podman/${PN}" + +ECARGO_VENDOR="${WORKDIR}/vendor" + +src_unpack() { + if [[ ${PV} == 9999* ]]; then + git-r3_src_unpack + cargo_live_src_unpack + else + cargo_src_unpack + fi +} + +src_prepare() { + default + sed -i -e "s|m0755 bin|m0755 $(cargo_target_dir)|g;" Makefile || die +} + +src_compile() { + cargo_src_compile + export PREFIX="${EPREFIX}"/usr SYSTEMDDIR="$(systemd_get_systemunitdir)" + emake docs +} + +# Following is needed because we want to use `make install` instead of `cargo install` (exported by cargo.eclass) +src_install() { + default +} 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 1cba8df9501..425ad341357 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 @@ -4,3 +4,5 @@ DIST gnupg-2.4.8.tar.bz2 8017685 BLAKE2B ab7126aac6c7bf323075c68084c963f75d93c72 DIST gnupg-2.4.8.tar.bz2.sig 119 BLAKE2B 4f94b2abc40b17cfab44f28fc2a2ae5246f8356141a3932a92b5adb78002c7064bb132a6529079bc14900036f90d9d318d7d01818999150e2c875b88a3fca265 SHA512 9fb54be4e99ecee6c7b649d6f0ef24a25e81c0af57e07ccdd512a1ea2ebf7558dd25518b7b78347e4a216167849e6285bb91ec23d0968966aba0784d45f02a06 DIST gnupg-2.5.12.tar.bz2 8225353 BLAKE2B cab3802d08acf96772071c42949c55e78734447a29d3088b7c08636282cf38f92fcf35ce6ded5df9a18b2725a27500980d1616f5d3850df05f9543a43453d5c0 SHA512 fa0510f24b844e2ee122543421e0ee47415cb5a1599c28abe2ec22830c378b50125e70289fd227bd6ca35bb3d6a40928955f42b44b24f657733b93c64d6d27d8 DIST gnupg-2.5.12.tar.bz2.sig 266 BLAKE2B b52d3f2d3af94061c5210ede10b074d871e9782ae92974a58480e6e0cfa29e5d6622b67b24989bb757e96a0cbb8ff9df2d15b69ecc5b5c531880920f45907b9f SHA512 ff141f5dc30cd81494c8a50f86b673fe9c0fc74d344fb868f922285851929ed863b66fe52e973d0ab869391394e7fe6a0efc83b7b2383f28771a1cd6ca62be3b +DIST gnupg-2.5.13.tar.bz2 8227840 BLAKE2B d898a86d2c13a8daa4dc4ab96376610768710bfa719d4e21d77c97d41e377305aa606df20bab1ac8d9553783e67afe2c42970374f3be19128686a781fcc13f1f SHA512 76f355bae2b600935996a33597577f60e332c274ce72cfff936ef0435b0990b6c811942ad9ec58c2f0e518814b43ff1e301058ef2797b178404d2b3eb91dbaf9 +DIST gnupg-2.5.13.tar.bz2.sig 119 BLAKE2B 12a9a4a6d2a1cc8f38acf64e6c6d975e813a759d4de5ca6755fdc237c54b2497a60f355a2accf75623ea765a9238bfbf3b4bf58844a3d6059880b11deac51f01 SHA512 59a9f07cbc97272b87f43c7aba323616b7bcc6b5217e5a373a75ec24bdfc70e76d137ec4be57012298447fc3e21ff834a8600a8730de0e5539c731151379fffd diff --git a/sdk_container/src/third_party/portage-stable/app-crypt/gnupg/gnupg-2.4.8.ebuild b/sdk_container/src/third_party/portage-stable/app-crypt/gnupg/gnupg-2.4.8-r1.ebuild similarity index 89% rename from sdk_container/src/third_party/portage-stable/app-crypt/gnupg/gnupg-2.4.8.ebuild rename to sdk_container/src/third_party/portage-stable/app-crypt/gnupg/gnupg-2.4.8-r1.ebuild index e160012a42a..65df4661528 100644 --- a/sdk_container/src/third_party/portage-stable/app-crypt/gnupg/gnupg-2.4.8.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-crypt/gnupg/gnupg-2.4.8-r1.ebuild @@ -24,7 +24,7 @@ S="${WORKDIR}/${MY_P}" LICENSE="GPL-3+" SLOT="0" KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" -IUSE="bzip2 doc ldap nls readline selinux +smartcard ssl test +tofu tpm tools usb user-socket wks-server" +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 )" @@ -53,6 +53,9 @@ RDEPEND=" " PDEPEND=" app-crypt/pinentry + alternatives? ( + app-alternatives/gpg[-freepg(-)] + ) " BDEPEND=" virtual/pkgconfig @@ -173,8 +176,15 @@ my_src_install() { use tools && dobin tools/{gpgconf,gpgsplit,gpg-check-pattern} tools/make-dns-cert - dosym gpg /usr/bin/gpg2 - dosym gpgv /usr/bin/gpgv2 + if use alternatives; then + # rename for app-alternatives/gpg + mv "${ED}"/usr/bin/gpg{,-reference} || die + mv "${ED}"/usr/bin/gpgv{,-reference} || die + else + dosym gpg /usr/bin/gpg2 + dosym gpgv /usr/bin/gpgv2 + fi + 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 @@ -194,3 +204,14 @@ my_src_install_all() { 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/gnupg/gnupg-2.4.8-r2.ebuild b/sdk_container/src/third_party/portage-stable/app-crypt/gnupg/gnupg-2.4.8-r2.ebuild new file mode 100644 index 00000000000..654a9c2eb34 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/app-crypt/gnupg/gnupg-2.4.8-r2.ebuild @@ -0,0 +1,218 @@ +# Copyright 1999-2025 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 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-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. +# Note: On each bump, update dep bounds on each version from configure.ac! +DEPEND=" + >=dev-libs/libassuan-2.5.0:= + >=dev-libs/libgcrypt-1.9.1:= + >=dev-libs/libgpg-error-1.46 + >=dev-libs/libksba-1.6.3 + >=dev-libs/npth-1.2 + sys-libs/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 +) + +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 +} + +my_src_configure() { + # Upstream don't support LTO, bug #854222. + filter-lto + + local myconf=( + $(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 + # https://dev.gnupg.org/T7368 + append-cppflags -D_XOPEN_SOURCE=500 + 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=$(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 + + dodir /etc/env.d + echo "CONFIG_PROTECT=/usr/share/gnupg/qualified.txt" >> "${ED}"/etc/env.d/30gnupg || die + + 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/gnupg/gnupg-2.5.13-r1.ebuild b/sdk_container/src/third_party/portage-stable/app-crypt/gnupg/gnupg-2.5.13-r1.ebuild new file mode 100644 index 00000000000..1e9503ba5a7 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/app-crypt/gnupg/gnupg-2.5.13-r1.ebuild @@ -0,0 +1,221 @@ +# Copyright 1999-2025 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 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-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. +# Note: On each bump, update dep bounds on each version from configure.ac! +DEPEND=" + >=dev-libs/libassuan-3.0.0:= + >=dev-libs/libgcrypt-1.11.0:= + >=dev-libs/libgpg-error-1.56 + >=dev-libs/libksba-1.6.3 + >=dev-libs/npth-1.2 + sys-libs/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 +) + +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() { + # Upstream don't support LTO, bug #854222. + filter-lto + + local myconf=( + $(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 + # https://dev.gnupg.org/T7368 + export ac_cv_should_define__xopen_source=yes + 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=$(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 + else + dosym gpg /usr/bin/gpg2 + dosym gpgv /usr/bin/gpgv2 + fi + + 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 + + dodir /etc/env.d + echo "CONFIG_PROTECT=/usr/share/gnupg/qualified.txt" >> "${ED}"/etc/env.d/30gnupg || die + + 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/gnupg/gnupg-2.5.13-r2.ebuild b/sdk_container/src/third_party/portage-stable/app-crypt/gnupg/gnupg-2.5.13-r2.ebuild new file mode 100644 index 00000000000..3757b1bdf08 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/app-crypt/gnupg/gnupg-2.5.13-r2.ebuild @@ -0,0 +1,222 @@ +# Copyright 1999-2025 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 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-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. +# Note: On each bump, update dep bounds on each version from configure.ac! +DEPEND=" + >=dev-libs/libassuan-3.0.0:= + >=dev-libs/libgcrypt-1.11.0:= + >=dev-libs/libgpg-error-1.56 + >=dev-libs/libksba-1.6.3 + >=dev-libs/npth-1.2 + sys-libs/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 +) + +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() { + # Upstream don't support LTO, bug #854222. + filter-lto + + local myconf=( + $(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 + # https://dev.gnupg.org/T7368 + export ac_cv_should_define__xopen_source=yes + 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=$(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 + + dodir /etc/env.d + echo "CONFIG_PROTECT=/usr/share/gnupg/qualified.txt" >> "${ED}"/etc/env.d/30gnupg || die + + 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/gnupg/metadata.xml b/sdk_container/src/third_party/portage-stable/app-crypt/gnupg/metadata.xml index 9cfaddc1cdb..2400ccf1311 100644 --- a/sdk_container/src/third_party/portage-stable/app-crypt/gnupg/metadata.xml +++ b/sdk_container/src/third_party/portage-stable/app-crypt/gnupg/metadata.xml @@ -6,6 +6,9 @@ Gentoo Base System + + Install renamed, for compatibility with app-alternatives/gpg. + Build scdaemon software. Enables usage of OpenPGP cards. For other type of smartcards, try app-crypt/gnupg-pkcs11-scd. diff --git a/sdk_container/src/third_party/portage-stable/app-crypt/gpgme/gpgme-2.0.1.ebuild b/sdk_container/src/third_party/portage-stable/app-crypt/gpgme/gpgme-2.0.1-r1.ebuild similarity index 97% rename from sdk_container/src/third_party/portage-stable/app-crypt/gpgme/gpgme-2.0.1.ebuild rename to sdk_container/src/third_party/portage-stable/app-crypt/gpgme/gpgme-2.0.1-r1.ebuild index f1622679caf..ae4dbf625c1 100644 --- a/sdk_container/src/third_party/portage-stable/app-crypt/gpgme/gpgme-2.0.1.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-crypt/gpgme/gpgme-2.0.1-r1.ebuild @@ -32,7 +32,10 @@ IUSE="common-lisp static-libs test" RESTRICT="!test? ( test )" RDEPEND=" - >=app-crypt/gnupg-2 + || ( + app-alternatives/gpg[reference] + app-alternatives/gpg[freepg(-)] + ) >=dev-libs/libassuan-2.5.3:= >=dev-libs/libgpg-error-1.46-r1:= " diff --git a/sdk_container/src/third_party/portage-stable/app-editors/nano/metadata.xml b/sdk_container/src/third_party/portage-stable/app-editors/nano/metadata.xml index 0e05c7d4c62..babfcbe4e0c 100644 --- a/sdk_container/src/third_party/portage-stable/app-editors/nano/metadata.xml +++ b/sdk_container/src/third_party/portage-stable/app-editors/nano/metadata.xml @@ -5,6 +5,9 @@ base-system@gentoo.org Gentoo Base System + + cpe:/a:gnu:nano + GNU nano - an enhanced clone of the Pico text editor. diff --git a/sdk_container/src/third_party/portage-stable/app-emulation/qemu/Manifest b/sdk_container/src/third_party/portage-stable/app-emulation/qemu/Manifest index 453907f292d..bf999c76a70 100644 --- a/sdk_container/src/third_party/portage-stable/app-emulation/qemu/Manifest +++ b/sdk_container/src/third_party/portage-stable/app-emulation/qemu/Manifest @@ -7,9 +7,11 @@ DIST qemu-10.0.2.tar.xz 135678180 BLAKE2B be4ddf050d2102cefded5b4967222df749ee8a DIST qemu-10.0.3.tar.xz 135736600 BLAKE2B 382800d9a9f5241123ebeb43d8eaa6a4aaf9acae0df7a25f2c7831aa7eeb97014cff29886c53f03ea0a1ac98729b85bad1e4d5634e592a373af84f79a9219adc SHA512 7f37c2df5ac7048fb32f1d89a7c2da0929be9d2f5767bc209ca1e99167f196fb5867fc8b69f915c8c349c58089ce3d7e08c9a3f35a73223abff258b9a5bf3466 DIST qemu-10.0.4.tar.xz 141652160 BLAKE2B 987b69f2d9f2e98a1447c321a00a5c8df7114285c2bfabe7e127d57afb8b1d0b56dc34967be9e161652fd07dc25a0b09135a01758a82973ef819d71a2d5c6748 SHA512 1737124306b293401362ce33b5ce226df237cc577466afdff510b7f8e851e16708c7ec8d282e86dce3d66b54d1ff14876ac448061faf43d59de375b817155a1e DIST qemu-10.0.5.tar.xz 141642600 BLAKE2B bd7abfd5a977cf47862f0a7b26ce4e36c857dd858e0d0def652c00e9186fe476f461005b673bac6031162b5de47d412c1b7faebdbf4456487501f6d4a37f69b7 SHA512 c87948868910f458aeb724ebfe71db10f0ca1e9e0e6b4c4f082c2776d1c8f64c36f65bc5714d4625f6919d4064452f4378a7578273b69db6d4295d90b75fc86f +DIST qemu-10.0.6.tar.xz 141762220 BLAKE2B 89ee1fd339b2ca047023b738415f839d2042cfbdb9305901fecc70142f2d8d208a34562d81e803ddd2438964adb36b7965ca92538f91f98291e97c43b61baa12 SHA512 7d5c2c28c74517909a1dcbf517cf88631241afc24e25e5a5bc8ead2af3c818360e1ce8241cb477deeae528aab3e198ba40a5bb78c6205b28430600c0f2f5294b DIST qemu-10.1.0-docs.tar.xz 2788092 BLAKE2B c9f1138e6eb19966da05b5be6e28640cabf698cb7c4247e0a69b29ed71d462423ba356efc8c0f26a727a58b4adc84edc3eefbff12a35e0c93e475f0ab51e6ff7 SHA512 96d9133d83991014c3ce9a57273a017f45bf29ae3f7029c5b926c8c5fbfd0e8da80dbbecca038b981312cec68b931a0471837a0aebd3e5dbc1648eb49e28ecc9 DIST qemu-10.1.0.tar.xz 141999456 BLAKE2B 025012e73cdd2468b1b0fdef9b34aae41893780cfcad0d52c05e7f67ff7a9969c8c596f006b8a7e6f1b59e39da8fdec07d6f241911c604502755acd26bb750b6 SHA512 20552a524b6b298181df1af7084b470ded3fe8d1505f05011dda3c33cbc3d91f518ce026b44ba1a8b7f34c64ae81afddceda383066f4772a3a2a6333a2638caf DIST qemu-10.1.1.tar.xz 142046220 BLAKE2B 3617898fb4275e1e18f9567e9a9137ad0f3e3e3bc6a1b77301fd59614047757d77a9b810ece2e504ff47c1b98e2b9881a1ff551a4bc356c87c0d5d85f471a59b SHA512 72ca08894fb63c734163a53c6a836a6237de0f9f4ece4570e871bf80bcfba43fb5d4f11715564e0aef7244b7b3c4fe1890d5f10bbb05528b592d25cd95a57dfa +DIST qemu-10.1.2.tar.xz 142050300 BLAKE2B 6e6e27c5de4f70f928a19ef64c00adbcb9723882db3eabd6acd7543f6b3d886db2862cf75ddcec86012c103d6927be464f03e2a3e91873b87cbbcafa0be95671 SHA512 4defbcb78f65ba3d8079466bdb3ab29e26f10129723e045d34901e7d524656e5ff729dc97fb33537febe2596eb0b21a02aadd88007eb5b226e599bd236213263 DIST qemu-9.1.0-docs.tar.xz 2376072 BLAKE2B 31d13133b3a2e21a7d9b5af028407610ae8f2fa61dd296fc35e57fc12eb66cfd1a39ec5e3b5a3852095d10a388f424f8a38417b3ab58ca30d0817ece779328cf SHA512 5b705b577daad6aa010d5c713db9dc314114334b89901840ebcecc9032595a969f5ad9054e42b36b2be5ef9f5d6dc1159841ff46dbb08314b5c48491aa631040 DIST qemu-9.1.3.tar.xz 132492084 BLAKE2B 268c8fb91dd5fc4e393a46a578537338861e5d2a92c381517447c6c2fe67604ed9aacc96371c864dc7f4a800cc9b9f94118d17c5dcc24f3fac5be0a18ca553e5 SHA512 e7b938e72eb4a8a4a6680ce3b282a4e5cbd1ad30003bed959e51ea2621acea7434b4366ef6559e3622fac8865ad212702f393ba7698be38cf2fc8f264b951318 DIST qemu-9.2.0-docs.tar.xz 2431076 BLAKE2B 420148b9d7cafbdc9aea21b0d0a84a53ca0d17fb99fc34ae4c0786fa7d4ce40838f4b3173508b90742d6dfbfd4b58dda25b2e5cd1394241b0b56a64fe5705d9b SHA512 88816e326e9eac9acf0a1c73e677552845d6885e220b55e795241c40d2c1bd1b1994a22e56f95046e420225e0b7dc839d459f1c1e5318c8c36392727a86b3008 diff --git a/sdk_container/src/third_party/portage-stable/app-emulation/qemu/files/qemu-10.1.2-fix_passt.patch b/sdk_container/src/third_party/portage-stable/app-emulation/qemu/files/qemu-10.1.2-fix_passt.patch new file mode 100644 index 00000000000..9af9454eaf8 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/app-emulation/qemu/files/qemu-10.1.2-fix_passt.patch @@ -0,0 +1,18 @@ +see https://bugs.gentoo.org/964165, patch sent to qemu-devel ml +passt needs gio but not gdbus-codegen. Make gdbus-codegen optional, +dbus_display which requires it will still fail as expected. +--- a/meson.build ++++ b/meson.build +@@ -1126,8 +1126,7 @@ if not get_option('gio').auto() or have_system + gio = not_found + endif + if gio.found() +- gdbus_codegen = find_program('gdbus-codegen', +- required: get_option('gio')) ++ gdbus_codegen = find_program('gdbus-codegen', required: false) + gio_unix = dependency('gio-unix-2.0', required: get_option('gio'), + method: 'pkg-config') + gio = declare_dependency(dependencies: [gio, gio_unix], +-- +2.51.0 + diff --git a/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-10.0.0.ebuild b/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-10.0.0.ebuild index e7bd8508188..e26552f6a5e 100644 --- a/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-10.0.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-10.0.0.ebuild @@ -276,7 +276,7 @@ PPC_FIRMWARE_DEPEND=" # See bug #913084 for pip dep BDEPEND=" - $(python_gen_impl_dep) + ${PYTHON_DEPS} dev-python/distlib[${PYTHON_USEDEP}] dev-lang/perl >=dev-build/meson-0.63.0 diff --git a/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-10.0.2-r50.ebuild b/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-10.0.2-r50.ebuild index 31fc585a0b5..5f10bf15026 100644 --- a/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-10.0.2-r50.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-10.0.2-r50.ebuild @@ -290,7 +290,7 @@ PPC_FIRMWARE_DEPEND=" # See bug #913084 for pip dep BDEPEND=" - $(python_gen_impl_dep) + ${PYTHON_DEPS} dev-python/distlib[${PYTHON_USEDEP}] dev-lang/perl >=dev-build/meson-0.63.0 diff --git a/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-10.0.2.ebuild b/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-10.0.2.ebuild index bdcf47772e2..174e5d24269 100644 --- a/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-10.0.2.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-10.0.2.ebuild @@ -276,7 +276,7 @@ PPC_FIRMWARE_DEPEND=" # See bug #913084 for pip dep BDEPEND=" - $(python_gen_impl_dep) + ${PYTHON_DEPS} dev-python/distlib[${PYTHON_USEDEP}] dev-lang/perl >=dev-build/meson-0.63.0 diff --git a/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-10.0.3.ebuild b/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-10.0.3.ebuild index 31fc585a0b5..5f10bf15026 100644 --- a/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-10.0.3.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-10.0.3.ebuild @@ -290,7 +290,7 @@ PPC_FIRMWARE_DEPEND=" # See bug #913084 for pip dep BDEPEND=" - $(python_gen_impl_dep) + ${PYTHON_DEPS} dev-python/distlib[${PYTHON_USEDEP}] dev-lang/perl >=dev-build/meson-0.63.0 diff --git a/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-10.0.4.ebuild b/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-10.0.4.ebuild index 31fc585a0b5..5f10bf15026 100644 --- a/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-10.0.4.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-10.0.4.ebuild @@ -290,7 +290,7 @@ PPC_FIRMWARE_DEPEND=" # See bug #913084 for pip dep BDEPEND=" - $(python_gen_impl_dep) + ${PYTHON_DEPS} dev-python/distlib[${PYTHON_USEDEP}] dev-lang/perl >=dev-build/meson-0.63.0 diff --git a/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-10.0.5.ebuild b/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-10.0.5.ebuild index 20780960d2e..29db7ab9be1 100644 --- a/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-10.0.5.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-10.0.5.ebuild @@ -44,7 +44,7 @@ else fi S="${WORKDIR}/${MY_P}" - [[ "${PV}" != *_rc* ]] && KEYWORDS="amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv x86" + [[ "${PV}" != *_rc* ]] && KEYWORDS="amd64 ~arm ~arm64 ~loong ~ppc ppc64 ~riscv x86" fi DESCRIPTION="QEMU + Kernel-based Virtual Machine userland tools" @@ -290,7 +290,7 @@ PPC_FIRMWARE_DEPEND=" # See bug #913084 for pip dep BDEPEND=" - $(python_gen_impl_dep) + ${PYTHON_DEPS} dev-python/distlib[${PYTHON_USEDEP}] dev-lang/perl >=dev-build/meson-0.63.0 diff --git a/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-10.0.6.ebuild b/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-10.0.6.ebuild new file mode 100644 index 00000000000..5f10bf15026 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-10.0.6.ebuild @@ -0,0 +1,1013 @@ +# Copyright 1999-2025 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-qemu-docs +# Set to 1 if prebuilt, 0 if not +# (the construct below is to allow overriding from env for script) +QEMU_DOCS_PREBUILT=${QEMU_DOCS_PREBUILT:-1} +QEMU_DOCS_PREBUILT_DEV=sam +QEMU_DOCS_VERSION=$(ver_cut 1-2).0 +# Default to generating docs (inc. man pages) if no prebuilt; overridden later +# bug #830088 +QEMU_DOC_USEFLAG="+doc" + +PYTHON_COMPAT=( python3_{11..13} ) +PYTHON_REQ_USE="ensurepip(-),ncurses,readline" + +inherit eapi9-ver flag-o-matic linux-info toolchain-funcs python-r1 udev fcaps \ + readme.gentoo-r1 pax-utils xdg-utils + +if [[ ${PV} == *9999* ]]; then + QEMU_DOCS_PREBUILT=0 + + EGIT_REPO_URI="https://gitlab.com/qemu-project/qemu.git/" + EGIT_SUBMODULES=() + inherit git-r3 + declare -A SUBPROJECTS=( + [keycodemapdb]="f5772a62ec52591ff6870b7e8ef32482371f22c6" + [berkeley-softfloat-3]="b64af41c3276f97f0e181920400ee056b9c88037" + [berkeley-testfloat-3]="e7af9751d9f9fd3b47911f51a5cfd08af256a9ab" + ) + + for proj in "${!SUBPROJECTS[@]}"; do + c=${SUBPROJECTS[${proj}]} + SRC_URI+=" https://gitlab.com/qemu-project/${proj}/-/archive/${c}/${proj}-${c}.tar.bz2" + done +else + MY_P="${PN}-${PV/_rc/-rc}" + SRC_URI="https://download.qemu.org/${MY_P}.tar.xz" + + if [[ ${QEMU_DOCS_PREBUILT} == 1 ]] ; then + SRC_URI+=" !doc? ( https://dev.gentoo.org/~${QEMU_DOCS_PREBUILT_DEV}/distfiles/${CATEGORY}/${PN}/${PN}-${QEMU_DOCS_VERSION}-docs.tar.xz )" + fi + + S="${WORKDIR}/${MY_P}" + [[ "${PV}" != *_rc* ]] && KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86" +fi + +DESCRIPTION="QEMU + Kernel-based Virtual Machine userland tools" +HOMEPAGE="https://www.qemu.org https://www.linux-kvm.org" + +LICENSE="GPL-2 LGPL-2 BSD-2" +SLOT="0" + +[[ ${QEMU_DOCS_PREBUILT} == 1 ]] && QEMU_DOC_USEFLAG="doc" + +IUSE="accessibility +aio alsa bpf bzip2 capstone +curl debug ${QEMU_DOC_USEFLAG} + +fdt fuse glusterfs +gnutls gtk infiniband iscsi io-uring + jack jemalloc +jpeg keyutils + lzo multipath + ncurses nfs nls numa opengl +oss pam +pin-upstream-blobs pipewire + plugins +png pulseaudio python rbd sasl +seccomp sdl sdl-image selinux + +slirp + smartcard snappy spice ssh static-user systemtap test udev usb + usbredir vde +vhost-net virgl virtfs +vnc vte wayland X xattr xdp xen + zstd" + +COMMON_TARGETS=" + aarch64 + alpha + arm + hppa + i386 + loongarch64 + m68k + microblaze + microblazeel + mips + mips64 + mips64el + mipsel + or1k + ppc + ppc64 + riscv32 + riscv64 + s390x + sh4 + sh4eb + sparc + sparc64 + x86_64 + xtensa + xtensaeb +" +IUSE_SOFTMMU_TARGETS=" + ${COMMON_TARGETS} + avr + rx + tricore +" +IUSE_USER_TARGETS=" + ${COMMON_TARGETS} + aarch64_be + armeb + hexagon + mipsn32 + mipsn32el + ppc64le + sparc32plus +" + +use_softmmu_targets=$(printf ' qemu_softmmu_targets_%s' ${IUSE_SOFTMMU_TARGETS}) +use_user_targets=$(printf ' qemu_user_targets_%s' ${IUSE_USER_TARGETS}) +IUSE+=" ${use_softmmu_targets} ${use_user_targets}" + +RESTRICT="!test? ( test )" + +# Allow no targets to be built so that people can get a tools-only build. +# Block USE flag configurations known to not work. +REQUIRED_USE=" + ${PYTHON_REQUIRED_USE} + qemu_softmmu_targets_arm? ( fdt ) + qemu_softmmu_targets_microblaze? ( fdt ) + qemu_softmmu_targets_mips64el? ( fdt ) + qemu_softmmu_targets_ppc64? ( fdt ) + qemu_softmmu_targets_ppc? ( fdt ) + qemu_softmmu_targets_riscv32? ( fdt ) + qemu_softmmu_targets_riscv64? ( fdt ) + qemu_softmmu_targets_x86_64? ( fdt ) + sdl-image? ( sdl ) + static-user? ( !plugins ) + virgl? ( opengl ) + virtfs? ( xattr ) + vnc? ( gnutls ) + vte? ( gtk ) + multipath? ( udev ) + plugins? ( !static-user ) + xdp? ( bpf ) +" +for smname in ${IUSE_SOFTMMU_TARGETS} ; do + REQUIRED_USE+=" qemu_softmmu_targets_${smname}? ( kernel_linux? ( seccomp ) )" +done + +# Dependencies required for qemu tools (qemu-nbd, qemu-img, qemu-io, ...) +# and user/softmmu targets (qemu-*, qemu-system-*). +# +# Yep, you need both libcap and libcap-ng since virtfs only uses libcap. +# +# The attr lib isn't always linked in (although the USE flag is always +# respected). This is because qemu supports using the C library's API +# when available rather than always using the external library. +ALL_DEPEND=" + dev-libs/glib:2[static-libs(+)] + sys-libs/zlib[static-libs(+)] + python? ( ${PYTHON_DEPS} ) + systemtap? ( dev-debug/systemtap ) + xattr? ( sys-apps/attr[static-libs(+)] ) +" + +# Dependencies required for qemu tools (qemu-nbd, qemu-img, qemu-io, ...) +# softmmu targets (qemu-system-*). +SOFTMMU_TOOLS_DEPEND=" + >=x11-libs/pixman-0.28.0[static-libs(+)] + accessibility? ( + app-accessibility/brltty[api] + app-accessibility/brltty[static-libs(+)] + ) + aio? ( dev-libs/libaio[static-libs(+)] ) + alsa? ( >=media-libs/alsa-lib-1.0.13 ) + bpf? ( >=dev-libs/libbpf-1.1.0:= ) + bzip2? ( app-arch/bzip2[static-libs(+)] ) + capstone? ( dev-libs/capstone:=[static-libs(+)] ) + curl? ( >=net-misc/curl-7.15.4[static-libs(+)] ) + fdt? ( >=sys-apps/dtc-1.5.1[static-libs(+)] ) + fuse? ( >=sys-fs/fuse-3.1:3=[static-libs(+)] ) + glusterfs? ( >=sys-cluster/glusterfs-3.4.0[static-libs(+)] ) + gnutls? ( + >=net-libs/gnutls-3.0:=[static-libs(+)] + dev-libs/nettle:=[static-libs(+)] + ) + gtk? ( + x11-libs/gtk+:3[wayland?,X?] + vte? ( x11-libs/vte:2.91 ) + ) + infiniband? ( sys-cluster/rdma-core[static-libs(+)] ) + iscsi? ( net-libs/libiscsi ) + io-uring? ( sys-libs/liburing:=[static-libs(+)] ) + jack? ( virtual/jack ) + jemalloc? ( dev-libs/jemalloc ) + jpeg? ( media-libs/libjpeg-turbo:=[static-libs(+)] ) + kernel_linux? ( sys-libs/libcap-ng[static-libs(+)] ) + keyutils? ( sys-apps/keyutils[static-libs(+)] ) + lzo? ( dev-libs/lzo:2[static-libs(+)] ) + multipath? ( sys-fs/multipath-tools ) + ncurses? ( + sys-libs/ncurses:=[unicode(+)] + sys-libs/ncurses:=[static-libs(+)] + ) + nfs? ( >=net-fs/libnfs-1.9.3:=[static-libs(+)] ) + numa? ( sys-process/numactl[static-libs(+)] ) + opengl? ( + virtual/opengl + media-libs/libepoxy[static-libs(+)] + media-libs/mesa[static-libs(+)] + media-libs/mesa[egl(+),gbm(+)] + ) + pam? ( sys-libs/pam ) + pipewire? ( >=media-video/pipewire-0.3.60 ) + png? ( >=media-libs/libpng-1.6.34:=[static-libs(+)] ) + pulseaudio? ( media-libs/libpulse ) + rbd? ( sys-cluster/ceph ) + sasl? ( dev-libs/cyrus-sasl[static-libs(+)] ) + sdl? ( + media-libs/libsdl2[video] + media-libs/libsdl2[static-libs(+)] + ) + sdl-image? ( media-libs/sdl2-image[static-libs(+)] ) + seccomp? ( >=sys-libs/libseccomp-2.1.0[static-libs(+)] ) + slirp? ( net-libs/libslirp[static-libs(+)] ) + smartcard? ( >=app-emulation/libcacard-2.5.0[static-libs(+)] ) + snappy? ( app-arch/snappy:= ) + spice? ( + >=app-emulation/spice-protocol-0.14.0 + >=app-emulation/spice-0.14.0[static-libs(+)] + ) + ssh? ( >=net-libs/libssh-0.8.6[static-libs(+)] ) + udev? ( virtual/libudev:= ) + usb? ( >=virtual/libusb-1-r2:1[static-libs(+)] ) + usbredir? ( >=sys-apps/usbredir-0.6[static-libs(+)] ) + vde? ( net-misc/vde[static-libs(+)] ) + virgl? ( media-libs/virglrenderer[static-libs(+)] ) + virtfs? ( sys-libs/libcap ) + xdp? ( net-libs/xdp-tools ) + xen? ( app-emulation/xen-tools:= ) + zstd? ( >=app-arch/zstd-1.4.0[static-libs(+)] ) +" + +# +# With USE=+pin-upstream-blobs we pin firmware versions to known good +# version in order to minimize the frequency of disruptive changes. This +# avoids unnecessary frustration on user side because changing the firmware +# version can break resume of hibernated guest, inhibit live migrations, +# and might have other unwanted consequences. For now, let us try to +# synchronize firmware blobs with the ones bundled in upstream qemu. Simply +# check the upstream git repository for any changes, for example: +# https://github.com/qemu/qemu/tree/v10.0.2/roms for the 10.0.2 release. +# +# When changing pinned firmware versions +# - create a separate ebuild with revision -r50 +# - update the FIRMWARE_ABI_VERSION to the current package version +# + +FIRMWARE_ABI_VERSION="10.0.2" +EDK2_OVMF_VERSION="202408" +SEABIOS_VERSION="1.16.3" + +X86_FIRMWARE_DEPEND=" + pin-upstream-blobs? ( + ~sys-firmware/edk2-bin-${EDK2_OVMF_VERSION} + ~sys-firmware/ipxe-1.21.1_p20230601[binary,qemu] + ~sys-firmware/seabios-bin-${SEABIOS_VERSION} + ~sys-firmware/sgabios-0.1_pre10[binary] + ) + !pin-upstream-blobs? ( + || ( + >=sys-firmware/edk2-${EDK2_OVMF_VERSION} + >=sys-firmware/edk2-bin-${EDK2_OVMF_VERSION} + ) + sys-firmware/ipxe[qemu] + || ( + >=sys-firmware/seabios-${SEABIOS_VERSION}[seavgabios] + >=sys-firmware/seabios-bin-${SEABIOS_VERSION} + ) + sys-firmware/sgabios + ) +" +PPC_FIRMWARE_DEPEND=" + pin-upstream-blobs? ( + ~sys-firmware/seabios-bin-${SEABIOS_VERSION} + ) + !pin-upstream-blobs? ( + || ( + >=sys-firmware/seabios-${SEABIOS_VERSION}[seavgabios] + >=sys-firmware/seabios-bin-${SEABIOS_VERSION} + ) + ) +" + +# See bug #913084 for pip dep +BDEPEND=" + ${PYTHON_DEPS} + dev-python/distlib[${PYTHON_USEDEP}] + dev-lang/perl + >=dev-build/meson-0.63.0 + app-alternatives/ninja + virtual/pkgconfig + doc? ( + >=dev-python/sphinx-1.6.0[${PYTHON_USEDEP}] + dev-python/sphinx-rtd-theme[${PYTHON_USEDEP}] + ) + gtk? ( nls? ( sys-devel/gettext ) ) + test? ( + app-alternatives/bc + dev-libs/glib[utils] + dev-python/pycotap[${PYTHON_USEDEP}] + ) +" +CDEPEND=" + ${ALL_DEPEND//\[static-libs(+)]} + ${SOFTMMU_TOOLS_DEPEND//\[static-libs(+)]} + qemu_softmmu_targets_i386? ( ${X86_FIRMWARE_DEPEND} ) + qemu_softmmu_targets_x86_64? ( ${X86_FIRMWARE_DEPEND} ) + qemu_softmmu_targets_ppc? ( ${PPC_FIRMWARE_DEPEND} ) + qemu_softmmu_targets_ppc64? ( ${PPC_FIRMWARE_DEPEND} ) +" +DEPEND=" + ${CDEPEND} + kernel_linux? ( >=sys-kernel/linux-headers-2.6.35 ) + static-user? ( ${ALL_DEPEND} ) +" +RDEPEND=" + ${CDEPEND} + acct-group/kvm + selinux? ( + sec-policy/selinux-qemu + sys-libs/libselinux + ) +" + +PATCHES=( + "${FILESDIR}"/${PN}-9.0.0-disable-keymap.patch + "${FILESDIR}"/${PN}-9.2.0-capstone-include-path.patch + "${FILESDIR}"/${PN}-8.1.0-skip-tests.patch + "${FILESDIR}"/${PN}-8.1.0-find-sphinx.patch + "${FILESDIR}"/${PN}-7.2.16-optionrom-pass-Wl-no-error-rwx-segments.patch +) + +QA_PREBUILT=" + usr/share/qemu/hppa-firmware.img + usr/share/qemu/hppa-firmware64.img + usr/share/qemu/openbios-ppc + usr/share/qemu/openbios-sparc64 + usr/share/qemu/openbios-sparc32 + usr/share/qemu/opensbi-riscv64-generic-fw_dynamic.elf + usr/share/qemu/opensbi-riscv32-generic-fw_dynamic.elf + usr/share/qemu/palcode-clipper + usr/share/qemu/s390-ccw.img + usr/share/qemu/s390-netboot.img + usr/share/qemu/u-boot.e500 +" + +QA_WX_LOAD=" + usr/bin/qemu-i386 + usr/bin/qemu-x86_64 + usr/bin/qemu-alpha + usr/bin/qemu-arm + usr/bin/qemu-cris + usr/bin/qemu-m68k + usr/bin/qemu-microblaze + usr/bin/qemu-microblazeel + usr/bin/qemu-mips + usr/bin/qemu-mipsel + usr/bin/qemu-or1k + usr/bin/qemu-ppc + usr/bin/qemu-ppc64 + usr/bin/qemu-sh4 + usr/bin/qemu-sh4eb + usr/bin/qemu-sparc + usr/bin/qemu-sparc64 + usr/bin/qemu-armeb + usr/bin/qemu-sparc32plus + usr/bin/qemu-s390x + usr/bin/qemu-unicore32 +" + +DOC_CONTENTS="If you don't have kvm compiled into the kernel, make sure you have the +kernel module loaded before running kvm. The easiest way to ensure that the +kernel module is loaded is to load it on boot. + For AMD CPUs the module is called 'kvm-amd'. + For Intel CPUs the module is called 'kvm-intel'. +Please review /etc/conf.d/modules for how to load these. + +Make sure your user is in the 'kvm' group. Just run + # gpasswd -a kvm +then have re-login. + +For brand new installs, the default permissions on /dev/kvm might not let +you access it. You can tell udev to reset ownership/perms: + # udevadm trigger -c add /dev/kvm + +If you want to register binfmt handlers for qemu user targets: +For openrc: + # rc-update add qemu-binfmt +For systemd: + # ln -s /usr/share/qemu/binfmt.d/qemu.conf /etc/binfmt.d/qemu.conf" + +pkg_pretend() { + if use kernel_linux && kernel_is lt 2 6 25; then + eerror "This version of KVM requires a host kernel of 2.6.25 or higher." + elif use kernel_linux; then + if ! linux_config_exists; then + eerror "Unable to check your kernel for KVM support" + else + CONFIG_CHECK="~KVM ~TUN ~BRIDGE" + ERROR_KVM="You must enable KVM in your kernel to continue" + ERROR_KVM_AMD="If you have an AMD CPU, you must enable KVM_AMD in" + ERROR_KVM_AMD+=" your kernel configuration." + ERROR_KVM_INTEL="If you have an Intel CPU, you must enable" + ERROR_KVM_INTEL+=" KVM_INTEL in your kernel configuration." + ERROR_TUN="You will need the Universal TUN/TAP driver compiled" + ERROR_TUN+=" into your kernel or loaded as a module to use the" + ERROR_TUN+=" virtual network device if using -net tap." + ERROR_BRIDGE="You will also need support for 802.1d" + ERROR_BRIDGE+=" Ethernet Bridging for some network configurations." + use vhost-net && CONFIG_CHECK+=" ~VHOST_NET" + ERROR_VHOST_NET="You must enable VHOST_NET to have vhost-net" + ERROR_VHOST_NET+=" support" + use test && CONFIG_CHECK+=" IP_MULTICAST" + ERROR_IP_MULTICAST="Test suite requires IP_MULTICAST" + + if use amd64 || use x86 || use amd64-linux || use x86-linux; then + if grep -q AuthenticAMD /proc/cpuinfo; then + CONFIG_CHECK+=" ~KVM_AMD" + elif grep -q GenuineIntel /proc/cpuinfo; then + CONFIG_CHECK+=" ~KVM_INTEL" + fi + fi + + use python && CONFIG_CHECK+=" ~DEBUG_FS" + ERROR_DEBUG_FS="debugFS support required for kvm_stat" + + # Now do the actual checks setup above + check_extra_config + fi + fi + + if grep -qs '/usr/bin/qemu-kvm' "${EROOT}"/etc/libvirt/qemu/*.xml; then + eerror "The kvm/qemu-kvm wrappers no longer exist, but your libvirt" + eerror "instances are still pointing to it. Please update your" + eerror "configs in /etc/libvirt/qemu/ to use the -enable-kvm flag" + eerror "and the right system binary (e.g. qemu-system-x86_64)." + die "update your virt configs to not use qemu-kvm" + fi +} + +# Sanity check to make sure target lists are kept up-to-date. +check_targets() { + local var=$1 mak=$2 + local detected sorted + + pushd "${S}"/configs/targets/ >/dev/null || die + + # Force C locale until glibc is updated. #564936 + detected=$(echo $(printf '%s\n' *-${mak}.mak | sed "s:-${mak}.mak::" | LC_COLLATE=C sort -u)) + sorted=$(echo $(printf '%s\n' ${!var} | LC_COLLATE=C sort -u)) + if [[ ${sorted} != "${detected}" ]] ; then + eerror "The ebuild needs to be kept in sync." + eerror "${var}: ${sorted}" + eerror "$(printf '%-*s' ${#var} configure): ${detected}" + die "sync ${var} to the list of targets" + fi + + popd >/dev/null +} + +src_unpack() { + if [[ ${PV} == 9999 ]] ; then + git-r3_src_unpack + for file in ${A}; do + unpack "${file}" + done + cd "${WORKDIR}" || die + for proj in "${!SUBPROJECTS[@]}"; do + mv "${proj}-${SUBPROJECTS[${proj}]}" "${S}/subprojects/${proj}" || die + done + cd "${S}" || die + meson subprojects packagefiles --apply || die + else + default + fi +} + +src_prepare() { + check_targets IUSE_SOFTMMU_TARGETS softmmu + check_targets IUSE_USER_TARGETS linux-user + + default + + # Use correct toolchain to fix cross-compiling + tc-export AR AS LD NM OBJCOPY PKG_CONFIG RANLIB STRINGS + export WINDRES=${CHOST}-windres + + # defang automagic dependencies + use X || append-flags -DGENTOO_GTK_HIDE_X11 + use wayland || append-flags -DGENTOO_GTK_HIDE_WAYLAND + + # Workaround for bug #938302 + if use systemtap && has_version "dev-debug/systemtap[-dtrace-symlink(+)]" ; then + cat >> "${S}"/configs/meson/linux.txt <<-EOF || die + [binaries] + dtrace='stap-dtrace' + EOF + fi + + # Verbose builds + MAKEOPTS+=" V=1" + + # Remove bundled modules + rm -r roms/*/ || die +} + +## +# configures qemu based on the build directory and the build type +# we are using. +# +qemu_src_configure() { + debug-print-function ${FUNCNAME} "$@" + + local buildtype=$1 + local builddir="${S}/${buildtype}-build" + + mkdir "${builddir}" || die + + local conf_opts=( + --prefix=/usr + --sysconfdir=/etc + --bindir=/usr/bin + --libdir=/usr/$(get_libdir) + --datadir=/usr/share + --docdir=/usr/share/doc/${PF}/html + --mandir=/usr/share/man + --localstatedir=/var + --disable-bsd-user + --disable-containers # bug #732972 + --disable-guest-agent + --disable-strip + --disable-download + --python="${PYTHON}" + + # bug #746752: TCG interpreter has a few limitations: + # - it does not support FPU + # - it's generally slower on non-self-modifying code + # It's advantage is support for host architectures + # where native codegeneration is not implemented. + # Gentoo has qemu keyworded only on targets with + # native code generation available. Avoid the interpreter. + --disable-tcg-interpreter + + --disable-werror + # We support gnutls/nettle for crypto operations. It is possible + # to use gcrypt when gnutls/nettle are disabled (but not when they + # are enabled), but it's not really worth the hassle. Disable it + # all the time to avoid automatically detecting it. #568856 + --disable-gcrypt + --cc="$(tc-getCC)" + --cxx="$(tc-getCXX)" + --objcc="$(tc-getCC)" + --host-cc="$(tc-getBUILD_CC)" + + $(use_enable alsa) + $(use_enable debug debug-info) + $(use_enable debug debug-tcg) + $(use_enable jack) + $(use_enable nls gettext) + $(use_enable oss) + $(use_enable pipewire) + $(use_enable plugins) + $(use_enable pulseaudio pa) + $(use_enable selinux) + $(use_enable xattr attr) + ) + + # Disable options not used by user targets. This simplifies building + # static user targets (USE=static-user) considerably. + conf_notuser() { + if [[ ${buildtype} == "user" ]] ; then + echo "--disable-${2:-$1}" + else + use_enable "$@" + fi + } + # Enable option only for softmmu build, but not 'user' or 'tools' + conf_softmmu() { + if [[ ${buildtype} == "softmmu" ]] ; then + use_enable "$@" + else + echo "--disable-${2:-$1}" + fi + } + # Enable option only for tools build, but not 'user' or 'softmmu' + conf_tools() { + if [[ ${buildtype} == "tools" ]] ; then + use_enable "$@" + else + echo "--disable-${2:-$1}" + fi + } + # Special case for the malloc flag, because the --disable flag does + # not exist and trying like above will break configuring. + conf_malloc() { + if [[ ! ${buildtype} == "user" ]] ; then + usex "${1}" "--enable-malloc=${1}" "" + fi + } + conf_opts+=( + $(conf_notuser accessibility brlapi) + $(conf_notuser aio linux-aio) + $(conf_softmmu bpf) + $(conf_notuser bzip2) + $(conf_notuser capstone) + $(conf_notuser curl) + $(conf_tools doc docs) + $(conf_notuser fdt) + $(conf_notuser fuse) + $(conf_notuser glusterfs) + $(conf_notuser gnutls) + $(conf_notuser gnutls nettle) + $(conf_notuser gtk) + $(conf_notuser infiniband rdma) + $(conf_notuser iscsi libiscsi) + $(conf_notuser io-uring linux-io-uring) + $(conf_malloc jemalloc) + $(conf_notuser jpeg vnc-jpeg) + $(conf_notuser kernel_linux kvm) + $(conf_notuser keyutils libkeyutils) + $(conf_notuser lzo) + $(conf_notuser multipath mpath) + $(conf_notuser ncurses curses) + $(conf_notuser nfs libnfs) + $(conf_notuser numa) + $(conf_notuser opengl) + $(conf_notuser pam auth-pam) + $(conf_notuser png) + $(conf_notuser rbd) + $(conf_notuser sasl vnc-sasl) + $(conf_notuser sdl) + $(conf_softmmu sdl-image) + $(conf_notuser seccomp) + $(conf_notuser slirp) + $(conf_notuser smartcard) + $(conf_notuser snappy) + $(conf_notuser spice) + $(conf_notuser ssh libssh) + $(conf_notuser udev libudev) + $(conf_notuser usb libusb) + $(conf_notuser usbredir usb-redir) + $(conf_notuser vde) + $(conf_notuser vhost-net) + $(conf_notuser virgl virglrenderer) + $(conf_softmmu virtfs) + $(conf_notuser vnc) + $(conf_notuser vte) + $(conf_softmmu xdp af-xdp) + $(conf_notuser xen) + $(conf_notuser xen xen-pci-passthrough) + # use prebuilt keymaps, bug #759604 + --disable-xkbcommon + $(conf_notuser zstd) + ) + + if [[ ! ${buildtype} == "user" ]] ; then + # audio options + local audio_opts=( + # Note: backend order matters here: #716202 + # We iterate from higher-level to lower level. + $(usex pulseaudio pa "") + $(usev pipewire) + $(usev jack) + $(usev sdl) + $(usev alsa) + $(usev oss) + ) + conf_opts+=( + --audio-drv-list=$(IFS=,; echo "${audio_opts[*]}") + ) + fi + + case ${buildtype} in + user) + conf_opts+=( + --enable-linux-user + --disable-system + --disable-tools + --disable-cap-ng + --disable-seccomp + ) + local static_flag="static-user" + ;; + softmmu) + conf_opts+=( + --disable-linux-user + --enable-system + --disable-tools + --enable-cap-ng + --enable-seccomp + --disable-libcbor + ) + local static_flag="none" + ;; + tools) + conf_opts+=( + --disable-linux-user + --disable-system + --enable-tools + --enable-cap-ng + ) + local static_flag="none" + ;; + esac + + local targets="${buildtype}_targets" + [[ -n ${targets} ]] && conf_opts+=( --target-list="${!targets}" ) + + # Add support for SystemTap + use systemtap && conf_opts+=( --enable-trace-backends="dtrace" ) + + # We always want to attempt to build with PIE support as it results + # in a more secure binary. But it doesn't work with static or if + # the current GCC doesn't have PIE support. + if [[ ${static_flag} != "none" ]] && use ${static_flag}; then + conf_opts+=( --static --disable-pie ) + else + tc-enables-pie && conf_opts+=( --enable-pie ) + fi + + # Meson will not use a cross-file unless cross_prefix is set. + tc-is-cross-compiler && conf_opts+=( --cross-prefix="${CHOST}-" ) + + # Plumb through equivalent of EXTRA_ECONF to allow experiments + # like bug #747928. + conf_opts+=( ${EXTRA_CONF_QEMU} ) + + echo "../configure ${conf_opts[*]}" + cd "${builddir}" + ../configure "${conf_opts[@]}" || die "configure failed" +} + +src_configure() { + local target + + python_setup + + softmmu_targets= softmmu_bins=() + user_targets= user_bins=() + + for target in ${IUSE_SOFTMMU_TARGETS} ; do + if use "qemu_softmmu_targets_${target}"; then + softmmu_targets+=",${target}-softmmu" + softmmu_bins+=( "qemu-system-${target}" ) + fi + done + + for target in ${IUSE_USER_TARGETS} ; do + if use "qemu_user_targets_${target}"; then + user_targets+=",${target}-linux-user" + user_bins+=( "qemu-${target}" ) + fi + done + + softmmu_targets=${softmmu_targets#,} + user_targets=${user_targets#,} + + [[ -n ${softmmu_targets} ]] && qemu_src_configure "softmmu" + [[ -n ${user_targets} ]] && qemu_src_configure "user" + qemu_src_configure "tools" +} + +src_compile() { + if [[ -n ${user_targets} ]]; then + cd "${S}/user-build" || die + default + fi + + if [[ -n ${softmmu_targets} ]]; then + cd "${S}/softmmu-build" || die + default + fi + + cd "${S}/tools-build" || die + default +} + +src_test() { + if [[ -n ${softmmu_targets} ]]; then + cd "${S}/softmmu-build" || die + pax-mark m */qemu-system-* #515550 + emake check + fi +} + +qemu_python_install() { + python_domodule "${S}/python/qemu" + + python_doscript "${S}/scripts/kvm/vmxcap" + python_doscript "${S}/scripts/qmp/qmp-shell" + python_doscript "${S}/scripts/qmp/qemu-ga-client" +} + +# Generate binfmt support files. +# - /etc/init.d/qemu-binfmt script which registers the user handlers (openrc) +# - /usr/share/qemu/binfmt.d/qemu.conf (for use with systemd-binfmt) +generate_initd() { + local out="${T}/qemu-binfmt" + local out_systemd="${T}/qemu.conf" + local d="${T}/binfmt.d" + + einfo "Generating qemu binfmt scripts and configuration files" + + # Generate the debian fragments first. + mkdir -p "${d}" + "${S}"/scripts/qemu-binfmt-conf.sh \ + --debian \ + --exportdir "${d}" \ + --qemu-path "${EPREFIX}/usr/bin" \ + || die + # Then turn the fragments into a shell script we can source. + sed -E -i \ + -e 's:^([^ ]+) (.*)$:\1="\2":' \ + "${d}"/* || die + + # Generate the init.d script by assembling the fragments from above. + local f qcpu package interpreter magic mask + cat "${FILESDIR}"/qemu-binfmt.initd.head >"${out}" || die + for f in "${d}"/qemu-* ; do + source "${f}" + + # Normalize the cpu logic like we do in the init.d for the native cpu. + qcpu=${package#qemu-} + case ${qcpu} in + arm*) qcpu="arm";; + mips*) qcpu="mips";; + ppc*) qcpu="ppc";; + s390*) qcpu="s390";; + sh*) qcpu="sh";; + sparc*) qcpu="sparc";; + esac + + # we use 'printf' here to be portable across 'sh' + # implementations: #679168 + cat <>"${out}" + if [ "\${cpu}" != "${qcpu}" -a -x "${interpreter}" ] ; then + printf '%s\n' ':${package}:M::${magic}:${mask}:${interpreter}:'"\${QEMU_BINFMT_FLAGS}" >/proc/sys/fs/binfmt_misc/register + fi +EOF + + echo ":${package}:M::${magic}:${mask}:${interpreter}:OC" >>"${out_systemd}" + + done + cat "${FILESDIR}"/qemu-binfmt.initd.tail >>"${out}" || die +} + +src_install() { + if [[ -n ${user_targets} ]]; then + cd "${S}/user-build" + emake DESTDIR="${ED}" install + + # Install binfmt handler init script for user targets. + generate_initd + doinitd "${T}/qemu-binfmt" + + # Install binfmt/qemu.conf. + insinto "/usr/share/qemu/binfmt.d" + doins "${T}/qemu.conf" + fi + + if [[ -n ${softmmu_targets} ]]; then + cd "${S}/softmmu-build" + emake DESTDIR="${ED}" install + + # This might not exist if the test failed. #512010 + [[ -e check-report.html ]] && dodoc check-report.html + + if use kernel_linux; then + udev_newrules "${FILESDIR}"/65-kvm.rules-r2 65-kvm.rules + fi + + if use python; then + python_foreach_impl qemu_python_install + fi + fi + + cd "${S}/tools-build" || die + emake DESTDIR="${ED}" install + + # If USE=doc, there'll be newly generated docs which we install instead. + if ! use doc && [[ ${QEMU_DOCS_PREBUILT} == 1 ]] ; then + doman "${WORKDIR}"/${PN}-${QEMU_DOCS_VERSION}-docs/docs/*.[0-8] + fi + + # Disable mprotect on the qemu binaries as they use JITs to be fast #459348 + pushd "${ED}"/usr/bin >/dev/null || die + pax-mark mr "${softmmu_bins[@]}" "${user_bins[@]}" # bug 575594 + popd >/dev/null || die + + # Install config file example for qemu-bridge-helper + insinto "/etc/qemu" + doins "${FILESDIR}/bridge.conf" + + cd "${S}" || die + dodoc MAINTAINERS + newdoc pc-bios/README README.pc-bios + + # Disallow stripping of prebuilt firmware files. + dostrip -x ${QA_PREBUILT} + + if [[ -n ${softmmu_targets} ]]; then + # Remove SeaBIOS since we're using the SeaBIOS packaged one + if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then + dosym ../seabios/bios-256k.bin /usr/share/qemu/bios-256k.bin + fi + + # Remove vgabios since we're using the seavgabios packaged one + rm "${ED}/usr/share/qemu/vgabios.bin" + rm "${ED}/usr/share/qemu/vgabios-cirrus.bin" + rm "${ED}/usr/share/qemu/vgabios-qxl.bin" + rm "${ED}/usr/share/qemu/vgabios-stdvga.bin" + rm "${ED}/usr/share/qemu/vgabios-virtio.bin" + rm "${ED}/usr/share/qemu/vgabios-vmware.bin" + + # PPC/PPC64 loads vgabios-stdvga + if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386 || use qemu_softmmu_targets_ppc || use qemu_softmmu_targets_ppc64; then + dosym ../seavgabios/vgabios-isavga.bin /usr/share/qemu/vgabios.bin + dosym ../seavgabios/vgabios-cirrus.bin /usr/share/qemu/vgabios-cirrus.bin + dosym ../seavgabios/vgabios-qxl.bin /usr/share/qemu/vgabios-qxl.bin + dosym ../seavgabios/vgabios-stdvga.bin /usr/share/qemu/vgabios-stdvga.bin + dosym ../seavgabios/vgabios-virtio.bin /usr/share/qemu/vgabios-virtio.bin + dosym ../seavgabios/vgabios-vmware.bin /usr/share/qemu/vgabios-vmware.bin + fi + + # Remove sgabios since we're using the sgabios packaged one + if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then + dosym ../sgabios/sgabios.bin /usr/share/qemu/sgabios.bin + fi + + # Remove iPXE since we're using the iPXE packaged one + if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then + dosym ../ipxe/8086100e.rom /usr/share/qemu/pxe-e1000.rom + dosym ../ipxe/80861209.rom /usr/share/qemu/pxe-eepro100.rom + dosym ../ipxe/10500940.rom /usr/share/qemu/pxe-ne2k_pci.rom + dosym ../ipxe/10222000.rom /usr/share/qemu/pxe-pcnet.rom + dosym ../ipxe/10ec8139.rom /usr/share/qemu/pxe-rtl8139.rom + dosym ../ipxe/1af41000.rom /usr/share/qemu/pxe-virtio.rom + fi + fi + + DISABLE_AUTOFORMATTING=true + readme.gentoo_create_doc +} + +pkg_postinst() { + if [[ -n ${softmmu_targets} ]] && use kernel_linux; then + udev_reload + fi + + xdg_icon_cache_update + + [[ -z ${EPREFIX} ]] && [[ -f ${EROOT}/usr/libexec/qemu-bridge-helper ]] && \ + fcaps -m u+s cap_net_admin "${EROOT}"/usr/libexec/qemu-bridge-helper + + DISABLE_AUTOFORMATTING=true + readme.gentoo_print_elog + + if use pin-upstream-blobs && ver_replacing -lt ${FIRMWARE_ABI_VERSION}; then + ewarn "This version of qemu pins new versions of firmware blobs:" + + if has_version 'sys-firmware/edk2-bin'; then + ewarn " $(best_version sys-firmware/edk2-bin)" + else + ewarn " $(best_version sys-firmware/edk2)" + fi + + if has_version 'sys-firmware/seabios-bin'; then + ewarn " $(best_version sys-firmware/seabios-bin)" + else + ewarn " $(best_version sys-firmware/seabios)" + fi + + ewarn " $(best_version sys-firmware/ipxe)" + ewarn " $(best_version sys-firmware/sgabios)" + ewarn "This might break resume of hibernated guests (started with a different" + ewarn "firmware version) and live migration to/from qemu versions with different" + ewarn "firmware. Please (cold) restart all running guests. For functional" + ewarn "guest migration ensure that all hosts run at least" + ewarn " app-emulation/qemu-${FIRMWARE_ABI_VERSION}." + fi +} + +pkg_info() { + echo "Using:" + echo " $(best_version app-emulation/spice-protocol)" + + if has_version 'sys-firmware/edk2-bin'; then + echo " $(best_version sys-firmware/edk2-bin)" + else + echo " $(best_version sys-firmware/edk2)" + fi + + if has_version 'sys-firmware/seabios-bin'; then + echo " $(best_version sys-firmware/seabios-bin)" + else + echo " $(best_version sys-firmware/seabios)" + fi + + echo " $(best_version sys-firmware/ipxe)" + echo " $(best_version sys-firmware/sgabios)" +} + +pkg_postrm() { + xdg_icon_cache_update + udev_reload +} diff --git a/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-10.1.0.ebuild b/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-10.1.0.ebuild index 9b0a4a4e86d..906a00598ad 100644 --- a/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-10.1.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-10.1.0.ebuild @@ -291,7 +291,7 @@ PPC_FIRMWARE_DEPEND=" # See bug #913084 for pip dep BDEPEND=" - $(python_gen_impl_dep) + ${PYTHON_DEPS} dev-python/distlib[${PYTHON_USEDEP}] dev-lang/perl >=dev-build/meson-0.63.0 diff --git a/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-10.1.1.ebuild b/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-10.1.1.ebuild index 0a641cc685b..4b3579b0bc4 100644 --- a/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-10.1.1.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-10.1.1.ebuild @@ -291,7 +291,7 @@ PPC_FIRMWARE_DEPEND=" # See bug #913084 for pip dep BDEPEND=" - $(python_gen_impl_dep) + ${PYTHON_DEPS} dev-python/distlib[${PYTHON_USEDEP}] dev-lang/perl >=dev-build/meson-0.63.0 diff --git a/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-10.1.2.ebuild b/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-10.1.2.ebuild new file mode 100644 index 00000000000..15e274e3b24 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-10.1.2.ebuild @@ -0,0 +1,1019 @@ +# Copyright 1999-2025 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-qemu-docs +# Set to 1 if prebuilt, 0 if not +# (the construct below is to allow overriding from env for script) +QEMU_DOCS_PREBUILT=${QEMU_DOCS_PREBUILT:-1} +QEMU_DOCS_PREBUILT_DEV=sam +QEMU_DOCS_VERSION=$(ver_cut 1-2).0 +# Default to generating docs (inc. man pages) if no prebuilt; overridden later +# bug #830088 +QEMU_DOC_USEFLAG="+doc" + +PYTHON_COMPAT=( python3_{11..13} ) +PYTHON_REQ_USE="ensurepip(-),ncurses,readline" + +inherit eapi9-ver flag-o-matic linux-info toolchain-funcs python-r1 udev fcaps \ + readme.gentoo-r1 pax-utils xdg-utils + +if [[ ${PV} == *9999* ]]; then + QEMU_DOCS_PREBUILT=0 + + EGIT_REPO_URI="https://gitlab.com/qemu-project/qemu.git/" + EGIT_SUBMODULES=() + inherit git-r3 + declare -A SUBPROJECTS=( + [keycodemapdb]="f5772a62ec52591ff6870b7e8ef32482371f22c6" + [berkeley-softfloat-3]="b64af41c3276f97f0e181920400ee056b9c88037" + [berkeley-testfloat-3]="e7af9751d9f9fd3b47911f51a5cfd08af256a9ab" + ) + + for proj in "${!SUBPROJECTS[@]}"; do + c=${SUBPROJECTS[${proj}]} + SRC_URI+=" https://gitlab.com/qemu-project/${proj}/-/archive/${c}/${proj}-${c}.tar.bz2" + done +else + MY_P="${PN}-${PV/_rc/-rc}" + SRC_URI="https://download.qemu.org/${MY_P}.tar.xz" + + if [[ ${QEMU_DOCS_PREBUILT} == 1 ]] ; then + SRC_URI+=" !doc? ( https://dev.gentoo.org/~${QEMU_DOCS_PREBUILT_DEV}/distfiles/${CATEGORY}/${PN}/${PN}-${QEMU_DOCS_VERSION}-docs.tar.xz )" + fi + + S="${WORKDIR}/${MY_P}" + [[ "${PV}" != *_rc* ]] && KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86" +fi + +DESCRIPTION="QEMU + Kernel-based Virtual Machine userland tools" +HOMEPAGE="https://www.qemu.org https://www.linux-kvm.org" + +LICENSE="GPL-2 LGPL-2 BSD-2" +SLOT="0" + +[[ ${QEMU_DOCS_PREBUILT} == 1 ]] && QEMU_DOC_USEFLAG="doc" + +IUSE="accessibility +aio alsa bpf bzip2 capstone +curl debug ${QEMU_DOC_USEFLAG} + +fdt fuse glusterfs +gnutls gtk infiniband iscsi io-uring + jack jemalloc +jpeg keyutils + lzo multipath + ncurses nfs nls numa opengl +oss pam passt +pin-upstream-blobs pipewire + plugins +png pulseaudio python rbd sasl +seccomp sdl sdl-image selinux + +slirp + smartcard snappy spice ssh static-user systemtap test udev usb + usbredir valgrind vde +vhost-net virgl virtfs +vnc vte wayland X xattr xdp xen + zstd" + +COMMON_TARGETS=" + aarch64 + alpha + arm + hppa + i386 + loongarch64 + m68k + microblaze + microblazeel + mips + mips64 + mips64el + mipsel + or1k + ppc + ppc64 + riscv32 + riscv64 + s390x + sh4 + sh4eb + sparc + sparc64 + x86_64 + xtensa + xtensaeb +" +IUSE_SOFTMMU_TARGETS=" + ${COMMON_TARGETS} + avr + rx + tricore +" +IUSE_USER_TARGETS=" + ${COMMON_TARGETS} + aarch64_be + armeb + hexagon + mipsn32 + mipsn32el + ppc64le + sparc32plus +" + +use_softmmu_targets=$(printf ' qemu_softmmu_targets_%s' ${IUSE_SOFTMMU_TARGETS}) +use_user_targets=$(printf ' qemu_user_targets_%s' ${IUSE_USER_TARGETS}) +IUSE+=" ${use_softmmu_targets} ${use_user_targets}" + +RESTRICT="!test? ( test )" + +# Allow no targets to be built so that people can get a tools-only build. +# Block USE flag configurations known to not work. +REQUIRED_USE=" + ${PYTHON_REQUIRED_USE} + qemu_softmmu_targets_arm? ( fdt ) + qemu_softmmu_targets_microblaze? ( fdt ) + qemu_softmmu_targets_mips64el? ( fdt ) + qemu_softmmu_targets_ppc64? ( fdt ) + qemu_softmmu_targets_ppc? ( fdt ) + qemu_softmmu_targets_riscv32? ( fdt ) + qemu_softmmu_targets_riscv64? ( fdt ) + qemu_softmmu_targets_x86_64? ( fdt ) + sdl-image? ( sdl ) + static-user? ( !plugins ) + virgl? ( opengl ) + virtfs? ( xattr ) + vnc? ( gnutls ) + vte? ( gtk ) + multipath? ( udev ) + plugins? ( !static-user ) + xdp? ( bpf ) +" +for smname in ${IUSE_SOFTMMU_TARGETS} ; do + REQUIRED_USE+=" qemu_softmmu_targets_${smname}? ( kernel_linux? ( seccomp ) )" +done + +# Dependencies required for qemu tools (qemu-nbd, qemu-img, qemu-io, ...) +# and user/softmmu targets (qemu-*, qemu-system-*). +# +# Yep, you need both libcap and libcap-ng since virtfs only uses libcap. +# +# The attr lib isn't always linked in (although the USE flag is always +# respected). This is because qemu supports using the C library's API +# when available rather than always using the external library. +ALL_DEPEND=" + dev-libs/glib:2[static-libs(+)] + sys-libs/zlib[static-libs(+)] + python? ( ${PYTHON_DEPS} ) + systemtap? ( dev-debug/systemtap ) + xattr? ( sys-apps/attr[static-libs(+)] ) +" + +# Dependencies required for qemu tools (qemu-nbd, qemu-img, qemu-io, ...) +# softmmu targets (qemu-system-*). +SOFTMMU_TOOLS_DEPEND=" + >=x11-libs/pixman-0.28.0[static-libs(+)] + accessibility? ( + app-accessibility/brltty[api] + app-accessibility/brltty[static-libs(+)] + ) + aio? ( dev-libs/libaio[static-libs(+)] ) + alsa? ( >=media-libs/alsa-lib-1.0.13 ) + bpf? ( >=dev-libs/libbpf-1.1.0:= ) + bzip2? ( app-arch/bzip2[static-libs(+)] ) + capstone? ( dev-libs/capstone:=[static-libs(+)] ) + curl? ( >=net-misc/curl-7.15.4[static-libs(+)] ) + fdt? ( >=sys-apps/dtc-1.5.1[static-libs(+)] ) + fuse? ( >=sys-fs/fuse-3.1:3=[static-libs(+)] ) + glusterfs? ( >=sys-cluster/glusterfs-3.4.0[static-libs(+)] ) + gnutls? ( + >=net-libs/gnutls-3.0:=[static-libs(+)] + dev-libs/nettle:=[static-libs(+)] + ) + gtk? ( + x11-libs/gtk+:3[wayland?,X?] + vte? ( x11-libs/vte:2.91 ) + ) + infiniband? ( sys-cluster/rdma-core[static-libs(+)] ) + iscsi? ( net-libs/libiscsi ) + io-uring? ( sys-libs/liburing:=[static-libs(+)] ) + jack? ( virtual/jack ) + jemalloc? ( dev-libs/jemalloc ) + jpeg? ( media-libs/libjpeg-turbo:=[static-libs(+)] ) + kernel_linux? ( sys-libs/libcap-ng[static-libs(+)] ) + keyutils? ( sys-apps/keyutils[static-libs(+)] ) + lzo? ( dev-libs/lzo:2[static-libs(+)] ) + multipath? ( sys-fs/multipath-tools ) + ncurses? ( + sys-libs/ncurses:=[unicode(+)] + sys-libs/ncurses:=[static-libs(+)] + ) + nfs? ( >=net-fs/libnfs-1.9.3:=[static-libs(+)] ) + numa? ( sys-process/numactl[static-libs(+)] ) + opengl? ( + virtual/opengl + media-libs/libepoxy[static-libs(+)] + media-libs/mesa[static-libs(+)] + media-libs/mesa[egl(+),gbm(+)] + ) + pam? ( sys-libs/pam ) + passt? ( net-misc/passt ) + pipewire? ( >=media-video/pipewire-0.3.60 ) + png? ( >=media-libs/libpng-1.6.34:=[static-libs(+)] ) + pulseaudio? ( media-libs/libpulse ) + rbd? ( sys-cluster/ceph ) + sasl? ( dev-libs/cyrus-sasl[static-libs(+)] ) + sdl? ( + media-libs/libsdl2[video] + media-libs/libsdl2[static-libs(+)] + ) + sdl-image? ( media-libs/sdl2-image[static-libs(+)] ) + seccomp? ( >=sys-libs/libseccomp-2.1.0[static-libs(+)] ) + slirp? ( net-libs/libslirp[static-libs(+)] ) + smartcard? ( >=app-emulation/libcacard-2.5.0[static-libs(+)] ) + snappy? ( app-arch/snappy:= ) + spice? ( + >=app-emulation/spice-protocol-0.14.0 + >=app-emulation/spice-0.14.0[static-libs(+)] + ) + ssh? ( >=net-libs/libssh-0.8.6[static-libs(+)] ) + udev? ( virtual/libudev:= ) + usb? ( >=virtual/libusb-1-r2:1[static-libs(+)] ) + usbredir? ( >=sys-apps/usbredir-0.6[static-libs(+)] ) + vde? ( net-misc/vde[static-libs(+)] ) + virgl? ( media-libs/virglrenderer[static-libs(+)] ) + virtfs? ( sys-libs/libcap ) + xdp? ( net-libs/xdp-tools ) + xen? ( app-emulation/xen-tools:= ) + zstd? ( >=app-arch/zstd-1.4.0[static-libs(+)] ) +" + +# +# With USE=+pin-upstream-blobs we pin firmware versions to known good +# version in order to minimize the frequency of disruptive changes. This +# avoids unnecessary frustration on user side because changing the firmware +# version can break resume of hibernated guest, inhibit live migrations, +# and might have other unwanted consequences. For now, let us try to +# synchronize firmware blobs with the ones bundled in upstream qemu. Simply +# check the upstream git repository for any changes, for example: +# https://github.com/qemu/qemu/tree/v10.0.2/roms for the 10.0.2 release. +# +# When changing pinned firmware versions +# - create a separate ebuild with revision -r50 +# - update the FIRMWARE_ABI_VERSION to the current package version +# + +FIRMWARE_ABI_VERSION="10.0.2" +EDK2_OVMF_VERSION="202408" +SEABIOS_VERSION="1.16.3" + +X86_FIRMWARE_DEPEND=" + pin-upstream-blobs? ( + ~sys-firmware/edk2-bin-${EDK2_OVMF_VERSION} + ~sys-firmware/ipxe-1.21.1_p20230601[binary,qemu] + ~sys-firmware/seabios-bin-${SEABIOS_VERSION} + ~sys-firmware/sgabios-0.1_pre10[binary] + ) + !pin-upstream-blobs? ( + || ( + >=sys-firmware/edk2-${EDK2_OVMF_VERSION} + >=sys-firmware/edk2-bin-${EDK2_OVMF_VERSION} + ) + sys-firmware/ipxe[qemu] + || ( + >=sys-firmware/seabios-${SEABIOS_VERSION}[seavgabios] + >=sys-firmware/seabios-bin-${SEABIOS_VERSION} + ) + sys-firmware/sgabios + ) +" +PPC_FIRMWARE_DEPEND=" + pin-upstream-blobs? ( + ~sys-firmware/seabios-bin-${SEABIOS_VERSION} + ) + !pin-upstream-blobs? ( + || ( + >=sys-firmware/seabios-${SEABIOS_VERSION}[seavgabios] + >=sys-firmware/seabios-bin-${SEABIOS_VERSION} + ) + ) +" + +# See bug #913084 for pip dep +BDEPEND=" + ${PYTHON_DEPS} + dev-python/distlib[${PYTHON_USEDEP}] + dev-lang/perl + >=dev-build/meson-0.63.0 + app-alternatives/ninja + virtual/pkgconfig + doc? ( + >=dev-python/sphinx-1.6.0[${PYTHON_USEDEP}] + dev-python/sphinx-rtd-theme[${PYTHON_USEDEP}] + ) + gtk? ( nls? ( sys-devel/gettext ) ) + test? ( + app-alternatives/bc + dev-libs/glib[utils] + dev-python/pycotap[${PYTHON_USEDEP}] + ) +" +CDEPEND=" + ${ALL_DEPEND//\[static-libs(+)]} + ${SOFTMMU_TOOLS_DEPEND//\[static-libs(+)]} + qemu_softmmu_targets_i386? ( ${X86_FIRMWARE_DEPEND} ) + qemu_softmmu_targets_x86_64? ( ${X86_FIRMWARE_DEPEND} ) + qemu_softmmu_targets_ppc? ( ${PPC_FIRMWARE_DEPEND} ) + qemu_softmmu_targets_ppc64? ( ${PPC_FIRMWARE_DEPEND} ) +" +DEPEND=" + ${CDEPEND} + kernel_linux? ( >=sys-kernel/linux-headers-2.6.35 ) + static-user? ( ${ALL_DEPEND} ) + valgrind? ( dev-debug/valgrind ) +" +RDEPEND=" + ${CDEPEND} + acct-group/kvm + selinux? ( + sec-policy/selinux-qemu + sys-libs/libselinux + ) +" + +PATCHES=( + "${FILESDIR}"/${PN}-10.1.2-fix_passt.patch + "${FILESDIR}"/${PN}-9.0.0-disable-keymap.patch + "${FILESDIR}"/${PN}-9.2.0-capstone-include-path.patch + "${FILESDIR}"/${PN}-8.1.0-skip-tests.patch + "${FILESDIR}"/${PN}-8.1.0-find-sphinx.patch + "${FILESDIR}"/${PN}-7.2.16-optionrom-pass-Wl-no-error-rwx-segments.patch +) + +QA_PREBUILT=" + usr/share/qemu/hppa-firmware.img + usr/share/qemu/hppa-firmware64.img + usr/share/qemu/openbios-ppc + usr/share/qemu/openbios-sparc64 + usr/share/qemu/openbios-sparc32 + usr/share/qemu/opensbi-riscv64-generic-fw_dynamic.elf + usr/share/qemu/opensbi-riscv32-generic-fw_dynamic.elf + usr/share/qemu/palcode-clipper + usr/share/qemu/s390-ccw.img + usr/share/qemu/s390-netboot.img + usr/share/qemu/u-boot.e500 +" + +QA_WX_LOAD=" + usr/bin/qemu-i386 + usr/bin/qemu-x86_64 + usr/bin/qemu-alpha + usr/bin/qemu-arm + usr/bin/qemu-cris + usr/bin/qemu-m68k + usr/bin/qemu-microblaze + usr/bin/qemu-microblazeel + usr/bin/qemu-mips + usr/bin/qemu-mipsel + usr/bin/qemu-or1k + usr/bin/qemu-ppc + usr/bin/qemu-ppc64 + usr/bin/qemu-sh4 + usr/bin/qemu-sh4eb + usr/bin/qemu-sparc + usr/bin/qemu-sparc64 + usr/bin/qemu-armeb + usr/bin/qemu-sparc32plus + usr/bin/qemu-s390x + usr/bin/qemu-unicore32 +" + +DOC_CONTENTS="If you don't have kvm compiled into the kernel, make sure you have the +kernel module loaded before running kvm. The easiest way to ensure that the +kernel module is loaded is to load it on boot. + For AMD CPUs the module is called 'kvm-amd'. + For Intel CPUs the module is called 'kvm-intel'. +Please review /etc/conf.d/modules for how to load these. + +Make sure your user is in the 'kvm' group. Just run + # gpasswd -a kvm +then have re-login. + +For brand new installs, the default permissions on /dev/kvm might not let +you access it. You can tell udev to reset ownership/perms: + # udevadm trigger -c add /dev/kvm + +If you want to register binfmt handlers for qemu user targets: +For openrc: + # rc-update add qemu-binfmt +For systemd: + # ln -s /usr/share/qemu/binfmt.d/qemu.conf /etc/binfmt.d/qemu.conf" + +pkg_pretend() { + if use kernel_linux && kernel_is lt 2 6 25; then + eerror "This version of KVM requires a host kernel of 2.6.25 or higher." + elif use kernel_linux; then + if ! linux_config_exists; then + eerror "Unable to check your kernel for KVM support" + else + CONFIG_CHECK="~KVM ~TUN ~BRIDGE" + ERROR_KVM="You must enable KVM in your kernel to continue" + ERROR_KVM_AMD="If you have an AMD CPU, you must enable KVM_AMD in" + ERROR_KVM_AMD+=" your kernel configuration." + ERROR_KVM_INTEL="If you have an Intel CPU, you must enable" + ERROR_KVM_INTEL+=" KVM_INTEL in your kernel configuration." + ERROR_TUN="You will need the Universal TUN/TAP driver compiled" + ERROR_TUN+=" into your kernel or loaded as a module to use the" + ERROR_TUN+=" virtual network device if using -net tap." + ERROR_BRIDGE="You will also need support for 802.1d" + ERROR_BRIDGE+=" Ethernet Bridging for some network configurations." + use vhost-net && CONFIG_CHECK+=" ~VHOST_NET" + ERROR_VHOST_NET="You must enable VHOST_NET to have vhost-net" + ERROR_VHOST_NET+=" support" + use test && CONFIG_CHECK+=" IP_MULTICAST" + ERROR_IP_MULTICAST="Test suite requires IP_MULTICAST" + + if use amd64 || use x86 || use amd64-linux || use x86-linux; then + if grep -q AuthenticAMD /proc/cpuinfo; then + CONFIG_CHECK+=" ~KVM_AMD" + elif grep -q GenuineIntel /proc/cpuinfo; then + CONFIG_CHECK+=" ~KVM_INTEL" + fi + fi + + use python && CONFIG_CHECK+=" ~DEBUG_FS" + ERROR_DEBUG_FS="debugFS support required for kvm_stat" + + # Now do the actual checks setup above + check_extra_config + fi + fi + + if grep -qs '/usr/bin/qemu-kvm' "${EROOT}"/etc/libvirt/qemu/*.xml; then + eerror "The kvm/qemu-kvm wrappers no longer exist, but your libvirt" + eerror "instances are still pointing to it. Please update your" + eerror "configs in /etc/libvirt/qemu/ to use the -enable-kvm flag" + eerror "and the right system binary (e.g. qemu-system-x86_64)." + die "update your virt configs to not use qemu-kvm" + fi +} + +# Sanity check to make sure target lists are kept up-to-date. +check_targets() { + local var=$1 mak=$2 + local detected sorted + + pushd "${S}"/configs/targets/ >/dev/null || die + + # Force C locale until glibc is updated. #564936 + detected=$(echo $(printf '%s\n' *-${mak}.mak | sed "s:-${mak}.mak::" | LC_COLLATE=C sort -u)) + sorted=$(echo $(printf '%s\n' ${!var} | LC_COLLATE=C sort -u)) + if [[ ${sorted} != "${detected}" ]] ; then + eerror "The ebuild needs to be kept in sync." + eerror "${var}: ${sorted}" + eerror "$(printf '%-*s' ${#var} configure): ${detected}" + die "sync ${var} to the list of targets" + fi + + popd >/dev/null +} + +src_unpack() { + if [[ ${PV} == 9999 ]] ; then + git-r3_src_unpack + for file in ${A}; do + unpack "${file}" + done + cd "${WORKDIR}" || die + for proj in "${!SUBPROJECTS[@]}"; do + mv "${proj}-${SUBPROJECTS[${proj}]}" "${S}/subprojects/${proj}" || die + done + cd "${S}" || die + meson subprojects packagefiles --apply || die + else + default + fi +} + +src_prepare() { + check_targets IUSE_SOFTMMU_TARGETS softmmu + check_targets IUSE_USER_TARGETS linux-user + + default + + # Use correct toolchain to fix cross-compiling + tc-export AR AS LD NM OBJCOPY PKG_CONFIG RANLIB STRINGS + export WINDRES=${CHOST}-windres + + # defang automagic dependencies + use X || append-flags -DGENTOO_GTK_HIDE_X11 + use wayland || append-flags -DGENTOO_GTK_HIDE_WAYLAND + + # Workaround for bug #938302 + if use systemtap && has_version "dev-debug/systemtap[-dtrace-symlink(+)]" ; then + cat >> "${S}"/configs/meson/linux.txt <<-EOF || die + [binaries] + dtrace='stap-dtrace' + EOF + fi + + # Verbose builds + MAKEOPTS+=" V=1" + + # Remove bundled modules + rm -r roms/*/ || die +} + +## +# configures qemu based on the build directory and the build type +# we are using. +# +qemu_src_configure() { + debug-print-function ${FUNCNAME} "$@" + + local buildtype=$1 + local builddir="${S}/${buildtype}-build" + + mkdir "${builddir}" || die + + local conf_opts=( + --prefix=/usr + --sysconfdir=/etc + --bindir=/usr/bin + --libdir=/usr/$(get_libdir) + --datadir=/usr/share + --docdir=/usr/share/doc/${PF}/html + --mandir=/usr/share/man + --localstatedir=/var + --disable-bsd-user + --disable-containers # bug #732972 + --disable-guest-agent + --disable-strip + --disable-download + --python="${PYTHON}" + + # bug #746752: TCG interpreter has a few limitations: + # - it does not support FPU + # - it's generally slower on non-self-modifying code + # It's advantage is support for host architectures + # where native codegeneration is not implemented. + # Gentoo has qemu keyworded only on targets with + # native code generation available. Avoid the interpreter. + --disable-tcg-interpreter + + --disable-werror + # We support gnutls/nettle for crypto operations. It is possible + # to use gcrypt when gnutls/nettle are disabled (but not when they + # are enabled), but it's not really worth the hassle. Disable it + # all the time to avoid automatically detecting it. #568856 + --disable-gcrypt + --cc="$(tc-getCC)" + --cxx="$(tc-getCXX)" + --objcc="$(tc-getCC)" + --host-cc="$(tc-getBUILD_CC)" + + $(use_enable alsa) + $(use_enable debug debug-info) + $(use_enable debug debug-tcg) + $(use_enable jack) + $(use_enable nls gettext) + $(use_enable oss) + $(use_enable pipewire) + $(use_enable plugins) + $(use_enable pulseaudio pa) + $(use_enable selinux) + $(use_enable xattr attr) + $(use_enable valgrind) + ) + + # Disable options not used by user targets. This simplifies building + # static user targets (USE=static-user) considerably. + conf_notuser() { + if [[ ${buildtype} == "user" ]] ; then + echo "--disable-${2:-$1}" + else + use_enable "$@" + fi + } + # Enable option only for softmmu build, but not 'user' or 'tools' + conf_softmmu() { + if [[ ${buildtype} == "softmmu" ]] ; then + use_enable "$@" + else + echo "--disable-${2:-$1}" + fi + } + # Enable option only for tools build, but not 'user' or 'softmmu' + conf_tools() { + if [[ ${buildtype} == "tools" ]] ; then + use_enable "$@" + else + echo "--disable-${2:-$1}" + fi + } + # Special case for the malloc flag, because the --disable flag does + # not exist and trying like above will break configuring. + conf_malloc() { + if [[ ! ${buildtype} == "user" ]] ; then + usex "${1}" "--enable-malloc=${1}" "" + fi + } + conf_opts+=( + $(conf_notuser accessibility brlapi) + $(conf_notuser aio linux-aio) + $(conf_softmmu bpf) + $(conf_notuser bzip2) + $(conf_notuser capstone) + $(conf_notuser curl) + $(conf_tools doc docs) + $(conf_notuser fdt) + $(conf_notuser fuse) + $(conf_notuser glusterfs) + $(conf_notuser gnutls) + $(conf_notuser gnutls nettle) + $(conf_notuser gtk) + $(conf_notuser infiniband rdma) + $(conf_notuser iscsi libiscsi) + $(conf_notuser io-uring linux-io-uring) + $(conf_malloc jemalloc) + $(conf_notuser jpeg vnc-jpeg) + $(conf_notuser kernel_linux kvm) + $(conf_notuser keyutils libkeyutils) + $(conf_notuser lzo) + $(conf_notuser multipath mpath) + $(conf_notuser ncurses curses) + $(conf_notuser nfs libnfs) + $(conf_notuser numa) + $(conf_notuser opengl) + $(conf_notuser pam auth-pam) + $(conf_notuser passt) + $(conf_notuser passt gio) + $(conf_notuser png) + $(conf_notuser rbd) + $(conf_notuser sasl vnc-sasl) + $(conf_notuser sdl) + $(conf_softmmu sdl-image) + $(conf_notuser seccomp) + $(conf_notuser slirp) + $(conf_notuser smartcard) + $(conf_notuser snappy) + $(conf_notuser spice) + $(conf_notuser ssh libssh) + $(conf_notuser udev libudev) + $(conf_notuser usb libusb) + $(conf_notuser usbredir usb-redir) + $(conf_notuser vde) + $(conf_notuser vhost-net) + $(conf_notuser virgl virglrenderer) + $(conf_softmmu virtfs) + $(conf_notuser vnc) + $(conf_notuser vte) + $(conf_softmmu xdp af-xdp) + $(conf_notuser xen) + $(conf_notuser xen xen-pci-passthrough) + # use prebuilt keymaps, bug #759604 + --disable-xkbcommon + $(conf_notuser zstd) + ) + + if [[ ! ${buildtype} == "user" ]] ; then + # audio options + local audio_opts=( + # Note: backend order matters here: #716202 + # We iterate from higher-level to lower level. + $(usex pulseaudio pa "") + $(usev pipewire) + $(usev jack) + $(usev sdl) + $(usev alsa) + $(usev oss) + ) + conf_opts+=( + --audio-drv-list=$(IFS=,; echo "${audio_opts[*]}") + ) + fi + + case ${buildtype} in + user) + conf_opts+=( + --enable-linux-user + --disable-system + --disable-tools + --disable-cap-ng + --disable-seccomp + ) + local static_flag="static-user" + ;; + softmmu) + conf_opts+=( + --disable-linux-user + --enable-system + --disable-tools + --enable-cap-ng + --enable-seccomp + --disable-libcbor + ) + local static_flag="none" + ;; + tools) + conf_opts+=( + --disable-linux-user + --disable-system + --enable-tools + --enable-cap-ng + ) + local static_flag="none" + ;; + esac + + local targets="${buildtype}_targets" + [[ -n ${targets} ]] && conf_opts+=( --target-list="${!targets}" ) + + # Add support for SystemTap + use systemtap && conf_opts+=( --enable-trace-backends="dtrace" ) + + # We always want to attempt to build with PIE support as it results + # in a more secure binary. But it doesn't work with static or if + # the current GCC doesn't have PIE support. + if [[ ${static_flag} != "none" ]] && use ${static_flag}; then + conf_opts+=( --static --disable-pie ) + else + tc-enables-pie && conf_opts+=( --enable-pie ) + fi + + # Meson will not use a cross-file unless cross_prefix is set. + tc-is-cross-compiler && conf_opts+=( --cross-prefix="${CHOST}-" ) + + # Plumb through equivalent of EXTRA_ECONF to allow experiments + # like bug #747928. + conf_opts+=( ${EXTRA_CONF_QEMU} ) + + echo "../configure ${conf_opts[*]}" + cd "${builddir}" + ../configure "${conf_opts[@]}" || die "configure failed" +} + +src_configure() { + local target + + python_setup + + softmmu_targets= softmmu_bins=() + user_targets= user_bins=() + + for target in ${IUSE_SOFTMMU_TARGETS} ; do + if use "qemu_softmmu_targets_${target}"; then + softmmu_targets+=",${target}-softmmu" + softmmu_bins+=( "qemu-system-${target}" ) + fi + done + + for target in ${IUSE_USER_TARGETS} ; do + if use "qemu_user_targets_${target}"; then + user_targets+=",${target}-linux-user" + user_bins+=( "qemu-${target}" ) + fi + done + + softmmu_targets=${softmmu_targets#,} + user_targets=${user_targets#,} + + [[ -n ${softmmu_targets} ]] && qemu_src_configure "softmmu" + [[ -n ${user_targets} ]] && qemu_src_configure "user" + qemu_src_configure "tools" +} + +src_compile() { + if [[ -n ${user_targets} ]]; then + cd "${S}/user-build" || die + default + fi + + if [[ -n ${softmmu_targets} ]]; then + cd "${S}/softmmu-build" || die + default + fi + + cd "${S}/tools-build" || die + default +} + +src_test() { + if [[ -n ${softmmu_targets} ]]; then + cd "${S}/softmmu-build" || die + pax-mark m */qemu-system-* #515550 + emake check + fi +} + +qemu_python_install() { + python_domodule "${S}/python/qemu" + + python_doscript "${S}/scripts/kvm/vmxcap" + python_doscript "${S}/scripts/qmp/qmp-shell" + python_doscript "${S}/scripts/qmp/qemu-ga-client" +} + +# Generate binfmt support files. +# - /etc/init.d/qemu-binfmt script which registers the user handlers (openrc) +# - /usr/share/qemu/binfmt.d/qemu.conf (for use with systemd-binfmt) +generate_initd() { + local out="${T}/qemu-binfmt" + local out_systemd="${T}/qemu.conf" + local d="${T}/binfmt.d" + + einfo "Generating qemu binfmt scripts and configuration files" + + # Generate the debian fragments first. + mkdir -p "${d}" + "${S}"/scripts/qemu-binfmt-conf.sh \ + --debian \ + --exportdir "${d}" \ + --qemu-path "${EPREFIX}/usr/bin" \ + || die + # Then turn the fragments into a shell script we can source. + sed -E -i \ + -e 's:^([^ ]+) (.*)$:\1="\2":' \ + "${d}"/* || die + + # Generate the init.d script by assembling the fragments from above. + local f qcpu package interpreter magic mask + cat "${FILESDIR}"/qemu-binfmt.initd.head >"${out}" || die + for f in "${d}"/qemu-* ; do + source "${f}" + + # Normalize the cpu logic like we do in the init.d for the native cpu. + qcpu=${package#qemu-} + case ${qcpu} in + arm*) qcpu="arm";; + mips*) qcpu="mips";; + ppc*) qcpu="ppc";; + s390*) qcpu="s390";; + sh*) qcpu="sh";; + sparc*) qcpu="sparc";; + esac + + # we use 'printf' here to be portable across 'sh' + # implementations: #679168 + cat <>"${out}" + if [ "\${cpu}" != "${qcpu}" -a -x "${interpreter}" ] ; then + printf '%s\n' ':${package}:M::${magic}:${mask}:${interpreter}:'"\${QEMU_BINFMT_FLAGS}" >/proc/sys/fs/binfmt_misc/register + fi +EOF + + echo ":${package}:M::${magic}:${mask}:${interpreter}:OC" >>"${out_systemd}" + + done + cat "${FILESDIR}"/qemu-binfmt.initd.tail >>"${out}" || die +} + +src_install() { + if [[ -n ${user_targets} ]]; then + cd "${S}/user-build" + emake DESTDIR="${ED}" install + + # Install binfmt handler init script for user targets. + generate_initd + doinitd "${T}/qemu-binfmt" + + # Install binfmt/qemu.conf. + insinto "/usr/share/qemu/binfmt.d" + doins "${T}/qemu.conf" + fi + + if [[ -n ${softmmu_targets} ]]; then + cd "${S}/softmmu-build" + emake DESTDIR="${ED}" install + + # This might not exist if the test failed. #512010 + [[ -e check-report.html ]] && dodoc check-report.html + + if use kernel_linux; then + udev_newrules "${FILESDIR}"/65-kvm.rules-r2 65-kvm.rules + fi + + if use python; then + python_foreach_impl qemu_python_install + fi + fi + + cd "${S}/tools-build" || die + emake DESTDIR="${ED}" install + + # If USE=doc, there'll be newly generated docs which we install instead. + if ! use doc && [[ ${QEMU_DOCS_PREBUILT} == 1 ]] ; then + doman "${WORKDIR}"/${PN}-${QEMU_DOCS_VERSION}-docs/docs/*.[0-8] + fi + + # Disable mprotect on the qemu binaries as they use JITs to be fast #459348 + pushd "${ED}"/usr/bin >/dev/null || die + pax-mark mr "${softmmu_bins[@]}" "${user_bins[@]}" # bug 575594 + popd >/dev/null || die + + # Install config file example for qemu-bridge-helper + insinto "/etc/qemu" + doins "${FILESDIR}/bridge.conf" + + cd "${S}" || die + dodoc MAINTAINERS + newdoc pc-bios/README README.pc-bios + + # Disallow stripping of prebuilt firmware files. + dostrip -x ${QA_PREBUILT} + + if [[ -n ${softmmu_targets} ]]; then + # Remove SeaBIOS since we're using the SeaBIOS packaged one + if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then + dosym ../seabios/bios-256k.bin /usr/share/qemu/bios-256k.bin + fi + + # Remove vgabios since we're using the seavgabios packaged one + rm "${ED}/usr/share/qemu/vgabios.bin" + rm "${ED}/usr/share/qemu/vgabios-cirrus.bin" + rm "${ED}/usr/share/qemu/vgabios-qxl.bin" + rm "${ED}/usr/share/qemu/vgabios-stdvga.bin" + rm "${ED}/usr/share/qemu/vgabios-virtio.bin" + rm "${ED}/usr/share/qemu/vgabios-vmware.bin" + + # PPC/PPC64 loads vgabios-stdvga + if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386 || use qemu_softmmu_targets_ppc || use qemu_softmmu_targets_ppc64; then + dosym ../seavgabios/vgabios-isavga.bin /usr/share/qemu/vgabios.bin + dosym ../seavgabios/vgabios-cirrus.bin /usr/share/qemu/vgabios-cirrus.bin + dosym ../seavgabios/vgabios-qxl.bin /usr/share/qemu/vgabios-qxl.bin + dosym ../seavgabios/vgabios-stdvga.bin /usr/share/qemu/vgabios-stdvga.bin + dosym ../seavgabios/vgabios-virtio.bin /usr/share/qemu/vgabios-virtio.bin + dosym ../seavgabios/vgabios-vmware.bin /usr/share/qemu/vgabios-vmware.bin + fi + + # Remove sgabios since we're using the sgabios packaged one + if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then + dosym ../sgabios/sgabios.bin /usr/share/qemu/sgabios.bin + fi + + # Remove iPXE since we're using the iPXE packaged one + if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then + dosym ../ipxe/8086100e.rom /usr/share/qemu/pxe-e1000.rom + dosym ../ipxe/80861209.rom /usr/share/qemu/pxe-eepro100.rom + dosym ../ipxe/10500940.rom /usr/share/qemu/pxe-ne2k_pci.rom + dosym ../ipxe/10222000.rom /usr/share/qemu/pxe-pcnet.rom + dosym ../ipxe/10ec8139.rom /usr/share/qemu/pxe-rtl8139.rom + dosym ../ipxe/1af41000.rom /usr/share/qemu/pxe-virtio.rom + fi + fi + + DISABLE_AUTOFORMATTING=true + readme.gentoo_create_doc +} + +pkg_postinst() { + if [[ -n ${softmmu_targets} ]] && use kernel_linux; then + udev_reload + fi + + xdg_icon_cache_update + + [[ -z ${EPREFIX} ]] && [[ -f ${EROOT}/usr/libexec/qemu-bridge-helper ]] && \ + fcaps -m u+s cap_net_admin "${EROOT}"/usr/libexec/qemu-bridge-helper + + DISABLE_AUTOFORMATTING=true + readme.gentoo_print_elog + + if use pin-upstream-blobs && ver_replacing -lt ${FIRMWARE_ABI_VERSION}; then + ewarn "This version of qemu pins new versions of firmware blobs:" + + if has_version 'sys-firmware/edk2-bin'; then + ewarn " $(best_version sys-firmware/edk2-bin)" + else + ewarn " $(best_version sys-firmware/edk2)" + fi + + if has_version 'sys-firmware/seabios-bin'; then + ewarn " $(best_version sys-firmware/seabios-bin)" + else + ewarn " $(best_version sys-firmware/seabios)" + fi + + ewarn " $(best_version sys-firmware/ipxe)" + ewarn " $(best_version sys-firmware/sgabios)" + ewarn "This might break resume of hibernated guests (started with a different" + ewarn "firmware version) and live migration to/from qemu versions with different" + ewarn "firmware. Please (cold) restart all running guests. For functional" + ewarn "guest migration ensure that all hosts run at least" + ewarn " app-emulation/qemu-${FIRMWARE_ABI_VERSION}." + fi +} + +pkg_info() { + echo "Using:" + echo " $(best_version app-emulation/spice-protocol)" + + if has_version 'sys-firmware/edk2-bin'; then + echo " $(best_version sys-firmware/edk2-bin)" + else + echo " $(best_version sys-firmware/edk2)" + fi + + if has_version 'sys-firmware/seabios-bin'; then + echo " $(best_version sys-firmware/seabios-bin)" + else + echo " $(best_version sys-firmware/seabios)" + fi + + echo " $(best_version sys-firmware/ipxe)" + echo " $(best_version sys-firmware/sgabios)" +} + +pkg_postrm() { + xdg_icon_cache_update + udev_reload +} diff --git a/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-9.1.3-r2.ebuild b/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-9.1.3-r2.ebuild index a8d792bdfc4..9089198ad37 100644 --- a/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-9.1.3-r2.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-9.1.3-r2.ebuild @@ -277,7 +277,7 @@ PPC_FIRMWARE_DEPEND=" # See bug #913084 for pip dep BDEPEND=" - $(python_gen_impl_dep) + ${PYTHON_DEPS} dev-python/distlib[${PYTHON_USEDEP}] dev-lang/perl >=dev-build/meson-0.63.0 diff --git a/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-9.2.3-r3.ebuild b/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-9.2.3-r3.ebuild index 3bb7630d8bb..e41c8a204c2 100644 --- a/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-9.2.3-r3.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-9.2.3-r3.ebuild @@ -276,7 +276,7 @@ PPC_FIRMWARE_DEPEND=" # See bug #913084 for pip dep BDEPEND=" - $(python_gen_impl_dep) + ${PYTHON_DEPS} dev-python/distlib[${PYTHON_USEDEP}] dev-lang/perl >=dev-build/meson-0.63.0 diff --git a/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-9.2.4.ebuild b/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-9.2.4.ebuild index d64cf18f6a8..b1e3953c9aa 100644 --- a/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-9.2.4.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-9.2.4.ebuild @@ -276,7 +276,7 @@ PPC_FIRMWARE_DEPEND=" # See bug #913084 for pip dep BDEPEND=" - $(python_gen_impl_dep) + ${PYTHON_DEPS} dev-python/distlib[${PYTHON_USEDEP}] dev-lang/perl >=dev-build/meson-0.63.0 diff --git a/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-9999.ebuild b/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-9999.ebuild index 60f62065cde..b46a9c80b8b 100644 --- a/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-9999.ebuild @@ -291,7 +291,7 @@ PPC_FIRMWARE_DEPEND=" # See bug #913084 for pip dep BDEPEND=" - $(python_gen_impl_dep) + ${PYTHON_DEPS} dev-python/distlib[${PYTHON_USEDEP}] dev-lang/perl >=dev-build/meson-0.63.0 @@ -636,6 +636,7 @@ qemu_src_configure() { $(conf_notuser opengl) $(conf_notuser pam auth-pam) $(conf_notuser passt) + $(conf_notuser passt gio) $(conf_notuser png) $(conf_notuser rbd) $(conf_notuser sasl vnc-sasl) diff --git a/sdk_container/src/third_party/portage-stable/app-misc/pax-utils/pax-utils-1.3.8.ebuild b/sdk_container/src/third_party/portage-stable/app-misc/pax-utils/pax-utils-1.3.8.ebuild index 5a0f82b7d7d..de90a665ee7 100644 --- a/sdk_container/src/third_party/portage-stable/app-misc/pax-utils/pax-utils-1.3.8.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-misc/pax-utils/pax-utils-1.3.8.ebuild @@ -6,7 +6,7 @@ EAPI=8 # Note: if bumping pax-utils because of syscall changes in glibc, please # revbump glibc and update the dependency in its ebuild for the affected # versions. -PYTHON_COMPAT=( python3_{10..13} ) +PYTHON_COMPAT=( python3_{11..14} ) inherit meson python-single-r1 diff --git a/sdk_container/src/third_party/portage-stable/app-misc/pax-utils/pax-utils-9999.ebuild b/sdk_container/src/third_party/portage-stable/app-misc/pax-utils/pax-utils-9999.ebuild index 55c38f7049a..014d1322b0b 100644 --- a/sdk_container/src/third_party/portage-stable/app-misc/pax-utils/pax-utils-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-misc/pax-utils/pax-utils-9999.ebuild @@ -1,4 +1,4 @@ -# Copyright 2022-2024 Gentoo Authors +# Copyright 2022-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -6,7 +6,7 @@ EAPI=8 # Note: if bumping pax-utils because of syscall changes in glibc, please # revbump glibc and update the dependency in its ebuild for the affected # versions. -PYTHON_COMPAT=( python3_{10..13} ) +PYTHON_COMPAT=( python3_{11..14} ) inherit meson python-single-r1 diff --git a/sdk_container/src/third_party/portage-stable/app-portage/gentoolkit/gentoolkit-0.6.9.ebuild b/sdk_container/src/third_party/portage-stable/app-portage/gentoolkit/gentoolkit-0.6.9.ebuild index 8c5dae661dc..89a2e325460 100644 --- a/sdk_container/src/third_party/portage-stable/app-portage/gentoolkit/gentoolkit-0.6.9.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-portage/gentoolkit/gentoolkit-0.6.9.ebuild @@ -3,7 +3,7 @@ EAPI=8 -PYTHON_COMPAT=( python3_{10..13} pypy3 pypy3_11 ) +PYTHON_COMPAT=( python3_{11..14} pypy3_11 ) PYTHON_REQ_USE="xml(+),threads(+)" inherit meson python-r1 tmpfiles diff --git a/sdk_container/src/third_party/portage-stable/app-portage/gentoolkit/gentoolkit-9999.ebuild b/sdk_container/src/third_party/portage-stable/app-portage/gentoolkit/gentoolkit-9999.ebuild index 8c5dae661dc..89a2e325460 100644 --- a/sdk_container/src/third_party/portage-stable/app-portage/gentoolkit/gentoolkit-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-portage/gentoolkit/gentoolkit-9999.ebuild @@ -3,7 +3,7 @@ EAPI=8 -PYTHON_COMPAT=( python3_{10..13} pypy3 pypy3_11 ) +PYTHON_COMPAT=( python3_{11..14} pypy3_11 ) PYTHON_REQ_USE="xml(+),threads(+)" inherit meson python-r1 tmpfiles diff --git a/sdk_container/src/third_party/portage-stable/app-portage/getuto/getuto-1.15.ebuild b/sdk_container/src/third_party/portage-stable/app-portage/getuto/getuto-1.15-r1.ebuild similarity index 89% rename from sdk_container/src/third_party/portage-stable/app-portage/getuto/getuto-1.15.ebuild rename to sdk_container/src/third_party/portage-stable/app-portage/getuto/getuto-1.15-r1.ebuild index 09987c3f6d9..ff1733680e9 100644 --- a/sdk_container/src/third_party/portage-stable/app-portage/getuto/getuto-1.15.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-portage/getuto/getuto-1.15-r1.ebuild @@ -25,8 +25,12 @@ SLOT="0" IUSE="test" RESTRICT="!test? ( test )" +# gpg[sequoia] fails w/ 0.13.1 because of missing --lsign-key RDEPEND=" - app-crypt/gnupg + || ( + app-alternatives/gpg[reference] + app-alternatives/gpg[freepg(-)] + ) dev-libs/openssl sec-keys/openpgp-keys-gentoo-release sys-apps/gentoo-functions diff --git a/sdk_container/src/third_party/portage-stable/app-portage/getuto/getuto-9999.ebuild b/sdk_container/src/third_party/portage-stable/app-portage/getuto/getuto-9999.ebuild index 288ed5ed1b9..3aae41d5975 100644 --- a/sdk_container/src/third_party/portage-stable/app-portage/getuto/getuto-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-portage/getuto/getuto-9999.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -25,8 +25,12 @@ SLOT="0" IUSE="test" RESTRICT="!test? ( test )" +# gpg[sequoia] fails w/ 0.13.1 because of missing --lsign-key RDEPEND=" - app-crypt/gnupg + || ( + app-alternatives/gpg[reference] + app-alternatives/gpg[freepg(-)] + ) dev-libs/openssl sec-keys/openpgp-keys-gentoo-release sys-apps/gentoo-functions diff --git a/sdk_container/src/third_party/portage-stable/app-shells/bash-completion/Manifest b/sdk_container/src/third_party/portage-stable/app-shells/bash-completion/Manifest index d050a3e7aee..a040e959522 100644 --- a/sdk_container/src/third_party/portage-stable/app-shells/bash-completion/Manifest +++ b/sdk_container/src/third_party/portage-stable/app-shells/bash-completion/Manifest @@ -1,4 +1,5 @@ DIST bash-completion-2.14.0.tar.xz 428980 BLAKE2B c28ec0cd348a3954461f7a865823a358e47c4b479c7812baa6d54aef856c958510967806550e62784955f9daf233a0b01edade19884e534df857472a3196e63e SHA512 2e12d2e57c932b931a6cfe59234f9d33d715538d6ea4eb72ed4ed3d8d2cf2cedaf08fcb6abaf3117e06115d892283e38a07b3abe5c91c026d2c06a0f64e347bd DIST bash-completion-2.15.0.tar.xz 457836 BLAKE2B d2234cb2baf8494d2159e8abe6780e0879efb6fe9e851c0d51ebf09363c83652ef610658e2beca181adc0d6c844472a68a219be8b3ca51271fdfc53477f174ba SHA512 3b7e98801c3ceab7853c0603bdaa0cd6f0a658e0f7f24b092f341bd1794633b62d33e664035b6ab3c03b5a3dd941b16f87a415aade8a2707578c59cc48b1a9f7 DIST bash-completion-2.16.0.tar.xz 464764 BLAKE2B 389be47536f8f9aa383ff85bf19a00562b30b6d3e3652feaa01284987af13c2dc9850b59341956dd8e94e54251cd36902a60d5e3420ebfa2567216546144f675 SHA512 3711d6cb53cedff94efca0325479ac73f40b536fce250dbcc18ef120a8d0d2248f086ca26e245d163e6058d1b1087d57ced041317163d0e25592d6cb7acbc102 +DIST bash-completion-2.17.0.tar.xz 482896 BLAKE2B ee11f2bff82b0852979e4843c7ad5e5b976e4d1e44ab5ed1b96da64fe9b32d91150f12f32bf7c6c0286cd2a0c424d786bbad47066403c71f8d3c8425487427dd SHA512 79f7a22de7df7a6a5cad2e8088ce7e013a3cd5542f3af825c04b2607c824022913dd775202ddab7964dd759e50d5bdf9be6451c70d488efaef10f7cf2f7ac73e DIST bashcomp-2.0.3.tar.gz 3539 BLAKE2B 75304d144792cc7f6ad5455a05a65c33c646d6f7384d020a06a1fcf012cd51625a3dd0750ad539253453b1eede196c340286a1e81737f0835b5091609ba01295 SHA512 b2bd185ccbd4456939ccc731cc1983fcec2b9564a9920642a753fadd5d897fdb96b925ac1524657629d621d45b37d99076c8ae72511a827e96ff6c388d720008 diff --git a/sdk_container/src/third_party/portage-stable/app-shells/bash-completion/bash-completion-2.16.0-r3.ebuild b/sdk_container/src/third_party/portage-stable/app-shells/bash-completion/bash-completion-2.16.0-r3.ebuild index 360b8dc6789..0b8a97472bd 100644 --- a/sdk_container/src/third_party/portage-stable/app-shells/bash-completion/bash-completion-2.16.0-r3.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-shells/bash-completion/bash-completion-2.16.0-r3.ebuild @@ -19,7 +19,7 @@ SRC_URI=" LICENSE="GPL-2+" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos" IUSE="+eselect test" RESTRICT="!test? ( test )" diff --git a/sdk_container/src/third_party/portage-stable/app-shells/bash-completion/bash-completion-2.17.0.ebuild b/sdk_container/src/third_party/portage-stable/app-shells/bash-completion/bash-completion-2.17.0.ebuild new file mode 100644 index 00000000000..3efe57a595f --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/app-shells/bash-completion/bash-completion-2.17.0.ebuild @@ -0,0 +1,171 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +BASHCOMP_P=bashcomp-2.0.3 +PYTHON_COMPAT=( python3_{11..13} ) + +inherit autotools python-any-r1 + +DESCRIPTION="Programmable Completion for bash" +HOMEPAGE="https://github.com/scop/bash-completion" +SRC_URI=" + https://github.com/scop/bash-completion/releases/download/${PV}/${P}.tar.xz + eselect? ( + https://github.com/projg2/bashcomp2/releases/download/v${BASHCOMP_P#*-}/${BASHCOMP_P}.tar.gz + ) +" + +LICENSE="GPL-2+" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos" +IUSE="+eselect test" +RESTRICT="!test? ( test )" + +RDEPEND=" + >=app-shells/bash-4.3_p30-r1:0 + sys-apps/miscfiles + != 0 )); then - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" + KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" fi IUSE="afs bashlogger examples mem-scramble +net nls plugins pgo +readline" diff --git a/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.3_p3-r3.ebuild b/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.3_p3-r3.ebuild index 4218315eebf..1c0532ea8e3 100644 --- a/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.3_p3-r3.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.3_p3-r3.ebuild @@ -75,7 +75,7 @@ fi LICENSE="GPL-3+" SLOT="0" if (( PLEVEL >= 0 )); then - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" + KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" fi IUSE="afs bashlogger examples mem-scramble +net nls plugins pgo +readline" diff --git a/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.4_alpha_pre20250918-r2.ebuild b/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.4_alpha_pre20251017.ebuild similarity index 97% rename from sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.4_alpha_pre20250918-r2.ebuild rename to sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.4_alpha_pre20251017.ebuild index 5a30defbc42..7b383a8f971 100644 --- a/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.4_alpha_pre20250918-r2.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.4_alpha_pre20251017.ebuild @@ -21,7 +21,7 @@ case ${PV} in # Set a negative patchlevel to indicate that it's a pre-release. PLEVEL=-1 if [[ ${PV} =~ _pre[0-9]{8}$ ]]; then - BASH_COMMIT="cf8a2518c8b94f75b330d398f5daa0ee21417e1b" + BASH_COMMIT="6edfd0bf647cac5c3af3c15aabf49e27528ddf78" fi ;; *_p*) @@ -78,6 +78,9 @@ if (( PLEVEL >= 0 )); then KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" fi IUSE="afs bashlogger examples mem-scramble +net nls plugins pgo +readline" +# As of 5.4_alpha_pre20251016, bash tests finally exit non-0 on failure. +# The differences look harmless but need investigation and fixing. +RESTRICT="test" DEPEND=" >=sys-libs/ncurses-5.2-r2:= @@ -272,7 +275,9 @@ src_compile() { # Used in test suite. unset -v A - emake CFLAGS="${CFLAGS} ${pgo_generate_flags[*]}" -k check + # Testsuite isn't expected to pass for bash right now, but it + # also doesn't matter for PGO. + nonfatal emake CFLAGS="${CFLAGS} ${pgo_generate_flags[*]}" -k check if tc-is-clang; then llvm-profdata merge "${T}"/pgo --output="${T}"/pgo/default.profdata || die diff --git a/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.4_alpha_pre20251001.ebuild b/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.4_alpha_pre20251023.ebuild similarity index 97% rename from sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.4_alpha_pre20251001.ebuild rename to sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.4_alpha_pre20251023.ebuild index 06c959624bd..365f723e7b8 100644 --- a/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.4_alpha_pre20251001.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.4_alpha_pre20251023.ebuild @@ -21,7 +21,7 @@ case ${PV} in # Set a negative patchlevel to indicate that it's a pre-release. PLEVEL=-1 if [[ ${PV} =~ _pre[0-9]{8}$ ]]; then - BASH_COMMIT="4f536430e45d847d6945133690312a8e94762254" + BASH_COMMIT="403b32faf6a5b31ed58a42d1ff696fb8d3d7d5b9" fi ;; *_p*) @@ -78,6 +78,9 @@ if (( PLEVEL >= 0 )); then KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" fi IUSE="afs bashlogger examples mem-scramble +net nls plugins pgo +readline" +# As of 5.4_alpha_pre20251016, bash tests finally exit non-0 on failure. +# The differences look harmless but need investigation and fixing. +RESTRICT="test" DEPEND=" >=sys-libs/ncurses-5.2-r2:= @@ -272,7 +275,9 @@ src_compile() { # Used in test suite. unset -v A - emake CFLAGS="${CFLAGS} ${pgo_generate_flags[*]}" -k check + # Testsuite isn't expected to pass for bash right now, but it + # also doesn't matter for PGO. + nonfatal emake CFLAGS="${CFLAGS} ${pgo_generate_flags[*]}" -k check if tc-is-clang; then llvm-profdata merge "${T}"/pgo --output="${T}"/pgo/default.profdata || die diff --git a/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.4_alpha_pre20251007.ebuild b/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.4_alpha_pre20251027.ebuild similarity index 97% rename from sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.4_alpha_pre20251007.ebuild rename to sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.4_alpha_pre20251027.ebuild index 4dccec9714a..b3b33c5f22c 100644 --- a/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.4_alpha_pre20251007.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.4_alpha_pre20251027.ebuild @@ -21,7 +21,7 @@ case ${PV} in # Set a negative patchlevel to indicate that it's a pre-release. PLEVEL=-1 if [[ ${PV} =~ _pre[0-9]{8}$ ]]; then - BASH_COMMIT="25c6aa5b230167c6471898539c46dd2891d891a5" + BASH_COMMIT="c299f535be51179b1e0c989ad9ba4365e182ec28" fi ;; *_p*) @@ -78,6 +78,9 @@ if (( PLEVEL >= 0 )); then KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" fi IUSE="afs bashlogger examples mem-scramble +net nls plugins pgo +readline" +# As of 5.4_alpha_pre20251016, bash tests finally exit non-0 on failure. +# The differences look harmless but need investigation and fixing. +RESTRICT="test" DEPEND=" >=sys-libs/ncurses-5.2-r2:= @@ -272,7 +275,9 @@ src_compile() { # Used in test suite. unset -v A - emake CFLAGS="${CFLAGS} ${pgo_generate_flags[*]}" -k check + # Testsuite isn't expected to pass for bash right now, but it + # also doesn't matter for PGO. + nonfatal emake CFLAGS="${CFLAGS} ${pgo_generate_flags[*]}" -k check if tc-is-clang; then llvm-profdata merge "${T}"/pgo --output="${T}"/pgo/default.profdata || die diff --git a/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-9999.ebuild b/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-9999.ebuild index 7f5ca499dd4..4f70ef30921 100644 --- a/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-9999.ebuild @@ -78,6 +78,9 @@ if (( PLEVEL >= 0 )); then KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" fi IUSE="afs bashlogger examples mem-scramble +net nls plugins pgo +readline" +# As of 5.4_alpha_pre20251016, bash tests finally exit non-0 on failure. +# The differences look harmless but need investigation and fixing. +RESTRICT="test" DEPEND=" >=sys-libs/ncurses-5.2-r2:= @@ -272,7 +275,9 @@ src_compile() { # Used in test suite. unset -v A - emake CFLAGS="${CFLAGS} ${pgo_generate_flags[*]}" -k check + # Testsuite isn't expected to pass for bash right now, but it + # also doesn't matter for PGO. + nonfatal emake CFLAGS="${CFLAGS} ${pgo_generate_flags[*]}" -k check if tc-is-clang; then llvm-profdata merge "${T}"/pgo --output="${T}"/pgo/default.profdata || die diff --git a/sdk_container/src/third_party/portage-stable/app-text/asciidoc/asciidoc-10.2.1.ebuild b/sdk_container/src/third_party/portage-stable/app-text/asciidoc/asciidoc-10.2.1.ebuild index 3da38f503f2..f64f2d915b0 100644 --- a/sdk_container/src/third_party/portage-stable/app-text/asciidoc/asciidoc-10.2.1.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-text/asciidoc/asciidoc-10.2.1.ebuild @@ -5,7 +5,7 @@ EAPI=8 DISTUTILS_SINGLE_IMPL=1 DISTUTILS_USE_PEP517=setuptools -PYTHON_COMPAT=( python3_{10..13} pypy3 pypy3_11 ) +PYTHON_COMPAT=( python3_{11..14} pypy3_11 ) inherit distutils-r1 optfeature readme.gentoo-r1 DESCRIPTION="A plain text human readable/writable document format" diff --git a/sdk_container/src/third_party/portage-stable/dev-build/cmake/cmake-3.31.9-r1.ebuild b/sdk_container/src/third_party/portage-stable/dev-build/cmake/cmake-3.31.9-r1.ebuild index 57c4c60d699..44bd5fb5c1c 100644 --- a/sdk_container/src/third_party/portage-stable/dev-build/cmake/cmake-3.31.9-r1.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-build/cmake/cmake-3.31.9-r1.ebuild @@ -14,6 +14,8 @@ CMAKE_DOCS_VERSION=$(ver_cut 1-2).0 # 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. diff --git a/sdk_container/src/third_party/portage-stable/dev-build/cmake/cmake-4.1.2-r1.ebuild b/sdk_container/src/third_party/portage-stable/dev-build/cmake/cmake-4.1.2-r1.ebuild index c2af90e358d..2d3e74cd120 100644 --- a/sdk_container/src/third_party/portage-stable/dev-build/cmake/cmake-4.1.2-r1.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-build/cmake/cmake-4.1.2-r1.ebuild @@ -16,6 +16,8 @@ CMAKE_DOCS_VERSION=4.0.0_rc1 # 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. @@ -51,7 +53,7 @@ else )" if [[ ${PV} != *_rc* ]] ; then - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" + KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~loong ~m68k ~mips ~ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" fi BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-bradking-20250904 )" diff --git a/sdk_container/src/third_party/portage-stable/dev-build/cmake/cmake-9999.ebuild b/sdk_container/src/third_party/portage-stable/dev-build/cmake/cmake-9999.ebuild index c2af90e358d..9fa065278fe 100644 --- a/sdk_container/src/third_party/portage-stable/dev-build/cmake/cmake-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-build/cmake/cmake-9999.ebuild @@ -16,6 +16,8 @@ CMAKE_DOCS_VERSION=4.0.0_rc1 # 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. diff --git a/sdk_container/src/third_party/portage-stable/dev-build/make/make-4.4.1-r101.ebuild b/sdk_container/src/third_party/portage-stable/dev-build/make/make-4.4.1-r101.ebuild index f109c68410a..50fcd34ef6e 100644 --- a/sdk_container/src/third_party/portage-stable/dev-build/make/make-4.4.1-r101.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-build/make/make-4.4.1-r101.ebuild @@ -18,7 +18,7 @@ elif [[ $(ver_cut 3) -ge 90 || $(ver_cut 4) -ge 90 ]] ; then else SRC_URI="mirror://gnu/make/${P}.tar.lz" SRC_URI+=" verify-sig? ( mirror://gnu/make/${P}.tar.lz.sig )" - KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" + KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" fi LICENSE="GPL-3+" diff --git a/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.1.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.1.1.ebuild index 489b12bacd8..9077dba3041 100644 --- a/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.1.1.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.1.1.ebuild @@ -41,7 +41,7 @@ RESTRICT="!test? ( test )" DEPEND=" test? ( dev-libs/glib:2 - dev-libs/gobject-introspection + >=dev-libs/gobject-introspection-1.82.0-r2 app-alternatives/ninja dev-vcs/git sys-libs/zlib[static-libs(+)] diff --git a/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.2.3.ebuild b/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.2.3.ebuild index 71f10273029..ae6786c4fe4 100644 --- a/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.2.3.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.2.3.ebuild @@ -41,7 +41,7 @@ RESTRICT="!test? ( test )" DEPEND=" test? ( dev-libs/glib:2 - dev-libs/gobject-introspection + >=dev-libs/gobject-introspection-1.82.0-r2 app-alternatives/ninja dev-vcs/git sys-libs/zlib[static-libs(+)] diff --git a/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.3.2.ebuild b/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.3.2.ebuild index aa9f777b63d..7dd5df1d9f5 100644 --- a/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.3.2.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.3.2.ebuild @@ -41,7 +41,7 @@ RESTRICT="!test? ( test )" DEPEND=" test? ( dev-libs/glib:2 - dev-libs/gobject-introspection + >=dev-libs/gobject-introspection-1.82.0-r2 app-alternatives/ninja dev-vcs/git sys-libs/zlib[static-libs(+)] diff --git a/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.4.2.ebuild b/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.4.2.ebuild index 48d17a2c9c4..f9e6944921d 100644 --- a/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.4.2.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.4.2.ebuild @@ -48,7 +48,7 @@ RESTRICT="!test? ( test )" DEPEND=" test? ( dev-libs/glib:2 - dev-libs/gobject-introspection + >=dev-libs/gobject-introspection-1.82.0-r2 app-alternatives/ninja dev-vcs/git sys-libs/zlib[static-libs(+)] diff --git a/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.5.2.ebuild b/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.5.2.ebuild index 791ca908835..b84d577492e 100644 --- a/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.5.2.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.5.2.ebuild @@ -48,7 +48,7 @@ RESTRICT="!test? ( test )" DEPEND=" test? ( dev-libs/glib:2 - dev-libs/gobject-introspection + >=dev-libs/gobject-introspection-1.82.0-r2 app-alternatives/ninja dev-vcs/git sys-libs/zlib[static-libs(+)] diff --git a/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.6.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.6.1.ebuild index 093b9bef6e6..21454c3173f 100644 --- a/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.6.1.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.6.1.ebuild @@ -49,7 +49,7 @@ REQUIRED_USE="test-full? ( test )" DEPEND=" test? ( dev-libs/glib:2 - dev-libs/gobject-introspection + >=dev-libs/gobject-introspection-1.82.0-r2 app-alternatives/ninja dev-vcs/git sys-libs/zlib[static-libs(+)] diff --git a/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.7.2.ebuild b/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.7.2.ebuild index fa137ff51f8..f752b129ad0 100644 --- a/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.7.2.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.7.2.ebuild @@ -52,7 +52,7 @@ REQUIRED_USE="test-full? ( test )" DEPEND=" test? ( dev-libs/glib:2 - dev-libs/gobject-introspection + >=dev-libs/gobject-introspection-1.82.0-r2 app-alternatives/ninja dev-vcs/git sys-libs/zlib[static-libs(+)] diff --git a/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.8.5.ebuild b/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.8.5.ebuild index 3b3b8ff7388..2bbc23c34e4 100644 --- a/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.8.5.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.8.5.ebuild @@ -53,7 +53,7 @@ REQUIRED_USE="test-full? ( test )" DEPEND=" test? ( dev-libs/glib:2 - dev-libs/gobject-introspection + >=dev-libs/gobject-introspection-1.82.0-r2 app-alternatives/ninja dev-vcs/git sys-libs/zlib[static-libs(+)] diff --git a/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.9.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.9.1.ebuild index 3b3b8ff7388..2bbc23c34e4 100644 --- a/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.9.1.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.9.1.ebuild @@ -53,7 +53,7 @@ REQUIRED_USE="test-full? ( test )" DEPEND=" test? ( dev-libs/glib:2 - dev-libs/gobject-introspection + >=dev-libs/gobject-introspection-1.82.0-r2 app-alternatives/ninja dev-vcs/git sys-libs/zlib[static-libs(+)] diff --git a/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-9999.ebuild b/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-9999.ebuild index 699967ac5f1..ee53f6383cd 100644 --- a/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-9999.ebuild @@ -52,7 +52,7 @@ REQUIRED_USE="test-full? ( test )" DEPEND=" test? ( dev-libs/glib:2 - dev-libs/gobject-introspection + >=dev-libs/gobject-introspection-1.82.0-r2 app-alternatives/ninja dev-vcs/git sys-libs/zlib[static-libs(+)] diff --git a/sdk_container/src/third_party/portage-stable/dev-debug/gdb/gdb-16.3.ebuild b/sdk_container/src/third_party/portage-stable/dev-debug/gdb/gdb-16.3.ebuild index 69ce4b12b1d..e923bc1f4a1 100644 --- a/sdk_container/src/third_party/portage-stable/dev-debug/gdb/gdb-16.3.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-debug/gdb/gdb-16.3.ebuild @@ -7,7 +7,7 @@ EAPI=8 # tips & notes. GUILE_COMPAT=( 2-2 3-0 ) -PYTHON_COMPAT=( python3_{11..13} ) +PYTHON_COMPAT=( python3_{11..14} ) inherit flag-o-matic guile-single linux-info python-single-r1 strip-linguas toolchain-funcs export CTARGET=${CTARGET:-${CHOST}} diff --git a/sdk_container/src/third_party/portage-stable/dev-debug/gdb/gdb-9999.ebuild b/sdk_container/src/third_party/portage-stable/dev-debug/gdb/gdb-9999.ebuild index 5943d0668e6..cc92cf033c1 100644 --- a/sdk_container/src/third_party/portage-stable/dev-debug/gdb/gdb-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-debug/gdb/gdb-9999.ebuild @@ -7,7 +7,7 @@ EAPI=8 # tips & notes. GUILE_COMPAT=( 2-2 3-0 ) -PYTHON_COMPAT=( python3_{11..13} ) +PYTHON_COMPAT=( python3_{11..14} ) inherit flag-o-matic guile-single linux-info python-single-r1 strip-linguas toolchain-funcs export CTARGET=${CTARGET:-${CHOST}} diff --git a/sdk_container/src/third_party/portage-stable/dev-debug/strace/strace-6.17.ebuild b/sdk_container/src/third_party/portage-stable/dev-debug/strace/strace-6.17.ebuild index 196f558d280..b63bbeea8eb 100644 --- a/sdk_container/src/third_party/portage-stable/dev-debug/strace/strace-6.17.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-debug/strace/strace-6.17.ebuild @@ -16,7 +16,7 @@ else https://github.com/${PN}/${PN}/releases/download/v${PV}/${P}.tar.xz verify-sig? ( https://github.com/${PN}/${PN}/releases/download/v${PV}/${P}.tar.xz.asc ) " - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux" + KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux" fi VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/strace.asc diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/go/Manifest b/sdk_container/src/third_party/portage-stable/dev-lang/go/Manifest index a1ee0e150ee..54880538a21 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/go/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-lang/go/Manifest @@ -1,2 +1,2 @@ -DIST go1.24.7.src.tar.gz 30794506 BLAKE2B 850ffc97c83843c83d4dfb672dbe18c16b6feda5b76b70213241d583b5ef6c2c8d0bf532e15fa58cb4fceaaf1f66b52166d3badfc294ebecd1076ddd9c7a572e SHA512 656bb879244ba888af18b6e609fb2c4bc067b919827b9026c3ee44b3e2d0c7bffde262945de989880066196846b669c215da2e8c5d9adfb8491bb5d52af0d49a -DIST go1.25.1.src.tar.gz 31974863 BLAKE2B a9f0d27a292b8197ed2307bcfe90af0adccaa1e0e8de0d59df5b65f57ac7dd2cbaee1905401f81af994934fa83070e42c24ff6090affe56461198e89457842c7 SHA512 e77ae799a0dcd4ded40a196c3645da5b7e808e417831d2c5441387b0fd0ed5f946b678305294c52fda0a258889225c24c6073bb0973c3531ba4aa107b6afe849 +DIST go1.24.9.src.tar.gz 30800154 BLAKE2B 30e5ea7dac441a94bd023e152075651583b697c555da73e1581b6eef3dfdee0f7c30a774b8e9704940af60c43e97c8e8ba89b9e84d672a4805b5c969a4140ee8 SHA512 f553a6bdafa9e59d33756c99f6180dcb7e51762733f300488cdab1d42b918e0fff87fa42d714a6b667e039dd22e1ea14ef5f6e3eb1c9c215ff620d559a5c091a +DIST go1.25.3.src.tar.gz 31980799 BLAKE2B 4119c93544545b3e30b93ce4e1e9420447f7c9f8c68f9ef9debc8359028225e875e976aad91e390e3f0c7e5747d68d1e070280bd8376a56bd83c1894d68e6427 SHA512 91d32bbff864c06b5ee7b914d3d95c59462352a4c395adba85eaab72704a8aa4d19ac2a361ed64774dce3c8e01a8d4feadf1a788814f6d7b4072a3bdfefbb3b4 diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/go/files/go-1.24.9-ipv6-validation.patch b/sdk_container/src/third_party/portage-stable/dev-lang/go/files/go-1.24.9-ipv6-validation.patch new file mode 100644 index 00000000000..f9db3f7ee89 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-lang/go/files/go-1.24.9-ipv6-validation.patch @@ -0,0 +1,86 @@ +From e02a9d02d0181394e243cbc3b356e86896a78e2c Mon Sep 17 00:00:00 2001 +From: Roland Shoemaker +Date: Wed, 08 Oct 2025 17:13:12 -0700 +Subject: [PATCH] [release-branch.go1.24] net/url: allow IP-literals with IPv4-mapped IPv6 addresses + +The security fix we applied in CL709857 was overly broad. It applied +rules from RFC 2732, which disallowed IPv4-mapped IPv6 addresses, but +these were later allowed in RFC 3986, which is the canonical URI syntax +RFC. + +Revert the portion of CL709857 which restricted IPv4-mapped addresses, +and update the related tests. + +Updates #75815 +Fixes #75831 + +Change-Id: I3192f2275ad5c386f5c15006a6716bdb5282919d +Reviewed-on: https://go-review.googlesource.com/c/go/+/710375 +LUCI-TryBot-Result: Go LUCI +Reviewed-by: Ethan Lee +Auto-Submit: Roland Shoemaker +(cherry picked from commit 9db7e30bb42eed9912f5e7e9e3959f3b38879d5b) +--- + +diff --git a/src/net/url/url.go b/src/net/url/url.go +index c686239..1d9c1cd 100644 +--- a/src/net/url/url.go ++++ b/src/net/url/url.go +@@ -670,13 +670,13 @@ + + // Per RFC 3986, only a host identified by a valid + // IPv6 address can be enclosed by square brackets. +- // This excludes any IPv4 or IPv4-mapped addresses. ++ // This excludes any IPv4, but notably not IPv4-mapped addresses. + addr, err := netip.ParseAddr(unescapedHostname) + if err != nil { + return "", fmt.Errorf("invalid host: %w", err) + } +- if addr.Is4() || addr.Is4In6() { +- return "", errors.New("invalid IPv6 host") ++ if addr.Is4() { ++ return "", errors.New("invalid IP-literal") + } + return "[" + unescapedHostname + "]" + unescapedColonPort, nil + } else if i := strings.LastIndex(host, ":"); i != -1 { +diff --git a/src/net/url/url_test.go b/src/net/url/url_test.go +index 3206558..6084fac 100644 +--- a/src/net/url/url_test.go ++++ b/src/net/url/url_test.go +@@ -726,7 +726,7 @@ + {"https://[2001:db8::1]/path", true}, // compressed IPv6 address with path + {"https://[fe80::1%25eth0]/path?query=1", true}, // link-local with zone, path, and query + +- {"https://[::ffff:192.0.2.1]", false}, ++ {"https://[::ffff:192.0.2.1]", true}, + {"https://[:1] ", false}, + {"https://[1:2:3:4:5:6:7:8:9]", false}, + {"https://[1::1::1]", false}, +@@ -1672,16 +1672,17 @@ + {"cache_object:foo/bar", true}, + {"cache_object/:foo/bar", false}, + +- {"http://[192.168.0.1]/", true}, // IPv4 in brackets +- {"http://[192.168.0.1]:8080/", true}, // IPv4 in brackets with port +- {"http://[::ffff:192.168.0.1]/", true}, // IPv4-mapped IPv6 in brackets +- {"http://[::ffff:192.168.0.1]:8080/", true}, // IPv4-mapped IPv6 in brackets with port +- {"http://[::ffff:c0a8:1]/", true}, // IPv4-mapped IPv6 in brackets (hex) +- {"http://[not-an-ip]/", true}, // invalid IP string in brackets +- {"http://[fe80::1%foo]/", true}, // invalid zone format in brackets +- {"http://[fe80::1", true}, // missing closing bracket +- {"http://fe80::1]/", true}, // missing opening bracket +- {"http://[test.com]/", true}, // domain name in brackets ++ {"http://[192.168.0.1]/", true}, // IPv4 in brackets ++ {"http://[192.168.0.1]:8080/", true}, // IPv4 in brackets with port ++ {"http://[::ffff:192.168.0.1]/", false}, // IPv4-mapped IPv6 in brackets ++ {"http://[::ffff:192.168.0.1000]/", true}, // Out of range IPv4-mapped IPv6 in brackets ++ {"http://[::ffff:192.168.0.1]:8080/", false}, // IPv4-mapped IPv6 in brackets with port ++ {"http://[::ffff:c0a8:1]/", false}, // IPv4-mapped IPv6 in brackets (hex) ++ {"http://[not-an-ip]/", true}, // invalid IP string in brackets ++ {"http://[fe80::1%foo]/", true}, // invalid zone format in brackets ++ {"http://[fe80::1", true}, // missing closing bracket ++ {"http://fe80::1]/", true}, // missing opening bracket ++ {"http://[test.com]/", true}, // domain name in brackets + } + for _, tt := range tests { + u, err := Parse(tt.in) diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/go/files/go-1.25.3-ipv6-validation.patch b/sdk_container/src/third_party/portage-stable/dev-lang/go/files/go-1.25.3-ipv6-validation.patch new file mode 100644 index 00000000000..4f162b2b09a --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-lang/go/files/go-1.25.3-ipv6-validation.patch @@ -0,0 +1,86 @@ +From 83449b7e2f261c94ea46842012c0992a3a714ce5 Mon Sep 17 00:00:00 2001 +From: Roland Shoemaker +Date: Wed, 08 Oct 2025 17:13:12 -0700 +Subject: [PATCH] [release-branch.go1.25] net/url: allow IP-literals with IPv4-mapped IPv6 addresses + +The security fix we applied in CL709857 was overly broad. It applied +rules from RFC 2732, which disallowed IPv4-mapped IPv6 addresses, but +these were later allowed in RFC 3986, which is the canonical URI syntax +RFC. + +Revert the portion of CL709857 which restricted IPv4-mapped addresses, +and update the related tests. + +Updates #75815 +Fixes #75832 + +Change-Id: I3192f2275ad5c386f5c15006a6716bdb5282919d +Reviewed-on: https://go-review.googlesource.com/c/go/+/710375 +LUCI-TryBot-Result: Go LUCI +Reviewed-by: Ethan Lee +Auto-Submit: Roland Shoemaker +(cherry picked from commit 9db7e30bb42eed9912f5e7e9e3959f3b38879d5b) +--- + +diff --git a/src/net/url/url.go b/src/net/url/url.go +index 40faa7c..1c50e06 100644 +--- a/src/net/url/url.go ++++ b/src/net/url/url.go +@@ -673,13 +673,13 @@ + + // Per RFC 3986, only a host identified by a valid + // IPv6 address can be enclosed by square brackets. +- // This excludes any IPv4 or IPv4-mapped addresses. ++ // This excludes any IPv4, but notably not IPv4-mapped addresses. + addr, err := netip.ParseAddr(unescapedHostname) + if err != nil { + return "", fmt.Errorf("invalid host: %w", err) + } +- if addr.Is4() || addr.Is4In6() { +- return "", errors.New("invalid IPv6 host") ++ if addr.Is4() { ++ return "", errors.New("invalid IP-literal") + } + return "[" + unescapedHostname + "]" + unescapedColonPort, nil + } else if i := strings.LastIndex(host, ":"); i != -1 { +diff --git a/src/net/url/url_test.go b/src/net/url/url_test.go +index 3206558..6084fac 100644 +--- a/src/net/url/url_test.go ++++ b/src/net/url/url_test.go +@@ -726,7 +726,7 @@ + {"https://[2001:db8::1]/path", true}, // compressed IPv6 address with path + {"https://[fe80::1%25eth0]/path?query=1", true}, // link-local with zone, path, and query + +- {"https://[::ffff:192.0.2.1]", false}, ++ {"https://[::ffff:192.0.2.1]", true}, + {"https://[:1] ", false}, + {"https://[1:2:3:4:5:6:7:8:9]", false}, + {"https://[1::1::1]", false}, +@@ -1672,16 +1672,17 @@ + {"cache_object:foo/bar", true}, + {"cache_object/:foo/bar", false}, + +- {"http://[192.168.0.1]/", true}, // IPv4 in brackets +- {"http://[192.168.0.1]:8080/", true}, // IPv4 in brackets with port +- {"http://[::ffff:192.168.0.1]/", true}, // IPv4-mapped IPv6 in brackets +- {"http://[::ffff:192.168.0.1]:8080/", true}, // IPv4-mapped IPv6 in brackets with port +- {"http://[::ffff:c0a8:1]/", true}, // IPv4-mapped IPv6 in brackets (hex) +- {"http://[not-an-ip]/", true}, // invalid IP string in brackets +- {"http://[fe80::1%foo]/", true}, // invalid zone format in brackets +- {"http://[fe80::1", true}, // missing closing bracket +- {"http://fe80::1]/", true}, // missing opening bracket +- {"http://[test.com]/", true}, // domain name in brackets ++ {"http://[192.168.0.1]/", true}, // IPv4 in brackets ++ {"http://[192.168.0.1]:8080/", true}, // IPv4 in brackets with port ++ {"http://[::ffff:192.168.0.1]/", false}, // IPv4-mapped IPv6 in brackets ++ {"http://[::ffff:192.168.0.1000]/", true}, // Out of range IPv4-mapped IPv6 in brackets ++ {"http://[::ffff:192.168.0.1]:8080/", false}, // IPv4-mapped IPv6 in brackets with port ++ {"http://[::ffff:c0a8:1]/", false}, // IPv4-mapped IPv6 in brackets (hex) ++ {"http://[not-an-ip]/", true}, // invalid IP string in brackets ++ {"http://[fe80::1%foo]/", true}, // invalid zone format in brackets ++ {"http://[fe80::1", true}, // missing closing bracket ++ {"http://fe80::1]/", true}, // missing opening bracket ++ {"http://[test.com]/", true}, // domain name in brackets + } + for _, tt := range tests { + u, err := Parse(tt.in) diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/go/go-1.24.7.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/go/go-1.24.9.ebuild similarity index 95% rename from sdk_container/src/third_party/portage-stable/dev-lang/go/go-1.24.7.ebuild rename to sdk_container/src/third_party/portage-stable/dev-lang/go/go-1.24.9.ebuild index 0b04ca19870..3d6ed30afad 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/go/go-1.24.7.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/go/go-1.24.9.ebuild @@ -18,7 +18,7 @@ case ${PV} in inherit git-r3 ;; *) - SRC_URI="https://storage.googleapis.com/golang/go${MY_PV}.src.tar.gz " + 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 ~amd64-linux ~x86-linux ~x64-macos ~x64-solaris" ;; @@ -67,6 +67,7 @@ go_cross_compile() { PATCHES=( "${FILESDIR}"/go-1.24-skip-gdb-tests.patch "${FILESDIR}"/go-1.24-dont-force-gold-arm.patch + "${FILESDIR}"/go-1.24.9-ipv6-validation.patch # https://go-review.googlesource.com/c/go/+/712142 "${FILESDIR}"/go-never-download-newer-toolchains.patch ) diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/go/go-1.25.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/go/go-1.25.3.ebuild similarity index 95% rename from sdk_container/src/third_party/portage-stable/dev-lang/go/go-1.25.1.ebuild rename to sdk_container/src/third_party/portage-stable/dev-lang/go/go-1.25.3.ebuild index 6f8697ab128..4f6f1729fb2 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/go/go-1.25.1.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/go/go-1.25.3.ebuild @@ -18,7 +18,7 @@ case ${PV} in inherit git-r3 ;; *) - SRC_URI="https://storage.googleapis.com/golang/go${MY_PV}.src.tar.gz " + 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 ~amd64-linux ~x86-linux ~x64-macos ~x64-solaris" ;; @@ -68,6 +68,7 @@ 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.3-ipv6-validation.patch # https://go-review.googlesource.com/c/go/+/712240 "${FILESDIR}"/go-never-download-newer-toolchains.patch ) diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/go/go-9999.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/go/go-9999.ebuild index 4f9caabf8a0..16a403f5dc9 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/go/go-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/go/go-9999.ebuild @@ -18,7 +18,7 @@ case ${PV} in inherit git-r3 ;; *) - SRC_URI="https://storage.googleapis.com/golang/go${MY_PV}.src.tar.gz " + 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 ~amd64-linux ~x86-linux ~x64-macos ~x64-solaris" ;; @@ -65,6 +65,7 @@ go_cross_compile() { } PATCHES=( + "${FILESDIR}"/go-1.24-skip-gdb-tests.patch "${FILESDIR}"/go-1.24-dont-force-gold-arm.patch "${FILESDIR}"/go-never-download-newer-toolchains.patch ) diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/nasm/files/nasm-3.01-musl.patch b/sdk_container/src/third_party/portage-stable/dev-lang/nasm/files/nasm-3.01-musl.patch new file mode 100644 index 00000000000..20efe150b07 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-lang/nasm/files/nasm-3.01-musl.patch @@ -0,0 +1,92 @@ +https://github.com/netwide-assembler/nasm/commit/44e89ba9b650b5e1533bca43682e167f51a3511f +From: "H. Peter Anvin (Intel)" +Date: Sun, 12 Oct 2025 12:48:32 -0700 +Subject: [PATCH] compiler.h: drop the stupid C++-style cast-to-bool hack + +The C++-style cast-to-bool hack was broken in concept that it doesn't help the +fundamental problem -- implicit conversions are broken for the +backwards compatibility enum definition -- as well as in +implementation, as it misspelled __STDC_VERSION__ as __STDC_VERSION. + +The #ifdef bool test *should* have prevented this problem, but +apparently several compilers do define "bool" in even when +it is a keyword, in violation of the C23 spec. + +Signed-off-by: H. Peter Anvin (Intel) +--- a/include/compiler.h ++++ b/include/compiler.h +@@ -181,19 +181,10 @@ size_t strlcpy(char *, const char *, size_t); + char * pure_func strrchrnul(const char *, int); + #endif + +-#if !defined(__cplusplus) || (__STDC_VERSION >= 202311L) + /* C++ and C23 have bool, false, and true as proper keywords */ ++#if !defined(__cplusplus) || (__STDC_VERSION__ >= 202311L) + # ifdef HAVE_STDBOOL_H +-/* If exists, include it explicitly to prevent it from +- begin included later, causing the "bool" macro to be defined. */ + # include +-# ifdef bool +-/* Force bool to be a typedef instead of a macro. What a "clever" hack +- this is... */ +- typedef bool /* The macro definition of bool */ +-# undef bool +- bool; /* No longer the macro definition */ +-# endif + # elif defined(HAVE___BOOL) + typedef _Bool bool; + # define false 0 +@@ -201,14 +192,10 @@ char * pure_func strrchrnul(const char *, int); + # else + /* This is a bit dangerous, because casting to this ersatz bool + will not produce the same result as the standard (bool) cast. +- Instead, use the bool() constructor-style macro defined below. */ ++ Instead, use the explicit construct !!x instead of relying on ++ implicit conversions or casts. */ + typedef enum bool { false, true } bool; + # endif +-/* This amounts to a C++-style conversion cast to bool. This works +- because C ignores an argument-taking macro when used without an +- argument and because bool was redefined as a typedef if it previously +- was defined as a macro (see above.) */ +-# define bool(x) ((bool)!!(x)) + #endif + + /* Create a NULL pointer of the same type as the address of +@@ -321,11 +308,11 @@ static inline void *mempset(void *dst, int c, size_t n) + * less likely to be taken. + */ + #ifdef HAVE___BUILTIN_EXPECT +-# define likely(x) __builtin_expect(bool(x), true) +-# define unlikely(x) __builtin_expect(bool(x), false) ++# define likely(x) __builtin_expect(!!(x), true) ++# define unlikely(x) __builtin_expect(!!(x), false) + #else +-# define likely(x) bool(x) +-# define unlikely(x) bool(x) ++# define likely(x) (!!(x)) ++# define unlikely(x) (!!(x)) + #endif + + #ifdef HAVE___BUILTIN_PREFETCH + +https://github.com/netwide-assembler/nasm/commit/746e7c9efa37cec9a44d84a1e96b8c38f385cc1f +From: "H. Peter Anvin (Intel)" +Date: Sun, 12 Oct 2025 13:05:55 -0700 +Subject: [PATCH] compiler.h: the test for "neither C++ nor C23" still wrong + +The test needs to test for neither nor; as it was it tested "(not C++) +or C23" which was not at all what was intended... + +Signed-off-by: H. Peter Anvin (Intel) +--- a/include/compiler.h ++++ b/include/compiler.h +@@ -182,7 +182,7 @@ char * pure_func strrchrnul(const char *, int); + #endif + + /* C++ and C23 have bool, false, and true as proper keywords */ +-#if !defined(__cplusplus) || (__STDC_VERSION__ >= 202311L) ++#if !defined(__cplusplus) && (__STDC_VERSION__ < 202311L) + # ifdef HAVE_STDBOOL_H + # include + # elif defined(HAVE___BOOL) diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/nasm/nasm-3.01.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/nasm/nasm-3.01.ebuild index e15966772d4..58eb4f46d24 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/nasm/nasm-3.01.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/nasm/nasm-3.01.ebuild @@ -41,6 +41,9 @@ QA_CONFIG_IMPL_DECL_SKIP=( __bswap_16 __bswap_32 __bswap_64 + + # has fallback code to handle this missing on musl + stdc_leading_zeros ) # [fonts note] doc/psfonts.ph defines ordered list of font preference. @@ -60,6 +63,7 @@ BDEPEND=" PATCHES=( "${FILESDIR}"/${PN}-2.15-bsd-cp-doc.patch + "${FILESDIR}"/${P}-musl.patch # merged upstream ) src_prepare() { 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 1d222aafd96..f81b9409eed 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 @@ -18,18 +18,24 @@ DIST Python-3.13.7.tar.xz 22769492 BLAKE2B 8654588ed12e8cd1d691a1869ed1db0d4b9db DIST Python-3.13.7.tar.xz.asc 963 BLAKE2B ae8721488c7ce01c9c6fe1b184526044900b39d033b0ba1ac573c742cf99a902b32cfefc9b73af8573667b47c71b8356fced5abf0a4b581ef8d0aff1bbcacf47 SHA512 71cd002c18ebb47861abd3309c8cf38972d3d916cca5595d895ba3940719243c66fa28595c2370a8846d9d1c4b3cb4ac5baeda9e9cf94be30302892d01df5e87 DIST Python-3.13.8.tar.xz 22681576 BLAKE2B 83054e8d26b0f5641ef19b86e3fa692e4474495acf7d38eb1dee654811116def55ed742b60ee64e9e78a1895b74830d6e71bd8758529c70d8d78880e66082d2f SHA512 8569959f24083824f6644b839c6ebd587e67fb74b3c5fed9ef44bfbbba46076e98db33a27218b2d44edd15b3b05ae85e94b71491598cbb871d7d43a9d6fa2b84 DIST Python-3.13.8.tar.xz.asc 963 BLAKE2B 83b334a8a8c456776ad91a52f153808938eddcaf4a34209b94174f8859ddb207a6d57fafb48749cd5578fd9547ca4f20339946c7d89d8d1e26c724b8224bbf25 SHA512 ea5bae3f5a909d16526b614085cd4543153800348dd82ef90945ceed19acbab8db76f7c1279e39d26b9e69608aa0f7cf1eab9a562d00fd1c9badd5b0fafc5c21 +DIST Python-3.13.9.tar.xz 22681368 BLAKE2B 8fbf9b9e0dcc480a5bac82d5c18d6fdb630769364c6963d40a86f222a5b77b2b596a743c771e710f4ada9c5dada5b65fcbf2fdf3601179ad7aea4fddb61fbadd SHA512 ffc9b6e545bf5cf8f3b945f85442eb4bd28cca9adb92d8c253f44078ec2e9758f802bf72c48e0d7e503c02b2dc754c58ee913cd3b7d8e8808fac2a0aa4e006a8 +DIST Python-3.13.9.tar.xz.asc 963 BLAKE2B 7989940e3dfc62c553016f9d2b9aef447e770d63b2508f287e14495ba3e98326279d2bdb3b96bbc65ff2a859253bc43d8ce5387873842f656a66abef8380a3b7 SHA512 c33fba3a6b22dccc08beb7f13bd61a25a30f609a54da7c8dfd3b3b4a3490a7b24c11f9617a835388f22709fb09375d35febc417cf104a18f5bec3b43ec999e82 DIST Python-3.14.0.tar.xz 23595844 BLAKE2B 0fe495d62819c9066240927ceff022dc36920cfd9aa7f80f09fd82a6baf42fe0ef85aed7087418ad9769504e62dc0592cf9c06a542335d83ab65fc6399b5ac76 SHA512 46e9e205c3a084cba68bf7f267ab2fd0862a05430165e0eb713f2d6b3a1a4452f72f563de5de55caea824be9df56f66dd568f4814941667a9bb0954229772c53 DIST Python-3.14.0.tar.xz.sigstore 5374 BLAKE2B 50ed6dada3a7dfcfeb47e0cc55568c0e2ea01a5710f341d6423bb5b0982897b13a7a7c91d8b7c995499f687b17a6cf432fdcd3338b0ac658d19a8ad032438957 SHA512 147bf060a55b9108efb6f6a7f478c0b4dc1e7b1e215b842fb8adfe1b96bbe8d1b49ad352455e047d694638130f8533e3ea1c3a246e9ed0fde0d08e80113a6c44 DIST Python-3.14.0rc2.tar.xz 23566140 BLAKE2B 6871d31eba6167f2d0b2d098b1582e465b1bb8df90ede41bba57b8dbdcb087ceba7cc047e93e43cf93c3c36d3166f4f99ab4c321566ec64cdc4c0e65c0abd1da SHA512 8021dc8e23239fd9e53fafd1fcaa1108da41ef376ee5b5e9c8dfd74995537131990239cd83de45b8bd5fb52b44c4dc08df1c837f69ce82c5b2d99ddf3ea5ef77 DIST Python-3.14.0rc2.tar.xz.sigstore 4942 BLAKE2B 650404fe155c874f05d114dda6ff47ef90b9ed09f6d40f7a3757a3f0fe4420380cb2e52696dda76badccd86b31117e6f8b906a61881b8f65949d00d692abd959 SHA512 2cce5b68b32f9f0f400e5c2d571ad9ce479cff904690ddd454ea69b612cd8c5c003f632f8866a220be46e5e56b92a1dfb12c4e12b381fc7c58710635be5ea715 DIST Python-3.14.0rc3.tar.xz 23585028 BLAKE2B a74f441855f20001e04e576bb85227f73907213c435e7cdebcd3d5f04962181ebf7ab9d8fd7503ed51696fa4d285cd64c74a9c48e13250db6b5b3fce8e20bbb4 SHA512 15c55660fc0168bd0f2348fa6d669352b422a626b151b7a7131eb338459e552a15908874ad872eea0eea48801d5a489647e1643bf00548fd6d9c1aff6fc2044f DIST Python-3.14.0rc3.tar.xz.sigstore 5278 BLAKE2B f03ca95d4c143547533744e943045f22d493ad5c05f41644c20007792b6b4dd8fe3677a3bbab62b44c05dcf370e4bce109ed3fba1ac094f564c86538d6be8ec4 SHA512 8101d92af5e4fb67f5d7a378d817ffa8982898865986f1ed47ec0009b2203af4f797d60a07eb50453a85833a23349c472e9be4a7e10c2c9ea7f18c30ae45544c +DIST Python-3.15.0a1.tar.xz 23646768 BLAKE2B 63ccff58638d59b8c0061bf0a91c437c441bb2c08c6a76f51d38021c9122ea884474d52643389e10cddfa37644da69c3fd4267358c5dcf0bd86d4a3aaf5786a6 SHA512 5b86de5c935403b46b718d3a151f26c18e6ff5e468ee03c4dd09fd49c31b57560523ea24b5cd2e5283bbc0daf5621c7145d0af4ba67a23671b0652ce5cdad483 +DIST Python-3.15.0a1.tar.xz.sigstore 5138 BLAKE2B 58268279c2f1db2e0350a3219300c2a96780df8d9f524db1526e3792c8b2ca94d1088ca8dabca8a583eeca7a0f429f90687643b5fe4c8e20414e68a3b138d969 SHA512 3f77187359658235c016dd8a8f42e87b23e1e1f5fd7c693e612267344e00aa8e464995f197ab8b0d44a0cf1c53311ecdf323ae670e6e7ee0375e01c80a7de37a 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.23.tar.xz 19659284 BLAKE2B 17c7c9acec1e2f2e9d146b2c35738ea05cf16609f267dd784668ab43bcce7be93e164c14106f9640a060326ebb2b8bd4ee4e58086bdced4ca611d7f96dbb3699 SHA512 ad2eb2eebff286a16ad631339bc0890b0686cf5e669d28905a98f96e9b1af6673d255f36bf19e146aa4de8d012587dc6b3193e903718f9cdba4b97041318f418 DIST Python-3.9.23.tar.xz.asc 833 BLAKE2B a17a88b1997ece75e6447398d20c67e4b1be6d64204e6ac20aa4650e465b0657e7ae8bd497602d2e3c7193b50ecf7d15a1eb996942a05aab117eb25446dab159 SHA512 10187b0df66743308548780f82872d032530f8233f539cf66a2cfbdef1095b760f81f2fcc1759f003cc6f20752be91bdef71e4d821e76a75c0c85df112335698 DIST Python-3.9.24.tar.xz 20176216 BLAKE2B fbd910311debada90533946c64e5749c710d336e915fe4f6cfa17362a490896b53a2289d653a96905652522d6b51d4bb4cbd7e73189aebc817dbf8aaa3a0d38b SHA512 54be1c0805e66aa68b4c71e07a4234176203868ecdb6dfdc1859b04b95858bde26990dd1c5ac1001ce4b55513c05cd63310155c6c6666707e27fb79c159870bb DIST Python-3.9.24.tar.xz.asc 833 BLAKE2B 683ad8fce00518c2b31f1221d208dc8d57ec20cd2b20442b031964444b38b6e5a1e39e736417b64deb11d6a68cdeb7d17b1ebfd9176275dab64e07b33e87afca SHA512 50459b5a540e5e699ee2dffd8988369c0a15bd00cfa76d8b148ea7ad648205b8454521bd0a30dc39d6497b0ebcb85a037aedd56d8188c854d1d4409859aeead2 +DIST Python-3.9.25.tar.xz 20183236 BLAKE2B 01c5af78659324e2a596611c11c0fa982f81faf9b401afe1a96399b58321e39c41e46a932e1e4437f3f2bb2d76d8482e852fc66e6f960a4928f7fc99b62dfb7e SHA512 33fd65952cc3ce5df83825aa32a103935815bdd5a016e5fd9896cafb068a3f89b3a6134458a2694e4f0f4f8a9fbe84739b53116264728b32cde0f03ab210cb19 +DIST Python-3.9.25.tar.xz.asc 833 BLAKE2B 3ab506f78b53aed0b3ebbeb620e3763857aafca7756f0f9a594fdc27c2fc8b002e338ae34d54f7e9e5a52fa701d3ab4de44ab4f4328034d77a207f066abafc2e SHA512 83f0a0e558aa89a106bdffeeb9b0fa2685fbd7be5c5954f9176c59c6c7023716207b07239f202b3508cbb98ca34572161955f0bfd3732fdb9265721cd6723dbe DIST python-gentoo-patches-2.7.18_p16.tar.xz 35448 BLAKE2B 0139c0944f62f9cdd236f6a8557e0ed19704c7d72869af1cb7d8bd3e646a746cd4a0201e1b44232a5e78ef49f254db20b0d0271bf744fbfd4fe0f1e99b8f3e6c SHA512 810be590d0e06fab4b2165e6852ca49662f09dcd7e20b47a29f613ad7653252c8dfac3f0eb228d77c8a914efa7c08788b2fbd552a4b47504f5fd0ec17450c48f DIST python-gentoo-patches-3.10.18.tar.xz 29664 BLAKE2B dd69f7866cebad2536b41056571d74cbd90800062b06612b7509c9ce8f258aef66586f3c6e08f52caaceb7b0a01a52502b9c763b6f7d94caac0e929d9d77219b SHA512 b4cf4ff2d7e5b73e1102acc2183c4da3e734bdbec1c284d1fef8aceba0d49246dcdc954d3e4119521fde1e895bab0754b34b346b736b46ce45aff1afc6d38cef DIST python-gentoo-patches-3.10.18_p2.tar.xz 40708 BLAKE2B 9fb59889ffec1215511b0a1540d4765366ae850c43ea4fa41cdb65ffbae073b03288cf4071a0451cfc240a0e3a172224121c583ede5baa0784e47509aba83a1f SHA512 58404ae035becbac51031ac1dab84191f2ea342f763f9ac9ca0ded10bc2c3ece4c68d1b49f202c1ccf8faf5c5417f779d56a977da93af27c15aa08754e8bded8 @@ -44,11 +50,14 @@ DIST python-gentoo-patches-3.13.4.tar.xz 8912 BLAKE2B e3d9f2a12f801dc75e09c53017 DIST python-gentoo-patches-3.13.5_p1.tar.xz 19756 BLAKE2B ecc594573bbe3a28364d541d5e1014778c342b6e8ecb09e5e9def238ce73d51f178d02ae91bedce3f7aee4a753f2653aee4f4035f238fa60d603baa59ce4e89b SHA512 a60f3cf65b57aa6c85f59dc5f36fbabe1fa19a5225c3e224c99696bb3d1186b54bdad94627638a3a73b66ceb5958b3a5dcb2b83d13357c71ded04c98ad7da0b9 DIST python-gentoo-patches-3.13.7_p1.tar.xz 8944 BLAKE2B f7d7769328fc5cb83f03a8e30602a556be032b71bf068871d22a2ae234fbe865a8f3801300c959d216274025b824fa1d0e5c8cc866c5e6ab38c0b484dc1c1b75 SHA512 a102b66d3b1766261b5bc56ed08c88dc0b34480750177b1d6051bc8b5e9e51df956dc604c5e3509b02fb0dd09d00473f7955652d41cf76299537e18c9bc16389 DIST python-gentoo-patches-3.13.8.tar.xz 8956 BLAKE2B a98766abfe50feb591e3aa7b7964fdcecd43cadff088735152417d6bad5fe6e6055bc41cdfa74332790775c8b333f35e28f381dc557b9c89c7bd4aafb0e846f3 SHA512 9ee23e972a90eb9578c469af255d2559d4aa454a9b8716075baded60ff6e457a96b69cce3427bba8daddbb4a47d388b1316019fd397b13c8db71cf4882e3f3f5 +DIST python-gentoo-patches-3.13.9.tar.xz 8952 BLAKE2B 9941b3dd241adcdde64b38bdc3a610e8f3a820b0b4ff03b06ed6d1c26c91af0567cd1e979a8f1d0cfcd05a1568a182ee87944b27ecef22ec139de001e9085624 SHA512 bd12075b144300f1f922175077345fe38a7067282c057fbc256ef646a3e58dca68c029f1449ce4c40d6e7b62444579d6f892f28d73ddc8f859b48636012e3814 DIST python-gentoo-patches-3.14.0.tar.xz 7992 BLAKE2B 8faff97c198abc1549d7c871c82ff649bbdbe18f9cfdad31aa7b6535391fff8e6adc387a120a6298ede8842421bc103cfae27da807e651c9898d4edb192f4fd7 SHA512 7bc425a89d0f3ebbdab4f52ce1300e16512bda4f08968222e8e68f22d3a794fc7d32a00644f4949810ebb41da0ffd4a5a962dcbee86c7660cd4214406ad16b01 DIST python-gentoo-patches-3.14.0b1.tar.xz 5680 BLAKE2B 514b3edc3025e5bf675d371b5ada17dea426856edf1fb6095c2ee400eae95bd4265ef81fe593ae9338e801e7d0a25b1d5ba2d05ca563fd9dd020114b13575746 SHA512 74289e42cf532b54bb1b66a283ec19156f8a36ba38764209c133842314c9efb2ce2ebcba5aa9213bcf7fc0c8a5ca9b6e7adbd5dbfa4397233136d7cd55f53ee7 DIST python-gentoo-patches-3.14.0rc2_p1.tar.xz 7988 BLAKE2B fdcdb5a7319172284f8ad7bc8a1a1ce92f5eee3e6864cf5e7055093b9128928de2a17dce443dd786679ac1f7a33ffa2f7993ea6aa279a904bc9126e2db199f48 SHA512 b30f2b2d5b6fd6263533ebea6545c52e2bb365d035652bbbb215ab828685e2c48585a0544c0fead43c9622c82f51f327e946911d9cbc8717b92e5f75169234ea DIST python-gentoo-patches-3.14.0rc3.tar.xz 7992 BLAKE2B fd4f0be9f78a6d1f193c62db16f896ee19445f2dd95ffff4f1bca0b55dca0c837dc7a2e4fc07b8633043091e2fc8aa170e6782d66710ce371388896f65b4d68d SHA512 2ab39d1265e51747b2a20fc0dfe8b7391847bace5b5c88561be2c2de6ab2595813d2c84ab32d9df022f8f075f48968b4fd0106140e6eedfee56a6a7201b311b6 +DIST python-gentoo-patches-3.15.0a1.tar.xz 3820 BLAKE2B 1ee2ae65f079807d2665b050d4fbd744e71a7db8b14b80f52c32ae0c4593220037f0f7793cb8889fa3cde08b27ca8a2325e578bdf594f0eb1d1fdba90598369c SHA512 ddd00f3d6e22e7757ffe7c55ef7137e8d69377524c4047796594aca73f8d430efef2cb4a6dfe48b6d0fbef3cfae4812ead888ed49270d9b951e872879d2396ab DIST python-gentoo-patches-3.8.20_p7.tar.xz 54544 BLAKE2B e31fc9fb5e98b62b0f70165670ec58ed4fa932cfc95d5287c249015a3a372fdbf0d1ba08cb98f63c2dc500700edfd6ffea6db670385d2c86a4fdb92ffb991192 SHA512 a9e7e4976be226931a503af2c986da207d060d4ce436af61f5e8427da513639adbed32bb0061963b83fef275a5de91707ab13b7a9abf3a7472ee0e2c5310eda1 DIST python-gentoo-patches-3.9.23.tar.xz 37148 BLAKE2B a7c0514037169b9938b2180ec2dd22063621d532367f6febfa47da43f47534559baab992d9c5257271121af755b8445346d4d92582e7e11b6468a1c359f28bf2 SHA512 73ef00a7aa671016de396c9e1c4bb5f5c1a97dc735739f806d809f987e802ec440370bf4c85468097547284a5d2b476cbffcec3cf219b7cb6fc890d5029eb5bd DIST python-gentoo-patches-3.9.23_p2.tar.xz 48060 BLAKE2B 2d4ddd3aa48fc52b9f63fbc6020e534234b4183366d121e836544cab93632cd05439205893a11bb505f679946b0690f0962eb0fc029e624cb1c61bc0936127be SHA512 61b3e2c7e8629e1c522c9de8ce9384ee8d1f90ca5ef0f7b902e6315c80196e5f13e0258f8002405a2a752e1c9b5e60f5c3c767c07554d83635fa074bce8a86bd DIST python-gentoo-patches-3.9.24.tar.xz 36604 BLAKE2B 216cb86380a7655b991ae2b19d6bdb5016a29b5051213d0eb34bc463a7c763c01db982786a69d729c1cfe2be93ced2c35dd0df47861a9a89cc240369a54eb19b SHA512 df2eb206e765f8fa73fe9e9cf69d9660c277f64effdbda01b18ef16a77391b3ff4bffe7d29c45cabf0403496ede0cf5759bfe047b330e8e8d2594fe14336fee1 +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.13.9.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-0.3.13.9.ebuild new file mode 100644 index 00000000000..2e133b563a9 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-0.3.13.9.ebuild @@ -0,0 +1,611 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="8" + +WANT_LIBTOOL="none" + +inherit autotools check-reqs 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://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz + verify-sig? ( + https://www.python.org/ftp/python/${REAL_PV%%_*}/${MY_P}.tar.xz.asc + ) +" +S="${WORKDIR}/${MY_P}" + +LICENSE="PSF-2" +SLOT="${PYVER}" +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 +" +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-crypt/libb2 + app-misc/mime-types + >=dev-libs/expat-2.1:= + dev-libs/libffi:= + dev-libs/mpdecimal:= + dev-python/gentoo-common + >=sys-libs/zlib-1.1.3:= + virtual/libintl + gdbm? ( sys-libs/gdbm:=[berkdb] ) + kernel_linux? ( sys-apps/util-linux:= ) + 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 + ) + valgrind? ( dev-debug/valgrind ) +" +# autoconf-archive needed to eautoreconf +BDEPEND=" + dev-build/autoconf-archive + app-alternatives/awk + virtual/pkgconfig + verify-sig? ( >=sec-keys/openpgp-keys-python-20221025 ) +" +if [[ ${PV} != *_alpha* ]]; then + RDEPEND+=" + dev-lang/python-exec[python_targets_python${PYVER/./_}(-)] + " +fi +PDEPEND=" + ensurepip? ( dev-python/ensurepip-pip ) +" + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/python.org.asc + +# 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." +} + +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 + fi +} + +src_unpack() { + if use verify-sig; then + verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.asc} + 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} + 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 + ) + + 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 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 !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} + + # -j1 hack for now for bug #843458 + emake -j1 DESTDIR="${D}" TEST_MODULES=no altinstall + + # Fix collisions between different slots of Python. + rm "${ED}/usr/$(get_libdir)/libpython3.so" || die + # Fix collision with GIL-enabled build. + rm "${ED}/usr/bin/python${PYVER%t}" || die + mv "${ED}"/usr/bin/pydoc{${PYVER%t},${PYVER}} || die + mv "${ED}"/usr/share/man/man1/python{${PYVER%t},${PYVER}}.1 || die + + # Cheap hack to get version with ABIFLAGS + local abiver=$(cd "${ED}/usr/include"; echo python*) + if [[ ${abiver} != python${PYVER} ]]; then + # Replace python3.X with a symlink to python3.Xm + rm "${ED}/usr/bin/python${PYVER}" || die + dosym "${abiver}" "/usr/bin/python${PYVER}" + # Create python3.X-config symlink + dosym "${abiver}-config" "/usr/bin/python${PYVER}-config" + # Create python-3.5m.pc symlink + dosym "python-${PYVER}.pc" "/usr/$(get_libdir)/pkgconfig/${abiver/${PYVER}/-${PYVER}}.pc" + fi + + # python seems to get rebuilt in src_install (bug 569908) + # Work around it for now. + if has_version dev-libs/libffi[pax-kernel]; then + pax-mark E "${ED}/usr/bin/${abiver}" + else + pax-mark m "${ED}/usr/bin/${abiver}" + fi + + rm -r "${libdir}"/ensurepip/_bundled || die + if ! use sqlite; then + rm -r "${libdir}/"sqlite3 || die + fi + if use tk; then + # rename to avoid collision with dev-lang/python + mv "${ED}"/usr/bin/idle{${PYVER%t},${PYVER}} || die + else + rm -r "${ED}/usr/bin/idle${PYVER%t}" || die + rm -r "${libdir}/"{idlelib,tkinter} || die + fi + + ln -s ../python/EXTERNALLY-MANAGED "${libdir}/EXTERNALLY-MANAGED" || die + + dodoc Misc/{ACKS,HISTORY,NEWS} + + if use examples; then + docinto examples + find Tools -name __pycache__ -exec rm -fr {} + || die + dodoc -r Tools + fi + insinto /usr/share/gdb/auto-load/usr/$(get_libdir) #443510 + local libname=$( + printf 'e:\n\t@echo $(INSTSONAME)\ninclude Makefile\n' | + emake --no-print-directory -s -f - 2>/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 +} diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-0.3.15.0_alpha1.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-0.3.15.0_alpha1.ebuild new file mode 100644 index 00000000000..de2c32d72df --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-0.3.15.0_alpha1.ebuild @@ -0,0 +1,598 @@ +# Copyright 1999-2025 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 flag-o-matic linux-info +inherit multiprocessing pax-utils toolchain-funcs verify-sig + +REAL_PV=${PV#0.} +MY_PV=${REAL_PV/_alpha/a} +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://dev.gentoo.org/~mgorny/dist/python/${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 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-arch/zstd:= + app-misc/mime-types + >=dev-libs/expat-2.1:= + dev-libs/libffi:= + dev-libs/mpdecimal:= + dev-python/gentoo-common + >=sys-libs/zlib-1.1.3:= + virtual/libintl + gdbm? ( sys-libs/gdbm:=[berkdb] ) + kernel_linux? ( sys-apps/util-linux:= ) + 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-15:* + >=llvm-core/clang-19:* + ) + ) +" +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." +} + +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 15 + 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} + 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 !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} + + # -j1 hack for now for bug #843458 + emake -j1 DESTDIR="${D}" TEST_MODULES=no altinstall + + # Fix collisions between different slots of Python. + rm "${ED}/usr/$(get_libdir)/libpython3.so" || die + # Fix collision with GIL-enabled build. + rm "${ED}/usr/bin/python${PYVER%t}" || die + mv "${ED}"/usr/bin/pydoc{${PYVER%t},${PYVER}} || die + mv "${ED}"/usr/share/man/man1/python{${PYVER%t},${PYVER}}.1 || die + + # Cheap hack to get version with ABIFLAGS + local abiver=$(cd "${ED}/usr/include"; echo python*) + if [[ ${abiver} != python${PYVER} ]]; then + # Replace python3.X with a symlink to python3.Xm + rm "${ED}/usr/bin/python${PYVER}" || die + dosym "${abiver}" "/usr/bin/python${PYVER}" + # Create python3.X-config symlink + dosym "${abiver}-config" "/usr/bin/python${PYVER}-config" + # Create python-3.5m.pc symlink + dosym "python-${PYVER}.pc" "/usr/$(get_libdir)/pkgconfig/${abiver/${PYVER}/-${PYVER}}.pc" + fi + + # python seems to get rebuilt in src_install (bug 569908) + # Work around it for now. + if has_version dev-libs/libffi[pax-kernel]; then + pax-mark E "${ED}/usr/bin/${abiver}" + else + pax-mark m "${ED}/usr/bin/${abiver}" + fi + + rm -r "${libdir}"/ensurepip/_bundled || die + if ! use sqlite; then + rm -r "${libdir}/"sqlite3 || die + fi + if use tk; then + # rename to avoid collision with dev-lang/python + mv "${ED}"/usr/bin/idle{${PYVER%t},${PYVER}} || die + else + rm -r "${ED}/usr/bin/idle${PYVER%t}" || die + rm -r "${libdir}/"{idlelib,tkinter} || die + fi + + ln -s ../python/EXTERNALLY-MANAGED "${libdir}/EXTERNALLY-MANAGED" || die + + dodoc Misc/{ACKS,HISTORY,NEWS} + + if use examples; then + docinto examples + find Tools -name __pycache__ -exec rm -fr {} + || die + dodoc -r Tools + fi + insinto /usr/share/gdb/auto-load/usr/$(get_libdir) #443510 + local libname=$( + printf 'e:\n\t@echo $(INSTSONAME)\ninclude Makefile\n' | + emake --no-print-directory -s -f - 2>/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" +} diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.13.9.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.13.9.ebuild new file mode 100644 index 00000000000..13bdac28ade --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.13.9.ebuild @@ -0,0 +1,616 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="8" + +LLVM_COMPAT=( 18 ) +LLVM_OPTIONAL=1 +WANT_LIBTOOL="none" + +inherit autotools check-reqs flag-o-matic linux-info llvm-r1 +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://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz + verify-sig? ( + https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz.asc + ) +" +S="${WORKDIR}/${MY_P}" + +LICENSE="PSF-2" +SLOT="${PYVER}" +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 +" +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-crypt/libb2 + app-misc/mime-types + >=dev-libs/expat-2.1:= + dev-libs/libffi:= + dev-libs/mpdecimal:= + dev-python/gentoo-common + >=sys-libs/zlib-1.1.3:= + virtual/libintl + gdbm? ( sys-libs/gdbm:=[berkdb] ) + kernel_linux? ( sys-apps/util-linux:= ) + 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 + ) + 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} + ') + ) + verify-sig? ( >=sec-keys/openpgp-keys-python-20221025 ) +" +if [[ ${PV} != *_alpha* ]]; then + RDEPEND+=" + dev-lang/python-exec[python_targets_python${PYVER/./_}(-)] + " +fi +PDEPEND=" + ensurepip? ( dev-python/ensurepip-pip ) +" + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/python.org.asc + +# large file tests involve a 2.5G file being copied (duplicated) +CHECKREQS_DISK_BUILD=5500M + +QA_PKGCONFIG_VERSION=${PYVER} +# 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 +} + +pkg_setup() { + if [[ ${MERGE_TYPE} != binary ]]; then + use jit && llvm-r1_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 + fi +} + +src_unpack() { + if use verify-sig; then + verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.asc} + 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} + 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 + ) + + 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 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 !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} + + # -j1 hack for now for bug #843458 + emake -j1 DESTDIR="${D}" TEST_MODULES=no altinstall + + # Fix collisions between different slots of Python. + rm "${ED}/usr/$(get_libdir)/libpython3.so" || die + + # Cheap hack to get version with ABIFLAGS + local abiver=$(cd "${ED}/usr/include"; echo python*) + if [[ ${abiver} != python${PYVER} ]]; then + # Replace python3.X with a symlink to python3.Xm + rm "${ED}/usr/bin/python${PYVER}" || die + dosym "${abiver}" "/usr/bin/python${PYVER}" + # Create python3.X-config symlink + dosym "${abiver}-config" "/usr/bin/python${PYVER}-config" + # Create python-3.5m.pc symlink + dosym "python-${PYVER}.pc" "/usr/$(get_libdir)/pkgconfig/${abiver/${PYVER}/-${PYVER}}.pc" + fi + + # python seems to get rebuilt in src_install (bug 569908) + # Work around it for now. + if has_version dev-libs/libffi[pax-kernel]; then + pax-mark E "${ED}/usr/bin/${abiver}" + else + pax-mark m "${ED}/usr/bin/${abiver}" + fi + + rm -r "${libdir}"/ensurepip/_bundled || die + if ! use sqlite; then + rm -r "${libdir}/"sqlite3 || die + fi + if ! use tk; then + rm -r "${ED}/usr/bin/idle${PYVER}" || die + rm -r "${libdir}/"{idlelib,tkinter} || die + fi + + ln -s ../python/EXTERNALLY-MANAGED "${libdir}/EXTERNALLY-MANAGED" || die + + dodoc Misc/{ACKS,HISTORY,NEWS} + + if use examples; then + docinto examples + find Tools -name __pycache__ -exec rm -fr {} + || die + dodoc -r Tools + fi + insinto /usr/share/gdb/auto-load/usr/$(get_libdir) #443510 + local libname=$( + printf 'e:\n\t@echo $(INSTSONAME)\ninclude Makefile\n' | + emake --no-print-directory -s -f - 2>/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 +} diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.15.0_alpha1.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.15.0_alpha1.ebuild new file mode 100644 index 00000000000..3cf7ef7ce8f --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.15.0_alpha1.ebuild @@ -0,0 +1,603 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="8" + +LLVM_COMPAT=( 19 ) +LLVM_OPTIONAL=1 +VERIFY_SIG_METHOD=sigstore +WANT_LIBTOOL="none" + +inherit autotools check-reqs flag-o-matic linux-info llvm-r1 +inherit multiprocessing pax-utils toolchain-funcs verify-sig + +MY_PV=${PV/_alpha/a} +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://dev.gentoo.org/~mgorny/dist/python/${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 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-arch/zstd:= + app-misc/mime-types + >=dev-libs/expat-2.1:= + dev-libs/libffi:= + dev-libs/mpdecimal:= + dev-python/gentoo-common + >=sys-libs/zlib-1.1.3:= + virtual/libintl + gdbm? ( sys-libs/gdbm:=[berkdb] ) + kernel_linux? ( sys-apps/util-linux:= ) + 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-15:* + >=llvm-core/clang-19:* + ) + ) +" +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 +} + +pkg_setup() { + if [[ ${MERGE_TYPE} != binary ]]; then + use jit && llvm-r1_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 15 + 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} + 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 !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} + + # -j1 hack for now for bug #843458 + emake -j1 DESTDIR="${D}" TEST_MODULES=no altinstall + + # Fix collisions between different slots of Python. + rm "${ED}/usr/$(get_libdir)/libpython3.so" || die + + # Cheap hack to get version with ABIFLAGS + local abiver=$(cd "${ED}/usr/include"; echo python*) + if [[ ${abiver} != python${PYVER} ]]; then + # Replace python3.X with a symlink to python3.Xm + rm "${ED}/usr/bin/python${PYVER}" || die + dosym "${abiver}" "/usr/bin/python${PYVER}" + # Create python3.X-config symlink + dosym "${abiver}-config" "/usr/bin/python${PYVER}-config" + # Create python-3.5m.pc symlink + dosym "python-${PYVER}.pc" "/usr/$(get_libdir)/pkgconfig/${abiver/${PYVER}/-${PYVER}}.pc" + fi + + # python seems to get rebuilt in src_install (bug 569908) + # Work around it for now. + if has_version dev-libs/libffi[pax-kernel]; then + pax-mark E "${ED}/usr/bin/${abiver}" + else + pax-mark m "${ED}/usr/bin/${abiver}" + fi + + rm -r "${libdir}"/ensurepip/_bundled || die + if ! use sqlite; then + rm -r "${libdir}/"sqlite3 || die + fi + if ! use tk; then + rm -r "${ED}/usr/bin/idle${PYVER}" || die + rm -r "${libdir}/"{idlelib,tkinter} || die + fi + + ln -s ../python/EXTERNALLY-MANAGED "${libdir}/EXTERNALLY-MANAGED" || die + + dodoc Misc/{ACKS,HISTORY,NEWS} + + if use examples; then + docinto examples + find Tools -name __pycache__ -exec rm -fr {} + || die + dodoc -r Tools + fi + insinto /usr/share/gdb/auto-load/usr/$(get_libdir) #443510 + local libname=$( + printf 'e:\n\t@echo $(INSTSONAME)\ninclude Makefile\n' | + emake --no-print-directory -s -f - 2>/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" +} diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.9.25.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.9.25.ebuild new file mode 100644 index 00000000000..919febbb52b --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.9.25.ebuild @@ -0,0 +1,566 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="8" +WANT_LIBTOOL="none" + +inherit autotools check-reqs flag-o-matic multiprocessing pax-utils +inherit prefix toolchain-funcs verify-sig + +MY_PV=${PV/_rc/rc} +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://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz + verify-sig? ( + https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz.asc + ) +" +S="${WORKDIR}/${MY_P}" + +LICENSE="PSF-2" +SLOT="${PYVER}" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +IUSE=" + bluetooth debug +ensurepip examples gdbm +ncurses pgo +readline + +sqlite +ssl 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-libs/zlib-1.1.3:= + virtual/libcrypt:= + virtual/libintl + gdbm? ( sys-libs/gdbm:=[berkdb] ) + kernel_linux? ( sys-apps/util-linux:= ) + ncurses? ( >=sys-libs/ncurses-5.2:= ) + readline? ( >=sys-libs/readline-4.1:= ) + 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? ( + app-arch/xz-utils + dev-python/ensurepip-pip + dev-python/ensurepip-setuptools + ) + valgrind? ( dev-debug/valgrind ) +" +# autoconf-archive needed to eautoreconf +BDEPEND=" + dev-build/autoconf-archive + app-alternatives/awk + virtual/pkgconfig + verify-sig? ( sec-keys/openpgp-keys-python ) +" +PDEPEND=" + ensurepip? ( + dev-python/ensurepip-pip + dev-python/ensurepip-setuptools + ) +" + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/python.org.asc + +# large file tests involve a 2.5G file being copied (duplicated) +CHECKREQS_DISK_BUILD=5500M + +QA_PKGCONFIG_VERSION=${PYVER} +# false positives -- functions specific to *BSD +QA_CONFIG_IMPL_DECL_SKIP=( chflags lchflags ) + +pkg_pretend() { + use test && check-reqs_pkg_pretend +} + +pkg_setup() { + use test && check-reqs_pkg_setup +} + +src_unpack() { + if use verify-sig; then + verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.asc} + fi + default +} + +src_prepare() { + # Ensure that internal copies of expat and libffi are not used. + rm -r Modules/expat || die + rm -r Modules/_ctypes/libffi* || die + + local PATCHES=( + "${WORKDIR}/${PATCHSET}" + ) + + default + + # https://bugs.gentoo.org/850151 + sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" setup.py || die + + # force the correct number of jobs + # https://bugs.gentoo.org/737660 + local jobs=$(makeopts_jobs) + sed -i -e "s:-j0:-j${jobs}:" Makefile.pre.in || die + sed -i -e "/self\.parallel/s:True:${jobs}:" setup.py || die + + eautoreconf +} + +src_configure() { + # disable automagic bluetooth headers detection + if ! use bluetooth; then + local -x ac_cv_header_bluetooth_bluetooth_h=no + fi + local disable + use gdbm || disable+=" gdbm" + use ncurses || disable+=" _curses _curses_panel" + use readline || disable+=" readline" + use sqlite || disable+=" _sqlite3" + use ssl || export PYTHON_DISABLE_SSL="1" + use tk || disable+=" _tkinter" + export PYTHON_DISABLE_MODULES="${disable}" + + if [[ -n "${PYTHON_DISABLE_MODULES}" ]]; then + einfo "Disabled modules: ${PYTHON_DISABLE_MODULES}" + 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 + ) + + # 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 + ) + ;; + powerpc64-*) # big endian + COMMON_TEST_SKIPS+=( + -x test_descr + ) + ;; + 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 + -x test_descr + # bug 931908 + -x test_exceptions + ) + ;; + esac + + # 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 + -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_concurrent_futures + -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 + ) + + # Arch-specific skips. See #931888 for a collection of these. + case ${CHOST} in + alpha*) + profile_task_flags+=( + -x test_os + ) + ;; + hppa*) + profile_task_flags+=( + -x test_descr + # bug 931908 + -x test_exceptions + -x test_os + ) + ;; + powerpc64-*) # big endian + profile_task_flags+=( + # bug 931908 + -x test_exceptions + ) + ;; + riscv*) + profile_task_flags+=( + -x test_statistics + ) + ;; + esac + + if has_version "app-arch/rpm" ; then + # Avoid sandbox failure (attempts to write to /var/lib/rpm) + profile_task_flags+=( + -x test_distutils + ) + fi + local -x PROFILE_TASK="${profile_task_flags[*]}" + 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 + --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-ffi + --with-system-libmpdec + --with-wheel-pkg-dir="${EPREFIX}"/usr/lib/python/ensurepip + + $(use_with debug assertions) + $(use_enable pgo optimizations) + $(use_with valgrind) + ) + + # disable implicit optimization/debugging flags + local -x OPT= + + # https://bugs.gentoo.org/700012 + if tc-is-lto; then + append-cflags $(test-flags-CC -ffat-lto-objects) + myeconfargs+=( + --with-lto + ) + fi + + if tc-is-cross-compiler ; then + # 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} + 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 and bug #864911. + local myeconfargs_cbuild=( + "${myeconfargs[@]}" + + --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. + --without-lto + --disable-optimizations + ) + + # Point the imminent CHOST build to the Python we just + # built for CBUILD. + export PATH="${WORKDIR}/${P}-${CBUILD}:${PATH}" + + mkdir "${WORKDIR}"/${P}-${CBUILD} || die + pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die + # We disable _ctypes and _crypt for CBUILD because Python's setup.py can't handle locating + # libdir correctly for cross. + PYTHON_DISABLE_MODULES="${PYTHON_DISABLE_MODULES} _ctypes _crypt" \ + ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}" + + # Avoid as many dependencies as possible for the cross build. + cat >> Makefile <<-EOF || die + MODULE_NIS=disabled + MODULE__DBM=disabled + MODULE__GDBM=disabled + MODULE__DBM=disabled + MODULE__SQLITE3=disabled + MODULE__HASHLIB=disabled + MODULE__SSL=disabled + MODULE__CURSES=disabled + MODULE__CURSES_PANEL=disabled + MODULE_READLINE=disabled + MODULE__TKINTER=disabled + MODULE_PYEXPAT=disabled + MODULE_ZLIB=disabled + EOF + + # Unfortunately, we do have to build this immediately, and + # not in src_compile, because CHOST configure for Python + # will check the existence of the Python it was pointed to + # immediately. + PYTHON_DISABLE_MODULES="${PYTHON_DISABLE_MODULES} _ctypes _crypt" emake + popd &> /dev/null || die + 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 + + hprefixify setup.py + 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 + # Prevent using distutils bundled by setuptools. + # https://bugs.gentoo.org/823728 + export SETUPTOOLS_USE_DISTUTILS=stdlib + + # 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 + + 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} + + emake DESTDIR="${D}" altinstall + + # Remove static library + rm "${ED}"/usr/$(get_libdir)/libpython*.a || die + + # Fix collisions between different slots of Python. + rm "${ED}/usr/$(get_libdir)/libpython3.so" || die + + # Cheap hack to get version with ABIFLAGS + local abiver=$(cd "${ED}/usr/include"; echo python*) + if [[ ${abiver} != python${PYVER} ]]; then + # Replace python3.X with a symlink to python3.Xm + rm "${ED}/usr/bin/python${PYVER}" || die + dosym "${abiver}" "/usr/bin/python${PYVER}" + # Create python3.X-config symlink + dosym "${abiver}-config" "/usr/bin/python${PYVER}-config" + # Create python-3.5m.pc symlink + dosym "python-${PYVER}.pc" "/usr/$(get_libdir)/pkgconfig/${abiver/${PYVER}/-${PYVER}}.pc" + fi + + # python seems to get rebuilt in src_install (bug 569908) + # Work around it for now. + if has_version dev-libs/libffi[pax-kernel]; then + pax-mark E "${ED}/usr/bin/${abiver}" + else + pax-mark m "${ED}/usr/bin/${abiver}" + fi + + rm -r "${libdir}"/ensurepip/_bundled || die + if ! use ensurepip; then + rm -r "${libdir}"/ensurepip || die + fi + if ! use sqlite; then + rm -r "${libdir}/"{sqlite3,test/test_sqlite*} || die + fi + if ! use tk; then + rm -r "${ED}/usr/bin/idle${PYVER}" || die + rm -r "${libdir}/"{idlelib,tkinter,test/test_tk*} || die + fi + + ln -s ../python/EXTERNALLY-MANAGED "${libdir}/EXTERNALLY-MANAGED" || die + + dodoc Misc/{ACKS,HISTORY,NEWS} + + if use examples; then + docinto examples + find Tools -name __pycache__ -exec rm -fr {} + || die + dodoc -r Tools + fi + insinto /usr/share/gdb/auto-load/usr/$(get_libdir) #443510 + local libname=$( + printf 'e:\n\t@echo $(INSTSONAME)\ninclude Makefile\n' | + emake --no-print-directory -s -f - 2>/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" +} 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 d51e61e9959..1ef5bf3ed9f 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 @@ -664,62 +664,43 @@ DIST rust-1.90.0-x86_64-unknown-linux-gnu.tar.xz 202999512 BLAKE2B 2aeaca36f5211 DIST rust-1.90.0-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B c4dcbac0cf9f470eba5a4cc21d32a4ae8814d2e259138935c3abc783ba13a4017ef6eb9902bc5609e0a9bceb0ee880927de17c7e22ff870a79e9844482e3e4ea SHA512 4b030294eb39d7a89756988edc24e8777e10227e41159bb835a16fca9253b60fea20b29bd2c2fa6bd8f3e77164de6aacd589162cb4a240a64cfb38f39c644036 DIST rust-1.90.0-x86_64-unknown-linux-musl.tar.xz 294424352 BLAKE2B e07514b7542b5a2ec20ae08c2e6e55ea1570bcc827b2851c86a3582bd73f69c0b70b18053030033f74a6d3c472fc4cae431a7404b594a7b12a17c01afe8b96a7 SHA512 fffdfd588b20aa518f361f6e4f6c32844d377356d520f8bd1b9f8a7e062be5c2db5e736a2b93619b2d0f182f49eeeaa22075e4692c7683c0ecb4a231522d4cbd DIST rust-1.90.0-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 85238bc602c31a435de5f336a0646589259973fbe6c2d737fd6423b4e5721b2448222b6be5f2bb4fe309a60162a8ed66dbdad6dbd338dbddcab12586461965da SHA512 729042345408572f3134702150984182716728cb42df76d8b1f1dc986b579b3bf911a3c64230a61638d3b8d064e28cce3aa0afcbbcd719b49e02b4f3009721b0 -DIST rust-1.91.0_beta20250928-aarch64-unknown-linux-gnu.tar.xz 172095376 BLAKE2B 9d328275e10cfadbacc495682b09339307693574af9bbfc2b206c55847b0ea9e1843118cae255caafc05d87d49b167f9c1483481b96a169b860ac08fe1debbae SHA512 1fd287fb305309def4e5df8a4e009f6d50cb423d47f4bb51c5ba63dfd91c9d235d4bade9b50a7a775b81c922fad092cdca62e342b9f2a97b8161b078dff1a83c -DIST rust-1.91.0_beta20250928-aarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 5c647795becfce97eb628fa5f03d6ed7919c97bd4605043d192b46e32c8c33255db68433a2615d17e5f26205d0e5c986cd95b34cdd83826bf6916b64c4b8b1c1 SHA512 9aa0f5fe204801b1ee413209068d9702196ae119e1d8bfb57a3d5b458cba8be371e370a9e57a254d23cc4ef61d89db7fd5ff1721e69d31d06ddc4faf76d72326 -DIST rust-1.91.0_beta20250928-aarch64-unknown-linux-musl.tar.xz 253053588 BLAKE2B 08fa0f52fbbbdf8a658e5f86062c3590977424af505f0edd32cc1477b6acfad5aea516b434a7f0af240591575f9ea58908f331c9e80fc53eab9fc92566c944da SHA512 2e1dd7cd752caea77d65ea2a2532365d06b4f3dde4fb667ca99e95f65cd9a9dbb01334cb68b538f702c3fc275fe97ccbe6f0e8fe7d6b3b2595a2fe325e49ac19 -DIST rust-1.91.0_beta20250928-aarch64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 18b462a6b075c0dcd2b675554f677319c70e1467222cc336bf2b6e1c8d58269407943e20f7f28b9365b0d8f0a491f9938dea636af580aa63a85cf8b1a8d7ce5d SHA512 707dadd60adb97a95e944a4b645380750e63957892f310eb0037edd3e99f3c4359c5f0353b9da0cc807384fc2addb83a9cceffe859d9469ace964e0e465ef0bb -DIST rust-1.91.0_beta20250928-arm-unknown-linux-gnueabi.tar.xz 236628464 BLAKE2B fc6ee14abf174c02bb23f954fe7486e9834bf3a9ddf043c044d9f4f7e9d26c171b906ab901be4b773e0e751294e6123cc563f03f1519fe4e7a3c6b6d339cb89b SHA512 31f5c8c2e7b82538d17f3d0db4d32ee46321d4ef5044146846740039d3bdfc8c72c5b4ae5df43daeb0fb89c7dc6317e9053fd83eacb4fb47600204a8a5c7d3fc -DIST rust-1.91.0_beta20250928-arm-unknown-linux-gnueabi.tar.xz.asc 801 BLAKE2B 94ab04b4da8615663658341183496321f9417b75fb3968a025a0add46ce15739821ebe41313d803622656bd9ce47012e11c18a1ac0aa6e50495a76f39d48a600 SHA512 ab5e7cf268f4df4ab77afbbc5624fd261bc5775a97d667fc93b7d3fdd976a43bc6d3d70653aae01ec44b2abcbcd14dc689cd99894f203696e1047bf1195b86aa -DIST rust-1.91.0_beta20250928-arm-unknown-linux-gnueabihf.tar.xz 237170812 BLAKE2B d239947b16bf9330c3fec200db9dda8ae030842256bcb3d3ef95814c0786495e679cfc3a9eeda0a8d7be63fd3b38508773b42b8c35862e8738e01bdaff8c9815 SHA512 d77f57fc1e473977b5688c4a32ea8990a85d91a3ae06e98abed2cd940d974fc2b564e971f9e3c0e57ef97c4b8d25ceef560968a36f8b3d8759baa8b4fc038b30 -DIST rust-1.91.0_beta20250928-arm-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B 7cad77cd70c514cc7c128eb0780be1cd16311fe3215c14850c679d9aa3fbbea067f6acf9eed4ff53822386c0e2876009de4805aa7a9e89afc43434e7b15970b3 SHA512 e54e2dd1a34091d8da89c38e254f0e7eb0ab6c22c1530637fe41c033a76e2dae52f3b1b82d373c467812c79dea63331f6175009025d1d78b57a9ab9dffdb1992 -DIST rust-1.91.0_beta20250928-armv7-unknown-linux-gnueabihf.tar.xz 244114520 BLAKE2B 4f04f4018d00fa9dddd4e903ef1fc5c2a93696bbcefc79e441e2a0839123424394b63c460d1a81e00194b451fde20f03753f0885af597e09674f02ffdc28d777 SHA512 5f72078cd7dcad95f0d1d5493217e094c7199a440a7cf1fd982be3b57b8a94f5d7b69caa32f00c4c5160f358843fd8e0cd2df774c5aa958dcff61b5e61f78cfe -DIST rust-1.91.0_beta20250928-armv7-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B b856d0298b55498e1dd9122c690437cd5f2d6e618ebc96f7ee6ffa015e038bca54ee34165744f8f4b7c0aaf87db95e0ff1750796e53f072276eb69ca0f371229 SHA512 6091c3cfd481e34f1abc334c26c3fc7e6976a58749fc4218111ba4ec9b4dfd262fec1ccfd8edc294b9b9f5c485015d16f5c827525dedbff6e362a59c92ecad0e -DIST rust-1.91.0_beta20250928-i686-unknown-linux-gnu.tar.xz 273860868 BLAKE2B 5be2d6233503271a032f2d7a2eb6dd8906317e18dea0b47a88caf08efdc0d1410cc728be5fd5b71fbc9d7498e7a765fd23d4f16f3b9f573bce820d60d610c2bc SHA512 f609dd8d425a4bd52d3b3251b26e298df7c2ef70237d13e64dcb8a76d8e58f3bc95722325b8a9673346a233369cb0342acc7070251d431f79850f33ab9b2db42 -DIST rust-1.91.0_beta20250928-i686-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B b4acda03e93a3e712fa57e7ab20fcc56f38cbf7e5eaf4da5e18091f7ab02a32cec8d03d30d002ad7bd12b03dde12c8368739891dd559be40fa0bf87f0045d492 SHA512 06cd861bbd1603cec784af313e2da2571b9918f8f234aeee8aa9a6e2276acb6c35fa15d8db0941fc501f799869dab49014ddc9b7a9c591b445001f160649ad3b -DIST rust-1.91.0_beta20250928-loongarch64-unknown-linux-gnu.tar.xz 270049484 BLAKE2B 9499b1df9c2b7242a993a8d9090cb62304db0c34c5800e1deb3543dd5866821e58644e4ba074bfaea79c7dc06fcb08acf2858c47af61ec8d0b7bdea165a14e53 SHA512 fd785b373e4fdc8b43b47a0811fce7a84fc234f6669170bdcd2bc53f4dbfefbed532fb3af9681437698a5095bcb4207460610751f0c8d547e866ba1835a72d9b -DIST rust-1.91.0_beta20250928-loongarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 81608c9851e03a5018cfff678f68f139500728b3763443c26964e6d4c344d1be5c310991e2a432b9f3864370872f0b9c62ba37f2c37a12dbe11feb4dd2643012 SHA512 8604dd3a3a85f94a2529d54715b8b263a6abbc19b7a6f58090b02712fe79a5e409ae4f972acfbe70fd573e39da3fece160188a90efb9c60c14c144d6e2ad9017 -DIST rust-1.91.0_beta20250928-powerpc-unknown-linux-gnu.tar.xz 262935108 BLAKE2B e8de89b16da5b9aa52a22cb77d3785e9ebccaf521ac443b9ed9a2985dfc362505ed29117eff5a9a74571a2e8a9332900fd930183dda94a721068cf28a81e7d97 SHA512 805f8311a4acfbaac019a4e1fd59545e0c30c76a26049332ab77e4af10f363b0af8e92fbf0ec7bda325f93bdabe3291d54a9ec448454d67bac85ad4557a11f71 -DIST rust-1.91.0_beta20250928-powerpc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 6b399ba4e1013a8cafbf3dd91702ac33a8cc14ccc7a03cdab8e187f42646b4abf2fb88c5436619511bed12ef97a9584241e5f5d4425ddd74a7e0a00e8ea17507 SHA512 333edc84f2484b8185b126da68b4f883086e3842b56c9cc385ffa642e112262cb273d9c829c74a03f0649a41c806540971536cc92ce49fd5a3aedaf6ef2a268e -DIST rust-1.91.0_beta20250928-powerpc64-unknown-linux-gnu.tar.xz 261871320 BLAKE2B 47cce41a6ba2a233ecf1abcdeda799507f8195b57cbc686cfb467539b62960d220135a36c5b185835515d3d64f332489b39f5c05c21c4265183dd8425026a3b7 SHA512 f7a03f9deea8996a25663073b6f7035d9c8ef60f7528c139994bc14a1055d4fbf8d2a900d80bfdea7e1be0bd281e39fca4a863fc45f27ed23918247f79d6d45a -DIST rust-1.91.0_beta20250928-powerpc64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 10d1e3e88dfce122284992ba2d94f8dedd0e5b1979b0ec8ec90d09a615dcb2a05287e4069f8c13801c490ebc26de4f25d74cc63d91911ac6fd0b055952e3ef71 SHA512 e8eec3b36b6b1bec852786f5a4d7976461b81b093c63248dc4faa994e5c263f007cbabda59a898b9d097bd756856434f4e6afe0a94cf56281f4963f4ab781b57 -DIST rust-1.91.0_beta20250928-powerpc64le-unknown-linux-gnu.tar.xz 283662436 BLAKE2B 4990cc15f7085b1aa326004b2bb0e81c7501dfe99cc2816a1b1f051ac682dd3ae27c72f55da06062ec55a87a1cd13dac65dd27b438443fa22895359705d35e04 SHA512 4658cadfcc990088b0c42f85d9fe4051c7581c03b72e5d849558d74e1ae746e101e6243737f4b9686b3b501adf05da199b798323f163e9a6c3cb8b3f631706e3 -DIST rust-1.91.0_beta20250928-powerpc64le-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B e694b6bbea80e15f5989ac6f6e85699d2b6f285bc7c60d2172e8c554c9d414f1871c9d0446d4063e34a0e0d4f376dc5a74c373520cc3ecb847acdd1aad2c992d SHA512 853030df7476125cf4b33129266018a2a4006dc31cc5707805a569b019381c7bd735f83a3478b259181cc5d5da1568e95c836f4f2df715b2bf669116d700e536 -DIST rust-1.91.0_beta20250928-riscv64gc-unknown-linux-gnu.tar.xz 259277484 BLAKE2B 302863ba3bc95950b117c747a74cabc5791cbdeffdb23b8703c1e5a4cf68d0d5cc22212d7669c8af0b8459272f4105004b7b1cb785ff37557d856a6e2c17b763 SHA512 aa510f0494b0d9512493ceab1c1552ae2e2cbecf6155c2ebe0c6ab20fd7b8581b720d4a6c720431ac2a3ff0493d83fb55f1cb46b3256c112ced9b6ba5f31ac1b -DIST rust-1.91.0_beta20250928-riscv64gc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B b74230bc6956193e3b7016a1dd74c7263b1e3d271bdd6180ca87e5bb27ef1aa12149cff9666acd974f325cf630fb6b9a4faf4714e8424c6286e4987e508d4d01 SHA512 eafec3f4ddec5cb489a76a9c02ea2579885748e28807c5faddcd43411aef86475a3b53f998e64e2232800b25e004d27868de23c802499f7a0b50895f6c211486 -DIST rust-1.91.0_beta20250928-s390x-unknown-linux-gnu.tar.xz 247379756 BLAKE2B 4b62291f0645750b601c5b10f892d8c2ec30f223c9a9bbaf4f3d6498911da4c109e8020a9536c0a85b73afa80fe9eb40368d85ed453c3395fc64d0bafc1533c5 SHA512 078a94df9d2187af8635e73081387de551bcc2bad5d6b4449825b92b87a4a331822ee7029e5c27f7b5618fd839e920e6763c8bc267e49c7ff24bd73e1d5fe48d -DIST rust-1.91.0_beta20250928-s390x-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 5c282c7f79c5396ae9e419468fd88bf094246c69678f2a6c6a65ff9cb73cb4c21190ed794dfb3ea0482c7986d515ba9f5d417354d5803e9fba473ca5b7837933 SHA512 37644c5cf4aad7430d048f36a8cac0a042f461757c89d59cda5f80a3eb84ff84eeab5efcbf806ca715036403299416dbf95f774642ef57888e95159db73cfbfb -DIST rust-1.91.0_beta20250928-x86_64-unknown-linux-gnu.tar.xz 207672796 BLAKE2B 3a1530ecb26dd8b278fdf3541ae43ceeda5ab8f64d2df5a057c4d487c1d9886bea1798db74d8da6a3d4b5908b593173ba0a7c80ab66b685c98da634f587e54da SHA512 0650169048f5e2ba845b5fde0a061244dcc78bd3f50688429c096bb13b746199baea6428335fb352f2eb94206cfe288b0f47864b35e8b173ac24d0815e3d8d7e -DIST rust-1.91.0_beta20250928-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 0cca15af7dd687338b4bf1c3466d3361516a9a3a75d0101a4b2668f3b9b3b7ab495138c6b93160f10f1362d4ef8392c05d0a32c793f817686abc6db9f3de07ed SHA512 7bfca67933a63fc2802c9b000a4d986d0b87d3f075fc5fa7ab71f3cc9994e0d8625c8d88c95c8a7ed328c4cdfb9fb959955d4988c097163e7abb336b4ce3d6c6 -DIST rust-1.91.0_beta20250928-x86_64-unknown-linux-musl.tar.xz 303415480 BLAKE2B a8bad917244cf6641d5ede5e41cefc262e7edb8cf6cb2498c63d2af1b93b08286c86cc0e39928c9061d6ae21e344d91a2f569f61a7464981929883f2ac21ee17 SHA512 676ad4f6ed23dc5152a0d19f522d36d65d70d6d43adf5ef6a622f77f69c2fd6074988a3b58405eafc06d6004eb56cf49638a23ac10db53adc18fd20ea3f3c3e0 -DIST rust-1.91.0_beta20250928-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B b54b7007ae859d6a096c9bb927d4cfef976874a426b74ece4f147a6914484fd21beb30cef71736ca38260d0d551cd00a45e936cce27fddf191b958770ac91f31 SHA512 3c796d3e4e0c13fafca3693e9a0c6ab3dc76fcb464b6157147ef5af05152c9d8620d89be5ca7a0a2815d74633fd40ff496ef602b4deb0d38d85bd07d8a497207 -DIST rust-1.91.0_beta20251009-aarch64-unknown-linux-gnu.tar.xz 169413468 BLAKE2B 5f15fb75cc40be2389da96f77c78d59f61ec966c5b5747b4363bb638661d88f8944e6adc42f64e42a1f56f9022a32fbdeb446bf6fcc92bd455c72c256ba9ce5f SHA512 cb96e3760da1138e67d11023d0bd45c3d8e9f6fcf6097244e0e3dffe8ffc606dc907000799db590c4686a62341a71ae5f144602e558378d1cd7db18b0ab5a85b -DIST rust-1.91.0_beta20251009-aarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 467955d95c435bdf02c38a087431abcf3fd2a7ae53d452f7f8f47c0a62206fbdf60ad6ebb674d4a33ccc82dca179ef0156ad66fe6e7229df0ad0b742105f2a49 SHA512 fff55a39cc3c9a0d3e8f59004163d27ea74d4a80ebc2f26851c73ad2bc67f97153258be79a5b7e613d1aecca8064de9c58ab56dbb29372d327af48c162f39fb3 -DIST rust-1.91.0_beta20251009-aarch64-unknown-linux-musl.tar.xz 244357468 BLAKE2B 5218537948b4ab12005382058ff2d506190bec936a08db7ae74ca7aa525cbbff863dc468ab13037b6839abb82306593825a4aad0517fa5302a36adfdfe04aa1e SHA512 54fbefb26bfaf891b1181abde38f350b48b19b984467e9cdbc4096451b51145953675fdda1fff0749498dddd19583cb1525f38148707d02d6daccb2af4433244 -DIST rust-1.91.0_beta20251009-aarch64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B cb68322a4c9a7a61c86c4086eec75f6835b7e35083cb9f4cac021d8a0508fd3fd00ac8c6e854f828fc138826752b9e321a368d83d22ea487cc3e266da1493198 SHA512 b56cc826a981ac07484df73fda4b9f24cff3105fd23442be488a41c933505a432ba967d6b7dd9a086eaace93039fe2fbd0b4273acb333290c4224e81f35cd413 -DIST rust-1.91.0_beta20251009-arm-unknown-linux-gnueabi.tar.xz 224676888 BLAKE2B 81a0c429b3891bb8e3729be3e4a33faefdd29cc187e9a197f2be78341085093cea56ddf8a1ff5ead12dc3786b597ccfad8629506bae36e94a4bb501a76d16b72 SHA512 6dbd3fe4b33f66933e6ccd968acacd7849ebf93076e1a05d157055ad537c329849799a8690a05e533b56e00f5a3638cf8fc40bc94db79f8fa9067e920c612be3 -DIST rust-1.91.0_beta20251009-arm-unknown-linux-gnueabi.tar.xz.asc 801 BLAKE2B cabc21e352ece556b2465364d0910950ba7fb84962d22bc4734b0218bb14a117684daa7739e77d62c1127fec6da2078a77ffc96b6307a4baac0cf40bc1814266 SHA512 5e0371b1d52118a9b43c4cee18e699d816efc857da51956bcdcfce119393a9668b75edc7368119b59060fa9cd82c114d7a221de2f4f9de57936bdac08191bad1 -DIST rust-1.91.0_beta20251009-arm-unknown-linux-gnueabihf.tar.xz 225164724 BLAKE2B 5926180bbed8d888816714922cae7fe7b51e09860f6693115b6793acff6331ef880bd5c27d0d769a894592d9553760976fbb18a464d0e1312ec8210a0759d1fb SHA512 821dccae3ecd91a4e2a1f5f7edef32fc77fe13b38ada5835773c231fd51c4d507cfce757adf0718f830775822994b337bd94e16a2b04a247fd43a215c0abccd1 -DIST rust-1.91.0_beta20251009-arm-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B b54e1b475b3281b1b663f796d026a461de1b516726c2444ae556615b9c782779ccdb90570eff3a110f50fa0313373d083fe9b6024ef7c98b71264567a45fd5a5 SHA512 7608db4a60bd693aaf868759053e409b6ca030a84c80f0da1c996cfd45583d55d5e64d2c265b129e826d4c32b9dc060a72d0353fb42ba98e92d2eca316493049 -DIST rust-1.91.0_beta20251009-armv7-unknown-linux-gnueabihf.tar.xz 229700512 BLAKE2B c1fadc832253361736864f2ad44aabf2202ae00f5c2b02053ef982358b1de278deffb95dffc747de63b78ffb417439803a75c8ff6e54cecada9d532294534dec SHA512 1a4be7d5c1efd8077edc0bab9afffb3dea9385cd8adc75d1b89ad0a6f61c4def766ed3838608b9b1e66544e88755ec9c6381650c4e2f41ae396e9b630122bb36 -DIST rust-1.91.0_beta20251009-armv7-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B 18644feb8c130537ee4396148ef8334929414b94b15a22182bbd9855b8902478f35ce7359410344af47ef7f0e6678666bc3d5e96f15f52ef38baa2e15e1d02ab SHA512 0519e3a35a2f89ebbfe90c7a3ab9ebcc3f6cc1c23508e95252559319a66e21fe35e5fb8b5189010dadfa34b1b3fc4b5718c9897b3e211b69bed0cc2d184166cc -DIST rust-1.91.0_beta20251009-i686-unknown-linux-gnu.tar.xz 266811976 BLAKE2B 9891683a80675ac52d49111268378010e83c651530091aa90d9e2d2c0c086d03bc0a203a0fc93b3619f7c0db92a4d2680ed57f639771443da2e09a529d75d946 SHA512 1b0c873f0761fb033ee0fac892340b485730375d46ccc4848ad8c15bff43833d3758385f75a8469067035926d5bcd1af31e97f16339ad8b6e80a2e6d30f2fd04 -DIST rust-1.91.0_beta20251009-i686-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B d2fecf2db909b6887980a9892ea47865f84c32fd921593f4ce7c8ba5d6224e455222561755feca8be7ef67b1d9e97dc4a9c84b4fd8f69e9ac7a0aefb180444f5 SHA512 f87472e7c849cbf9f52f4f38b78d6691fd0cad5b4c16d9fb2f017b6bee3c4a10da360c15cfaa2ecc5dc4e3132fd68cbc11913c5bf11ee77120bdbcdc0fb7f9bf -DIST rust-1.91.0_beta20251009-loongarch64-unknown-linux-gnu.tar.xz 259844264 BLAKE2B 0d4bd996fbbf1a8615e5ba42da8e3dae3009bc6a671a885abd646769ac4b549b8ea859412bf8ecc6d1b45b782259488b9f5ff4c8531258a25ef56cffc40824d5 SHA512 01966b4271734e973f8cd69f839e98dd04fe6fe9742af2b1225f6df651bcf63259d9b00263a482b8025267ba1c634c74027ed3250a5159c81be0f02b35a264e6 -DIST rust-1.91.0_beta20251009-loongarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 62c05db951367bafc8b72339f3eecad40e10a0b1620d2e5ad9eb039b7a45b176b0f2743179e2c2d3d3da893baf17d3dea46174fe0f22ae6cc97c9503c239903b SHA512 cacb5d64be85b0346c185a46cbfc253bfe25ecd85ca62fa123ad76550e7569ce2ad678fa6f36dfae17da5c3d7ada86dc03ae626ba3dcad25bd80db176a644092 -DIST rust-1.91.0_beta20251009-powerpc-unknown-linux-gnu.tar.xz 249572892 BLAKE2B b5311cf7c23c7cc85b49638b9a0b99c8c539d86c045deb251d3c9dcd8c064264421111284d0adbdf8537bdc8cf559c536ed17c6366950ddc368750022aa77dbf SHA512 4aa70b7c3a639077eb7724871d9b00bf738cb0106a96bf53b2b0ebea1c907b9e7dfc134fece05d25d6c854a97934c3399a82d50cf0d05e027af00e18fe64b977 -DIST rust-1.91.0_beta20251009-powerpc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 6ca85376fb225ec8d212de45692e2d33c70131a04339957c6f3f4d77ce5bb80b249b514ceb70e12b649c93c3f0ffa689949fb3c069f04cb250cf0641b0313578 SHA512 f66ec732583e1420dc9558cd453f246dd3b84dadc95b0d940127a37d0f383f3518418017fc116532032e2df83f75ad76c534924923418c90b9a600c75905e863 -DIST rust-1.91.0_beta20251009-powerpc64-unknown-linux-gnu.tar.xz 251085480 BLAKE2B dfb2ea024e6f27e29441f1b6bb372de194bf4099bee99f11118a12236a1812d7674ae37ca69ddb684534b0bebe98b7f33addcf723fd57f36e0f873b4dfd893df SHA512 e0706c58963ebc27054418cfb7403ed0669f0e02cd3160e5a72160339e69d793025bcc65fa71b3a141109a0e8d4ac2a69c9860e8048d23358fe12fdb188f9682 -DIST rust-1.91.0_beta20251009-powerpc64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B ad1d8921e46c18084813df0da595199d023cd1b6a28fb002d8ca185e111295f2372aea82fc808d2e02e3b9ef9005d6c832290efb2129bfa826827065cbd0997a SHA512 86f5da07d0186a0a502b5a4b3dbc9bfe3478acea3aacc42d444023d794e9350bc7160e1cee6117488a8405ac83d58185543277511757c8db76eadf43152549de -DIST rust-1.91.0_beta20251009-powerpc64le-unknown-linux-gnu.tar.xz 269690328 BLAKE2B f7bdb9e5653ffc09d82f20a3507e5eab1bee81d2b2a357d542544e138a18f4068fc3810f21816918550c5c9e74f5776c3de7fab2b1ca6116f40016edc6615ca7 SHA512 bfde7b6fded043bd60413d502ba5aedb1084be983c6f8caf5db65dde7f49ef2777840b290e0f68284b29dac6b5cd8f00ba1cbf55da84160be24828cdade2081a -DIST rust-1.91.0_beta20251009-powerpc64le-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 11c91bab0ee1309f4c17d848dc178815ce06ff7bab5bd440d97405ebe9a4594637a52333023f9511b52dde2fc69d9ab06d7cab5a0d55041544f686661a28ca66 SHA512 42e3b07bdebf574d43ccd36b3e6ecce7d53184495d77826315abf92142ab8a2082639c9cf8dfe40e4b0196cfea031c6acb19caea958790b873743ad3be16ac52 -DIST rust-1.91.0_beta20251009-riscv64gc-unknown-linux-gnu.tar.xz 248629072 BLAKE2B a01828a36090e3c45d9706d0ba60a383f4eeb013405193aee221e7b2ba6db02cd928edb0f76f6cb99b02aa5c33ad811c09ba4853cde78a41adf34f8b3b54a7a4 SHA512 c2db778110b19dae3a5a6d3d7b0775287396950934ea8326789c6a93f9a6c762e3da49ada711114a5ec1cdadefb4af1dd8e4531c9053837f4b15ae62979d7b2e -DIST rust-1.91.0_beta20251009-riscv64gc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B d9cf40c6b96f825ef55a39079451a327607471093c4156e01f798ef772bb130191a6a07edfbdf1ef387ab9fb4f9a6af89c574176ce17519e7953981bcef1dc43 SHA512 c6cf03b4d4f97cd7eed374d21395035111f0ab30f2e9a572ddec8a758fb37fbfbeb5552459259978a860524f692efcec9d02fe1098e9a049d210d48115795573 -DIST rust-1.91.0_beta20251009-s390x-unknown-linux-gnu.tar.xz 238057796 BLAKE2B 2ca1c62b69329698a7729c5ff4311f4a53557dedd35a8fb5b60e7a04e21f21a021aaa03d5f33d1c4e3ff7060f7738abc8186f77e284d9b44b1ca69bc7cff3d1e SHA512 0d52ba9318d60992e6e72c67e37990873226245d51e1a3feafc7a7e497847b4d3edf7fcc0abf6734f526086491811f81b539f156b2fc137df69d2db99e98af17 -DIST rust-1.91.0_beta20251009-s390x-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 31ab9e758e489ecfb7a7d8ed60ef5fed824c511169e608c39c0ff80889b8d91d00efb5ba19baae15e3ffad9d0ea5c9df891ce072a8ee571ac640d172b69a19e6 SHA512 adb05af13250a53fa87bbf8501d6f0260565f3f2123dbf14488986a274954e03234f9366c2a34d0adaa420d69993a9fda2b520b36ca58758405ab86c305bf544 -DIST rust-1.91.0_beta20251009-x86_64-unknown-linux-gnu.tar.xz 192137040 BLAKE2B dd613d631add1738d6b2f1801306547c3df27221660b604068e6060917ddc1834efda62db0afe105789bb0f7ac65abddbb27c29a3e7e314763331ea6b28ca00c SHA512 9a06f468793251ad2ee423649801dd34a6157d2e1eceb6a1e1d5587f0b715bcd3d4cb9414046ab7ef2eb82ea5a6fa9f5221bf75000ee0b3677e9a2423a0f7233 -DIST rust-1.91.0_beta20251009-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 6187a6d7fc47a750d6b4d975ae725c7ae8efdfb09471fe1596bce380fd29b694fc5033b1c57cfd182928e89585139583a8194c7e194cee4a68c876f6214c5b18 SHA512 56abc040f7cdc0277600bbe596ece010c3665830bf5c81632f0b753f79eb570648b9209cf1a550bebcfbe64dd2e2d9a4eaee9b6f9d2f3405ad2ba2490d97f34a -DIST rust-1.91.0_beta20251009-x86_64-unknown-linux-musl.tar.xz 295109976 BLAKE2B aca3518420e8637278bb46e6ce73bb422724f207f68acbbe549aba67329e16e6a89576a66ac23eae9127bb648d731c457351a072314e3c07fbe4c3343ddbfa5e SHA512 44384a471539cc114cfb8971011ea16d55fb3edf46ad6cb14fc060df14ba8ee98b75a8ce284c3be134743522a922fe3c08d9faef5a7161b2e76de7e6206adede -DIST rust-1.91.0_beta20251009-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 89821eaecc25e4405c32ffda2b5a2471e18b194756f949b76a050fe49b02386aee31961efa235279954ac549fdc4d2f9d885724bb6b95004e3d62647948f8b19 SHA512 c449a2af5739d230f41d556c6a341a58d5c60bd56e654f4e125fb137da75b2ece59832b36e7c86e546d54b4edf997fa979676d85fbdb13fcdd78486ee26880de +DIST rust-1.91.0-aarch64-unknown-linux-gnu.tar.xz 169421368 BLAKE2B 5cf9486f169703e11c1460ea5ab09b90499917a60f18fcf914d4cbe727a9f253431d1e56ce7240205c422d79a51b19d9a22ca246ffd932a2e653e68be169ce9b SHA512 45a34f4211683fa72f04e7f96a611298b757ef05cfef81869900a9698fdddea2995e71dff4159a08d8c412e9a4bd05c5836d60149887be45faf2ac485f73da13 +DIST rust-1.91.0-aarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 53adaa7ef5349ea28d6456b12f1bdf0332346f7724b37ad08b1fdc7c3bf487688f6e5287f25e1c6765fab7071c5ec74cf445aa43a0efaf2816fa7b4fc4b06c58 SHA512 c01e8150209c753921ae27cb32da1cc34e43a845a8e4b9d3a08ba6f5825b351c1c1121bd8cbfa84306981f24b65f3417c25f204f47946c7cb3f1d98553f80620 +DIST rust-1.91.0-aarch64-unknown-linux-musl.tar.xz 245102896 BLAKE2B b9973583093d5d92abbbc006c03bae3dbbf99051f3ab9115887db90bf3efdaa824a22a2018d38096758164257a5c1d9040946981f6dfd3d8ab1e5b7b950b3af0 SHA512 1a082c46f633e12e07f214249c6bbbcebe10d19bf3908f78fc1c66106e1025b2a55b85e0e396163976cbe831761f08507523273d5734cf67e44356a5a482c884 +DIST rust-1.91.0-aarch64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B edabb990bc2962f1a078db415b574a099eb56c6097df61af644b3ed3659f77b4a9c21dee68259cd0452bceb0e95382f0ad4e2c12ac8d5620b196bcf19a71b480 SHA512 4074e1d778b9b4684727ca659f27c63134815d8467ebcbf122670e0ffbc68f297c3d25f8795520a32e41c6e09d0c7d6a4878cae47c2909bf537fe3beb1f813cc +DIST rust-1.91.0-arm-unknown-linux-gnueabi.tar.xz 225139772 BLAKE2B 182ee75b1154bf50bd170d2332c59055882c1ca39455596eb190c36f7ccce1c257ed0a314e50b8c5cc074b50f39d686a0a22889cc6bb2b1597875fce7bcdc1a2 SHA512 f350cf523ef418554a3f6e21024380853b91d5ec372f5c2c625817ebc691341e5d46008994c15c28fc8dfb07cc0d55d861f26365c1d2e6de66cbe53df33c9620 +DIST rust-1.91.0-arm-unknown-linux-gnueabi.tar.xz.asc 801 BLAKE2B 70dd6ed821a5590063f9b029b4e0c0a41dc1281accaf6f85525805671bc06e16dea49ac6f1f063e8ad1900133c9f4d3c7753e32119097f44db22d00982f39296 SHA512 b3356c39fd2613db72976a78147affa4f40c6ed4fb016158a4065e15810a6179ac739c20167ced23fbaa23751c92d86d81126f9229c581bbd21ee53af9383956 +DIST rust-1.91.0-arm-unknown-linux-gnueabihf.tar.xz 227087716 BLAKE2B a16832f706a27c452389546a680276cbe8b0395dc9e90b077d34fe061bd360dbdefc47e2fcda43c6b372668f7d39ecf8348d99253d908db9c8ef27ef405acc76 SHA512 36171c141ff22fd486b4c472cebac67faa560b0ae28e3b5361aaf76024566808d3f1221c946ed28d14a79c39c024765118d36034b4fe0bf577e0275a4a61ab2c +DIST rust-1.91.0-arm-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B 428a33adc68c03a11ed9d742960744e24b53ec7fde434751034080548777c1d25302d6fab12cd203602abc8fa1e47a49bd474c6b37c2c81fc9fb268ff24de94d SHA512 0bd7797b2a70bc219a0927c4869fc10bfc014ce0e86a3b01b46c1e4125bf223dfacefd81ec4d401fb1e7f4b14e427e200b698642ef6933b493e1fca37b30ec17 +DIST rust-1.91.0-armv7-unknown-linux-gnueabihf.tar.xz 229097816 BLAKE2B 3fce2cf704e8cbe438bbd986a2dfc4e9c452c936342782e7911c9879ed98d031fb7cd630069eb8bad50b679911bb76a38c40f045ea724b4a6decca8db8d1e348 SHA512 4c1c0537cad743584bfb5d8dcd5ce688cc9845511d532665d6ce6377da3888e9c432e251fffbf2d3f63202c4b15e8f2bee3953a7d1c38af1ffd31bc5f23c2d06 +DIST rust-1.91.0-armv7-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B 7206ec7368787a3113f7ebd6eae81b43e3301954b24ef9053348616572cca5d7d6eb07b74fecb27d783e774df99fd3a64a86a2819761e320da86b59b7a0eacdd SHA512 883260c231a3eabdc388aae19a0c984df287409d901593bac110671392853aae8c0e882a8b42c0625404a08469649befeae507f43fc84982a1582cd4eab8c972 +DIST rust-1.91.0-i686-unknown-linux-gnu.tar.xz 266687428 BLAKE2B d9622c73ec519cd59e7603b6ed782f0de2b7b16c646463fd413c2666617995f74367257cb2c099f2c55dcb98c30489a66a944b00e44758b2f92b7481329f3165 SHA512 c4930c16ddc62afe9420df3e018b587ffb291e81ae5c8f519616480022131e1ff61fb181bd4723d492bbea5e901d41eee0befd58df6ef2113c08078412829e51 +DIST rust-1.91.0-i686-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 0c6ad121c54a969f3cede18323937cc6fb3474fbd3ea62414a318aac4c2ea556091c3cf82fa763c6e80e9378d63f8894fe8f00a6af667f095bcc7d60b855c5fa SHA512 62a4b3509f797c0930773013d536755d45c74c9f5edd4cf518579135f6948eeb6910ee373f0ad90a0733fb3eea07157e4a15703bd51a289690c6330c7b4913bb +DIST rust-1.91.0-loongarch64-unknown-linux-gnu.tar.xz 258895980 BLAKE2B 7f2db5cd33513d66c3a282aca95b578a4622bc5b8f63c5f2800ec0ff75796fb6a1d102acba03fdf425dfcc2143eff81d08d9b09d835005b117f5300287110177 SHA512 0df9cc174510675a0f988a19d68173c43aa0a5521833210c6f30a231be53515e55dac997a5e807199471035f37c1a7412dd36a7e8e475d5a66d5095375758d7a +DIST rust-1.91.0-loongarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B b76e7ec4eebbc4172cd3ee8c200f30f769435fc1a864dec249d88d57717947fa8f4fba18c9ae1dd9cee13775f66453f79d068ff72fb275fc56af7f6617fa1321 SHA512 93849841dc68eee8b9d87564bdcff1b293979bf1152478fa00598596d4af32af58f8a45e768db30dc15f3184f8e0d14fef8b43d9609a004045c9e60dcd900341 +DIST rust-1.91.0-mips-unknown-linux-gnu.tar.xz 82068644 BLAKE2B 113346bed72941a084013593a5628f63b7d21361de54d19c063b488df0b8940d170e14888deaab7ba0a9ef87a7b6ee10eb2c851ca90ca6bfda4f903916f7ff65 SHA512 0325aa3f4a0bdfc2a397ef20cb80d12e2d70b43e28065dc49e2f481779244738b49a1c773be96d75ee3ef9a9a5b42a8e8882ac4c54eb065cecca29c74f04c623 +DIST rust-1.91.0-mips64-unknown-linux-gnuabi64.tar.xz 82268924 BLAKE2B dc6a614def2d6f5bc021463eace519cae0b77991fb7b012b201ec33c88dc74ca1f45c737dfa51a5a8ea63b659bec1a51ca928b1a1b90abc699d9b798c4bf9956 SHA512 cda61ae42ff3983994068e77dc00c917e6b92e563c271e201935c3b8fec1a78da4d2b93a0ab3ab1fce43a788dd5ba5191b499d2a1f0404cbf3a4486da30077a7 +DIST rust-1.91.0-mips64el-unknown-linux-gnuabi64.tar.xz 83945400 BLAKE2B 56fed51cfa0ee090bf3b339e82481c3dcac5d0be7cc788ae96e64a9ee3a3d03a625cf243537247e60a10df6ace180d4dc1ef90c2160997ef0cd4060a0decfd2f SHA512 a631e4e757f58080da7da5fe494450a398dba0a1739bb59baf2dc44fcd908f6a5fb2635c8fc6e610293c8883d0396e4132ce3cd6d7003fcdecb9069ffee1db65 +DIST rust-1.91.0-mipsel-unknown-linux-gnu.tar.xz 83858016 BLAKE2B 9d407351ba6305d0c2973e1a86101a403d17865db9ab70add598d5d9dc47c80b37951792a9c8a1b16e521adb922bad8952724646cbb18c7e1ea6c5b6a683b56c SHA512 aabc993e4e8376048bad62cb49c623b360d5ac24d05cb118e9449888b69a2fee4058ae3e0122702d9c86cdeb5d700a590a5a30db5719548c81683abc7514f6f3 +DIST rust-1.91.0-powerpc-unknown-linux-gnu.tar.xz 248732612 BLAKE2B 281b858e79eb569611537dda8b5264f2207765fd75e057277c4ff513496822874dfc3e29f106d94a0288a944b1b781a538b8a1aab0906d5a46ca299ad4b06d95 SHA512 ba23d658e5b0fb0cd9c91526ca9c87957b8a2365537bd191ca4cb636c059a2d1eba91c5a2d1a82c4884d93417e945cbfc899ed5bda253434b9095a767877b21b +DIST rust-1.91.0-powerpc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 999ea23ca7fa0bef0f8231685e9a7d841584680a488b9e6c56ac3046f44907212be434c14f4559b8b0a15b420f701dad819f45608033bc4e68ef44c4b4d1e38d SHA512 451cb1f49a5cc00d24829f6e1d23c41e5ea648c6f321cee6c4c80e203f645beb5dd825324e345b39f73436d123d094d0026fc3a414fcbd40fa91159727281c23 +DIST rust-1.91.0-powerpc64-unknown-linux-gnu.tar.xz 250058172 BLAKE2B 0186cd91380b0799e72c530a1285a92acc2d9ebec4966d32c8a0bb97185f6dd6d56bed45e77ed0586bec32e1ab135a097c30a08dc5982c4961bd26ef8acfa45d SHA512 1867c7ae4aa4b515281c7b8e547846651f5e05430d8a280510c516f15258a3db6d0579e55c0da8a8895056cb57304c75fcc558c23b761bcf9a81970d57f0ec66 +DIST rust-1.91.0-powerpc64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B e9fdf55b00a04956c1c77e23f3cd436b336454052d7330464dac32625f4dcefb564c4187afcf0e909666d121c811086944c918aa8b32f5af8cea8ef34f680416 SHA512 77600956d2174953bc9df9d7e2125a737544f6d65dc177df823273e1618ea2bea76cd1710cd41442a33660ac29561ec6a922ddf54ccaee2d0c068a18a6d9be9d +DIST rust-1.91.0-powerpc64-unknown-linux-musl.tar.xz 85877520 BLAKE2B 8232c63b6fcf1d2a09686485a5bd9c80aff5a87c5f3d92046504b30cee3a66e316a3aa0aaca5b26f1859fcd01811f7ad1160f9ca61f80a3d9bdf796b033c45ac SHA512 a09106ba6add748f104a4be10d123c41d82d28f11de0f90f2d6af7b717e2482e65abdd9e01a7a9b644ec47e36212dcac9c08c6bd913aec5db4ce8aab0ac8ed0f +DIST rust-1.91.0-powerpc64le-unknown-linux-gnu.tar.xz 270389192 BLAKE2B 022c98947c31f36007c018f5f457b454179fb338bf32e78113ab3b00458adaad3136a8a5c0e2e9f2125262a31f53af2bff64e808e936738679b827d9dcbf5149 SHA512 5809477ea041fcb3e961ba8a0ebf9c71312740e1c979903313f11d182712db2b9742ad7f34e5103cce6c24bbda183d6c49b2615e7e05cdb2412fe4d0ef2762a8 +DIST rust-1.91.0-powerpc64le-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 7717513fb55569d2700a96bbd62c0ecd49e9880254b5dfafe6194827fe3dda1351593cf4f1423876270d30dc13ad122a6235b3e75a4f688344cb96e3fcd70eb2 SHA512 316a8396da39dbce37701bfacb7c0e122f56911d0cae258b8f60d6f769721314617a1657faf2a9b01f3efcdd4b1d16a776c183df87e1df644fff1a104da4be12 +DIST rust-1.91.0-powerpc64le-unknown-linux-musl.tar.xz 268006080 BLAKE2B c83d0bafa2eff817fd25984a80ec64c128c3426324755d93d0add01b14a78845d45dca1c9d39b127dfa11405ad6c4f9368b91da3933cc7d26c9227f565dba990 SHA512 f4ed26d5ea585c686195dbb0d911948816db4ba92ce26eb4bc1112b1649561aa9995b934ec4c7602c7d9b43e1fed62b014e7f6c95eb1d9a0a950cdb5e3ccde92 +DIST rust-1.91.0-powerpc64le-unknown-linux-musl.tar.xz.asc 801 BLAKE2B f558974aa6a20e053bb8d53c59ae763e986a6f0bd4bfe8a431f51a108f28e0dc33a9d2e2cecc2c2453f8d3911a832429dab11117923af3e39b82768f11092e10 SHA512 472b83efe99d71ad5b19e754671c4ff7fba5f99ef883402a31308fe0e495921389a4395b2cb33f3492bb3b29defeff1708b41a80480a784907abf1c64087dd2d +DIST rust-1.91.0-riscv64gc-unknown-linux-gnu.tar.xz 248610144 BLAKE2B 7819f3d284eb66e957286418e4bd3eda1de45560534f48195f9b9e436a5651964347b2b78d59cd119a4b61dd1199fffdced8fc32a1ddc9342ad90c1257dfc530 SHA512 bd49412f2e54bdbad0c5e601c11adbe1ba0dd1f594e412a6438352447984e0f17a5e09473d95291a6a173285d7b1e90723027326d4c54890ae46a120a1815c3d +DIST rust-1.91.0-riscv64gc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 844d4b7ec84e42af98a1fa113bef79d9c7b490e9e8b6f966c799908bf8915a5572c7e418632a2772bb4f90059e3e3005a2e02ee1d07a0041224056ac080cedf4 SHA512 a4033535a497129059c74c77e5bd624024d73ecda0096b094c4f162a215882e4051da3ecc1f7f859ddb763cdead4f1da0d7a6d3733dd7b73c55b7983cfa13ff4 +DIST rust-1.91.0-riscv64gc-unknown-linux-musl.tar.xz 90237552 BLAKE2B ed1ba052dc514f6d0b48328496095275c92bd6c0c46bc12863b5e2248912d204ac92d02da5ddd12fdefb989533cb0b1f6f37a148e1b40933db8e0cd52b169734 SHA512 87938cdae1ba5216fd42413da30c218aa07a76f9530c2571d5d14a786234a6090c7d63468122860b18bfa47daf898f2177388a1aa5d1270f260f2e6636132d89 +DIST rust-1.91.0-s390x-unknown-linux-gnu.tar.xz 237862320 BLAKE2B 8bd1ef16afad51389d06130d0ee956f0bbb444882cb729d1ce739f3ef5e6f0ad9823a6cf5520bc6bb1f3e568819d553a74fdb5afb47c670d00efdf602ab2b537 SHA512 bf1d379c4c3447ae590b372ae3af4a33756ff55129fa08e71bf1e4d6b1ef4056ac71d8129232aa32acc6a11473889e46faef5e21babb27a66de22344396a4634 +DIST rust-1.91.0-s390x-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 479675614690dc64d9b1481c8a7e60055b6df52a2af41c8cc39c3152af9e5f227f35856831d5b44c68322e3161a34ef8f269ac59747490f3fa8c93906abc1fff SHA512 6b1610a1e0b4badf8b2eb88b33101eba9a4b93c565ec1ae797e2380886917c5a7e6d6f962fe4020904149662578ae855ab4867d6e6474076ce43b40416e08748 +DIST rust-1.91.0-sparc64-unknown-linux-gnu.tar.xz 80048680 BLAKE2B c38345bcbc99b45722032d8c3b3736c43bc13717a25906c485b5fd4abc031be2b26c8d641608c5df2b75708a5898175b26b7cdfecfa4e088c937a81a9589ccfa SHA512 cbcf71739b2cc7e79aab2099dac9f7ee6828fb035e3811ab9c590d5587b363820ad3a1099175a67d000573b14a4b2cbbd666bf6ba5e5ff3398924b886c89c0f9 +DIST rust-1.91.0-x86_64-unknown-linux-gnu.tar.xz 192170744 BLAKE2B a06c63e3c534e7456f155ff1c371525e06a3e679192163cea7f070d8602e146deafe93de430b40a9a9c1f05af841756412ec38dbec6b7a3bb13b2949a04dad15 SHA512 ba305a1b3d9d093a26cb8f19a60fe0a83c77f6739d5f1bd4801da3b12d3df5b3a6cfb19c61e3cfa971d8ea880f70e0209123063bc41115bc5c2285af1615cff8 +DIST rust-1.91.0-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 4bfa68287897a1b5916c04a56909aaeaa305cbdc4a9bef377295429221e48451a6f4670929c9d35e80a0d40478352702673bdae4958a924d4124c26e888ff561 SHA512 35e678a3d164b5f198e5aac2ed1c1a6af8fde83b84c84be6e3ce51a7099ae0a3e7d25510b45a1b2d6bb99599cda0f18ceec46883982bdca6ece94eb1e381ed0b +DIST rust-1.91.0-x86_64-unknown-linux-musl.tar.xz 295368056 BLAKE2B 3057d8cc29bc789bd1c4d9d0779a0b2ef4b26c2278373960558a316061db72a77edf37e330eefe5c3ec66b69cf184fb46a14641162ba6ecf96f909d3ac7db100 SHA512 98a03725e216687be237358b1a6598470e98322af6cf51fc51d7ede23ae58b0107872a7f8ee2e4e69e9531b821be7145a975c86899a97728e809260b35ab7f23 +DIST rust-1.91.0-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B a8fb18793e536aec99626bf3d85890cbbbd8c2ee5e2a2917999543bd3153b026db1072419ad464e35ecc508e3e3fcb9cae450b4f590359589545fe9adbbcc26d SHA512 0c3bce48b1ddc7d97946ad5e27f8dde91dd14743577fe60056f7c6558139bab7d8aec4ce76901abd2633a61eb122bc30595779cea047ff7a714e83fda2921cb9 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 @@ -739,5 +720,4 @@ DIST rust-src-1.87.0.tar.xz 3119800 BLAKE2B 6429eb419f17109537a2a5463b0c68f504b3 DIST rust-src-1.88.0.tar.xz 3155272 BLAKE2B bca923d2264337366b8013c45f3a40cbdfc1e1b746775161eaa66a1db653aa4ccb2a55980368ecf9808d6f4885194e2dfbf1f678d0500a43f7b2fcc0f79d27c8 SHA512 6dfe1fc3565927a9ac2ff9821ef3222cca170ff538833e1969ebe662af2cad5257c1ab3d82f5ca10aeaab40f54916a25dd96fd16449cd59e4d104b631911931b DIST rust-src-1.89.0.tar.xz 3461444 BLAKE2B b1e43def4cc0f47f0e776d383954b339a62b3efa77d5db71180b7b7620a67bd2d2714afe0b08ae26a06d7d8c785eed03f545d91813d074cbe6641e883a2d40dd SHA512 055c09854e47d1bdfc7f393ac6f2783d35cb8cf13100deb227598ad91020f1d91e4cec1658d8e71db3c266dc6e267ab4172dc1007428cb05105dc4aac57bf89d DIST rust-src-1.90.0.tar.xz 3473408 BLAKE2B 09e9d17af7acb38b99e33874cd4b14ad7e0e15b0580846cc32bc78657432b13091bcbf3fe95494c520bcdbabd5491b9445cb3ce3177fa149d0b89991b67b06e3 SHA512 88dd1a5f1a69ab9e4586fee4a31d7dea51a664ac32b501cab771739b8127eb4ac873d2353e819ef057734522c1bcd64d664bda3d1ff957b1448b4653be766638 -DIST rust-src-1.91.0_beta20250928.tar.xz 3509016 BLAKE2B 81417db8497947d67288b1980601127cc9f737b8159e7817626fca7cb7d07fd4287fee14f0b4043c596a67d1d63b1ab9e273b6e1976f27049c86612395ee9255 SHA512 3ddd9987fac3d465b843cc05385ad482e9c18ff2c15dc2dc864fbb4988c2775766db5bec6fc35ed750ce5389d77dd9a56eafbbcb0ecdee293f5defd7e7a5ce45 -DIST rust-src-1.91.0_beta20251009.tar.xz 3508592 BLAKE2B 3f629ef1d2da676bb502172ad73313f66effc4d2173ba9591fdbb86e9bfbb2efe35a043fd5c965aa0cfa805906f53678961cb51c7f61573d53201db7caf791f3 SHA512 dacb62bbc2c6ed002ca79fe5ebd6342ae71732e94f0df20b36b77f0d361310bbefbf749c4b8fd25ecf54b4592bc5d63cea730b927278f13978553ae823cff5aa +DIST rust-src-1.91.0.tar.xz 3509292 BLAKE2B b1cf99db4cbd864fda34c2068a19e8b36c99f6bb5c2fa3c22ef7aa006d4c084bd706fff872a7f87a0ded3db3dead5927153183e4425ffd90e51af468a29db48e SHA512 8d7c5a3aa11b42d5b89b38d1167f6be64de49288738e0fd949d1fe9ac3312830301d578a13de2030b45a7c51179b5adb934deb52e1070afa76520944050baa2e diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.91.0_beta20251009.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.91.0.ebuild similarity index 86% rename from sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.91.0_beta20251009.ebuild rename to sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.91.0.ebuild index 2e4fb28bc1b..f3860b45732 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.91.0_beta20251009.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.91.0.ebuild @@ -3,7 +3,7 @@ EAPI=8 -LLVM_COMPAT=( 20 ) +LLVM_COMPAT=( 21 ) LLVM_OPTIONAL="yes" inherit edo llvm-r1 multilib prefix rust-toolchain verify-sig multilib-minimal optfeature @@ -22,12 +22,12 @@ elif [[ ${PV} == *beta* ]]; then 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%/}/2025-09-18/rust-src-${PV}.tar.xz ) + rust-src? ( ${RUST_TOOLCHAIN_BASEURL%/}/2025-10-30/rust-src-${PV}.tar.xz ) ppc64? ( elibc_musl? ( !big-endian? ( $(rust_arch_uri powerpc64le-unknown-linux-musl rust-${PV}) ) ) ) " - KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~s390 ~x86" # ~ppc64 ~riscv ~sparc ~mips + 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 @@ -35,7 +35,7 @@ GENTOO_BIN_BASEURI="https://github.com/projg2/rust-bootstrap/releases/download/$ DESCRIPTION="Systems programming language from Mozilla" HOMEPAGE="https://www.rust-lang.org/" -if false; then #[[ ${PV} != *9999* && ${PV} != *beta* ]]; then +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? ( @@ -108,8 +108,6 @@ src_unpack() { 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) - rust_bin_url=$(grep "xz_url.*rust-nightly-$(rust_abi)" "${WORKDIR}/channel-rust-nightly.toml" | cut -d '"' -f 2) - einfo "Using nightly Rust from: ${rust_bin_url}" if use rust-src; then einfo "Using nightly Rust-src from: ${rustc_src_url}" @@ -121,15 +119,23 @@ src_unpack() { tar -xf "${WORKDIR}/rust-src-${PV}.tar.xz" || die "Failed to unpack nightly rust-src tarball" fi - einfo "Fetching nightly Rust tarball ..." - curl --progress-bar -L "${rust_bin_url}" -O || die "Failed to fetch nightly tarball" - if use verify-sig; then - einfo "Fetching nightly signature ..." - curl --progress-bar -L "${rust_bin_url}.asc" -O || die "Failed to fetch nightly signature" - verify-sig_verify_detached "${WORKDIR}/rust-nightly-$(rust_abi).tar.xz" \ - "${WORKDIR}/rust-nightly-$(rust_abi).tar.xz.asc" - fi - tar -xf "${WORKDIR}/rust-nightly-$(rust_abi).tar.xz" || die "Failed to unpack nightly tarball" + 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 @@ -142,8 +148,10 @@ src_unpack() { 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 @@ -287,10 +295,21 @@ multilib_src_install() { if multilib_is_native_abi; then rust_native_abi_install else - local rust_target + 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-${PV}-${rust_target}/rust-std-${rust_target}/lib/rustlib/${rust_target}"\ + cp -vr "${WORKDIR}/rust-${version}-${rust_target}/rust-std-${rust_target}/lib/rustlib/${rust_target}"\ "${ED}/opt/${P}/lib/rustlib" || die fi diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.91.0_beta20250928.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.91.0_beta20250928.ebuild deleted file mode 100644 index 2e4fb28bc1b..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.91.0_beta20250928.ebuild +++ /dev/null @@ -1,320 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -LLVM_COMPAT=( 20 ) -LLVM_OPTIONAL="yes" - -inherit edo llvm-r1 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%/}/2025-09-18/rust-src-${PV}.tar.xz ) - ppc64? ( elibc_musl? ( !big-endian? ( - $(rust_arch_uri powerpc64le-unknown-linux-musl rust-${PV}) - ) ) ) - " - KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~s390 ~x86" # ~ppc64 ~riscv ~sparc ~mips -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 false; then #[[ ${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) - rust_bin_url=$(grep "xz_url.*rust-nightly-$(rust_abi)" "${WORKDIR}/channel-rust-nightly.toml" | cut -d '"' -f 2) - einfo "Using nightly Rust from: ${rust_bin_url}" - - 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 - - einfo "Fetching nightly Rust tarball ..." - curl --progress-bar -L "${rust_bin_url}" -O || die "Failed to fetch nightly tarball" - if use verify-sig; then - einfo "Fetching nightly signature ..." - curl --progress-bar -L "${rust_bin_url}.asc" -O || die "Failed to fetch nightly signature" - verify-sig_verify_detached "${WORKDIR}/rust-nightly-$(rust_abi).tar.xz" \ - "${WORKDIR}/rust-nightly-$(rust_abi).tar.xz.asc" - fi - tar -xf "${WORKDIR}/rust-nightly-$(rust_abi).tar.xz" || die "Failed to unpack nightly tarball" - 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 - 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 - rust_target="$(rust_abi $(get_abi_CHOST ${v##*.}))" - dodir "/opt/${P}/lib/rustlib" - cp -vr "${WORKDIR}/rust-${PV}-${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 fed93d0b117..167c2f4d422 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 @@ -3,7 +3,7 @@ EAPI=8 -LLVM_COMPAT=( 20 ) +LLVM_COMPAT=( 21 ) LLVM_OPTIONAL="yes" inherit edo llvm-r1 multilib prefix rust-toolchain verify-sig multilib-minimal optfeature @@ -21,8 +21,8 @@ elif [[ ${PV} == *beta* ]]; then " else # curl -Ls static.rust-lang.org/dist/channel-rust-${PV}.toml | grep "xz_url.*rust-src" - SRC_URI="$(rust_all_arch_uris "${PV}") - rust-src? ( ${RUST_TOOLCHAIN_BASEURL%/}/2025-01-30/rust-src-${PV}.tar.xz ) + SRC_URI="$(rust_all_arch_uris "rust-${PV}") + rust-src? ( ${RUST_TOOLCHAIN_BASEURL%/}/2025-09-18/rust-src-${PV}.tar.xz ) " KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" fi @@ -104,8 +104,6 @@ src_unpack() { 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) - rust_bin_url=$(grep "xz_url.*rust-nightly-$(rust_abi)" "${WORKDIR}/channel-rust-nightly.toml" | cut -d '"' -f 2) - einfo "Using nightly Rust from: ${rust_bin_url}" if use rust-src; then einfo "Using nightly Rust-src from: ${rustc_src_url}" @@ -117,15 +115,23 @@ src_unpack() { tar -xf "${WORKDIR}/rust-src-${PV}.tar.xz" || die "Failed to unpack nightly rust-src tarball" fi - einfo "Fetching nightly Rust tarball ..." - curl --progress-bar -L "${rust_bin_url}" -O || die "Failed to fetch nightly tarball" - if use verify-sig; then - einfo "Fetching nightly signature ..." - curl --progress-bar -L "${rust_bin_url}.asc" -O || die "Failed to fetch nightly signature" - verify-sig_verify_detached "${WORKDIR}/rust-nightly-$(rust_abi).tar.xz" \ - "${WORKDIR}/rust-nightly-$(rust_abi).tar.xz.asc" - fi - tar -xf "${WORKDIR}/rust-nightly-$(rust_abi).tar.xz" || die "Failed to unpack nightly tarball" + 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 @@ -138,8 +144,10 @@ src_unpack() { 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 @@ -283,10 +291,21 @@ multilib_src_install() { if multilib_is_native_abi; then rust_native_abi_install else - local rust_target + 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-${PV}-${rust_target}/rust-std-${rust_target}/lib/rustlib/${rust_target}"\ + cp -vr "${WORKDIR}/rust-${version}-${rust_target}/rust-std-${rust_target}/lib/rustlib/${rust_target}"\ "${ED}/opt/${P}/lib/rustlib" || die fi 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 92a01cf2856..1ded4ec686c 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 @@ -18,7 +18,5 @@ DIST rustc-1.89.0-src.tar.xz 267487572 BLAKE2B 9f6e3c595f843c239b57f14e26685e985 DIST rustc-1.89.0-src.tar.xz.asc 801 BLAKE2B cd94da916d3646048d8f90c6de658de2981d0c815a1f8da01fe58ab6ec133e47180c8b506a41e22c68b3cb77aff5bd3bfc966a71ae2b73849918096d68764386 SHA512 006b91bf41fbedf91c39b8a6e483b089f69af7e78026f2903928fed64e44ee6aa53e46fd19bae31b1576b53a80dab66bf3e53a3bf79f820066d36285d706b90c DIST rustc-1.90.0-src.tar.xz 272348992 BLAKE2B 82dbbe3b5fe79f623c74fb81a4c4372b14e7d765f0e9af3d76a6c4bde9899007c85c8af70dfd9facc06c37a9c8d03a4597ec87b2d053585ccbc2287332b27e70 SHA512 fb0798b4c7450754db2fcbb641202909d209c6db2d9181d7df7282217b8320dc52f5e9853de9d7bdb79177f1f920389450cab07674dea5fb5501eaab5816662a DIST rustc-1.90.0-src.tar.xz.asc 801 BLAKE2B 1e84c6134c4fedbbd52610c259c1bdacb45bc97e8cce7a6b5a8c92827a072c88fcf8984893a5e6aa28c2d5d82bd849bb9d38390c783cfaa503a18c99bcaabcde SHA512 fc8f6dfbb4b50777ae8e499883f95b64861db0ca37119b34b3670b4adf51dd248b0b33daafee90e0f22f66b1d8bd8ae6a6107106e95e73f5c2c5a8dc29532e2e -DIST rustc-1.91.0_beta20250928-src.tar.xz 284030160 BLAKE2B f5df2137e3a08b51f034543d1bcd0793f7d29264e81926458f6071c6f2de4093170ec5d257e56a9940b10494642eab9e57bffd24d61e8682ff052bd62517543b SHA512 e2ea6676f01b35cbd632c7a36d53b8d6d1e02a74fa460243575036b99406781416629300fef58ae04dffa8ed40f5448ca167654fb14db6676d57fc6cc2b31481 -DIST rustc-1.91.0_beta20250928-src.tar.xz.asc 801 BLAKE2B 70c58b0eb97b735835c37060e2e1ed13ed3531355cf36006c33ba5dbed2f252bda6900e4846693146fd8a093dd3b523a653166588ed1335fb22736e2e5a46567 SHA512 07eed611a38290582329512667d88cfb22d30119d9947169337844534bdbe9113f048080fbfa4dce95e3132319053919c6b11254c6e259cdaed788fa5ac777df -DIST rustc-1.91.0_beta20251009-src.tar.xz 270944196 BLAKE2B 5fd9843a4fb23a56e1bc6d3b815d8dca2d350006337c3626dc782b06f7eb1da0a427056f37a9b9cf06e16d55381edad37c2528f52cef31f05fb058967220d793 SHA512 7923188c85c9635700e046f0ebc1f8391ed500461537e20f6db5272fa13dcf980d67c329e2b9ef4cc4137a696784b84d4b05acbea37af6939a8844f95be2feb3 -DIST rustc-1.91.0_beta20251009-src.tar.xz.asc 801 BLAKE2B 192e516c471dbeb07bfb491beb8eb0adb70f4c1ca95cd4e90702e6e5c52e3843d1968fd9d81d6ce1bdf41177089b198ccfcc32bea5f80d4f2afdf159022649d7 SHA512 f3e3c3b81530dc08fddee190bce2c0a19df66ca5ffde32fa51d43cce9de7d6bf54598e43e8da1ef348b0f9c5a370fb248da28ecb44129c4fb99a7ece538b608f +DIST rustc-1.91.0-src.tar.xz 270987196 BLAKE2B 18ea8075c288d1c2cc8c247120ae5fa157d0144f6dc8f0e30ce48eb068b2440604733b5230fcea6fcb9aa4630de03aa4af632227c5f3e62733254ee45e2a478d SHA512 1e4c7a2435dc5bccfc63f34f5d210f7cafb0113787a4b5069d61f03528a32cd0a29ac516673cbc0eb564089f1dc5e13b962e6c3714bd0109de664c22ed340fb3 +DIST rustc-1.91.0-src.tar.xz.asc 801 BLAKE2B 11b157fafcfa9887b591ffff8b87641f62e81e44d32d5c4ae99a410179905ae64fe760d6c3a6614bd479f51457542a57b171aaa53baad73d5030e496e62f1e67 SHA512 17c99b273d7e84c54b40817448cb7f543b61a5b262d2bfb1c2d1ff108ccf010295c42ae1ae74593fdab1d6caa3cd3f6713e9966a9a5057c01cd85ae3f24a6f89 diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust-common/rust-common-1.91.0_beta20250928.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust-common/rust-common-1.91.0.ebuild similarity index 100% rename from sdk_container/src/third_party/portage-stable/dev-lang/rust-common/rust-common-1.91.0_beta20250928.ebuild rename to sdk_container/src/third_party/portage-stable/dev-lang/rust-common/rust-common-1.91.0.ebuild diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust-common/rust-common-1.91.0_beta20251009.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust-common/rust-common-1.91.0_beta20251009.ebuild deleted file mode 100644 index 26c4792d0fb..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-lang/rust-common/rust-common-1.91.0_beta20251009.ebuild +++ /dev/null @@ -1,73 +0,0 @@ -# Copyright 1999-2025 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 afd68d15d46..3ecab9d4c1b 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 @@ -17,8 +17,7 @@ DIST rust-patches-1.87.0-r1-1.tar.bz2 5116 BLAKE2B 783ad21464a7e393d0aee506119be DIST rust-patches-1.88.0.tar.bz2 4062 BLAKE2B 64168ffa608f2edf2e0b3d079152c3b5dd59d0cea29078894f286bf91488e2e7769c55ede2d43769368d2147b46699d1bf981190d6800dc3d41c736289122eaf SHA512 b565acfb4d1146e52b1fb66b4a242927407cc34f1b38c2a100135cbbde24c8374af1997bc22069cca25f33cc8d747e56391f3d98a2d4e13dc0abcec0d6f88b0b DIST rust-patches-1.89.0.tar.bz2 4091 BLAKE2B 0fea3488a39d2b00627084f6b192dfbd7ed49bdceabbb1141d1a849ba053f786e31115e00365679b1b6fb5b0ccdf5dc0dc0803057cbffbcf0ae3d75ae9830d94 SHA512 de6c9b693bdd719d06605b5da730ee5d9cf9a1d88d58194a0ba48bd378a951c66723f561e39181222d28abb38e974a2921e14ea1f40156caf7b903778cf65790 DIST rust-patches-1.90.0.tar.bz2 4183 BLAKE2B e6cc7516bd386c020be208e9931221edb301a94b6b5cf8140d68ddd5e13b1ddaaa53b52b4b7b039faf2a7caf44107f170afb01e15ac7487c6fe5146feff3789b SHA512 0cbf6dd9fc8b68e265dd146423c82c72bccf1ef7f81c5bab87c5d53dda1ecce80ffad361f2c276ab713616847126c277af7b1e48327d433f6202361e25cf5201 -DIST rust-patches-1.91.0_beta20250928.tar.bz2 4214 BLAKE2B aad78f10a875ead5dc3570c7c276a219a8897cbc649cc593fc37d1a99cccdd6fdcba962887fca0417e40fdda6b1918ecec88795619b1df66e96926779e84b2c8 SHA512 366ad9eb680d122295e711a43049ea5fe7328d6f9f2a7d43eda92897deb35297305ef10a1f4a323d15548ce6264c1ac25d5021f5718cf73208ffec93126d02b3 -DIST rust-patches-1.91.0_beta20251009.tar.bz2 4212 BLAKE2B a07bd0f7c4c94e1d3dd2ef08f23a40ce62e6bc7f96a9a67745de7519aa9ea7431eff7857d51722690cd9beb8738ad348a10f1ccfcd7a185ad5c82d5e09381116 SHA512 6e5065ba7d42be9646b6fe786193c9aa3f82feec7884bfc79eedb1990b2b1cb7e608af98d9993bf0f5697dae4e8ede66dcfce913365fae00dddff45928138197 +DIST rust-patches-1.91.0.tar.bz2 6041 BLAKE2B 7ebc846e0ae7b496b4ed89a8b0a5c397923e4dd6c83a1289e0b98f57477feea35978224b9c4ae19a129282a8c53bdd68f8ab615821f62e4bb5fda8e39b03eeb9 SHA512 fee179ec4e4c90aacfc7f8de2b4d41c80472e1fee17dbfc5ebf384d0fb8ec5afb3f8110a429abaf5a74a924fd1926ab69b29d1b2bafd3b5014b2ad360ca24cce 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 @@ -57,7 +56,5 @@ DIST rustc-1.89.0-src.tar.xz 267487572 BLAKE2B 9f6e3c595f843c239b57f14e26685e985 DIST rustc-1.89.0-src.tar.xz.asc 801 BLAKE2B cd94da916d3646048d8f90c6de658de2981d0c815a1f8da01fe58ab6ec133e47180c8b506a41e22c68b3cb77aff5bd3bfc966a71ae2b73849918096d68764386 SHA512 006b91bf41fbedf91c39b8a6e483b089f69af7e78026f2903928fed64e44ee6aa53e46fd19bae31b1576b53a80dab66bf3e53a3bf79f820066d36285d706b90c DIST rustc-1.90.0-src.tar.xz 272348992 BLAKE2B 82dbbe3b5fe79f623c74fb81a4c4372b14e7d765f0e9af3d76a6c4bde9899007c85c8af70dfd9facc06c37a9c8d03a4597ec87b2d053585ccbc2287332b27e70 SHA512 fb0798b4c7450754db2fcbb641202909d209c6db2d9181d7df7282217b8320dc52f5e9853de9d7bdb79177f1f920389450cab07674dea5fb5501eaab5816662a DIST rustc-1.90.0-src.tar.xz.asc 801 BLAKE2B 1e84c6134c4fedbbd52610c259c1bdacb45bc97e8cce7a6b5a8c92827a072c88fcf8984893a5e6aa28c2d5d82bd849bb9d38390c783cfaa503a18c99bcaabcde SHA512 fc8f6dfbb4b50777ae8e499883f95b64861db0ca37119b34b3670b4adf51dd248b0b33daafee90e0f22f66b1d8bd8ae6a6107106e95e73f5c2c5a8dc29532e2e -DIST rustc-1.91.0_beta20250928-src.tar.xz 284030160 BLAKE2B f5df2137e3a08b51f034543d1bcd0793f7d29264e81926458f6071c6f2de4093170ec5d257e56a9940b10494642eab9e57bffd24d61e8682ff052bd62517543b SHA512 e2ea6676f01b35cbd632c7a36d53b8d6d1e02a74fa460243575036b99406781416629300fef58ae04dffa8ed40f5448ca167654fb14db6676d57fc6cc2b31481 -DIST rustc-1.91.0_beta20250928-src.tar.xz.asc 801 BLAKE2B 70c58b0eb97b735835c37060e2e1ed13ed3531355cf36006c33ba5dbed2f252bda6900e4846693146fd8a093dd3b523a653166588ed1335fb22736e2e5a46567 SHA512 07eed611a38290582329512667d88cfb22d30119d9947169337844534bdbe9113f048080fbfa4dce95e3132319053919c6b11254c6e259cdaed788fa5ac777df -DIST rustc-1.91.0_beta20251009-src.tar.xz 270944196 BLAKE2B 5fd9843a4fb23a56e1bc6d3b815d8dca2d350006337c3626dc782b06f7eb1da0a427056f37a9b9cf06e16d55381edad37c2528f52cef31f05fb058967220d793 SHA512 7923188c85c9635700e046f0ebc1f8391ed500461537e20f6db5272fa13dcf980d67c329e2b9ef4cc4137a696784b84d4b05acbea37af6939a8844f95be2feb3 -DIST rustc-1.91.0_beta20251009-src.tar.xz.asc 801 BLAKE2B 192e516c471dbeb07bfb491beb8eb0adb70f4c1ca95cd4e90702e6e5c52e3843d1968fd9d81d6ce1bdf41177089b198ccfcc32bea5f80d4f2afdf159022649d7 SHA512 f3e3c3b81530dc08fddee190bce2c0a19df66ca5ffde32fa51d43cce9de7d6bf54598e43e8da1ef348b0f9c5a370fb248da28ecb44129c4fb99a7ece538b608f +DIST rustc-1.91.0-src.tar.xz 270987196 BLAKE2B 18ea8075c288d1c2cc8c247120ae5fa157d0144f6dc8f0e30ce48eb068b2440604733b5230fcea6fcb9aa4630de03aa4af632227c5f3e62733254ee45e2a478d SHA512 1e4c7a2435dc5bccfc63f34f5d210f7cafb0113787a4b5069d61f03528a32cd0a29ac516673cbc0eb564089f1dc5e13b962e6c3714bd0109de664c22ed340fb3 +DIST rustc-1.91.0-src.tar.xz.asc 801 BLAKE2B 11b157fafcfa9887b591ffff8b87641f62e81e44d32d5c4ae99a410179905ae64fe760d6c3a6614bd479f51457542a57b171aaa53baad73d5030e496e62f1e67 SHA512 17c99b273d7e84c54b40817448cb7f543b61a5b262d2bfb1c2d1ff108ccf010295c42ae1ae74593fdab1d6caa3cd3f6713e9966a9a5057c01cd85ae3f24a6f89 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 2aeca76715d..910c77941d1 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 @@ -237,7 +237,10 @@ pkg_setup() { if use mrustc-bootstrap; then if ! tc-is-gcc; then - die "USE=mrustc-bootstrap reqires that the build environment use GCC" + # USE="mrustc-bootstrap" reqires that the build environment use GCC + export CC=${CHOST}-gcc + export CXX=${CHOST}-g++ + tc-is-gcc || die "tc-is-gcc failed in spite of CC=${CC}" fi else rust_pkg_setup @@ -459,7 +462,11 @@ src_configure() { ranlib = "$(tc-getRANLIB)" llvm-libunwind = "$(usex llvm-libunwind $(usex system-llvm system in-tree) no)" _EOF_ - if use system-llvm; then + if use mrustc-bootstrap; then + cat <<- _EOF_ >> "${S}"/config.toml + llvm-config = "${WORKDIR}/llvm-config" + _EOF_ + elif use system-llvm; then cat <<- _EOF_ >> "${S}"/config.toml llvm-config = "$(get_llvm_prefix)/bin/llvm-config" _EOF_ @@ -648,13 +655,64 @@ mrustc_bootstrap() { # These flags are used in every invocation of our bootstrap `cargo`. local cargo_flags="--target ${CFG_COMPILER_HOST_TRIPLE} -j $(makeopts_jobs) --release --verbose" + # for bootstrap, let's using the built-in stdlib of compiler (could be the bundled one) + filter-flags '-stdlib=*' + + # mrustc requires gcc, so disable libcxx to avoid linker failure on w/o '-lstdc++' + [[ "${LLVM_USE_LIBCXX}" == "1" ]] && unset LLVM_USE_LIBCXX + + local llvm_config_wrapper_cxxflags=0 + if use system-llvm; then export LLVM_CONFIG="$(get_llvm_prefix)/bin/llvm-config" + + local llvm_config_cxxflags=$(${LLVM_CONFIG} --cxxflags) + elog "Checking llvm-config --cxxflags: '${llvm_config_cxxflags}'" + [[ "${llvm_config_cxxflags}" =~ (^|[[:space:]])-stdlib=libc\+\+([[:space:]]|$) ]] && { + elog "Found LLVM CXXFLAGS has \"--stdlib=libc++\"" + llvm_config_wrapper_cxxflags=1 + } else llvm_bootstrap export LLVM_CONFIG="${WORKDIR}/bootstrap/llvm/bin/llvm-config" fi + elog "LLVM_CONFIG before wrappers: ${LLVM_CONFIG}" + + # workaround for gcc bug 122409 on musl by wrapping llvm-config + # to append libc++ header if has "-stdlib=libc++" + elog "Preparing wrapper of llvm-config (${WORKDIR}/llvm-config)" + cat > ${WORKDIR}/llvm-config <<-EOF || die + #!/bin/bash + + RULES=() + for flag in "\$@"; do + case "\${flag}" in + $([[ "${llvm_config_wrapper_cxxflags}" == 1 ]] && { + echo " --cxxflags) RULES+=( \"-E\" \"s@(^|[[:space:]]+)(-stdlib=libc\\+\\+)(\\$|[[:space:]])@\\1-I${EPREFIX}/usr/include/c++/v1 \\2\\3@g\" ) ;;" + }) + *) + ;; + esac + done + + [[ -z "\${RULES}" ]] && { + ${LLVM_CONFIG} "\$@" + } || { + ${LLVM_CONFIG} "\$@" | \\ + tee -a ${T}/llvm-config.0.log | \\ + sed "\${RULES[@]}" | \\ + tee -a ${T}/llvm-config.1.log + exit \${PIPESTATUS[0]} + } + EOF + export LLVM_CONFIG="${WORKDIR}/llvm-config" + chmod +x ${WORKDIR}/llvm-config || die + + einfo "llvm-config wrapper contents:" + cat "${LLVM_CONFIG}" || die + echo + # define the mrustc sysroot and common minicargo arguments. local mrustc_sysroot="${BROOT}/usr/lib/rust/mrustc-${MRUSTC_VERSION}/lib/rustlib/${CFG_COMPILER_HOST_TRIPLE}/lib" local minicargo_common_args=( diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.90.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.90.0.ebuild deleted file mode 100644 index 5ace910567f..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.90.0.ebuild +++ /dev/null @@ -1,837 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -LLVM_COMPAT=( 20 ) -PYTHON_COMPAT=( python3_{11..14} ) - -RUST_PATCH_VER=${PVR} - -RUST_MAX_VER=${PV%%_*} -if [[ ${PV} == *9999* ]]; then - RUST_MIN_VER="1.88.0" # Update this as new `beta` releases come out. -elif [[ ${PV} == *beta* ]]; then - RUST_MAX_VER="$(ver_cut 1).$(ver_cut 2).0" - 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-r1 multiprocessing optfeature \ - multilib multilib-build python-any-r1 rust rust-toolchain toolchain-funcs 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-${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-${PV}-src.tar.xz.asc ) - " - S="${WORKDIR}/${MY_P}-src" -else - MY_P="rustc-${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 - LoongArch M68k Mips MSP430 NVPTX PowerPC RISCV Sparc SPIRV 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.84.0/llvm/CMakeLists.txt -_ALL_RUST_EXPERIMENTAL_TARGETS=( ARC CSKY DirectX M68k SPIRV Xtensa ) -declare -A ALL_RUST_EXPERIMENTAL_TARGETS -for _x in "${_ALL_RUST_EXPERIMENTAL_TARGETS[@]}"; do - ALL_RUST_EXPERIMENTAL_TARGETS["llvm_targets_${_x}"]=0 -done - -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 rustfmt rust-analyzer rust-src +system-llvm test wasm ${ALL_LLVM_TARGETS[*]}" - -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+=( " 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 - ) - ) ) - !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 - net-misc/curl:=[http2,ssl] - sys-libs/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[*]} ) - 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/.*/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 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 - - 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-r1_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$(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-${PV}-src.tar.xz{,.asc} - default - else - default - fi -} - -src_prepare() { - if [[ ${PV} = *9999* ]]; then - # We need to update / generate lockfiles for the workspace - ${CARGO} generate-lockfile --offline || die "Failed to generate lockfiles" - fi - - # 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 - export PKG_CONFIG_PATH="${ESYSROOT}/usr/$(get_libdir)/pkgconfig" - export OPENSSL_INCLUDE_DIR="${ESYSROOT}/usr/include" - export OPENSSL_LIB_DIR="${ESYSROOT}/usr/$(get_libdir)" - fi - - # Avoid bundled copies of libraries - export RUSTONIG_SYSTEM_LIBONIG=1 - # Need to check if these can be optional - #export LIBSQLITE3_SYS_USE_PKG_CONFIG=1 - #export LIBSSH2_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 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 - 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 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 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 wasm; then - wasm_target="wasm32-unknown-unknown" - export CFLAGS_${wasm_target//-/_}="$(filter-flags '-mcpu*' '-march*' '-mtune*'; echo "$CFLAGS")" - cat <<- _EOF_ >> "${S}"/bootstrap.toml - [target.wasm32-unknown-unknown] - 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 - - # 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$(makeopts_jobs) || die -} - -src_test() { - # https://rustc-dev-guide.rust-lang.org/tests/intro.html - - # those are basic and codegen tests. - local tests=( - codegen - codegen-units - compile-fail - incremental - mir-opt - pretty - run-make - ) - - # fails if llvm is not built with ALL targets. - # and known to fail with system llvm sometimes. - use system-llvm || tests+=( assembly ) - - # 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 - run-make-fulldeps - ui - ui-fulldeps - ) - fi - - local i failed=() - einfo "rust_src_test: enabled tests ${tests[@]/#/src/test/}" - for i in "${tests[@]}"; do - local t="src/test/${i}" - einfo "rust_src_test: running ${t}" - if ! RUST_BACKTRACE=1 "${EPYTHON}" ./x.py test -vv --config="${S}"/bootstrap.toml \ - -j$(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$(makeopts_jobs) || die - - docompress /usr/lib/${PN}/${SLOT}/share/man/ - - # 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}-${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/${P}" - - newenvd - "50${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-${P}" - echo /usr/bin/cargo-clippy >> "${T}/provider-${P}" - fi - if [[ ${SLOT} == *9999* ]] && use miri; then - echo /usr/bin/miri >> "${T}/provider-${P}" - echo /usr/bin/cargo-miri >> "${T}/provider-${P}" - fi - if use rustfmt; then - echo /usr/bin/rustfmt >> "${T}/provider-${P}" - echo /usr/bin/cargo-fmt >> "${T}/provider-${P}" - fi - if use rust-analyzer; then - echo /usr/lib/rust/libexec >> "${T}/provider-${P}" - echo /usr/bin/rust-analyzer >> "${T}/provider-${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$(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}-${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-1.91.0_beta20250928.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.91.0.ebuild similarity index 95% rename from sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.91.0_beta20250928.ebuild rename to sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.91.0.ebuild index b84b675c5c3..928864b571a 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.91.0_beta20250928.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.91.0.ebuild @@ -3,12 +3,14 @@ EAPI=8 +# Bump notes: https://wiki.gentoo.org/wiki/Project:Rust/Rust_bump + LLVM_COMPAT=( 21 ) PYTHON_COMPAT=( python3_{11..14} ) -RUST_PATCH_VER=${PVR} - +RUST_PATCH_VER=${PV#*_p} RUST_MAX_VER=${PV%%_*} + if [[ ${PV} == *9999* ]]; then RUST_MIN_VER="1.88.0" # Update this as new `beta` releases come out. elif [[ ${PV} == *beta* ]]; then @@ -62,10 +64,15 @@ 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 rustfmt rust-analyzer rust-src +system-llvm test wasm ${ALL_LLVM_TARGETS[*]}" +IUSE="big-endian clippy cpu_flags_x86_sse2 debug dist doc llvm-libunwind lto rustfmt rust-analyzer rust-src system-llvm test ${ALL_LLVM_TARGETS[*]} ${ALL_RUST_SYSROOTS[*]}" if [[ ${PV} = *9999* ]]; then # These USE flags require nightly rust @@ -80,7 +87,7 @@ for _x in "${ALL_LLVM_TARGETS[@]}"; do ALL_RUST_EXPERIMENTAL_TARGETS["${_x}"]=1 fi done -LLVM_DEPEND+=( " wasm? ( $(llvm_gen_dep 'llvm-core/lld:${LLVM_SLOT}') )" ) +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 @@ -132,7 +139,8 @@ RDEPEND="${DEPEND} REQUIRED_USE="|| ( ${ALL_LLVM_TARGETS[*]} ) rust-analyzer? ( rust-src ) test? ( ${ALL_LLVM_TARGETS[*]} ) - wasm? ( llvm_targets_WebAssembly ) + rust_sysroots_bpf? ( llvm_targets_BPF ) + rust_sysroots_wasm? ( llvm_targets_WebAssembly ) x86? ( cpu_flags_x86_sse2 ) " @@ -194,7 +202,8 @@ pre_build_checks() { M=$(( $(usex ${ltarget} 256 0) + ${M} )) done fi - M=$(( $(usex wasm 256 0) + ${M} )) + 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 @@ -355,7 +364,10 @@ src_configure() { for v in $(multilib_get_enabled_abi_pairs); do rust_targets+=",\"$(rust_abi $(get_abi_CHOST ${v##*.}))\"" done - if use wasm; then + 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 @@ -406,6 +418,9 @@ src_configure() { 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" @@ -505,14 +520,14 @@ src_configure() { omit-git-hash = false dist-src = false remap-debuginfo = true - lld = $(usex system-llvm false $(toml_usex wasm)) + 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 wasm $(usex doc false true) true) + 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 @@ -552,7 +567,7 @@ src_configure() { _EOF_ fi done - if use wasm; then + if use rust_sysroots_wasm; then wasm_target="wasm32-unknown-unknown" export CFLAGS_${wasm_target//-/_}="$(filter-flags '-mcpu*' '-march*' '-mtune*'; echo "$CFLAGS")" cat <<- _EOF_ >> "${S}"/bootstrap.toml @@ -722,9 +737,10 @@ src_install() { docompress /usr/lib/${PN}/${SLOT}/share/man/ - # bug #689562, #689160 + # 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 + rmdir -v "${ED}/usr/lib/${PN}/${SLOT}/etc/bash_completion.d" || die local symlinks=( cargo diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.91.0_beta20251009.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.91.0_beta20251009.ebuild deleted file mode 100644 index b84b675c5c3..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.91.0_beta20251009.ebuild +++ /dev/null @@ -1,837 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -LLVM_COMPAT=( 21 ) -PYTHON_COMPAT=( python3_{11..14} ) - -RUST_PATCH_VER=${PVR} - -RUST_MAX_VER=${PV%%_*} -if [[ ${PV} == *9999* ]]; then - RUST_MIN_VER="1.88.0" # Update this as new `beta` releases come out. -elif [[ ${PV} == *beta* ]]; then - RUST_MAX_VER="$(ver_cut 1).$(ver_cut 2).0" - 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-r1 multiprocessing optfeature \ - multilib multilib-build python-any-r1 rust rust-toolchain toolchain-funcs 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-${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-${PV}-src.tar.xz.asc ) - " - S="${WORKDIR}/${MY_P}-src" -else - MY_P="rustc-${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 - LoongArch M68k Mips MSP430 NVPTX PowerPC RISCV Sparc SPIRV 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.84.0/llvm/CMakeLists.txt -_ALL_RUST_EXPERIMENTAL_TARGETS=( ARC CSKY DirectX M68k SPIRV Xtensa ) -declare -A ALL_RUST_EXPERIMENTAL_TARGETS -for _x in "${_ALL_RUST_EXPERIMENTAL_TARGETS[@]}"; do - ALL_RUST_EXPERIMENTAL_TARGETS["llvm_targets_${_x}"]=0 -done - -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 rustfmt rust-analyzer rust-src +system-llvm test wasm ${ALL_LLVM_TARGETS[*]}" - -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+=( " 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 - ) - ) ) - !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 - net-misc/curl:=[http2,ssl] - sys-libs/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[*]} ) - 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/.*/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 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 - - 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-r1_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$(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-${PV}-src.tar.xz{,.asc} - default - else - default - fi -} - -src_prepare() { - if [[ ${PV} = *9999* ]]; then - # We need to update / generate lockfiles for the workspace - ${CARGO} generate-lockfile --offline || die "Failed to generate lockfiles" - fi - - # 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 - export PKG_CONFIG_PATH="${ESYSROOT}/usr/$(get_libdir)/pkgconfig" - export OPENSSL_INCLUDE_DIR="${ESYSROOT}/usr/include" - export OPENSSL_LIB_DIR="${ESYSROOT}/usr/$(get_libdir)" - fi - - # Avoid bundled copies of libraries - export RUSTONIG_SYSTEM_LIBONIG=1 - # Need to check if these can be optional - #export LIBSQLITE3_SYS_USE_PKG_CONFIG=1 - #export LIBSSH2_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 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 - 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 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 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 wasm; then - wasm_target="wasm32-unknown-unknown" - export CFLAGS_${wasm_target//-/_}="$(filter-flags '-mcpu*' '-march*' '-mtune*'; echo "$CFLAGS")" - cat <<- _EOF_ >> "${S}"/bootstrap.toml - [target.wasm32-unknown-unknown] - 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 - - # 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$(makeopts_jobs) || die -} - -src_test() { - # https://rustc-dev-guide.rust-lang.org/tests/intro.html - - # those are basic and codegen tests. - local tests=( - codegen - codegen-units - compile-fail - incremental - mir-opt - pretty - run-make - ) - - # fails if llvm is not built with ALL targets. - # and known to fail with system llvm sometimes. - use system-llvm || tests+=( assembly ) - - # 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 - run-make-fulldeps - ui - ui-fulldeps - ) - fi - - local i failed=() - einfo "rust_src_test: enabled tests ${tests[@]/#/src/test/}" - for i in "${tests[@]}"; do - local t="src/test/${i}" - einfo "rust_src_test: running ${t}" - if ! RUST_BACKTRACE=1 "${EPYTHON}" ./x.py test -vv --config="${S}"/bootstrap.toml \ - -j$(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$(makeopts_jobs) || die - - docompress /usr/lib/${PN}/${SLOT}/share/man/ - - # 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}-${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/${P}" - - newenvd - "50${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-${P}" - echo /usr/bin/cargo-clippy >> "${T}/provider-${P}" - fi - if [[ ${SLOT} == *9999* ]] && use miri; then - echo /usr/bin/miri >> "${T}/provider-${P}" - echo /usr/bin/cargo-miri >> "${T}/provider-${P}" - fi - if use rustfmt; then - echo /usr/bin/rustfmt >> "${T}/provider-${P}" - echo /usr/bin/cargo-fmt >> "${T}/provider-${P}" - fi - if use rust-analyzer; then - echo /usr/lib/rust/libexec >> "${T}/provider-${P}" - echo /usr/bin/rust-analyzer >> "${T}/provider-${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$(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}-${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 a4cb917d493..ea39085f1f6 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 @@ -3,12 +3,14 @@ EAPI=8 +# Bump notes: https://wiki.gentoo.org/wiki/Project:Rust/Rust_bump + LLVM_COMPAT=( 21 ) PYTHON_COMPAT=( python3_{11..14} ) -RUST_PATCH_VER=${PVR} - +RUST_PATCH_VER=${PV#*_p} RUST_MAX_VER=${PV%%_*} + if [[ ${PV} == *9999* ]]; then RUST_MIN_VER="1.91.0" # Update this as new `beta` releases come out. elif [[ ${PV} == *beta* ]]; then @@ -416,6 +418,9 @@ src_configure() { 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" @@ -732,9 +737,10 @@ src_install() { docompress /usr/lib/${PN}/${SLOT}/share/man/ - # bug #689562, #689160 + # 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 + rmdir -v "${ED}/usr/lib/${PN}/${SLOT}/etc/bash_completion.d" || die local symlinks=( cargo diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/elfutils/Manifest b/sdk_container/src/third_party/portage-stable/dev-libs/elfutils/Manifest index 84a450b50b9..e398a01a33a 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/elfutils/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-libs/elfutils/Manifest @@ -1,6 +1,4 @@ -DIST elfutils-0.191.tar.bz2 9310088 BLAKE2B 2a7ad251369eca7ba609ab8644181fd479ad8596ee58dc068398ca22be25a978e96b81a10a92a5555d7574fd1b9227c8d54fb41dceb4025aedfc6ae32870bbca SHA512 e22d85f25317a79b36d370347e50284c9120c86f9830f08791b7b6a7b4ad89b9bf4c7c71129133b8d193a0edffb2a2c17987b7e48428b9670aff5ce918777e04 -DIST elfutils-0.191.tar.bz2.sig 310 BLAKE2B 5afee19515a115d4ca6d1e0c4a49eca84bb4b911687492934e939a80ac75b7fcea9b6bf5fc0f2248a4c64ef09bd5af9dfc60c72410cba33b78444c38443ad279 SHA512 ab030739d95d13abb84cf4dc6c5407e51d0bd0bca108e27654a1830371694181a1b6f115fdbb4ae0772390f54f1c4811e5ae26b38fdcfd3275177a3716adfd22 -DIST elfutils-0.192.tar.bz2 11913897 BLAKE2B cf9036a1fca416e0d47c76471093609230545aee63e31e30991dc3c88417d7c621c930bb74809374da3bf142501cee91a2b861a5a89efcb5e1ac184df5defce1 SHA512 543188f5f2cfe5bc7955a878416c5f252edff9926754e5de0c6c57b132f21d9285c9b29e41281e93baad11d4ae7efbbf93580c114579c182103565fe99bd3909 -DIST elfutils-0.192.tar.bz2.sig 310 BLAKE2B b34bd17e161c827ce502338388f0f7604fca8478e8e2f05f1ad744b5288f7767466d005d7591ad74098eda53aa3bcde8a3b485983447a434e2cb2e5e64c38063 SHA512 9de0731dd3986a3dde03cfacdc3daa668f0e2cc482adfc31ab97320f85f7d13d3f056154aa16299db3f09e1c89020635012ffdd0e4cb68c1391b0e218721fb22 DIST elfutils-0.193.tar.bz2 11974916 BLAKE2B 3ddda695e92c76d0f98432b65d51737bdebf9cad536e0a583d10beb4693d98ce6e47716ff143d82dd3488e59489b03170bd292cb165d44bfb8581ff67dd2b1b9 SHA512 557e328e3de0d2a69d09c15a9333f705f3233584e2c6a7d3ce855d06a12dc129e69168d6be64082803630397bd64e1660a8b5324d4f162d17922e10ddb367d76 DIST elfutils-0.193.tar.bz2.sig 310 BLAKE2B 2c5626af37031e6dbf1f94ca2d5622f978a50c7cbf412c33924585dc7261e0c7fe3f55d91121a9a3ae9cc092c4e1879a34cf145fdc19607ad6db065bbed8b605 SHA512 75f3935c4a519dc0b23e59e2e6f2bae7926c988aec484f2e1f0759cf7662eca1752f02c16b2f129fee0d7451e961322cf9a315c4ce23e91520f4779ed9fda713 +DIST elfutils-0.194.tar.bz2 12003321 BLAKE2B dd1fd1ba83330aa3313bd96614851a59411ea8e1004afda23791296de03960db5e193ee9ded4dd159d80c954efecc2cb5438cce986817d537c72d5ff887faf16 SHA512 5d00502f61b92643bf61dc61da4ddded36c423466388d992bcd388c5208761b8ed9db1a01492c085cd0984eef30c08f895a8e307e78e0df8df40b56ae35b78a5 +DIST elfutils-0.194.tar.bz2.sig 310 BLAKE2B f43c370c339038a4894700984c501c7120a139763a7369f6fabc918c6c842dd50fff19d999a005939f9f049d0cf2c2a4f000e32fbc55afd8abdb67d82aefa90e SHA512 12d90f66dfa37544fb6b368099fac3eae9487188b0ce49409ae5c647c1fa3c68582efc5216a758d830e3775d5686ac2605dba600ad258f27ae99d5ce1094b624 diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/elfutils/elfutils-0.191-r2.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/elfutils/elfutils-0.191-r2.ebuild deleted file mode 100644 index de28fb93772..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-libs/elfutils/elfutils-0.191-r2.ebuild +++ /dev/null @@ -1,142 +0,0 @@ -# Copyright 2003-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/elfutils.gpg -inherit autotools flag-o-matic multilib-minimal - -DESCRIPTION="Libraries/utilities to handle ELF objects (drop in replacement for libelf)" -HOMEPAGE="https://sourceware.org/elfutils/" -if [[ ${PV} == 9999 ]] ; then - EGIT_REPO_URI="https://sourceware.org/git/elfutils.git" - inherit git-r3 - - BDEPEND=" - sys-devel/bison - sys-devel/flex - " -else - inherit verify-sig - SRC_URI="https://sourceware.org/elfutils/ftp/${PV}/${P}.tar.bz2" - SRC_URI+=" verify-sig? ( https://sourceware.org/elfutils/ftp/${PV}/${P}.tar.bz2.sig )" - - KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux" - - BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-elfutils-20240301 )" -fi - -LICENSE="|| ( GPL-2+ LGPL-3+ ) utils? ( GPL-3+ )" -SLOT="0" -IUSE="bzip2 debuginfod lzma nls static-libs test +utils valgrind zstd" -RESTRICT="!test? ( test )" - -RDEPEND=" - !dev-libs/libelf - >=sys-libs/zlib-1.2.8-r1[static-libs?,${MULTILIB_USEDEP}] - bzip2? ( >=app-arch/bzip2-1.0.6-r4[static-libs?,${MULTILIB_USEDEP}] ) - debuginfod? ( - app-arch/libarchive:= - dev-db/sqlite:3= - net-libs/libmicrohttpd:= - - net-misc/curl[static-libs?,${MULTILIB_USEDEP}] - ) - lzma? ( >=app-arch/xz-utils-5.0.5-r1[static-libs?,${MULTILIB_USEDEP}] ) - zstd? ( app-arch/zstd:=[static-libs?,${MULTILIB_USEDEP}] ) - elibc_musl? ( - dev-libs/libbsd - sys-libs/argp-standalone - sys-libs/fts-standalone - sys-libs/obstack-standalone - ) -" -DEPEND=" - ${RDEPEND} - valgrind? ( dev-debug/valgrind ) -" -BDEPEND+=" - sys-devel/m4 - virtual/pkgconfig - nls? ( sys-devel/gettext ) -" - -PATCHES=( - "${FILESDIR}"/${PN}-0.189-musl-aarch64-regs.patch - "${FILESDIR}"/${PN}-0.191-musl-macros.patch - "${FILESDIR}"/${PN}-0.191-avoid-overriding-libcxx-system-header.patch - "${FILESDIR}"/${PN}-0.191-musl-configure-better-error-h-check.patch -) - -src_prepare() { - default - - eautoreconf - - if ! use static-libs; then - sed -i -e '/^lib_LIBRARIES/s:=.*:=:' -e '/^%.os/s:%.o$::' lib{asm,dw,elf}/Makefile.in || die - fi - - # https://sourceware.org/PR23914 - sed -i 's:-Werror::' */Makefile.in || die -} - -src_configure() { - # bug #407135 - use test && append-flags -g - - # bug 660738 - filter-flags -fno-asynchronous-unwind-tables - - multilib-minimal_src_configure -} - -multilib_src_configure() { - unset LEX YACC - - local myeconfargs=( - $(use_enable nls) - $(multilib_native_use_enable debuginfod) - $(use_enable debuginfod libdebuginfod) - $(use_enable valgrind valgrind-annotations) - - # explicitly disable thread safety, it's not recommended by upstream - # doesn't build either on musl. - --disable-thread-safety - - # Valgrind option is just for running tests under it; dodgy under sandbox - # and indeed even w/ glibc with newer instructions. - --disable-valgrind - --program-prefix="eu-" - --with-zlib - $(use_with bzip2 bzlib) - $(use_with lzma) - $(use_with zstd) - ) - - [[ ${PV} == 9999 ]] && myeconfargs+=( --enable-maintainer-mode ) - - # Needed because sets alignment macro - is-flagq -fsanitize=address && myeconfargs+=( --enable-sanitize-address ) - is-flagq -fsanitize=undefined && myeconfargs+=( --enable-sanitize-undefined ) - - ECONF_SOURCE="${S}" econf "${myeconfargs[@]}" -} - -multilib_src_test() { - env LD_LIBRARY_PATH="${BUILD_DIR}/libelf:${BUILD_DIR}/libebl:${BUILD_DIR}/libdw:${BUILD_DIR}/libasm" \ - LC_ALL="C" \ - emake check VERBOSE=1 -} - -multilib_src_install_all() { - einstalldocs - - dodoc NOTES - - # These build quick, and are needed for most tests, so we don't - # disable building them when the USE flag is disabled. - if ! use utils; then - rm -rf "${ED}"/usr/bin || die - fi -} diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/elfutils/elfutils-0.193.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/elfutils/elfutils-0.193-r1.ebuild similarity index 99% rename from sdk_container/src/third_party/portage-stable/dev-libs/elfutils/elfutils-0.193.ebuild rename to sdk_container/src/third_party/portage-stable/dev-libs/elfutils/elfutils-0.193-r1.ebuild index f0baf7b923f..960c4ec2465 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/elfutils/elfutils-0.193.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/elfutils/elfutils-0.193-r1.ebuild @@ -33,10 +33,10 @@ RESTRICT="!test? ( test )" RDEPEND=" !dev-libs/libelf + >=app-arch/libarchive-3.1.2:= >=sys-libs/zlib-1.2.8-r1[static-libs?,${MULTILIB_USEDEP}] bzip2? ( >=app-arch/bzip2-1.0.6-r4[static-libs?,${MULTILIB_USEDEP}] ) debuginfod? ( - >=app-arch/libarchive-3.1.2:= dev-db/sqlite:3= >=dev-libs/json-c-0.11:=[${MULTILIB_USEDEP}] >=net-libs/libmicrohttpd-0.9.33:= diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/elfutils/elfutils-0.192-r1.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/elfutils/elfutils-0.194.ebuild similarity index 74% rename from sdk_container/src/third_party/portage-stable/dev-libs/elfutils/elfutils-0.192-r1.ebuild rename to sdk_container/src/third_party/portage-stable/dev-libs/elfutils/elfutils-0.194.ebuild index caa1618de21..590f123620a 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/elfutils/elfutils-0.192-r1.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/elfutils/elfutils-0.194.ebuild @@ -21,27 +21,28 @@ else SRC_URI="https://sourceware.org/elfutils/ftp/${PV}/${P}.tar.bz2" SRC_URI+=" verify-sig? ( https://sourceware.org/elfutils/ftp/${PV}/${P}.tar.bz2.sig )" - KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux" BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-elfutils-20240301 )" fi LICENSE="|| ( GPL-2+ LGPL-3+ ) utils? ( GPL-3+ )" SLOT="0" -IUSE="bzip2 debuginfod lzma nls static-libs stacktrace test +utils valgrind zstd" +IUSE="bzip2 debuginfod libarchive +lzma nls static-libs stacktrace test +utils valgrind zstd" RESTRICT="!test? ( test )" +REQUIRED_USE="debuginfod? ( libarchive )" RDEPEND=" !dev-libs/libelf >=sys-libs/zlib-1.2.8-r1[static-libs?,${MULTILIB_USEDEP}] bzip2? ( >=app-arch/bzip2-1.0.6-r4[static-libs?,${MULTILIB_USEDEP}] ) debuginfod? ( - >=app-arch/libarchive-3.1.2:= dev-db/sqlite:3= >=dev-libs/json-c-0.11:=[${MULTILIB_USEDEP}] >=net-libs/libmicrohttpd-0.9.33:= >=net-misc/curl-7.29.0[static-libs?,${MULTILIB_USEDEP}] ) + libarchive? ( >=app-arch/libarchive-3.1.2:= ) lzma? ( >=app-arch/xz-utils-5.0.5-r1[static-libs?,${MULTILIB_USEDEP}] ) stacktrace? ( dev-util/sysprof ) zstd? ( app-arch/zstd:=[static-libs?,${MULTILIB_USEDEP}] ) @@ -65,10 +66,7 @@ BDEPEND+=" PATCHES=( "${FILESDIR}"/${PN}-0.189-musl-aarch64-regs.patch "${FILESDIR}"/${PN}-0.191-musl-macros.patch - "${FILESDIR}"/${P}-libelf-static-link-libeu.patch - "${FILESDIR}"/${P}-configure-better-error-message.patch - "${FILESDIR}"/${P}-stacktrace-maybe-uninit.patch - "${FILESDIR}"/${PN}-0.191-musl-configure-better-error-h-check.patch + "${FILESDIR}"/${P}-tests.patch ) src_prepare() { @@ -80,6 +78,17 @@ src_prepare() { sed -i -e '/^lib_LIBRARIES/s:=.*:=:' -e '/^%.os/s:%.o$::' lib{asm,dw,elf}/Makefile.in || die fi + # TODO: Fails with some CFLAGS + # " __divhc3: /var/tmp/portage/dev-libs/elfutils-0.193/work/elfutils-0.193-abi_x86_32.x86/tests/funcretval: + # dwfl_module_return_value_location: cannot handle DWARF type description" + printf "#!/bin/sh\nexit 77" > tests/run-native-test.sh || die + # TODO: Fails for abi_x86_32 w/ DT_RELR + # "section [14] '.rel.plt': relocation 55: relocation type invalid for the file type" + printf "#!/bin/sh\nexit 77" > tests/run-elflint-self.sh || die + printf "#!/bin/sh\nexit 77" > tests/run-reverse-sections-self.sh || die + # TODO: Fails with SFrames + printf "#!/bin/sh\nexit 77" > tests/run-strip-strmerge.sh || die + # https://sourceware.org/PR23914 sed -i 's:-Werror::' */Makefile.in || die } @@ -105,8 +114,8 @@ multilib_src_configure() { $(multilib_native_use_enable stacktrace) $(use_enable valgrind valgrind-annotations) - # explicitly disable thread safety, it's not recommended by upstream - # doesn't build either on musl. + # Explicitly disable thread safety, it's not recommended by upstream + # (marked experimental in configure) and doesn't build either on musl. --disable-thread-safety # Valgrind option is just for running tests under it; dodgy under sandbox @@ -115,6 +124,7 @@ multilib_src_configure() { --program-prefix="eu-" --with-zlib $(use_with bzip2 bzlib) + $(multilib_native_use_with libarchive) $(use_with lzma) $(use_with zstd) ) diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/elfutils/elfutils-9999.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/elfutils/elfutils-9999.ebuild index 5f4954759a4..5852a574335 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/elfutils/elfutils-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/elfutils/elfutils-9999.ebuild @@ -28,20 +28,21 @@ fi LICENSE="|| ( GPL-2+ LGPL-3+ ) utils? ( GPL-3+ )" SLOT="0" -IUSE="bzip2 debuginfod +lzma nls static-libs stacktrace test +utils valgrind zstd" +IUSE="bzip2 debuginfod libarchive +lzma nls static-libs stacktrace test +utils valgrind zstd" RESTRICT="!test? ( test )" +REQUIRED_USE="debuginfod? ( libarchive )" RDEPEND=" !dev-libs/libelf >=sys-libs/zlib-1.2.8-r1[static-libs?,${MULTILIB_USEDEP}] bzip2? ( >=app-arch/bzip2-1.0.6-r4[static-libs?,${MULTILIB_USEDEP}] ) debuginfod? ( - >=app-arch/libarchive-3.1.2:= dev-db/sqlite:3= >=dev-libs/json-c-0.11:=[${MULTILIB_USEDEP}] >=net-libs/libmicrohttpd-0.9.33:= >=net-misc/curl-7.29.0[static-libs?,${MULTILIB_USEDEP}] ) + libarchive? ( >=app-arch/libarchive-3.1.2:= ) lzma? ( >=app-arch/xz-utils-5.0.5-r1[static-libs?,${MULTILIB_USEDEP}] ) stacktrace? ( dev-util/sysprof ) zstd? ( app-arch/zstd:=[static-libs?,${MULTILIB_USEDEP}] ) @@ -84,6 +85,8 @@ src_prepare() { # "section [14] '.rel.plt': relocation 55: relocation type invalid for the file type" printf "#!/bin/sh\nexit 77" > tests/run-elflint-self.sh || die printf "#!/bin/sh\nexit 77" > tests/run-reverse-sections-self.sh || die + # TODO: Fails with SFrames + printf "#!/bin/sh\nexit 77" > tests/run-strip-strmerge.sh || die # https://sourceware.org/PR23914 sed -i 's:-Werror::' */Makefile.in || die @@ -110,8 +113,8 @@ multilib_src_configure() { $(multilib_native_use_enable stacktrace) $(use_enable valgrind valgrind-annotations) - # explicitly disable thread safety, it's not recommended by upstream - # doesn't build either on musl. + # Explicitly disable thread safety, it's not recommended by upstream + # (marked experimental in configure) and doesn't build either on musl. --disable-thread-safety # Valgrind option is just for running tests under it; dodgy under sandbox @@ -120,6 +123,7 @@ multilib_src_configure() { --program-prefix="eu-" --with-zlib $(use_with bzip2 bzlib) + $(multilib_native_use_with libarchive) $(use_with lzma) $(use_with zstd) ) diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/elfutils/files/elfutils-0.191-avoid-overriding-libcxx-system-header.patch b/sdk_container/src/third_party/portage-stable/dev-libs/elfutils/files/elfutils-0.191-avoid-overriding-libcxx-system-header.patch deleted file mode 100644 index acba803fa2f..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-libs/elfutils/files/elfutils-0.191-avoid-overriding-libcxx-system-header.patch +++ /dev/null @@ -1,28 +0,0 @@ -https://bugs.gentoo.org/925241 - -Replace -I with -iquote to avoid overriding stack system header from libcxx-18 -with the previously built stack binary. Override DEFAULT_INLCUDES because m4 -adds -I. by default. - ---- a/config/eu.am -+++ b/config/eu.am -@@ -31,7 +31,7 @@ - ## - - DEFS = -D_GNU_SOURCE -DHAVE_CONFIG_H -DLOCALEDIR='"${localedir}"' --AM_CPPFLAGS = -I. -I$(srcdir) -I$(top_srcdir)/lib -I.. -+AM_CPPFLAGS = -iquote . -I$(srcdir) -I$(top_srcdir)/lib -I.. - - # Drop the 'u' flag that automake adds by default. It is incompatible - # with deterministic archives. ---- a/src/Makefile.am -+++ b/src/Makefile.am -@@ -19,6 +19,8 @@ - include $(top_srcdir)/config/eu.am - DEFS += $(YYDEBUG) -DDEBUGPRED=@DEBUGPRED@ \ - -DSRCDIR=\"$(shell cd $(srcdir);pwd)\" -DOBJDIR=\"$(shell pwd)\" -+ -+DEFAULT_INCLUDES = - AM_CPPFLAGS += -I$(srcdir)/../libelf -I$(srcdir)/../libebl \ - -I$(srcdir)/../libdw -I$(srcdir)/../libdwelf \ - -I$(srcdir)/../libdwfl -I$(srcdir)/../libasm -I../debuginfod diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/elfutils/files/elfutils-0.191-musl-configure-better-error-h-check.patch b/sdk_container/src/third_party/portage-stable/dev-libs/elfutils/files/elfutils-0.191-musl-configure-better-error-h-check.patch deleted file mode 100644 index bdadcbb25d7..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-libs/elfutils/files/elfutils-0.191-musl-configure-better-error-h-check.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 43ddbe073025fe2ff454dabb84674ccdbd013487 Mon Sep 17 00:00:00 2001 -From: Alfred Wingate -Date: Wed, 29 Jan 2025 09:32:49 +0200 -Subject: [PATCH] Declare HAVE_ERROR_H only if error symbol is available - -Musl doesn't provide error.h. But there exists a standalone implementation -that installs /usr/include/error.h but requires explicit linkage. This -leads linkage errors later on due to the assumption that error -symbols are provided by the libc. - -Bug: https://bugs.gentoo.org/948878 -Signed-off-by: Alfred Wingate ---- - configure.ac | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/configure.ac b/configure.ac -index 1da2a12c..7a2f2540 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -477,7 +477,7 @@ AC_CHECK_FUNCS([process_vm_readv mremap]) - AS_IF([test "x$ac_cv_func_mremap" = "xno"], - [AC_MSG_WARN([elf_update needs mremap to support ELF_C_RDWR_MMAP])]) - --AC_CHECK_HEADERS([error.h]) -+AC_CHECK_HEADER([error.h], [AC_CHECK_FUNC([error], AC_DEFINE([HAVE_ERROR_H], [1], [Define if error.h is usable]))]) - AC_CHECK_HEADERS([err.h]) - - dnl for debuginfod concurrency heuristics --- -2.48.1 - diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/elfutils/files/elfutils-0.192-configure-better-error-message.patch b/sdk_container/src/third_party/portage-stable/dev-libs/elfutils/files/elfutils-0.192-configure-better-error-message.patch deleted file mode 100644 index fc6867ea782..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-libs/elfutils/files/elfutils-0.192-configure-better-error-message.patch +++ /dev/null @@ -1,96 +0,0 @@ -https://sourceware.org/git/?p=elfutils.git;a=commit;h=42b19e54393f031e6355cf0658e9518571e85ed3 - -From 42b19e54393f031e6355cf0658e9518571e85ed3 Mon Sep 17 00:00:00 2001 -From: Mark Wielaard -Date: Tue, 22 Oct 2024 18:19:09 +0200 -Subject: [PATCH] configure: better error message for [lib]debuginfod missing - dependencies - -When dependencies for libdebuginfod, debuginfod or ima verification are -missing and these features are explicitly enabled the user might not -immediately know which of the dependicies are missing. Move the checks -around a little so checks for dependencies are done immediately before -the enable error message. And add the possible reason to the error to -make things more clear. - - * configure.ac: Move libcurl and json-c tests before libdebuginfod - check, move libmicrohttpd, sqlite3 and libarchive tests before - debuginfod check and move librpm, libcrypto and imaevm.h tests - before ima verification check. - -https://sourceware.org/PR32294 - -Signed-off-by: Mark Wielaard ---- a/configure.ac -+++ b/configure.ac -@@ -837,16 +837,7 @@ AC_ARG_ENABLE([debuginfod-ima-verification],[AS_HELP_STRING([--enable-debuginfod - # Look for various packages, minimum versions as per rhel7. - PKG_PROG_PKG_CONFIG - PKG_CHECK_MODULES([libcurl],[libcurl >= 7.29.0],[have_libcurl=yes],[have_libcurl=no]) --AC_CHECK_LIB(pthread, pthread_setname_np, [AC_DEFINE([HAVE_PTHREAD_SETNAME_NP],[1],[Enable pthread_setname_np])]) - PKG_CHECK_MODULES([jsonc],[json-c >= 0.11],[have_jsonc=yes],[have_jsonc=no]) --PKG_CHECK_MODULES([libmicrohttpd],[libmicrohttpd >= 0.9.33],[],[enable_debuginfod=no]) --PKG_CHECK_MODULES([oldlibmicrohttpd],[libmicrohttpd < 0.9.51],[old_libmicrohttpd=yes],[old_libmicrohttpd=no]) --PKG_CHECK_MODULES([sqlite3],[sqlite3 >= 3.7.17],[have_sqlite3=yes],[have_sqlite3=no]) --PKG_CHECK_MODULES([libarchive],[libarchive >= 3.1.2],[have_libarchive=yes],[have_libarchive=no]) --AC_CHECK_LIB(rpm, headerGet, [AC_CHECK_DECL(RPMSIGTAG_FILESIGNATURES, -- [AC_SUBST(rpm_LIBS, '-lrpm -lrpmio')],[], [#include ])]) --AC_CHECK_LIB(crypto, EVP_MD_CTX_new, [AC_SUBST(crypto_LIBS, '-lcrypto')]) --AC_CHECK_HEADER(imaevm.h) - # - # pronounce judgement on ability to build client, overridden by =yes/=no - if test "x$enable_libdebuginfod" = "xno"; then -@@ -855,11 +846,15 @@ elif test "x$enable_libdebuginfod" = "xdummy"; then - true - elif test "x$have_jsonc$have_libcurl" = "xyesyes"; then - enable_libdebuginfod=yes --elif test "x$enable_libdebuginfod" = "xyes" -o "x$enable_libdebuginfod" = "xdummy"; then -- AC_MSG_ERROR([unable to build libdebuginfod]) -+elif test "x$enable_libdebuginfod" = "xyes"; then -+ AC_MSG_ERROR([unable to build libdebuginfod, missing libjson-c or libcurl]) - else - enable_libdebuginfod=no - fi -+PKG_CHECK_MODULES([libmicrohttpd],[libmicrohttpd >= 0.9.33],[],[enable_debuginfod=no]) -+PKG_CHECK_MODULES([oldlibmicrohttpd],[libmicrohttpd < 0.9.51],[old_libmicrohttpd=yes],[old_libmicrohttpd=no]) -+PKG_CHECK_MODULES([sqlite3],[sqlite3 >= 3.7.17],[have_sqlite3=yes],[have_sqlite3=no]) -+PKG_CHECK_MODULES([libarchive],[libarchive >= 3.1.2],[have_libarchive=yes],[have_libarchive=no]) - # - # pronounce judgement on ability to build server, overridden by =yes/=no - if test "x$enable_debuginfod" = "xno"; then -@@ -867,18 +862,22 @@ if test "x$enable_debuginfod" = "xno"; then - elif test "x$have_jsonc$HAVE_CXX11$have_libarchive$have_sqlite3" = "xyesyesyesyes"; then - enable_debuginfod=yes - elif test "x$enable_debuginfod" = "xyes"; then -- AC_MSG_ERROR([unable to build debuginfod]) -+ AC_MSG_ERROR([unable to build debuginfod, missing libmicrohttpd, sqlite3 or libarchive]) - else - enable_debuginfod=no - fi - # -+AC_CHECK_LIB(rpm, headerGet, [AC_CHECK_DECL(RPMSIGTAG_FILESIGNATURES, -+ [AC_SUBST(rpm_LIBS, '-lrpm -lrpmio')],[], [#include ])]) -+AC_CHECK_LIB(crypto, EVP_MD_CTX_new, [AC_SUBST(crypto_LIBS, '-lcrypto')]) -+AC_CHECK_HEADER(imaevm.h) - # pronounce judgment on ima signature support - if test "x$enable_debuginfod_ima_verification" = "xno"; then - true - elif test "x$ac_cv_lib_rpm_headerGet$ac_cv_have_decl_RPMSIGTAG_FILESIGNATURES$ac_cv_lib_crypto_EVP_MD_CTX_new$ac_cv_header_imaevm_h" = "xyesyesyesyes"; then - enable_debuginfod_ima_verification=yes - elif test "x$enable_debuginfod_ima_verification" = "xyes"; then -- AC_MSG_ERROR([unable to enable debuginfod ima verification]) -+ AC_MSG_ERROR([unable to enable ima verification, missing librpm, libcrypto or imaevm.h]) - else - enable_debuginfod_ima_verification=no - fi -@@ -895,6 +894,8 @@ AS_IF([test "x$have_libarchive" = "xyes"],AC_DEFINE([HAVE_LIBARCHIVE],[1],[Defin - AM_CONDITIONAL([ENABLE_IMA_VERIFICATION],[test "$enable_debuginfod_ima_verification" = "xyes"]) - AM_CONDITIONAL([OLD_LIBMICROHTTPD],[test "x$old_libmicrohttpd" = "xyes"]) - -+AC_CHECK_LIB(pthread, pthread_setname_np, [AC_DEFINE([HAVE_PTHREAD_SETNAME_NP],[1],[Enable pthread_setname_np])]) -+ - dnl for /etc/profile.d/elfutils.{csh,sh} - default_debuginfod_urls="" - AC_ARG_ENABLE(debuginfod-urls, --- -2.43.5 diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/elfutils/files/elfutils-0.192-libelf-static-link-libeu.patch b/sdk_container/src/third_party/portage-stable/dev-libs/elfutils/files/elfutils-0.192-libelf-static-link-libeu.patch deleted file mode 100644 index 0986ce6b326..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-libs/elfutils/files/elfutils-0.192-libelf-static-link-libeu.patch +++ /dev/null @@ -1,31 +0,0 @@ -https://sourceware.org/git/?p=elfutils.git;a=commit;h=f5d6e088f84dd05278c4698a21cbf1ff4569978d - -From f5d6e088f84dd05278c4698a21cbf1ff4569978d Mon Sep 17 00:00:00 2001 -From: Mark Wielaard -Date: Tue, 22 Oct 2024 15:03:42 +0200 -Subject: [PATCH] libelf: Add libeu objects to libelf.a static archive - -libelf might use some symbols from libeu.a, specifically the eu-search -wrappers. But we don't ship libeu.a separately. So include the libeu -objects in the libelf.a archive to facilitate static linking. - - * libelf/Makefile.am (libeu_objects): New variable. - (libelf_a_LIBADD): New, add libeu_objects. - -https://sourceware.org/PR32293 - -Signed-off-by: Mark Wielaard ---- a/libelf/Makefile.am -+++ b/libelf/Makefile.am -@@ -122,6 +122,9 @@ libelf.so: $(srcdir)/libelf.map $(libelf_so_LIBS) $(libelf_so_DEPS) - @$(textrel_check) - $(AM_V_at)ln -fs $@ $@.$(VERSION) - -+libeu_objects = $(shell $(AR) t ../lib/libeu.a) -+libelf_a_LIBADD = $(addprefix ../lib/,$(libeu_objects)) -+ - install: install-am libelf.so - $(mkinstalldirs) $(DESTDIR)$(libdir) - $(INSTALL_PROGRAM) libelf.so $(DESTDIR)$(libdir)/libelf-$(PACKAGE_VERSION).so --- -2.43.5 diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/elfutils/files/elfutils-0.192-stacktrace-maybe-uninit.patch b/sdk_container/src/third_party/portage-stable/dev-libs/elfutils/files/elfutils-0.192-stacktrace-maybe-uninit.patch deleted file mode 100644 index f572bf85467..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-libs/elfutils/files/elfutils-0.192-stacktrace-maybe-uninit.patch +++ /dev/null @@ -1,38 +0,0 @@ -https://sourceware.org/git/?p=elfutils.git;a=commit;h=dce324303198545e1c5484d912e5f259b1d4953d - -From dce324303198545e1c5484d912e5f259b1d4953d Mon Sep 17 00:00:00 2001 -From: Mark Wielaard -Date: Thu, 24 Oct 2024 11:06:08 +0200 -Subject: [PATCH] stacktrace: Init elf_fd in sysprof_init_dwfl -MIME-Version: 1.0 -Content-Type: text/plain; charset=utf8 -Content-Transfer-Encoding: 8bit - -When building with LTO gcc believes elf_fd can be used uninitialized: - -In function ‘sysprof_init_dwfl’, - inlined from ‘sysprof_unwind_cb’ at stacktrace.c:1235:16: -stacktrace.c:1087:7: error: ‘elf_fd’ may be used uninitialized [-Werror=maybe-uninitialized] - 1087 | close (elf_fd); - | ^ - -This code won't be reached because if find_procfile doesn't initialize -elf_fd, it will return an error. But help the compiler by initializing -elf_fd to -1. - - * src/stacktrace.c (sysprof_init_dwfl): Init elf_fd to -1. - -Signed-off-by: Mark Wielaard ---- a/src/stacktrace.c -+++ b/src/stacktrace.c -@@ -1033,7 +1033,7 @@ sysprof_init_dwfl (struct sysprof_unwind_info *sui, - } - - Elf *elf = NULL; -- int elf_fd; -+ int elf_fd = -1; - err = find_procfile (dwfl, &pid, &elf, &elf_fd); - if (err < 0) - { --- -2.43.5 diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/elfutils/files/elfutils-0.194-tests.patch b/sdk_container/src/third_party/portage-stable/dev-libs/elfutils/files/elfutils-0.194-tests.patch new file mode 100644 index 00000000000..14c4a46613a --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/elfutils/files/elfutils-0.194-tests.patch @@ -0,0 +1,136 @@ +https://sourceware.org/git/?p=elfutils.git;a=commit;h=f66135f16fe44182a3fc5b651d7e5071c936217d + +From f66135f16fe44182a3fc5b651d7e5071c936217d Mon Sep 17 00:00:00 2001 +From: Aaron Merey +Date: Mon, 27 Oct 2025 22:00:12 -0400 +Subject: [PATCH] readelf: Allocate job_data one-by-one as needed + +Currently, job_data is stored in an array whose size is equal to the +number of debug sections (.debug_*, .eh_frame, .gdb_index, etc.). + +This size may be too small if a binary contains multiple debug sections +with the same name. For example an ET_REL binary compiled with -ggdb3 +can contain multiple .debug_macro sections. + +Fix this by allocating job_data on the fly when preparing to read a +debug section. This supports an arbitrary number of debug sections +while also avoiding unnecessary memory allocation. + +https://sourceware.org/bugzilla/show_bug.cgi?id=33580 + +Signed-off-by: Aaron Merey +--- + src/readelf.c | 49 +++++++++++++++++++++++++------------------------ + 1 file changed, 25 insertions(+), 24 deletions(-) + +diff --git a/src/readelf.c b/src/readelf.c +index ee6c203d..a2d17358 100644 +--- a/src/readelf.c ++++ b/src/readelf.c +@@ -12200,7 +12200,8 @@ getone_dwflmod (Dwfl_Module *dwflmod, + return DWARF_CB_OK; + } + +-typedef struct { ++typedef struct Job_Data { ++ struct Job_Data *next; + Dwfl_Module *dwflmod; + Ebl *ebl; + GElf_Ehdr *ehdr; +@@ -12230,7 +12231,7 @@ do_job (void *data, FILE *out) + If thread safety is not supported or the maximum number of threads is set + to 1, then immediately call START_ROUTINE with the given arguments. */ + static void +-schedule_job (job_data jdata[], size_t idx, ++schedule_job (job_data **jdatalist, + void (*start_routine) (Dwfl_Module *, Ebl *, GElf_Ehdr *, + Elf_Scn *, GElf_Shdr *, Dwarf *, FILE *), + Dwfl_Module *dwflmod, Ebl *ebl, GElf_Ehdr *ehdr, Elf_Scn *scn, +@@ -12239,21 +12240,24 @@ schedule_job (job_data jdata[], size_t idx, + #ifdef USE_LOCKS + if (max_threads > 1) + { +- /* Add to the job queue. */ +- jdata[idx].dwflmod = dwflmod; +- jdata[idx].ebl = ebl; +- jdata[idx].ehdr = ehdr; +- jdata[idx].scn = *scn; +- jdata[idx].shdr = *shdr; +- jdata[idx].dbg = dbg; +- jdata[idx].fp = start_routine; ++ job_data *jdata = xmalloc (sizeof (job_data)); ++ ++ jdata->dwflmod = dwflmod; ++ jdata->ebl = ebl; ++ jdata->ehdr = ehdr; ++ jdata->scn = *scn; ++ jdata->shdr = *shdr; ++ jdata->dbg = dbg; ++ jdata->fp = start_routine; ++ jdata->next = *jdatalist; ++ *jdatalist = jdata; + +- add_job (do_job, (void *) &jdata[idx]); ++ add_job (do_job, (void *) jdata); + } + else + start_routine (dwflmod, ebl, ehdr, scn, shdr, dbg, stdout); + #else +- (void) jdata; (void) idx; ++ (void) jdatalist; + + start_routine (dwflmod, ebl, ehdr, scn, shdr, dbg, stdout); + #endif +@@ -12431,8 +12435,7 @@ print_debug (Dwfl_Module *dwflmod, Ebl *ebl, GElf_Ehdr *ehdr) + if (unlikely (elf_getshdrstrndx (ebl->elf, &shstrndx) < 0)) + error_exit (0, _("cannot get section header string table index")); + +- ssize_t num_jobs = 0; +- job_data *jdata = NULL; ++ job_data *jdatalist = NULL; + + /* If the .debug_info section is listed as implicitly required then + we must make sure to handle it before handling any other debug +@@ -12531,13 +12534,6 @@ print_debug (Dwfl_Module *dwflmod, Ebl *ebl, GElf_Ehdr *ehdr) + if (name == NULL) + continue; + +- if (jdata == NULL) +- { +- jdata = calloc (ndebug_sections, sizeof (*jdata)); +- if (jdata == NULL) +- error_exit (0, _("failed to allocate job data")); +- } +- + int n; + for (n = 0; n < ndebug_sections; ++n) + { +@@ -12561,10 +12557,9 @@ print_debug (Dwfl_Module *dwflmod, Ebl *ebl, GElf_Ehdr *ehdr) + { + if (((print_debug_sections | implicit_debug_sections) + & debug_sections[n].bitmask)) +- schedule_job (jdata, num_jobs++, debug_sections[n].fp, ++ schedule_job (&jdatalist, debug_sections[n].fp, + dwflmod, ebl, ehdr, scn, shdr, dbg); + +- assert (num_jobs <= ndebug_sections); + break; + } + } +@@ -12579,7 +12574,13 @@ print_debug (Dwfl_Module *dwflmod, Ebl *ebl, GElf_Ehdr *ehdr) + + dwfl_end (skel_dwfl); + free (skel_name); +- free (jdata); ++ ++ while (jdatalist != NULL) ++ { ++ job_data *jdata = jdatalist; ++ jdatalist = jdatalist->next; ++ free (jdata); ++ } + + /* Turn implicit and/or explicit back on in case we go over another file. */ + if (implicit_info) +-- +2.43.7 diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/elfutils/metadata.xml b/sdk_container/src/third_party/portage-stable/dev-libs/elfutils/metadata.xml index a28aa11dc00..caed8c112b9 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/elfutils/metadata.xml +++ b/sdk_container/src/third_party/portage-stable/dev-libs/elfutils/metadata.xml @@ -6,14 +6,20 @@ Gentoo Toolchain Project + Enable debuginfod support, both the debuginfod server and the libdebuginfod client library + + Needed for debuginfod (the server) and also for + --zip support in the eu-srcfiles utility. + + Requires app-arch/libarchive. + Support automatic decompression of LZMA-compressed files and kernel images Build experimental eu-stacktrace tool. Relies on integration with dev-util/sysprof. See https://developers.redhat.com/articles/2024/06/11/get-system-wide-profiles-binaries-without-frame-pointers. - Install command-line utilities (all the eu-* programs) - Enable debuginfod support, both the debuginfod server and the libdebuginfod client library + Install command-line utilities (all the eu-* programs). cpe:/a:elfutils_project:elfutils diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/expat/expat-2.7.3.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/expat/expat-2.7.3.ebuild index 0bcc032b345..21da37a002d 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/expat/expat-2.7.3.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/expat/expat-2.7.3.ebuild @@ -11,7 +11,7 @@ SRC_URI="https://github.com/libexpat/libexpat/releases/download/R_${PV//\./_}/ex LICENSE="MIT" SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" IUSE="examples static-libs test unicode" RESTRICT="!test? ( test )" BDEPEND="unicode? ( ${AUTOTOOLS_DEPEND} )" diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/glib/Manifest b/sdk_container/src/third_party/portage-stable/dev-libs/glib/Manifest index b98d83f3aa2..72978f815cd 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/glib/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-libs/glib/Manifest @@ -1,5 +1,6 @@ DIST glib-2.82.5.tar.xz 5554704 BLAKE2B e7853034be1137f8b793483df9e9ce1465dd10a990eb9b3cb9ac76c9f8f86ccc6fda85645b04b35963b28c33e0f6c02df4f3d03e06cc278b8515e588d6bd05f6 SHA512 a6b035c32a42b9d6f4c031a29da405848002619654b58c9205f2f78dbb9698cd5866f31ab213adc04aa214d2c48840a9592c0a1e9201e6851ebd435635f393ae DIST glib-2.84.3.tar.xz 5615704 BLAKE2B 48444b91be68530de05667e2e009dcdc63af2f95cc978a461d930b943772e52b6c9d0e797aea3a9a5713758f22ee60a190c7d601b170c6c853fce624e5c327d7 SHA512 73f2d67d2ef5b4dc8cd2f6df9ce7903853ec619924e2927adbc73d706974a7d660afea55be18e12ccb0dee1145cf4149b743278d2b128fd466e3df2bbf90ef57 DIST glib-2.84.4.tar.xz 5618200 BLAKE2B 5faee382433085cd598545a99e2e95ce430be4ac5ca10106b70f2404ddacf328f4223bc092a23025f9bf8b936619a88a9dfb220674a07e9250cf4213c6213be9 SHA512 2de9b2f7376c0e5f6ee585087090675d597c474199a10d04aad18df688b6ca77d17e93a86ec07482898663f51c82121992272496318138f77ca5ad2c340a4bd3 -DIST glib-2.86.0.tar.xz 5679348 BLAKE2B 089fa2d34dacb360943cb18ce95ad880769300540e9f8ce56045cd19d0285526b8058fa79f9f0fede1ae6b4a6d9a73f3aa0f0e0ebfa18e728dbadbee3bd30d0a SHA512 6ccf5fba13e06012135ec4b5e65c9ad61460f32fc00457081ca799a0518e872589c589b01e1846a23499fa7d4425727b95774851d7a89b15cd71260e0d13bfdd +DIST glib-2.86.1.tar.xz 5673928 BLAKE2B 571f8738e7ca5568ee9a71f0fddb9eba0eba0ec33cad7540515eb744c3104f69ffe02d5966e47eb568abd04cd111e0b3b004d7c2817177fd5f7bc26e354dec0a SHA512 b2e9a3a35cd4cbe0bb6ca493a4250df480eeb0570a0877880ff4ec6d7f1f98d828249b3b60f839b81f17a33494d95be9d42b5f20fa6bb1acb15bcf5734adba51 DIST gobject-introspection-1.82.0.tar.xz 1052872 BLAKE2B 8336ae26d48a71a203655d9d268076f603055ceabb55dbfa676f2c67b4096b83afc106d485dc45d02b3a8be806f9ef50d54806a82e61f2a252ae59543c61e934 SHA512 e139fadb4174c72b648914f3774d89fc0e5eaee45bba0c13edf05de883664dad8276dbc34006217bb09871ed4bad23adab51ff232a17b9eb131329b2926cafb7 +DIST gobject-introspection-1.86.0.tar.xz 1083172 BLAKE2B 425d60c8c4bd582c55030ed91b4c2f3982e3c502da1c6f2579c4cc1e05d82d8a8c9a533af3e4a7ae8f6a031761d763d7f7ad8031e38ae3bd7d2549c9f6bcf7f3 SHA512 a9d2edbe1cea710e10ef1ea8059a45cf5689bace43b5d2a6861809e863a6de7114b4763db8df3916ad6202c9967f48f7997acd0810a86e5e88dea7e0be88b585 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 new file mode 100644 index 00000000000..69d80f81d95 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/glib/files/glib-2.84.4-libpcre2-10.47.patch @@ -0,0 +1,101 @@ +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/glib-2.82.5.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/glib/glib-2.82.5.ebuild index 02e612d7f3a..de02e76c5d7 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/glib/glib-2.82.5.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/glib/glib-2.82.5.ebuild @@ -36,6 +36,7 @@ RESTRICT="!test? ( test )" # them or just put the (build) deps in that rare consumer instead of recursive # RDEPEND here (due to lack of recursive DEPEND). RDEPEND=" + !=virtual/libiconv-0-r1[${MULTILIB_USEDEP}] >=dev-libs/libpcre2-10.32:0=[${MULTILIB_USEDEP},unicode(+),static-libs?] diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/glib/glib-2.84.3.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/glib/glib-2.84.3.ebuild index 4b143af6c41..31553b2eac5 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/glib/glib-2.84.3.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/glib/glib-2.84.3.ebuild @@ -36,6 +36,7 @@ RESTRICT="!test? ( test )" # them or just put the (build) deps in that rare consumer instead of recursive # RDEPEND here (due to lack of recursive DEPEND). RDEPEND=" + !=virtual/libiconv-0-r1[${MULTILIB_USEDEP}] >=dev-libs/libpcre2-10.32:0=[${MULTILIB_USEDEP},unicode(+),static-libs?] diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/glib/glib-2.84.4.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/glib/glib-2.84.4.ebuild index ccf8b36b0c0..e3897427ee6 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/glib/glib-2.84.4.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/glib/glib-2.84.4.ebuild @@ -22,7 +22,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 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" IUSE="dbus debug +elf doc +introspection +mime selinux static-libs sysprof systemtap test utils xattr" RESTRICT="!test? ( test )" @@ -36,6 +36,7 @@ RESTRICT="!test? ( test )" # them or just put the (build) deps in that rare consumer instead of recursive # RDEPEND here (due to lack of recursive DEPEND). RDEPEND=" + !=virtual/libiconv-0-r1[${MULTILIB_USEDEP}] >=dev-libs/libpcre2-10.32:0=[${MULTILIB_USEDEP},unicode(+),static-libs?] @@ -90,6 +91,7 @@ MULTILIB_CHOST_TOOLS=( PATCHES=( "${FILESDIR}"/${PN}-2.64.1-mark-gdbus-server-auth-test-flaky.patch + "${FILESDIR}"/${PN}-2.84.4-libpcre2-10.47.patch ) python_check_deps() { @@ -304,15 +306,16 @@ multilib_src_configure() { export PATH="${INTROSPECTION_BIN_DIR}:${PATH}" # Override primary pkgconfig search paths to prioritize our internal copy - export PKG_CONFIG_LIBDIR="${INTROSPECTION_LIB_DIR}/pkgconfig:${INTROSPECTION_BUILD_DIR}/meson-private" + local -x PKG_CONFIG_LIBDIR="${INTROSPECTION_LIB_DIR}/pkgconfig:${INTROSPECTION_BUILD_DIR}/meson-private:$($(tc-getPKG_CONFIG) --variable pc_system_libdirs pkg-config)" # Set the normal primary pkgconfig search paths as secondary # (We also need to prepend our just-built one for later use of # g-ir-scanner to use the new one and to help workaround bugs like # bug #946221.) - export PKG_CONFIG_PATH="${PKG_CONFIG_LIBDIR}:$(pkg-config --variable pc_path pkg-config)" + local -x PKG_CONFIG_PATH="${PKG_CONFIG_LIBDIR}:$($(tc-getPKG_CONFIG) --variable pc_path pkg-config)" # Add the paths to the built glib libraries to the library path so that gobject-introspection can load them + local gliblib for gliblib in glib gobject gthread gmodule gio girepository; do export LD_LIBRARY_PATH="${BUILD_DIR}/${gliblib}:${LD_LIBRARY_PATH}" done diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/glib/glib-2.86.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/glib/glib-2.86.1.ebuild similarity index 97% rename from sdk_container/src/third_party/portage-stable/dev-libs/glib/glib-2.86.0.ebuild rename to sdk_container/src/third_party/portage-stable/dev-libs/glib/glib-2.86.1.ebuild index ccf8b36b0c0..099b5296dc6 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/glib/glib-2.86.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/glib/glib-2.86.1.ebuild @@ -11,7 +11,7 @@ DESCRIPTION="The GLib library of C routines" HOMEPAGE="https://www.gtk.org/" INTROSPECTION_PN="gobject-introspection" -INTROSPECTION_PV="1.82.0" +INTROSPECTION_PV="1.86.0" INTROSPECTION_P="${INTROSPECTION_PN}-${INTROSPECTION_PV}" SRC_URI=" ${SRC_URI} @@ -36,6 +36,7 @@ RESTRICT="!test? ( test )" # them or just put the (build) deps in that rare consumer instead of recursive # RDEPEND here (due to lack of recursive DEPEND). RDEPEND=" + !=virtual/libiconv-0-r1[${MULTILIB_USEDEP}] >=dev-libs/libpcre2-10.32:0=[${MULTILIB_USEDEP},unicode(+),static-libs?] @@ -90,6 +91,7 @@ MULTILIB_CHOST_TOOLS=( PATCHES=( "${FILESDIR}"/${PN}-2.64.1-mark-gdbus-server-auth-test-flaky.patch + "${FILESDIR}"/${PN}-2.84.4-libpcre2-10.47.patch ) python_check_deps() { @@ -304,15 +306,16 @@ multilib_src_configure() { export PATH="${INTROSPECTION_BIN_DIR}:${PATH}" # Override primary pkgconfig search paths to prioritize our internal copy - export PKG_CONFIG_LIBDIR="${INTROSPECTION_LIB_DIR}/pkgconfig:${INTROSPECTION_BUILD_DIR}/meson-private" + local -x PKG_CONFIG_LIBDIR="${INTROSPECTION_LIB_DIR}/pkgconfig:${INTROSPECTION_BUILD_DIR}/meson-private:$($(tc-getPKG_CONFIG) --variable pc_system_libdirs pkg-config)" # Set the normal primary pkgconfig search paths as secondary # (We also need to prepend our just-built one for later use of # g-ir-scanner to use the new one and to help workaround bugs like # bug #946221.) - export PKG_CONFIG_PATH="${PKG_CONFIG_LIBDIR}:$(pkg-config --variable pc_path pkg-config)" + local -x PKG_CONFIG_PATH="${PKG_CONFIG_LIBDIR}:$($(tc-getPKG_CONFIG) --variable pc_path pkg-config)" # Add the paths to the built glib libraries to the library path so that gobject-introspection can load them + local gliblib for gliblib in glib gobject gthread gmodule gio girepository; do export LD_LIBRARY_PATH="${BUILD_DIR}/${gliblib}:${LD_LIBRARY_PATH}" done diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/inih/inih-62.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/inih/inih-62.ebuild index e8dc48b8e83..b77eeba1dde 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/inih/inih-62.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/inih/inih-62.ebuild @@ -12,7 +12,7 @@ S="${WORKDIR}"/inih-r${PV} LICENSE="BSD" SLOT="0" -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" IUSE="test" RESTRICT="!test? ( test )" diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libaio/libaio-0.3.113-r2.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/libaio/libaio-0.3.113-r2.ebuild index 1a4cde3f48a..d335d711e7b 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/libaio/libaio-0.3.113-r2.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libaio/libaio-0.3.113-r2.ebuild @@ -13,7 +13,7 @@ if [[ ${PV} == 9999 ]] ; then EGIT_REPO_URI="https://pagure.io/libaio.git" else SRC_URI="https://releases.pagure.org/${PN}/${P}.tar.gz" - KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux" + KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~loong ~m68k ~mips ~ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux" fi LICENSE="LGPL-2" 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 aa329497d23..ff9d83dc8b3 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 @@ -2,3 +2,5 @@ DIST pcre2-10.45.tar.bz2 2072403 BLAKE2B ec8a76cb28ef6680f8655828462551baf4e4801 DIST pcre2-10.45.tar.bz2.sig 566 BLAKE2B 21a7fc4d6a116c5fde78a8abc99445bd3ce8da70083e65b4117cec2520ed10fee810b8b82226cecb1e5649643be96bb8c89ec80f9dd907bbf95373477febc83d SHA512 ff8a0f036d98b902fa2476cf5875089685cc712294629fc385c8c84c8288674e83f278fe36141b4c109eb68a64b3e6a29d0049c799bd5ab77cf15142de3c8e20 DIST pcre2-10.46.tar.bz2 2035354 BLAKE2B ebd501ba2105c847bb830c932bbfafef2e14583743f62b46af7671aa801eff0ca8b1ed9ce8252f9b091f18ef6e5ef38d47777f657d3ba3813be3d94856558080 SHA512 795b0d74efb898347990c29fefc85f37ac81e7795f9d6a5598d1169a03c547df7ff7eac280f708b1fef68d3e7686e0d4cd55f0c6364e287ff2a983bbd1a3c334 DIST pcre2-10.46.tar.bz2.sig 566 BLAKE2B 6ffd9ea22526ab371f916d980af26b6b1b64e464c2b98d631712abfe2b8aa32c6de7f4eb6dd661d67bc308e18c113e705f9d52f9057fb3cec527d59ca4c92bbd SHA512 e755150e291f39222cd09cde046ce72e838a1c16f520fce3f63265126c5c6c5d143dc2f11ad8fabea45ce5e3d3cd482c434da1968354b2470e163ebfc3cc9bba +DIST pcre2-10.47.tar.bz2 2145789 BLAKE2B 9b56eddbc8b6fd6ce925575c337891c4f7790215c77325c1f0ad4a72be07e2a2a6a6b6638a5a2c49d1da6f4715320f240fd17c4ffcb77d1bb00875b990d6ee13 SHA512 889a6fdc80f8a7285e4a75d189c183b4588df81bdf048302cf0830e11bbf9b9eeb387ba43dfd3aff8ffb3aa693291e8c535845c06e8ce92d1028cefa6b474804 +DIST pcre2-10.47.tar.bz2.sig 566 BLAKE2B 0bfe968f32c410a49bf1120b05027d3171b38fdd8fd4d9d77e58cad4811770ef9cabcc3275556116a5cfe28784fc5faa0c5f5bf959e7aae9d6ef2f491ffbb936 SHA512 fbea8f001533c700e0adae881d2d13f2a5f32c272cb1323fd6b76530b011fb3e8eafdc6eb762c36d91296f66fe2fe3861887d6f5219045a2dad8de55f3825051 diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libpcre2/files/libpcre2-10.47-riscv.patch b/sdk_container/src/third_party/portage-stable/dev-libs/libpcre2/files/libpcre2-10.47-riscv.patch new file mode 100644 index 00000000000..a95be85df7b --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libpcre2/files/libpcre2-10.47-riscv.patch @@ -0,0 +1,118 @@ +https://bugs.gentoo.org/964425 +https://github.com/PCRE2Project/pcre2/issues/831 +https://github.com/PCRE2Project/pcre2/pull/835 (doc change snipped) + +From 6454fac3920d9223a2b05becf15e3cb8e6022243 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Carlo=20Marcelo=20Arenas=20Bel=C3=B3n?= +Date: Thu, 30 Oct 2025 13:57:32 -0700 +Subject: [PATCH] pcre2test: dynamically allocate buffer for JITTARGET (#835) + +Always ask `pcre2_config()` for the expected size of buffers and abort if +it is too small. + +In the documentation, remove the description of a static buffer size for +JITTARGET. +--- + src/pcre2test.c | 12 ++++++------ + src/pcre2test_inc.h | 35 ++++++++++++++++++++++++++--------- + 3 files changed, 43 insertions(+), 25 deletions(-) + +--- a/src/pcre2test.c ++++ b/src/pcre2test.c +@@ -2942,9 +2942,9 @@ static int pcre2_config(uint32_t what, void *where) + DISPATCH(return, pcre2_config_, (what, where)); + } + +-static void config_str(uint32_t what, char *where) ++static char *config_str(uint32_t what, char *where, int size) + { +-DISPATCH(, config_str_, (what, where)); ++DISPATCH(return, config_str_, (what, where, size)); + } + + static BOOL decode_modifiers(uint8_t *p, int ctx, patctl *pctl, datctl *dctl) +@@ -3014,7 +3014,7 @@ static void + print_version(FILE *f, BOOL include_mode) + { + char buf[VERSION_SIZE]; +-config_str(PCRE2_CONFIG_VERSION, buf); ++config_str(PCRE2_CONFIG_VERSION, buf, sizeof(buf)); + fprintf(f, "PCRE2 version %s", buf); + if (include_mode) + { +@@ -3033,7 +3033,7 @@ static void + print_unicode_version(FILE *f) + { + char buf[VERSION_SIZE]; +-config_str(PCRE2_CONFIG_UNICODE_VERSION, buf); ++config_str(PCRE2_CONFIG_UNICODE_VERSION, buf, sizeof(buf)); + fprintf(f, "Unicode version %s", buf); + } + +@@ -3046,9 +3046,9 @@ fprintf(f, "Unicode version %s", buf); + static void + print_jit_target(FILE *f) + { +-char buf[VERSION_SIZE]; +-config_str(PCRE2_CONFIG_JITTARGET, buf); ++char *buf = config_str(PCRE2_CONFIG_JITTARGET, NULL, 0); + fputs(buf, f); ++free(buf); + } + + +diff --git a/src/pcre2test_inc.h b/src/pcre2test_inc.h +index c47074171..ce808a82f 100644 +--- a/src/pcre2test_inc.h ++++ b/src/pcre2test_inc.h +@@ -558,24 +558,41 @@ return 0; + + Arguments: + what the item to read +- where the 8-bit buffer to receive the string ++ where the 8-bit buffer to receive the string (NULLABLE) ++ size sizeof(where) or 0 to ask for the buffer to be allocated ++ ++Returns: the string where the data was written + */ + +-static void +-config_str(uint32_t what, char *where) ++static char * ++config_str(uint32_t what, char *where, int size) + { +-int r1, r2; +-PCRE2_UCHAR buf[VERSION_SIZE]; ++int r2; ++PCRE2_UCHAR *buf; ++int needed_len; + +-r1 = pcre2_config(what, NULL); +-r2 = pcre2_config(what, buf); +-if (r1 < 0 || r1 != r2 || r1 >= VERSION_SIZE) ++needed_len = pcre2_config(what, NULL); ++if (needed_len <= 0) + { + cfprintf(clr_test_error, stderr, "pcre2test: Error in pcre2_config(%d)\n", what); + exit(1); + } ++else if (size != 0 && needed_len > size) ++ { ++ cfprintf(clr_test_error, stderr, ++ "pcre2test: Static buffer provided to pcre2_config(%d) too small\n", what); ++ exit(1); ++ } ++ ++buf = malloc(needed_len * sizeof(PCRE2_UCHAR)); ++r2 = pcre2_config(what, buf); ++PCRE2_ASSERT(r2 == needed_len); ++ ++if (where == NULL) where = malloc(needed_len); ++while (r2-- > 0) where[r2] = (char)buf[r2]; ++free(buf); + +-while (r1-- > 0) where[r1] = (char)buf[r1]; ++return where; + } + + diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libpcre2/libpcre2-10.46.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/libpcre2/libpcre2-10.46.ebuild index 343327138b7..c4ba40fc564 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/libpcre2/libpcre2-10.46.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libpcre2/libpcre2-10.46.ebuild @@ -22,7 +22,7 @@ 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 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" + KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" fi IUSE="bzip2 +jit libedit +pcre16 +pcre32 +readline static-libs unicode valgrind zlib" REQUIRED_USE="?? ( libedit readline )" diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libpcre2/libpcre2-10.47.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/libpcre2/libpcre2-10.47.ebuild new file mode 100644 index 00000000000..6d4c5622859 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libpcre2/libpcre2-10.47.ebuild @@ -0,0 +1,110 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# 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 + https://ftp.pcre.org/pub/pcre/${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 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-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? ( sys-libs/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 +) + +PATCHES=( + "${FILESDIR}"/${PN}-10.10-000-Fix-multilib.patch + "${FILESDIR}"/${PN}-10.47-riscv.patch +) + +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/libxml2/Manifest b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/Manifest index 24082c5677f..58463ab2006 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 @@ -1,6 +1,7 @@ DIST libxml2-2.13.9.tar.xz 2426164 BLAKE2B b14cb6953983ee83b5de39b8d80f623edae6198541e996fbda3c88ea7c3f5b354f8e064b378231bd60e88e0ea143f44be860252007eaafd7290f6f781fc6e8aa SHA512 62d4813860124c969f204aaf33b497105dbc32a6c5655f5a86168743660e10987d687d7e5e7ee49fdfdeb8f6ad9fa4503f81fcce2e4d459094895f02436d1b13 DIST libxml2-2.14.6.tar.xz 2327580 BLAKE2B ad5d7cb64f8081559a671e9d79b3ebcd7313dada39d7f0c2854994153a9dff2ef85bc81336437f5881abe637bae51b62e9104b3a099113f4ee2252b604325291 SHA512 9a62230487255af7cdaf135cc8a0978dc82ff2ee8826f6b21cc8b39c8e0a6b9efeea1c12e6cb7ae3f869730fb4ed628158e2848dd512558fc5bf177c56862774 DIST libxml2-2.15.0.tar.xz 2004476 BLAKE2B 07a570cd38528eb253d67f1eb88d375c5b3e32dfb23e97662c6243b8af2c4087f2cc931015cc183ff9bc231be88b6099fda42104d77d6fb0126f7804f277a088 SHA512 26fdf2c4c7bba90f0ad9cb74debc94e2ba7db2d8461d2bb40764d479f1735d78e85e6835f0c7ae292d827d387ac74ba889915456d5f3f646de5e0b96a070fddb +DIST libxml2-2.15.1.tar.xz 2004588 BLAKE2B 73c4d17adacda67d71c5a120c7de2324df1db35963cadbe18166dafe122e1f10dcab9d4fed0e128c077a5ca31432bfaf72f742c42680251660d397ab8bc3538b SHA512 429c7d0dc3cbcb8de1bf6eb588fb8025fee009c9b25e87c96ecc5de57cc12b558b0ab8141f333d73ca687109335f297c9f9776abbb9da9afc9d8e79041c86b7f 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.14.6.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/libxml2-2.14.6.ebuild index 94f73024bf2..07f5455b5c6 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/libxml2-2.14.6.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/libxml2-2.14.6.ebuild @@ -23,7 +23,7 @@ if [[ ${PV} == 9999 ]] ; then inherit git-r3 else inherit gnome.org - KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" + KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" fi SRC_URI+=" diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/libxml2-2.15.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/libxml2-2.15.1.ebuild new file mode 100644 index 00000000000..408073c25d4 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/libxml2-2.15.1.ebuild @@ -0,0 +1,165 @@ +# Copyright 1999-2025 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 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-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 + >=sys-libs/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}"/libxml2-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/libxslt/Manifest b/sdk_container/src/third_party/portage-stable/dev-libs/libxslt/Manifest index ad41ca7453c..ce7f9f87444 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/libxslt/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libxslt/Manifest @@ -1 +1,2 @@ +DIST libxslt-1.1.43-patches.tar.xz 8296 BLAKE2B 198c01ad6848bda4ce210750a8a8dfb617b5f6b1f74a38d90873a72ecbef77a771de88cbf31c552a7ef73cf90823ecc5859c3846298a50cea065e51cd0995afc SHA512 625d3b99a04bbe653e5a6140d7837b1029ff5b09883258c5075e1298402112af9b9272a7863c32a0751f16fc71e84142cfb5ac134ffbef0731fe0a1ddf4ec0b7 DIST libxslt-1.1.43.tar.xz 1518364 BLAKE2B 84d1cff32c78c4eeff4db614214ee1808bcf958d55711b08e7e2191a4343fb61d38d6b3d9b43f6f12be2dc909fced0a5b5905fa2c5ec7761c83125007e1ce265 SHA512 96110b0397a8f5791f489127574e2143845feb61bea0581d7b7e3c1101fd0718483bae81a7ce417b971bd678293bfd95daddad0dadd3e256c87d41a69faed85a diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libxslt/libxslt-1.1.43-r2.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/libxslt/libxslt-1.1.43-r2.ebuild new file mode 100644 index 00000000000..e87289ef20b --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libxslt/libxslt-1.1.43-r2.ebuild @@ -0,0 +1,130 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Note: Please bump this in sync with dev-libs/libxml2. + +PYTHON_COMPAT=( python3_{11..14} ) +inherit python-r1 multilib-minimal + +DESCRIPTION="XSLT libraries and tools" +HOMEPAGE="https://gitlab.gnome.org/GNOME/libxslt" +if [[ ${PV} == 9999 ]] ; then + EGIT_REPO_URI="https://gitlab.gnome.org/GNOME/libxslt" + inherit autotools git-r3 +else + inherit libtool gnome.org + SRC_URI+=" https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${P}-patches.tar.xz" + + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" +fi + +LICENSE="MIT" +SLOT="0" +IUSE="crypt debug debugger examples python static-libs" +REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" + +BDEPEND=">=virtual/pkgconfig-1" +RDEPEND=" + >=dev-libs/libxml2-2.13:2=[${MULTILIB_USEDEP}] + crypt? ( >=dev-libs/libgcrypt-1.5.3:=[${MULTILIB_USEDEP}] ) + python? ( + ${PYTHON_DEPS} + >=dev-libs/libxml2-2.13:2=[${MULTILIB_USEDEP},python,${PYTHON_USEDEP}] + ) +" +DEPEND="${RDEPEND}" + +MULTILIB_CHOST_TOOLS=( + /usr/bin/xslt-config +) + +MULTILIB_WRAPPED_HEADERS=( + /usr/include/libxslt/xsltconfig.h +) + +PATCHES=( + "${WORKDIR}"/${P}-patches/ +) + +src_prepare() { + default + + if [[ ${PV} == 9999 ]] ; then + eautoreconf + else + # Prefix always needs elibtoolize if not eautoreconf'd. + elibtoolize + fi +} + +multilib_src_configure() { + libxslt_configure() { + ECONF_SOURCE="${S}" econf \ + --without-python \ + $(use_with crypt crypto) \ + $(use_with debug) \ + $(use_with debugger) \ + $(use_enable static-libs static) \ + "$@" + } + + # Build Python bindings separately + libxslt_configure --without-python + + if multilib_is_native_abi && use python ; then + NATIVE_BUILD_DIR="${BUILD_DIR}" + python_foreach_impl run_in_build_dir libxslt_configure --with-python + fi +} + +libxslt_py_emake() { + pushd "${BUILD_DIR}"/python >/dev/null || die + + emake top_builddir="${NATIVE_BUILD_DIR}" "$@" + + popd >/dev/null || die +} + +multilib_src_compile() { + default + + if multilib_is_native_abi && use python ; then + python_foreach_impl run_in_build_dir libxslt_py_emake all + fi +} + +multilib_src_test() { + default + + if multilib_is_native_abi && use python ; then + python_foreach_impl run_in_build_dir libxslt_py_emake check + fi +} + +multilib_src_install() { + # "default" does not work here - docs are installed by multilib_src_install_all + emake DESTDIR="${D}" install + + if multilib_is_native_abi && use python; then + python_foreach_impl run_in_build_dir libxslt_py_emake \ + DESTDIR="${D}" \ + install + + # Hack until automake release is made for the optimise fix + # https://git.savannah.gnu.org/cgit/automake.git/commit/?id=bde43d0481ff540418271ac37012a574a4fcf097 + python_foreach_impl python_optimize + fi +} + +multilib_src_install_all() { + einstalldocs + + if ! use examples ; then + rm -rf "${ED}"/usr/share/doc/${PF}/tutorial{,2} || die + rm -rf "${ED}"/usr/share/doc/${PF}/python/examples || die + fi + + find "${ED}" -type f -name "*.la" -delete || die +} diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/openssl/openssl-3.0.18.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/openssl/openssl-3.0.18.ebuild index c183d21b68d..9f2d35b91c4 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/openssl/openssl-3.0.18.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/openssl/openssl-3.0.18.ebuild @@ -27,7 +27,7 @@ else " if [[ ${PV} != *_alpha* && ${PV} != *_beta* ]] ; then - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" + KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" fi BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-openssl-20240920 )" diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/openssl/openssl-3.2.6.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/openssl/openssl-3.2.6.ebuild index ed409545107..f11e7651601 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/openssl/openssl-3.2.6.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/openssl/openssl-3.2.6.ebuild @@ -27,7 +27,7 @@ else " if [[ ${PV} != *_alpha* && ${PV} != *_beta* ]] ; then - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" + KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" fi BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-openssl-20240920 )" diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/openssl/openssl-3.3.5.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/openssl/openssl-3.3.5.ebuild index 541489aa89b..afe0337e03d 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/openssl/openssl-3.3.5.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/openssl/openssl-3.3.5.ebuild @@ -216,6 +216,9 @@ multilib_src_configure() { multilib_src_compile() { emake build_sw + if multilib_is_native_abi; then + emake build_docs + fi } multilib_src_test() { diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/openssl/openssl-3.3.9999.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/openssl/openssl-3.3.9999.ebuild index f492950eefa..bdb03d75a8a 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/openssl/openssl-3.3.9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/openssl/openssl-3.3.9999.ebuild @@ -212,6 +212,9 @@ multilib_src_configure() { multilib_src_compile() { emake build_sw + if multilib_is_native_abi; then + emake build_docs + fi } multilib_src_test() { diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/openssl/openssl-3.4.3.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/openssl/openssl-3.4.3.ebuild index bb7855a30f9..f577f4edaa8 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/openssl/openssl-3.4.3.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/openssl/openssl-3.4.3.ebuild @@ -212,6 +212,9 @@ multilib_src_configure() { multilib_src_compile() { emake build_sw + if multilib_is_native_abi; then + emake build_docs + fi } multilib_src_test() { diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/openssl/openssl-3.4.9999.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/openssl/openssl-3.4.9999.ebuild index f492950eefa..bdb03d75a8a 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/openssl/openssl-3.4.9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/openssl/openssl-3.4.9999.ebuild @@ -212,6 +212,9 @@ multilib_src_configure() { multilib_src_compile() { emake build_sw + if multilib_is_native_abi; then + emake build_docs + fi } multilib_src_test() { diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/openssl/openssl-3.5.4.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/openssl/openssl-3.5.4.ebuild index ab2f92680e2..2a0c30844cb 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/openssl/openssl-3.5.4.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/openssl/openssl-3.5.4.ebuild @@ -212,6 +212,9 @@ multilib_src_configure() { multilib_src_compile() { emake build_sw + if multilib_is_native_abi; then + emake build_docs + fi } multilib_src_test() { diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/openssl/openssl-3.5.9999.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/openssl/openssl-3.5.9999.ebuild index ab2f92680e2..2a0c30844cb 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/openssl/openssl-3.5.9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/openssl/openssl-3.5.9999.ebuild @@ -212,6 +212,9 @@ multilib_src_configure() { multilib_src_compile() { emake build_sw + if multilib_is_native_abi; then + emake build_docs + fi } multilib_src_test() { diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/openssl/openssl-3.6.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/openssl/openssl-3.6.0.ebuild index c1c020fe493..bccd4881b8a 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/openssl/openssl-3.6.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/openssl/openssl-3.6.0.ebuild @@ -212,6 +212,9 @@ multilib_src_configure() { multilib_src_compile() { emake build_sw + if multilib_is_native_abi; then + emake build_docs + fi } multilib_src_test() { diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/openssl/openssl-3.6.9999.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/openssl/openssl-3.6.9999.ebuild index ab2f92680e2..2a0c30844cb 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/openssl/openssl-3.6.9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/openssl/openssl-3.6.9999.ebuild @@ -212,6 +212,9 @@ multilib_src_configure() { multilib_src_compile() { emake build_sw + if multilib_is_native_abi; then + emake build_docs + fi } multilib_src_test() { diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/Manifest b/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/Manifest index 8356674366c..02133b74f71 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/Manifest @@ -1,20 +1,7 @@ DIST protobuf-21.12.tar.gz 5141166 BLAKE2B 33500612d103afb817062486a741e8e5503f82c42c70054d47d1899e6bb79f3fdde2666cad5b8eff6e1bc539c3b0cdf9f2b125ce7e5d3a459a69e84d67ab535e SHA512 2dc8f552388438268d8b9f7a9e84c6abf1736be3d5031438c789c317410c9f4b5cedd25bf7da6d67b3ba32ca890869f9ddaab2284d6ac0e734a5b135ffbb1346 -DIST protobuf-21.9.tar.gz 5110670 BLAKE2B a4f5b7f58e1c5904ca990b100a72992f6f56177b28773f8de8c99e4158391d33cfb8aa8575915887fc9ae4294faf81d4ff6b470bc07b394bfd5885a09ba0fafe SHA512 6954b42d21921e630173b7848c056ab95635627d8eddec960f3db2ddda13eedde00520a9b350722e76e2998649eb8ebe10758e1db938b6a91e38ff3295b1b7c1 -DIST protobuf-22.5.tar.gz 4924661 BLAKE2B d69c73f4ebfddf45fd94b4f5f898faf00256fe674f2cbc0443c60a88d7a0f47fb96f2f6262879927c6da88095b4ea3ee7fd4c471c100bf42a2bae9edf48c07f1 SHA512 058ab2fec5b11007972e6043071056d1944c3b6fe1d31246cddba8eb57686e3b5280f6ad3d58e78940ca63005e74a8de3c72237f9f7c5066548c5a2513ddc584 -DIST protobuf-23.3.tar.gz 5043803 BLAKE2B ee2edee230969555c9ef95069c7b1d6c23c3d1f8ea1b2249fb3e9f6fcf63312c6e10e9da65b80629fb08d5fb08d05a19bb9c752c25b892c1e3fd6f18b9279eb3 SHA512 646af367dbc61b42e322cf0b335f360e428b272e2b1f5361b2f17c18d3dc9dddd615e1279436028b1a42275a0beadda37c2c934fc27d6c892131cc8d526d8b3b -DIST protobuf-23.4.tar.gz 5043507 BLAKE2B bf6a50771eb977ef92b779a32fd909693faae6394254c73e3c9b2729bce643f8cbfb5a1bd18b30abf3003b9fbfd24c074cea4085a6ccf14fdb6a3aeac9efcb89 SHA512 b93a4e0339ecbe085796de5b6c61feae35229d40db9019c043090bcaa483a1cce78a99487c5638482c68832fcede5579a0e5ec731221a88359b80db9bb6dc566 -DIST protobuf-24.4.tar.gz 5180235 BLAKE2B 1c7e9035d9f3810886baaea7d679414c882463c79828c99dd8895a9549638c1ca17f9ab3b38d461019f3e1412d9cb9584b995b1da99866eb6fdbb8bdeb063e6f SHA512 52b6ab5587d03cbd1f35cf3cdc388e1710fa50f3031559ac53cf754965407ded7602cdead56080444ab695588112cc3391a1d7fdd5e565d90d0af7ad08706315 -DIST protobuf-25.3.tar.gz 5878962 BLAKE2B 9268f9bd993a1cfd6d3937a2ad56ba4cfe3d84923756513841cbf13039d4a07acb260468745cb1294f30334cb34b45c6fde272f5c40d9de63ac6a4ce5c263077 SHA512 1f73e237c919082e5423ae9e2ea8813dccf672c059051d1531fe89ffaa45872d3cf3052b8c3af26f674296ec17d7dc861c67b8f0834ed80261ce4a6a14ed7115 -DIST protobuf-25.4.tar.gz 5878444 BLAKE2B 9b40985bda31a84dd3ab7a1d18f746d5f88660d9e036a20234cbc85e79322005d2ffd4e60d72c55a8b5f624d7cc50522771f0804f203f2eabca7b0b8ace0545e SHA512 1b3ba1a1575bcc9d52ddce93d466912863d600dfbb40f64845b8e66c8000047d05508b8f1baba8d5eef42a7ff90eb778f7c8a553c9ec2778fd3a9a18122c67ab -DIST protobuf-25.5.tar.gz 5877036 BLAKE2B a8174c7cbda47afa3f31d64c7a7aa7f233efd5df5a783abedd229613c8c27a2380684fb5851dad67f76f063688dd8060a0a373f2c95441c2ad91630eb187af22 SHA512 9fe130f5c04919accc99113e13096df93db4c2254a9c2428faf9459416907c77fbf4adefbae3fe644e1f26d9c1fc597165e2c5b6219156c97500d6ef3fdc0793 DIST protobuf-25.6.tar.gz 5878040 BLAKE2B b82848406890460d9321e6736e413290e1b4a73dc5f2d3db17dd4419e7ddbb788b6cdb52c884c3e7f0c49c5a69ce31468dcc311d73efca06f94ec51577472fcc SHA512 f1920414bbaed0a882b73349e1cd9cdf87c0d9c99790d70ab8ef589161a8dcad92361daec67bf9bf8350f4181fa8514b50362f1495f082ba5805c4a2e70b6308 -DIST protobuf-26.1.tar.gz 5957903 BLAKE2B 1a7faab2f56aa0995801a80f73a812c7fc38a00af0bf25bdd5eecf7aec27a86a575ea2fb8484787d19c9ac6e46007c9864e79464f529c446f31af732981feed1 SHA512 0363ac09f92d8e040491425d444c8dca0b9b430e02d2dff6e2b28a0c2b2bea0d33a47f50bc9e2e2d4e8e22b65a02009a20c0066fb89c75df93a7b703dda42ed4 -DIST protobuf-27.2.tar.gz 6282174 BLAKE2B 86d12e9f87e8e1c2961ad517115c8689a8dd984722513816d8d626e59a76f5e7a698a90cbf6007daacf66c6053c9ff28108ff113579a442ce61cd221178bda44 SHA512 664c66b62cf1ed0c65d9b910d8e67d4d5d471113697f1b8edf1573cd5c0fc8e850ac53ce984e48e6c6b9cbbefa12f8530058384e7388e65a59c1e46d03772397 -DIST protobuf-27.4.tar.gz 9156456 BLAKE2B 004427f4923e523bf77298600bf91a8fe4ca8be4bd6da5b7efcfe9186a032155e525426f83f683e1bed1e799ed1e62d250053386c1463cbd0c062bd05da786d0 SHA512 d076ce7e075096d0dba7ee2314b12e3223c4239c019e25670636a0ef812ddf0ce3f1fd9b9fe8517319db87b14bbdb2653cc4e06023f90032dfedb014457b2863 -DIST protobuf-27.5.tar.gz 9153935 BLAKE2B 08b1b5927188e68ef2ae8ce8cdc6f21c34ee8453f4dfaeb362a7f5a5f0ee5ddc24772e5583ab10fbf193aa43e7fdd316e8fbbe4d066df704aef5469dae01fc8d SHA512 bb266483b11268c207aa0e8ce76442351a331f30151586714d57ed7c9bae05f09aabf5042b90eac85658f708671ba0b33c64d1c58a91a24c00bbf4f4ffdce1bb DIST protobuf-28.0.tar.gz 9259114 BLAKE2B 328e09ebffb296d838557ea72a4fc4da8e0ad5f1edfccebcc8ee7c9e0e74d06e5e6dbad741fd89f6a4502c1cb246a973fd60c035ccdbf89700b7baff49e2a65e SHA512 8745f625ac781f3bbefe9494cbf570143d38aecc1521edef7a52ffb403b8be24df2c71f4f2410b5a5b78a0f3e8a38a7d19be2cf916b1b9125349d2da18262cd1 -DIST protobuf-28.3.tar.gz 9256608 BLAKE2B 05162124676abe18300481e9f985fd2cfb09b052d06670a993e79ef02f3daf0d5380b521977ebc2362d4094486151ea285fe1c98a1d2f3799b18a1fa422fdc13 SHA512 a91e175fed7eb01c4240842a5af73a7d3cefccbb10885434bceeb7bc89ab6c56a74912cee290bf46e81d4026f3c9c2b10faad5545816064e215c4bae7908263d -DIST protobuf-29.2.tar.gz 9348408 BLAKE2B 847798474bc6a76b9badfdbf605e118dece5e321e81242d7fa1bf5f5d17ee05a3d365ec112dc6d861cade97efff8be1d5d04006a5144f613bdb3ff5eacc63b99 SHA512 aeb21773edc3dd92a6c1ba6ccd721cc8a20d61230a5309c75ee3ef19baa554c228a6d1095f191ccc18f10183b646f3140dfe6526f5812bcaa64b7d5260572643 -DIST protobuf-29.4.tar.gz 9350942 BLAKE2B fd3b81905e26db2ec3b54eaf30cf250db2894f91d5da73130106f6778f4e2f13b690961eecb8f5b8c23ac72428753611cd9bf719da986083e09ab32160e25314 SHA512 c888cb9961d58b7fb11a3363ff4d2684605cdd79756712f407ffe5f275569bf69b4370f1d2a0e20775646745cddd41a9b510f1c1981be4e969c9acf0dc2ba734 +DIST protobuf-29.5.tar.gz 9338935 BLAKE2B cfffcab9e240047c1759f8304b0c2f553bf73c7dc2cfcf101eb1fad3a0f90991e9aa998ca34c7c9534cd4209edf50691e17b75208ae726565505cdb2ab229a7f SHA512 3f3bc241c8babe5988678386d83ef2a75e202bb109f47d62b2ee7915c9b1c080590c2812f6635ba61c41e9570a0aeaa4789cdcba80c917c33ff52ba1817811bb DIST protobuf-30.2.tar.gz 9506934 BLAKE2B 3a7d6bfa38500b16b1ce52b244fd9448fe7be2933a77224a1423a67e3ae3155846c0974ee1b6c579f6050f60b7784ace21b149b3cbdff2ef1e6bf954acbb1b51 SHA512 555d1b18d175eeaf17f3879f124d33080f490367840d35b34bfc4e4a5b383bf6a1d09f1570acb6af9c53ac4940a14572d46423b6e3dd0c712e7802c986fb6be6 DIST protobuf-31.1.tar.gz 9583956 BLAKE2B cd15fc6d25bee71681602cf97c19dc04de9900594b0c0648decf418bdcc0cf787315b2238c18cb0b1eaf7b163ddbbfb7853cc5cff635b4841fcb8b20d94825fd SHA512 5bf730e37183defcb29cf4831128f536ad8bcdce2b2b46b297d95f3de4a037b9ff3b6c57df66a039256dcefd828ba9d43c32b01a7a82aa5c881a9ae12cadb643 +DIST protobuf-32.1.tar.gz 9676391 BLAKE2B f6c1faa260ecb57c0a1a5d4be7d56e431cac9e325a02b86d9eecd0318a0964618063db218a4720fcb1121614016f112ba00880a5b743a5c34f19f79ea4420735 SHA512 e7f8fe01912ba30cc7ce101beac1cfbd089bcb57b159a57d4d90cabd1b29d978ad322f0607e1b955617f035a6b68d4e7bc940fa4afa67d255a21f513a2c62172 diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/files/protobuf-21.9-disable-32-bit-tests.patch b/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/files/protobuf-21.9-disable-32-bit-tests.patch deleted file mode 100644 index cd6b5aa2db6..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/files/protobuf-21.9-disable-32-bit-tests.patch +++ /dev/null @@ -1,118 +0,0 @@ -https://bugs.gentoo.org/875584 -https://github.com/protocolbuffers/protobuf/pull/10589 - -From 5f4a52d9bff7595ec47fb6727662a1cada3cd404 Mon Sep 17 00:00:00 2001 -From: Mike Kruskal -Date: Thu, 15 Sep 2022 10:23:23 -0700 -Subject: [PATCH 3/7] Patching static assert test failure - ---- a/src/google/protobuf/extension_set_unittest.cc -+++ b/src/google/protobuf/extension_set_unittest.cc -@@ -855,8 +855,10 @@ TEST(ExtensionSetTest, SpaceUsedExcludingSelf) { - const size_t old_capacity = \ - message->GetRepeatedExtension(unittest::repeated_##type##_extension) \ - .Capacity(); \ -- EXPECT_GE(old_capacity, \ -- (RepeatedFieldLowerClampLimit())); \ -+ EXPECT_GE( \ -+ old_capacity, \ -+ (RepeatedFieldLowerClampLimit())); \ - for (int i = 0; i < 16; ++i) { \ - message->AddExtension(unittest::repeated_##type##_extension, value); \ - } \ - -From c94b66706bec17d918495f4715183a5eaf0f8044 Mon Sep 17 00:00:00 2001 -From: Mike Kruskal -Date: Thu, 15 Sep 2022 11:31:31 -0700 -Subject: [PATCH 4/7] Test fixes for 32-bit architectures - ---- a/src/google/protobuf/compiler/cpp/message_size_unittest.cc -+++ b/src/google/protobuf/compiler/cpp/message_size_unittest.cc -@@ -139,9 +139,9 @@ TEST(GeneratedMessageTest, OneStringSize) { - - TEST(GeneratedMessageTest, MoreStringSize) { - struct MockGenerated : public MockMessageBase { // 16 bytes -- int has_bits[1]; // 4 bytes - int cached_size; // 4 bytes - MockRepeatedPtrField data; // 24 bytes -+ // + 4 bytes padding - }; - GOOGLE_CHECK_MESSAGE_SIZE(MockGenerated, 48); - EXPECT_EQ(sizeof(protobuf_unittest::MoreString), sizeof(MockGenerated)); ---- a/src/google/protobuf/io/zero_copy_stream_unittest.cc -+++ b/src/google/protobuf/io/zero_copy_stream_unittest.cc -@@ -720,6 +720,9 @@ TEST_F(IoTest, StringIo) { - - // Verifies that outputs up to kint32max can be created. - TEST_F(IoTest, LargeOutput) { -+ // Filter out this test on 32-bit architectures. -+ if(sizeof(void*) < 8) return; -+ - std::string str; - StringOutputStream output(&str); - void* unused_data; ---- a/src/google/protobuf/repeated_field_unittest.cc -+++ b/src/google/protobuf/repeated_field_unittest.cc -@@ -429,14 +429,14 @@ TEST(RepeatedField, ReserveNothing) { - - TEST(RepeatedField, ReserveLowerClamp) { - int clamped_value = internal::CalculateReserveSize(0, 1); -- EXPECT_GE(clamped_value, 8 / sizeof(bool)); -+ EXPECT_GE(clamped_value, sizeof(void*) / sizeof(bool)); - EXPECT_EQ((internal::RepeatedFieldLowerClampLimit()), - clamped_value); - // EXPECT_EQ(clamped_value, (internal::CalculateReserveSize( clamped_value, 2))); - - clamped_value = internal::CalculateReserveSize(0, 1); -- EXPECT_GE(clamped_value, 8 / sizeof(int)); -+ EXPECT_GE(clamped_value, sizeof(void*) / sizeof(int)); - EXPECT_EQ((internal::RepeatedFieldLowerClampLimit()), - clamped_value); - // EXPECT_EQ(clamped_value, (internal::CalculateReserveSize= sizeof(uint64_t)) { -+ Timestamp begin, end; -+ EXPECT_TRUE(TimeUtil::FromString("0001-01-01T00:00:00Z", &begin)); -+ EXPECT_EQ(TimeUtil::kTimestampMinSeconds, begin.seconds()); -+ EXPECT_EQ(0, begin.nanos()); -+ EXPECT_TRUE(TimeUtil::FromString("9999-12-31T23:59:59.999999999Z", &end)); -+ EXPECT_EQ(TimeUtil::kTimestampMaxSeconds, end.seconds()); -+ EXPECT_EQ(999999999, end.nanos()); -+ EXPECT_EQ("0001-01-01T00:00:00Z", TimeUtil::ToString(begin)); -+ EXPECT_EQ("9999-12-31T23:59:59.999999999Z", TimeUtil::ToString(end)); -+ } - - // Test negative timestamps. - Timestamp time = TimeUtil::NanosecondsToTimestamp(-1); -@@ -94,9 +97,12 @@ TEST(TimeUtilTest, DurationStringFormat) { - EXPECT_TRUE(TimeUtil::FromString("0001-01-01T00:00:00Z", &begin)); - EXPECT_TRUE(TimeUtil::FromString("9999-12-31T23:59:59.999999999Z", &end)); - -- EXPECT_EQ("315537897599.999999999s", TimeUtil::ToString(end - begin)); -+ // These these are out of bounds for 32-bit architectures. -+ if(sizeof(time_t) >= sizeof(uint64_t)) { -+ EXPECT_EQ("315537897599.999999999s", TimeUtil::ToString(end - begin)); -+ EXPECT_EQ("-315537897599.999999999s", TimeUtil::ToString(begin - end)); -+ } - EXPECT_EQ(999999999, (end - begin).nanos()); -- EXPECT_EQ("-315537897599.999999999s", TimeUtil::ToString(begin - end)); - EXPECT_EQ(-999999999, (begin - end).nanos()); - - // Generated output should contain 3, 6, or 9 fractional digits. diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/files/protobuf-22.5-Use-the-same-ABI-for-static-and-shared-libraries-on-.patch b/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/files/protobuf-22.5-Use-the-same-ABI-for-static-and-shared-libraries-on-.patch deleted file mode 100644 index 4bbed7ecbaf..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/files/protobuf-22.5-Use-the-same-ABI-for-static-and-shared-libraries-on-.patch +++ /dev/null @@ -1,71 +0,0 @@ -From 4329fde9cf3fab7d1b3a9abe0fbeee1ad8a8b111 Mon Sep 17 00:00:00 2001 -From: "Romain Geissler @ Amadeus" -Date: Tue, 6 Jun 2023 10:49:55 -0700 -Subject: [PATCH] Use the same ABI for static and shared libraries on - non-Windows platforms (#12983) - -Hi, - -It seems that until last year, the logic behind `PROTOBUF_USE_DLLS` was for Windows (MSCV) only. It was changed to all platforms here in https://github.com/protocolbuffers/protobuf/commit/5a0887fc6529596eff5c0f72febc602a9d494cc2 - -Last month, the generated pkg config files were updated to reflect the protobuf build-time value of `PROTOBUF_USE_DLLS` as it was indeed noted that it changes the ABI. This was done in https://github.com/protocolbuffers/protobuf/pull/12700 In the commit message it is mentionned that most likely we shall rather have a stable ABI. - -Finally in https://github.com/protocolbuffers/protobuf/issues/12746 which at some point mentions https://issuetracker.google.com/issues/283987730#comment7 where a Google employee hits the linker issue: -``` -undefined reference to `google::protobuf::internal::ThreadSafeArena::thread_cache_' -``` -which denotes a mix of some .o or libs built `PROTOBUF_USE_DLLS` defined and some others build with `PROTOBUF_USE_DLLS` undefined, resulting in ABI incompatibilities. - -I also hit this issue while trying to include protobuf in a corporate environment using it's own proprietary build system in which it is expected that .a and .so use a compatible ABI. - -From my own understanding, ideally we should always use `thread_local` variables, but experience has shown that: - - old iOS (iOS < 9) didn't seem to accept `thread_local`, leading to the `GOOGLE_PROTOBUF_NO_THREADLOCAL` macro later renamed `PROTOBUF_NO_THREADLOCAL` which allowed to disable this, but it is not set anywhere in the protobuf code base. Also I doubt you still want to support such old iOS now, so maybe you should consider removing all `PROTOBUF_NO_THREADLOCAL` related code paths (this pull request doesn't do this). - - MSVC's DLL interface doesn't seem to accept exporting thread local variables (at least from what I understood, I know absolutely nothing about the Windows ecosystem), yet we can "hide" a thread local variable in a static function using a thread local variable. However in that case the access to TLS variable is not inlined, leading to worse performances, this hack shall be done only for Windows (actually when using MSVC) *AND* we build a shared library. - - In all other cases, a classical `thread_local` shall be used, no matter if we build a static or a shared library. In particular on Linux which I guess is the target Google cares the more about for its own production. This pull request achieves this. - -Am I right in my conclusion ? - -Closes #12983 - -COPYBARA_INTEGRATE_REVIEW=https://github.com/protocolbuffers/protobuf/pull/12983 from Romain-Geissler-1A:stable-abi-use-dll-non-windows dc23ff50f67cf0c8e45900a78700d1fc3e8bec39 -PiperOrigin-RevId: 538230923 ---- - src/google/protobuf/arena.cc | 2 +- - src/google/protobuf/reflection_mode.cc | 2 +- - src/google/protobuf/reflection_mode.h | 10 ++++++---- - src/google/protobuf/thread_safe_arena.h | 6 +++--- - 4 files changed, 11 insertions(+), 9 deletions(-) - -diff --git a/src/google/protobuf/arena.cc b/src/google/protobuf/arena.cc -index 51afdbdaf..6577a3669 100644 ---- a/src/google/protobuf/arena.cc -+++ b/src/google/protobuf/arena.cc -@@ -519,7 +519,7 @@ ThreadSafeArena::ThreadCache& ThreadSafeArena::thread_cache() { - new internal::ThreadLocalStorage(); - return *thread_cache_->Get(); - } --#elif defined(PROTOBUF_USE_DLLS) -+#elif defined(PROTOBUF_USE_DLLS) && defined(_MSC_VER) - ThreadSafeArena::ThreadCache& ThreadSafeArena::thread_cache() { - static PROTOBUF_THREAD_LOCAL ThreadCache thread_cache; - return thread_cache; -diff --git a/src/google/protobuf/thread_safe_arena.h b/src/google/protobuf/thread_safe_arena.h -index e6e3b7fae..f53993a85 100644 ---- a/src/google/protobuf/thread_safe_arena.h -+++ b/src/google/protobuf/thread_safe_arena.h -@@ -260,9 +260,9 @@ class PROTOBUF_EXPORT ThreadSafeArena { - // iOS does not support __thread keyword so we use a custom thread local - // storage class we implemented. - static ThreadCache& thread_cache(); --#elif defined(PROTOBUF_USE_DLLS) -- // Thread local variables cannot be exposed through DLL interface but we can -- // wrap them in static functions. -+#elif defined(PROTOBUF_USE_DLLS) && defined(_MSC_VER) -+ // Thread local variables cannot be exposed through MSVC DLL interface but we -+ // can wrap them in static functions. - static ThreadCache& thread_cache(); - #else - PROTOBUF_CONSTINIT static PROTOBUF_THREAD_LOCAL ThreadCache thread_cache_; --- -2.43.0 - diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/files/protobuf-22.5-fix-missing-PROTOBUF_EXPORT-for-public-symbols.patch b/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/files/protobuf-22.5-fix-missing-PROTOBUF_EXPORT-for-public-symbols.patch deleted file mode 100644 index fcf39e1e3e8..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/files/protobuf-22.5-fix-missing-PROTOBUF_EXPORT-for-public-symbols.patch +++ /dev/null @@ -1,32 +0,0 @@ -From fc1c5512e524e0c00a276aa9a38b2cdb8fdf45c7 Mon Sep 17 00:00:00 2001 -From: Protobuf Team Bot -Date: Thu, 1 Jun 2023 09:14:48 -0700 -Subject: [PATCH] fix: missing `PROTOBUF_EXPORT` for public symbols - -PiperOrigin-RevId: 537042088 ---- - src/google/protobuf/io/strtod.h | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/src/google/protobuf/io/strtod.h b/src/google/protobuf/io/strtod.h -index 851c8e621..b368e4d87 100644 ---- a/src/google/protobuf/io/strtod.h -+++ b/src/google/protobuf/io/strtod.h -@@ -60,12 +60,12 @@ PROTOBUF_EXPORT std::string SimpleFtoa(float value); - - // A locale-independent version of the standard strtod(), which always - // uses a dot as the decimal separator. --double NoLocaleStrtod(const char* str, char** endptr); -+PROTOBUF_EXPORT double NoLocaleStrtod(const char* str, char** endptr); - - // Casts a double value to a float value. If the value is outside of the - // representable range of float, it will be converted to positive or negative - // infinity. --float SafeDoubleToFloat(double value); -+PROTOBUF_EXPORT float SafeDoubleToFloat(double value); - - } // namespace io - } // namespace protobuf --- -2.43.0 - diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/files/protobuf-23.3-messages_lite-template-instances.patch b/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/files/protobuf-23.3-messages_lite-template-instances.patch deleted file mode 100644 index 3869ad95993..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/files/protobuf-23.3-messages_lite-template-instances.patch +++ /dev/null @@ -1,66 +0,0 @@ -https://bugs.gentoo.org/917046 -https://github.com/protocolbuffers/protobuf/commit/e6f8b9d1026996f6463d4f014d7760256b757227 - -From e6f8b9d1026996f6463d4f014d7760256b757227 Mon Sep 17 00:00:00 2001 -From: Protobuf Team Bot -Date: Wed, 8 Nov 2023 09:20:10 -0800 -Subject: [PATCH] message_lite.h: Use PROTOBUF_EXPORT_TEMPLATE_DECLARE with - extern template - -Export extern templates in message_lite.h to avoid missing symbols when -linking protobuf-lite.so. - -PiperOrigin-RevId: 580556084 ---- a/src/google/protobuf/message_lite.h -+++ b/src/google/protobuf/message_lite.h -@@ -616,22 +616,22 @@ namespace internal { - template - bool MergeFromImpl(absl::string_view input, MessageLite* msg, - MessageLite::ParseFlags parse_flags); --extern template bool MergeFromImpl(absl::string_view input, -- MessageLite* msg, -- MessageLite::ParseFlags parse_flags); --extern template bool MergeFromImpl(absl::string_view input, -- MessageLite* msg, -- MessageLite::ParseFlags parse_flags); -+extern template PROTOBUF_EXPORT_TEMPLATE_DECLARE bool MergeFromImpl( -+ absl::string_view input, MessageLite* msg, -+ MessageLite::ParseFlags parse_flags); -+extern template PROTOBUF_EXPORT_TEMPLATE_DECLARE bool MergeFromImpl( -+ absl::string_view input, MessageLite* msg, -+ MessageLite::ParseFlags parse_flags); - - template - bool MergeFromImpl(io::ZeroCopyInputStream* input, MessageLite* msg, - MessageLite::ParseFlags parse_flags); --extern template bool MergeFromImpl(io::ZeroCopyInputStream* input, -- MessageLite* msg, -- MessageLite::ParseFlags parse_flags); --extern template bool MergeFromImpl(io::ZeroCopyInputStream* input, -- MessageLite* msg, -- MessageLite::ParseFlags parse_flags); -+extern template PROTOBUF_EXPORT_TEMPLATE_DECLARE bool MergeFromImpl( -+ io::ZeroCopyInputStream* input, MessageLite* msg, -+ MessageLite::ParseFlags parse_flags); -+extern template PROTOBUF_EXPORT_TEMPLATE_DECLARE bool MergeFromImpl( -+ io::ZeroCopyInputStream* input, MessageLite* msg, -+ MessageLite::ParseFlags parse_flags); - - struct BoundedZCIS { - io::ZeroCopyInputStream* zcis; -@@ -641,10 +641,10 @@ struct BoundedZCIS { - template - bool MergeFromImpl(BoundedZCIS input, MessageLite* msg, - MessageLite::ParseFlags parse_flags); --extern template bool MergeFromImpl(BoundedZCIS input, MessageLite* msg, -- MessageLite::ParseFlags parse_flags); --extern template bool MergeFromImpl(BoundedZCIS input, MessageLite* msg, -- MessageLite::ParseFlags parse_flags); -+extern template PROTOBUF_EXPORT_TEMPLATE_DECLARE bool MergeFromImpl( -+ BoundedZCIS input, MessageLite* msg, MessageLite::ParseFlags parse_flags); -+extern template PROTOBUF_EXPORT_TEMPLATE_DECLARE bool MergeFromImpl( -+ BoundedZCIS input, MessageLite* msg, MessageLite::ParseFlags parse_flags); - - template - struct SourceWrapper; - diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/files/protobuf-3.19.0-disable_no-warning-test.patch b/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/files/protobuf-3.19.0-disable_no-warning-test.patch deleted file mode 100644 index eb3dd0c1cb3..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/files/protobuf-3.19.0-disable_no-warning-test.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 12e381222a8cdce50845dfb7d8fdf863f6f8bb8a Mon Sep 17 00:00:00 2001 -From: Arfrever Frehtes Taifersar Arahesis -Date: Fri, 28 Jan 2022 15:08:40 +0800 -Subject: [PATCH] protobuf-3.19.0: disable no-warning test - -Disable no-warning-test which is compiled with -Werror option -and whose only purpose is checking if compilation results in any warnings. - -Signed-off-by: Arfrever Frehtes Taifersar Arahesis -Signed-off-by: Yixun Lan ---- - src/Makefile.am | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/src/Makefile.am b/src/Makefile.am -index 3312e5d..7e86b62 100644 ---- a/src/Makefile.am -+++ b/src/Makefile.am -@@ -722,7 +722,7 @@ GOOGLETEST_SRC_DIR=$(srcdir)/../third_party/googletest/googletest - GOOGLEMOCK_SRC_DIR=$(srcdir)/../third_party/googletest/googlemock - check_PROGRAMS = protoc protobuf-test protobuf-lazy-descriptor-test \ - protobuf-lite-test test_plugin protobuf-lite-arena-test \ -- no-warning-test $(GZCHECKPROGRAMS) -+ $(GZCHECKPROGRAMS) - protobuf_test_LDADD = $(PTHREAD_LIBS) libprotobuf.la libprotoc.la \ - $(GOOGLETEST_BUILD_DIR)/lib/libgtest.la \ - $(GOOGLEMOCK_BUILD_DIR)/lib/libgmock.la \ -@@ -911,4 +911,4 @@ nodist_no_warning_test_SOURCES = no_warning_test.cc $(protoc_outputs) - - TESTS = protobuf-test protobuf-lazy-descriptor-test protobuf-lite-test \ - google/protobuf/compiler/zip_output_unittest.sh $(GZTESTS) \ -- protobuf-lite-arena-test no-warning-test -+ protobuf-lite-arena-test --- -2.34.1 - diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/files/protobuf-3.19.0-system_libraries.patch b/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/files/protobuf-3.19.0-system_libraries.patch deleted file mode 100644 index 56905c7847d..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/files/protobuf-3.19.0-system_libraries.patch +++ /dev/null @@ -1,146 +0,0 @@ -From c080d329298e841d7d4e1380ff7ec88de5cb3b02 Mon Sep 17 00:00:00 2001 -From: Arfrever Frehtes Taifersar Arahesis -Date: Fri, 28 Jan 2022 15:14:59 +0800 -Subject: [PATCH] protobuf-3.19.0: system_libraries - -Use system version of GoogleTest, -which will unbundle gtest, gmock libraries - -Signed-off-by: Arfrever Frehtes Taifersar Arahesis -Signed-off-by: Yixun Lan ---- - Makefile.am | 20 +------------------- - configure.ac | 7 ------- - src/Makefile.am | 33 ++++++--------------------------- - 3 files changed, 7 insertions(+), 53 deletions(-) - -diff --git a/Makefile.am b/Makefile.am -index 41d4061..b24f8f4 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -11,28 +11,10 @@ SUBDIRS = . src - # Always include third_party directories in distributions. - DIST_SUBDIRS = src conformance benchmarks third_party/googletest - --# Build gmock before we build protobuf tests. We don't add gmock to SUBDIRS --# because then "make check" would also build and run all of gmock's own tests, --# which takes a lot of time and is generally not useful to us. Also, we don't --# want "make install" to recurse into gmock since we don't want to overwrite --# the installed version of gmock if there is one. - check-local: -- @echo "Making lib/libgmock.a lib/libgmock_main.a in gmock" -- @cd third_party/googletest/googletest && $(MAKE) $(AM_MAKEFLAGS) lib/libgtest.la lib/libgtest_main.la -- @cd third_party/googletest/googlemock && $(MAKE) $(AM_MAKEFLAGS) lib/libgmock.la lib/libgmock_main.la - --# We would like to clean gmock when "make clean" is invoked. But we have to --# be careful because clean-local is also invoked during "make distclean", but --# "make distclean" already recurses into gmock because it's listed among the --# DIST_SUBDIRS. distclean will delete gmock/Makefile, so if we then try to --# cd to the directory again and "make clean" it will fail. So, check that the --# Makefile exists before recursing. - clean-local: -- @if test -e third_party/googletest/Makefile; then \ -- echo "Making clean in googletest"; \ -- cd third_party/googletest && $(MAKE) $(AM_MAKEFLAGS) clean; \ -- fi; \ -- if test -e conformance/Makefile; then \ -+ @if test -e conformance/Makefile; then \ - echo "Making clean in conformance"; \ - cd conformance && $(MAKE) $(AM_MAKEFLAGS) clean; \ - fi; \ -diff --git a/configure.ac b/configure.ac -index 02085ca..449fb3d 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -236,12 +236,5 @@ if test "x$ANDROID_TEST" = xyes; then - fi - AC_SUBST([LIBLOG_LIBS]) - --# HACK: Make gmock's configure script pick up our copy of CFLAGS and CXXFLAGS, --# since the flags added by ACX_CHECK_SUNCC must be used when compiling gmock --# too. --export CFLAGS --export CXXFLAGS --AC_CONFIG_SUBDIRS([third_party/googletest]) -- - AC_CONFIG_FILES([Makefile src/Makefile benchmarks/Makefile conformance/Makefile protobuf.pc protobuf-lite.pc]) - AC_OUTPUT -diff --git a/src/Makefile.am b/src/Makefile.am -index 7e86b62..47d759f 100644 ---- a/src/Makefile.am -+++ b/src/Makefile.am -@@ -716,19 +716,11 @@ COMMON_TEST_SOURCES = \ - google/protobuf/testing/googletest.cc \ - google/protobuf/testing/googletest.h - --GOOGLETEST_BUILD_DIR=../third_party/googletest/googletest --GOOGLEMOCK_BUILD_DIR=../third_party/googletest/googlemock --GOOGLETEST_SRC_DIR=$(srcdir)/../third_party/googletest/googletest --GOOGLEMOCK_SRC_DIR=$(srcdir)/../third_party/googletest/googlemock - check_PROGRAMS = protoc protobuf-test protobuf-lazy-descriptor-test \ - protobuf-lite-test test_plugin protobuf-lite-arena-test \ - $(GZCHECKPROGRAMS) - protobuf_test_LDADD = $(PTHREAD_LIBS) libprotobuf.la libprotoc.la \ -- $(GOOGLETEST_BUILD_DIR)/lib/libgtest.la \ -- $(GOOGLEMOCK_BUILD_DIR)/lib/libgmock.la \ -- $(GOOGLEMOCK_BUILD_DIR)/lib/libgmock_main.la --protobuf_test_CPPFLAGS = -I$(GOOGLETEST_SRC_DIR)/include \ -- -I$(GOOGLEMOCK_SRC_DIR)/include -+ -lgtest -lgmock -lgmock_main - # Disable optimization for tests unless the user explicitly asked for it, - # since test_util.cc takes forever to compile with optimization (with GCC). - # See configure.ac for more info. -@@ -820,12 +812,8 @@ $(am_protobuf_test_OBJECTS): unittest_proto_middleman - # Run cpp_unittest again with PROTOBUF_TEST_NO_DESCRIPTORS defined. - protobuf_lazy_descriptor_test_LDADD = $(PTHREAD_LIBS) libprotobuf.la \ - libprotoc.la \ -- $(GOOGLETEST_BUILD_DIR)/lib/libgtest.la \ -- $(GOOGLEMOCK_BUILD_DIR)/lib/libgmock.la \ -- $(GOOGLEMOCK_BUILD_DIR)/lib/libgmock_main.la --protobuf_lazy_descriptor_test_CPPFLAGS = -I$(GOOGLEMOCK_SRC_DIR)/include \ -- -I$(GOOGLETEST_SRC_DIR)/include \ -- -DPROTOBUF_TEST_NO_DESCRIPTORS -+ -lgtest -lgmock -lgmock_main -+protobuf_lazy_descriptor_test_CPPFLAGS = -DPROTOBUF_TEST_NO_DESCRIPTORS - protobuf_lazy_descriptor_test_CXXFLAGS = $(NO_OPT_CXXFLAGS) - protobuf_lazy_descriptor_test_SOURCES = \ - google/protobuf/compiler/cpp/cpp_unittest.cc \ -@@ -847,11 +835,7 @@ COMMON_LITE_TEST_SOURCES = \ - # full runtime and we want to make sure this test builds without full - # runtime. - protobuf_lite_test_LDADD = $(PTHREAD_LIBS) libprotobuf-lite.la \ -- $(GOOGLETEST_BUILD_DIR)/lib/libgtest.la \ -- $(GOOGLEMOCK_BUILD_DIR)/lib/libgmock.la \ -- $(GOOGLEMOCK_BUILD_DIR)/lib/libgmock_main.la --protobuf_lite_test_CPPFLAGS= -I$(GOOGLEMOCK_SRC_DIR)/include \ -- -I$(GOOGLETEST_SRC_DIR)/include -+ -lgtest -lgmock -lgmock_main - protobuf_lite_test_CXXFLAGS = $(NO_OPT_CXXFLAGS) - protobuf_lite_test_SOURCES = \ - google/protobuf/lite_unittest.cc \ -@@ -863,11 +847,7 @@ $(am_protobuf_lite_test_OBJECTS): unittest_proto_middleman - # gtest when building the test internally our memory sanitizer doesn't detect - # memory leaks (don't know why). - protobuf_lite_arena_test_LDADD = $(PTHREAD_LIBS) libprotobuf-lite.la \ -- $(GOOGLETEST_BUILD_DIR)/lib/libgtest.la \ -- $(GOOGLEMOCK_BUILD_DIR)/lib/libgmock.la \ -- $(GOOGLEMOCK_BUILD_DIR)/lib/libgmock_main.la --protobuf_lite_arena_test_CPPFLAGS = -I$(GOOGLEMOCK_SRC_DIR)/include \ -- -I$(GOOGLETEST_SRC_DIR)/include -+ -lgtest -lgmock -lgmock_main - protobuf_lite_arena_test_CXXFLAGS = $(NO_OPT_CXXFLAGS) - protobuf_lite_arena_test_SOURCES = \ - google/protobuf/lite_arena_unittest.cc \ -@@ -877,8 +857,7 @@ $(am_protobuf_lite_arena_test_OBJECTS): unittest_proto_middleman - - # Test plugin binary. - test_plugin_LDADD = $(PTHREAD_LIBS) libprotobuf.la libprotoc.la \ -- $(GOOGLETEST_BUILD_DIR)/lib/libgtest.la --test_plugin_CPPFLAGS = -I$(GOOGLETEST_SRC_DIR)/include -+ -lgtest - test_plugin_SOURCES = \ - google/protobuf/compiler/mock_code_generator.cc \ - google/protobuf/compiler/test_plugin.cc \ --- -2.34.1 - diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/files/protobuf-3.20.2-protoc_input_output_files.patch b/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/files/protobuf-3.20.2-protoc_input_output_files.patch deleted file mode 100644 index e4bf6858974..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/files/protobuf-3.20.2-protoc_input_output_files.patch +++ /dev/null @@ -1,240 +0,0 @@ -https://github.com/protocolbuffers/protobuf/pull/235 - ---- a/src/google/protobuf/compiler/command_line_interface.cc -+++ b/src/google/protobuf/compiler/command_line_interface.cc -@@ -1112,6 +1112,28 @@ - } - - if (mode_ == MODE_ENCODE || mode_ == MODE_DECODE) { -+ bool success = false; -+ int in_fd = STDIN_FILENO; -+ int out_fd = STDOUT_FILENO; -+ -+ if (!protobuf_in_path_.empty()) { -+ in_fd = open(protobuf_in_path_.c_str(), O_RDONLY); -+ if (in_fd == -1) { -+ std::cerr << protobuf_in_path_ << ": error: failed to open file." << std::endl; -+ return 1; -+ } -+ } -+ if (!protobuf_out_path_.empty()) { -+ out_fd = open(protobuf_out_path_.c_str(), -+ O_WRONLY | O_CREAT | O_TRUNC, -+ 0644); -+ if (out_fd == -1) { -+ std::cerr << protobuf_out_path_ << ": error: failed to open file." << std::endl; -+ close(in_fd); -+ return 1; -+ } -+ } -+ - if (codec_type_.empty()) { - // HACK: Define an EmptyMessage type to use for decoding. - DescriptorPool pool; -@@ -1120,13 +1142,20 @@ - file.add_message_type()->set_name("EmptyMessage"); - GOOGLE_CHECK(pool.BuildFile(file) != nullptr); - codec_type_ = "EmptyMessage"; -- if (!EncodeOrDecode(&pool)) { -- return 1; -- } -+ success = EncodeOrDecode(&pool, in_fd, out_fd); - } else { -- if (!EncodeOrDecode(descriptor_pool.get())) { -- return 1; -- } -+ success = EncodeOrDecode(descriptor_pool.get(), in_fd, out_fd); -+ } -+ -+ if (in_fd != STDIN_FILENO) { -+ close(in_fd); -+ } -+ if (out_fd != STDOUT_FILENO) { -+ close(out_fd); -+ } -+ -+ if (!success) { -+ return 1; - } - } - -@@ -1165,6 +1194,11 @@ - for (int i = 0; i < proto_path_.size(); i++) { - source_tree->MapPath(proto_path_[i].first, proto_path_[i].second); - } -+ if (mode_ == MODE_COMPILE && -+ (!protobuf_in_path_.empty() || !protobuf_out_path_.empty())) { -+ std::cerr << "--protobuf_in and --protobuf_out are only valid with " -+ << "decode operations. Ignoring."; -+ } - - // Map input files to virtual paths if possible. - if (!MakeInputsBeProtoPathRelative(source_tree, fallback_database)) { -@@ -1888,6 +1922,12 @@ - } else if (name == "--deterministic_output") { - deterministic_output_ = true; - -+ } else if (name == "--protobuf_in") { -+ protobuf_in_path_ = value; -+ -+ } else if (name == "--protobuf_out") { -+ protobuf_out_path_ = value; -+ - } else if (name == "--error_format") { - if (value == "gcc") { - error_format_ = ERROR_FORMAT_GCC; -@@ -2021,22 +2061,38 @@ - --version Show version info and exit. - -h, --help Show this text and exit. - --encode=MESSAGE_TYPE Read a text-format message of the given type -- from standard input and write it in binary -- to standard output. The message type must -+ from input protobuf file and write it in binary -+ to output protobuf file. The message type must - be defined in PROTO_FILES or their imports. -+ The input/output protobuf files are specified -+ using the --protobuf_in and --protobuf_out -+ command line flags. - --deterministic_output When using --encode, ensure map fields are - deterministically ordered. Note that this order - is not canonical, and changes across builds or - releases of protoc. - --decode=MESSAGE_TYPE Read a binary message of the given type from -- standard input and write it in text format -- to standard output. The message type must -+ input protobuf file and write it in text format -+ to output protobuf file. The message type must - be defined in PROTO_FILES or their imports. -+ The input/output protobuf files are specified -+ using the --protobuf_in and --protobuf_out -+ command line flags. - --decode_raw Read an arbitrary protocol message from -- standard input and write the raw tag/value -- pairs in text format to standard output. No -+ input protobuf file and write the raw tag/value -+ pairs in text format to output protobuf file. No - PROTO_FILES should be given when using this -- flag. -+ flag. The input/output protobuf files are -+ specified using the --protobuf_in and -+ --protobuf_out command line flags. -+ --protobuf_in=FILE Absolute path to the protobuf file from which -+ input of encoding/decoding operation will be -+ read. If omitted, input will be read from -+ standard input. -+ --protobuf_out=FILE Absolute path to the protobuf file to which -+ output of encoding/decoding operation will be -+ written. If omitted, output will be written to -+ standard output. - --descriptor_set_in=FILES Specifies a delimited list of FILES - each containing a FileDescriptorSet (a - protocol buffer defined in descriptor.proto). -@@ -2347,7 +2403,9 @@ - return true; - } - --bool CommandLineInterface::EncodeOrDecode(const DescriptorPool* pool) { -+bool CommandLineInterface::EncodeOrDecode(const DescriptorPool* pool, -+ int in_fd, -+ int out_fd) { - // Look up the type. - const Descriptor* type = pool->FindMessageTypeByName(codec_type_); - if (type == nullptr) { -@@ -2359,15 +2417,15 @@ - std::unique_ptr message(dynamic_factory.GetPrototype(type)->New()); - - if (mode_ == MODE_ENCODE) { -- SetFdToTextMode(STDIN_FILENO); -- SetFdToBinaryMode(STDOUT_FILENO); -+ SetFdToTextMode(in_fd); -+ SetFdToBinaryMode(out_fd); - } else { -- SetFdToBinaryMode(STDIN_FILENO); -- SetFdToTextMode(STDOUT_FILENO); -+ SetFdToBinaryMode(in_fd); -+ SetFdToTextMode(out_fd); - } - -- io::FileInputStream in(STDIN_FILENO); -- io::FileOutputStream out(STDOUT_FILENO); -+ io::FileInputStream in(in_fd); -+ io::FileOutputStream out(out_fd); - - if (mode_ == MODE_ENCODE) { - // Input is text. ---- a/src/google/protobuf/compiler/command_line_interface.h -+++ b/src/google/protobuf/compiler/command_line_interface.h -@@ -294,7 +294,9 @@ - GeneratorContext* generator_context, std::string* error); - - // Implements --encode and --decode. -- bool EncodeOrDecode(const DescriptorPool* pool); -+ bool EncodeOrDecode(const DescriptorPool* pool, -+ int in_fd, -+ int out_fd); - - // Implements the --descriptor_set_out option. - bool WriteDescriptorSet( -@@ -429,6 +431,13 @@ - // parsed FileDescriptorSets to be used for loading protos. Otherwise, empty. - std::vector descriptor_set_in_names_; - -+ // When using --encode / --decode / --decode_raw absolute path to the output -+ // file. (Empty string indicates write to STDOUT). -+ std::string protobuf_out_path_; -+ // When using --encode / --decode / --decode_raw, absolute path to the input -+ // file. (Empty string indicates read from STDIN). -+ std::string protobuf_in_path_; -+ - // If --descriptor_set_out was given, this is the filename to which the - // FileDescriptorSet should be written. Otherwise, empty. - std::string descriptor_set_out_name_; ---- a/src/google/protobuf/compiler/command_line_interface_unittest.cc -+++ b/src/google/protobuf/compiler/command_line_interface_unittest.cc -@@ -99,7 +99,7 @@ - void SetUp() override; - void TearDown() override; - -- // Runs the CommandLineInterface with the given command line. The -+ // Run the CommandLineInterface with the given command line. The - // command is automatically split on spaces, and the string "$tmpdir" - // is replaced with TestTempDir(). - void Run(const std::string& command); -@@ -2626,6 +2626,17 @@ - std::string::npos); - } - -+ void ExpectBinaryFilesMatch(const std::string &expected_file, -+ const std::string &actual_file) { -+ std::string expected_output, actual_output; -+ ASSERT_TRUE(File::ReadFileToString(expected_file, &expected_output)); -+ ASSERT_TRUE(File::ReadFileToString(actual_file, &actual_output)); -+ -+ // Don't use EXPECT_EQ because we don't want to print raw binary data to -+ // stdout on failure. -+ EXPECT_TRUE(expected_output == actual_output); -+ } -+ - private: - void WriteUnittestProtoDescriptorSet() { - unittest_proto_descriptor_set_filename_ = -@@ -2749,6 +2760,19 @@ - "Can only use --deterministic_output with --encode.\n"); - } - -+TEST_P(EncodeDecodeTest, RedirectInputOutput) { -+ std::string out_file = TestTempDir() + "/golden_message_out.pbf"; -+ EXPECT_TRUE( -+ Run(TestUtil::MaybeTranslatePath("net/proto2/internal/unittest.proto") + -+ " --encode=protobuf_unittest.TestAllTypes" + -+ " --protobuf_in=" + TestUtil::GetTestDataPath( -+ "net/proto2/internal/" -+ "testdata/text_format_unittest_data_oneof_implemented.txt") + -+ " --protobuf_out=" + out_file)); -+ ExpectBinaryFilesMatch(out_file, TestUtil::GetTestDataPath( -+ "net/proto2/internal/testdata/golden_message_oneof_implemented")); -+} -+ - INSTANTIATE_TEST_SUITE_P(FileDescriptorSetSource, EncodeDecodeTest, - testing::Values(PROTO_PATH, DESCRIPTOR_SET_IN)); - } // anonymous namespace diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-21.9.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-21.9.ebuild deleted file mode 100644 index ede7e076871..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-21.9.ebuild +++ /dev/null @@ -1,149 +0,0 @@ -# Copyright 2008-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit autotools elisp-common flag-o-matic multilib-minimal toolchain-funcs - -if [[ "${PV}" == *9999 ]]; then - inherit git-r3 - - EGIT_REPO_URI="https://github.com/protocolbuffers/protobuf.git" - EGIT_SUBMODULES=() -else - SRC_URI="https://github.com/protocolbuffers/protobuf/archive/v${PV}.tar.gz -> ${P}.tar.gz" - KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~x64-macos" -fi - -DESCRIPTION="Google's Protocol Buffers - Extensible mechanism for serializing structured data" -HOMEPAGE=" - https://developers.google.com/protocol-buffers/ -" - -LICENSE="BSD" -SLOT="0/32" -IUSE="emacs examples static-libs test zlib" -RESTRICT="!test? ( test )" - -BDEPEND="emacs? ( app-editors/emacs:* )" -DEPEND="test? ( >=dev-cpp/gtest-1.9[${MULTILIB_USEDEP}] ) - zlib? ( sys-libs/zlib[${MULTILIB_USEDEP}] )" -RDEPEND="emacs? ( app-editors/emacs:* ) - zlib? ( sys-libs/zlib[${MULTILIB_USEDEP}] )" - -PATCHES=( - "${FILESDIR}/${PN}-3.19.0-disable_no-warning-test.patch" - "${FILESDIR}/${PN}-3.19.0-system_libraries.patch" - "${FILESDIR}/${PN}-3.20.2-protoc_input_output_files.patch" - "${FILESDIR}/${PN}-21.9-disable-32-bit-tests.patch" -) - -DOCS=(CHANGES.txt CONTRIBUTORS.txt README.md) - -src_prepare() { - default - - # https://github.com/protocolbuffers/protobuf/issues/7413 - sed -e "/^AC_PROG_CXX_FOR_BUILD$/d" -i configure.ac || die - - # https://github.com/protocolbuffers/protobuf/issues/8082 - sed -e "/^TEST_F(IoTest, LargeOutput) {$/,/^}$/d" -i src/google/protobuf/io/zero_copy_stream_unittest.cc || die - - # https://github.com/protocolbuffers/protobuf/issues/8459 - sed \ - -e "/^TEST(ArenaTest, BlockSizeSmallerThanAllocation) {$/a\\ if (sizeof(void*) == 4) {\n GTEST_SKIP();\n }" \ - -e "/^TEST(ArenaTest, SpaceAllocated_and_Used) {$/a\\ if (sizeof(void*) == 4) {\n GTEST_SKIP();\n }" \ - -i src/google/protobuf/arena_unittest.cc || die - - # https://github.com/protocolbuffers/protobuf/issues/8460 - sed -e "/^TEST(AnyTest, TestPackFromSerializationExceedsSizeLimit) {$/a\\ if (sizeof(void*) == 4) {\n GTEST_SKIP();\n }" -i src/google/protobuf/any_test.cc || die - - # https://github.com/protocolbuffers/protobuf/issues/9433 - sed -e "/^[[:space:]]*static_assert(alignof(U) <= 8, \"\");$/d" -i src/google/protobuf/descriptor.cc || die - - eautoreconf -} - -src_configure() { - append-cppflags -DGOOGLE_PROTOBUF_NO_RTTI - - if tc-ld-is-gold; then - # https://sourceware.org/bugzilla/show_bug.cgi?id=24527 - tc-ld-disable-gold - fi - - multilib-minimal_src_configure -} - -multilib_src_configure() { - local options=( - $(use_enable static-libs static) - $(use_with zlib) - ) - - if tc-is-cross-compiler; then - # Build system uses protoc when building, so protoc copy runnable on host is needed. - mkdir -p "${WORKDIR}/build" || die - pushd "${WORKDIR}/build" > /dev/null || die - ECONF_SOURCE="${S}" econf_build "${options[@]}" - options+=(--with-protoc="$(pwd)/src/protoc") - popd > /dev/null || die - fi - - ECONF_SOURCE="${S}" econf "${options[@]}" -} - -src_compile() { - multilib-minimal_src_compile - - if use emacs; then - elisp-compile editors/protobuf-mode.el - fi -} - -multilib_src_compile() { - if tc-is-cross-compiler; then - emake -C "${WORKDIR}/build/src" protoc - fi - - default -} - -multilib_src_test() { - emake check -} - -multilib_src_install_all() { - find "${ED}" -name "*.la" -delete || die - - if [[ ! -f "${ED}/usr/$(get_libdir)/libprotobuf.so.${SLOT#*/}" ]]; then - eerror "No matching library found with SLOT variable, currently set: ${SLOT}\n" \ - "Expected value: ${ED}/usr/$(get_libdir)/libprotobuf.so.${SLOT#*/}" - die "Please update SLOT variable" - fi - - insinto /usr/share/vim/vimfiles/syntax - doins editors/proto.vim - insinto /usr/share/vim/vimfiles/ftdetect - doins "${FILESDIR}/proto.vim" - - if use emacs; then - elisp-install ${PN} editors/protobuf-mode.el* - elisp-site-file-install "${FILESDIR}/70${PN}-gentoo.el" - fi - - if use examples; then - DOCS+=(examples) - docompress -x /usr/share/doc/${PF}/examples - fi - - einstalldocs -} - -pkg_postinst() { - use emacs && elisp-site-regen -} - -pkg_postrm() { - use emacs && elisp-site-regen -} diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-22.5-r1.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-22.5-r1.ebuild deleted file mode 100644 index ca830b5f58c..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-22.5-r1.ebuild +++ /dev/null @@ -1,124 +0,0 @@ -# Copyright 2008-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit cmake-multilib elisp-common flag-o-matic toolchain-funcs - -if [[ "${PV}" == *9999 ]]; then - inherit git-r3 - - EGIT_REPO_URI="https://github.com/protocolbuffers/protobuf.git" - EGIT_SUBMODULES=() -else - SRC_URI="https://github.com/protocolbuffers/protobuf/archive/v${PV}.tar.gz -> ${P}.tar.gz" - KEYWORDS="~alpha amd64 ~arm ~arm64 ~loong ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos" -fi - -DESCRIPTION="Google's Protocol Buffers - Extensible mechanism for serializing structured data" -HOMEPAGE="https://protobuf.dev/" - -LICENSE="BSD" -SLOT="0/$(ver_cut 1-2).0" -IUSE="emacs examples test zlib" -RESTRICT="!test? ( test )" - -BDEPEND="emacs? ( app-editors/emacs:* )" -DEPEND=" - =dev-cpp/abseil-cpp-20230125:=[${MULTILIB_USEDEP}] - zlib? ( sys-libs/zlib[${MULTILIB_USEDEP}] ) - test? ( >=dev-cpp/gtest-1.9[${MULTILIB_USEDEP}] ) -" -RDEPEND=" - =dev-cpp/abseil-cpp-20230125:=[${MULTILIB_USEDEP}] - emacs? ( app-editors/emacs:* ) - zlib? ( sys-libs/zlib[${MULTILIB_USEDEP}] ) -" - -PATCHES=( - "${FILESDIR}/${PN}-23.3-disable-32-bit-tests.patch" - "${FILESDIR}/${PN}-23.3-static_assert-failure.patch" - "${FILESDIR}/${P}-fix-missing-PROTOBUF_EXPORT-for-public-symbols.patch" - "${FILESDIR}/${P}-Use-the-same-ABI-for-static-and-shared-libraries-on-.patch" -) - -DOCS=( CONTRIBUTORS.txt README.md ) - -src_prepare() { - eapply_user - append-cxxflags -std=c++17 - cmake_src_prepare -} - -src_configure() { - if tc-ld-is-gold; then - # https://sourceware.org/bugzilla/show_bug.cgi?id=24527 - tc-ld-disable-gold - fi - - cmake-multilib_src_configure -} - -multilib_src_configure() { - local mycmakeargs=( - -DCMAKE_CXX_STANDARD=17 - -Dprotobuf_DISABLE_RTTI=ON - -Dprotobuf_BUILD_EXAMPLES=$(usex examples) - -Dprotobuf_WITH_ZLIB=$(usex zlib) - -Dprotobuf_BUILD_TESTS=$(usex test) - -Dprotobuf_ABSL_PROVIDER=package - ) - use test && mycmakeargs+=(-Dprotobuf_USE_EXTERNAL_GTEST=ON) - - cmake_src_configure -} - -src_compile() { - cmake-multilib_src_compile - - if use emacs; then - elisp-compile editors/protobuf-mode.el - fi -} - -src_test() { - local -x srcdir="${S}"/src - cmake-multilib_src_test -} - -multilib_src_install_all() { - find "${ED}" -name "*.la" -delete || die - - if [[ ! -f "${ED}/usr/$(get_libdir)/libprotobuf.so.${SLOT#*/}" ]]; then - eerror "No matching library found with SLOT variable, currently set: ${SLOT}\n" \ - "Expected value: ${ED}/usr/$(get_libdir)/libprotobuf.so.${SLOT#*/}" - die "Please update SLOT variable" - fi - - insinto /usr/share/vim/vimfiles/syntax - doins editors/proto.vim - insinto /usr/share/vim/vimfiles/ftdetect - doins "${FILESDIR}/proto.vim" - - if use emacs; then - elisp-install ${PN} editors/protobuf-mode.el* - elisp-site-file-install "${FILESDIR}/70${PN}-gentoo.el" - fi - - if use examples; then - DOCS+=(examples) - docompress -x /usr/share/doc/${PF}/examples - fi - - einstalldocs -} - -pkg_postinst() { - use emacs && elisp-site-regen -} - -pkg_postrm() { - use emacs && elisp-site-regen -} diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-22.5-r2.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-22.5-r2.ebuild deleted file mode 100644 index b8dbe905360..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-22.5-r2.ebuild +++ /dev/null @@ -1,133 +0,0 @@ -# Copyright 2008-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit cmake-multilib elisp-common flag-o-matic toolchain-funcs - -ABSEIL_BRANCH="lts_2023_01_25" # NOTE from https://github.com/protocolbuffers/protobuf/blob/main/.gitmodules - -ABSEIL_MIN_VER="${ABSEIL_BRANCH//lts_}" -ABSEIL_MIN_VER="${ABSEIL_MIN_VER//_/}" - -if [[ "${PV}" == *9999 ]]; then - EGIT_REPO_URI="https://github.com/protocolbuffers/protobuf.git" - EGIT_SUBMODULES=( '-*' ) - - inherit git-r3 -else - SRC_URI="https://github.com/protocolbuffers/protobuf/archive/v${PV}.tar.gz -> ${P}.tar.gz" - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~mips ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos" -fi - -DESCRIPTION="Google's Protocol Buffers - Extensible mechanism for serializing structured data" -HOMEPAGE="https://protobuf.dev/" - -LICENSE="BSD" -SLOT="0/$(ver_cut 1-2).0" -IUSE="emacs examples test zlib" -RESTRICT="!test? ( test )" - -BDEPEND=" - emacs? ( app-editors/emacs:* ) -" - -COMMON_DEPEND=" - dev-libs/jsoncpp - >=dev-cpp/abseil-cpp-${ABSEIL_MIN_VER}:=[${MULTILIB_USEDEP}] - zlib? ( sys-libs/zlib[${MULTILIB_USEDEP}] ) -" - -DEPEND=" - ${COMMON_DEPEND} - test? ( >=dev-cpp/gtest-1.9[${MULTILIB_USEDEP}] ) -" -RDEPEND=" - ${COMMON_DEPEND} - ${BDEPEND} -" - -PATCHES=( - "${FILESDIR}/${PN}-23.3-disable-32-bit-tests.patch" - "${FILESDIR}/${PN}-23.3-static_assert-failure.patch" - "${FILESDIR}/${P}-fix-missing-PROTOBUF_EXPORT-for-public-symbols.patch" - "${FILESDIR}/${P}-Use-the-same-ABI-for-static-and-shared-libraries-on-.patch" -) - -DOCS=( CONTRIBUTORS.txt README.md ) - -src_prepare() { - eapply_user - append-cxxflags -std=c++17 - cmake_src_prepare -} - -src_configure() { - if tc-ld-is-gold; then - # https://sourceware.org/bugzilla/show_bug.cgi?id=24527 - tc-ld-disable-gold - fi - - cmake-multilib_src_configure -} - -multilib_src_configure() { - local mycmakeargs=( - -Dprotobuf_DISABLE_RTTI="yes" # TODO why? - -Dprotobuf_BUILD_EXAMPLES="$(usex examples)" - -Dprotobuf_WITH_ZLIB="$(usex zlib)" - -Dprotobuf_BUILD_TESTS="$(usex test)" - -Dprotobuf_ABSL_PROVIDER="package" - ) - use test && mycmakeargs+=(-Dprotobuf_USE_EXTERNAL_GTEST=ON) - - cmake_src_configure -} - -src_compile() { - cmake-multilib_src_compile - - if use emacs; then - elisp-compile editors/protobuf-mode.el - fi -} - -src_test() { - local -x srcdir="${S}"/src - cmake-multilib_src_test -} - -multilib_src_install_all() { - find "${ED}" -name "*.la" -delete || die - - if [[ ! -f "${ED}/usr/$(get_libdir)/libprotobuf.so.${SLOT#*/}" ]]; then - eerror "No matching library found with SLOT variable, currently set: ${SLOT}\n" \ - "Expected value: ${ED}/usr/$(get_libdir)/libprotobuf.so.${SLOT#*/}" - die "Please update SLOT variable" - fi - - insinto /usr/share/vim/vimfiles/syntax - doins editors/proto.vim - insinto /usr/share/vim/vimfiles/ftdetect - doins "${FILESDIR}/proto.vim" - - if use emacs; then - elisp-install "${PN}" editors/protobuf-mode.el* - elisp-site-file-install "${FILESDIR}/70${PN}-gentoo.el" - fi - - if use examples; then - DOCS+=(examples) - docompress -x "/usr/share/doc/${PF}/examples" - fi - - einstalldocs -} - -pkg_postinst() { - use emacs && elisp-site-regen -} - -pkg_postrm() { - use emacs && elisp-site-regen -} diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-23.3-r4.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-23.3-r4.ebuild deleted file mode 100644 index 6a47828975b..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-23.3-r4.ebuild +++ /dev/null @@ -1,116 +0,0 @@ -# Copyright 2008-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit cmake-multilib elisp-common toolchain-funcs - -if [[ "${PV}" == *9999 ]]; then - inherit git-r3 - - EGIT_REPO_URI="https://github.com/protocolbuffers/protobuf.git" - EGIT_SUBMODULES=() -else - SRC_URI="https://github.com/protocolbuffers/protobuf/archive/v${PV}.tar.gz -> ${P}.tar.gz" - KEYWORDS="~alpha amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~sparc x86 ~amd64-linux ~x86-linux ~x64-macos" -fi - -DESCRIPTION="Google's Protocol Buffers - Extensible mechanism for serializing structured data" -HOMEPAGE="https://protobuf.dev/" - -LICENSE="BSD" -SLOT="0/$(ver_cut 1-2).0" -IUSE="emacs examples test zlib" -RESTRICT="!test? ( test )" - -BDEPEND="emacs? ( app-editors/emacs:* )" -DEPEND=" - =dev-cpp/abseil-cpp-20230125.3:=[${MULTILIB_USEDEP}] - zlib? ( sys-libs/zlib[${MULTILIB_USEDEP}] ) - test? ( >=dev-cpp/gtest-1.9[${MULTILIB_USEDEP}] ) -" -RDEPEND=" - =dev-cpp/abseil-cpp-20230125.3:=[${MULTILIB_USEDEP}] - emacs? ( app-editors/emacs:* ) - zlib? ( sys-libs/zlib[${MULTILIB_USEDEP}] ) -" - -PATCHES=( - "${FILESDIR}/${PN}-23.3-disable-32-bit-tests.patch" - "${FILESDIR}/${PN}-23.3-static_assert-failure.patch" - "${FILESDIR}/${PN}-23.3-messages_lite-template-instances.patch" -) - -DOCS=( CONTRIBUTORS.txt README.md ) - -src_configure() { - if tc-ld-is-gold; then - # https://sourceware.org/bugzilla/show_bug.cgi?id=24527 - tc-ld-disable-gold - fi - - cmake-multilib_src_configure -} - -multilib_src_configure() { - local mycmakeargs=( - -Dprotobuf_DISABLE_RTTI=ON - -Dprotobuf_BUILD_EXAMPLES=$(usex examples) - -Dprotobuf_WITH_ZLIB=$(usex zlib) - -Dprotobuf_BUILD_TESTS=$(usex test) - -Dprotobuf_ABSL_PROVIDER=package - ) - use test && mycmakeargs+=(-Dprotobuf_USE_EXTERNAL_GTEST=ON) - - cmake_src_configure -} - -src_compile() { - cmake-multilib_src_compile - - if use emacs; then - elisp-compile editors/protobuf-mode.el - fi -} - -src_test() { - local -x srcdir="${S}"/src - cmake-multilib_src_test -} - -multilib_src_install_all() { - find "${ED}" -name "*.la" -delete || die - - if [[ ! -f "${ED}/usr/$(get_libdir)/libprotobuf.so.${SLOT#*/}" ]]; then - eerror "No matching library found with SLOT variable, currently set: ${SLOT}\n" \ - "Expected value: ${ED}/usr/$(get_libdir)/libprotobuf.so.${SLOT#*/}" - die "Please update SLOT variable" - fi - - insinto /usr/share/vim/vimfiles/syntax - doins editors/proto.vim - insinto /usr/share/vim/vimfiles/ftdetect - doins "${FILESDIR}/proto.vim" - - if use emacs; then - elisp-install ${PN} editors/protobuf-mode.el* - elisp-site-file-install "${FILESDIR}/70${PN}-gentoo.el" - fi - - if use examples; then - DOCS+=(examples) - docompress -x /usr/share/doc/${PF}/examples - fi - - einstalldocs -} - -pkg_postinst() { - use emacs && elisp-site-regen -} - -pkg_postrm() { - use emacs && elisp-site-regen -} diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-23.4.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-23.4.ebuild deleted file mode 100644 index 87f127940ad..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-23.4.ebuild +++ /dev/null @@ -1,126 +0,0 @@ -# Copyright 2008-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit cmake-multilib elisp-common toolchain-funcs - -ABSEIL_BRANCH="lts_2023_01_25" # NOTE from https://github.com/protocolbuffers/protobuf/blob/main/.gitmodules - -ABSEIL_MIN_VER="${ABSEIL_BRANCH//lts_}" -ABSEIL_MIN_VER="${ABSEIL_MIN_VER//_/}" - -if [[ "${PV}" == *9999 ]]; then - EGIT_REPO_URI="https://github.com/protocolbuffers/protobuf.git" - EGIT_SUBMODULES=( '-*' ) - - inherit git-r3 -else - SRC_URI="https://github.com/protocolbuffers/protobuf/archive/v${PV}.tar.gz -> ${P}.tar.gz" - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~mips ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos" -fi - -DESCRIPTION="Google's Protocol Buffers - Extensible mechanism for serializing structured data" -HOMEPAGE="https://protobuf.dev/" - -LICENSE="BSD" -SLOT="0/$(ver_cut 1-2).0" -IUSE="emacs examples test zlib" -RESTRICT="!test? ( test )" - -BDEPEND=" - emacs? ( app-editors/emacs:* ) -" - -COMMON_DEPEND=" - dev-libs/jsoncpp - >=dev-cpp/abseil-cpp-${ABSEIL_MIN_VER}:=[${MULTILIB_USEDEP}] - zlib? ( sys-libs/zlib[${MULTILIB_USEDEP}] ) -" - -DEPEND=" - ${COMMON_DEPEND} - test? ( >=dev-cpp/gtest-1.9[${MULTILIB_USEDEP}] ) -" -RDEPEND=" - ${COMMON_DEPEND} - ${BDEPEND} -" - -PATCHES=( - "${FILESDIR}/${PN}-23.3-disable-32-bit-tests.patch" - "${FILESDIR}/${PN}-23.3-static_assert-failure.patch" - "${FILESDIR}/${PN}-23.3-messages_lite-template-instances.patch" -) - -DOCS=( CONTRIBUTORS.txt README.md ) - -src_configure() { - if tc-ld-is-gold; then - # https://sourceware.org/bugzilla/show_bug.cgi?id=24527 - tc-ld-disable-gold - fi - - cmake-multilib_src_configure -} - -multilib_src_configure() { - local mycmakeargs=( - -Dprotobuf_DISABLE_RTTI="yes" # TODO why? - -Dprotobuf_BUILD_EXAMPLES="$(usex examples)" - -Dprotobuf_WITH_ZLIB="$(usex zlib)" - -Dprotobuf_BUILD_TESTS="$(usex test)" - -Dprotobuf_ABSL_PROVIDER="package" - ) - use test && mycmakeargs+=(-Dprotobuf_USE_EXTERNAL_GTEST=ON) - - cmake_src_configure -} - -src_compile() { - cmake-multilib_src_compile - - if use emacs; then - elisp-compile editors/protobuf-mode.el - fi -} - -src_test() { - local -x srcdir="${S}"/src - cmake-multilib_src_test -} - -multilib_src_install_all() { - find "${ED}" -name "*.la" -delete || die - - if [[ ! -f "${ED}/usr/$(get_libdir)/libprotobuf.so.${SLOT#*/}" ]]; then - eerror "No matching library found with SLOT variable, currently set: ${SLOT}\n" \ - "Expected value: ${ED}/usr/$(get_libdir)/libprotobuf.so.${SLOT#*/}" - die "Please update SLOT variable" - fi - - insinto /usr/share/vim/vimfiles/syntax - doins editors/proto.vim - insinto /usr/share/vim/vimfiles/ftdetect - doins "${FILESDIR}/proto.vim" - - if use emacs; then - elisp-install "${PN}" editors/protobuf-mode.el* - elisp-site-file-install "${FILESDIR}/70${PN}-gentoo.el" - fi - - if use examples; then - DOCS+=(examples) - docompress -x "/usr/share/doc/${PF}/examples" - fi - - einstalldocs -} - -pkg_postinst() { - use emacs && elisp-site-regen -} - -pkg_postrm() { - use emacs && elisp-site-regen -} diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-24.4.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-24.4.ebuild deleted file mode 100644 index c3681d98ce7..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-24.4.ebuild +++ /dev/null @@ -1,125 +0,0 @@ -# Copyright 2008-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit cmake-multilib elisp-common toolchain-funcs - -ABSEIL_BRANCH="lts_2023_01_25" # NOTE from https://github.com/protocolbuffers/protobuf/blob/main/.gitmodules - -ABSEIL_MIN_VER="${ABSEIL_BRANCH//lts_}" -ABSEIL_MIN_VER="${ABSEIL_MIN_VER//_/}" - -if [[ "${PV}" == *9999 ]]; then - EGIT_REPO_URI="https://github.com/protocolbuffers/protobuf.git" - EGIT_SUBMODULES=( '-*' ) - - inherit git-r3 -else - SRC_URI="https://github.com/protocolbuffers/protobuf/archive/v${PV}.tar.gz -> ${P}.tar.gz" - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~mips ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos" -fi - -DESCRIPTION="Google's Protocol Buffers - Extensible mechanism for serializing structured data" -HOMEPAGE="https://protobuf.dev/" - -LICENSE="BSD" -SLOT="0/$(ver_cut 1-2).0" -IUSE="emacs examples test zlib" -RESTRICT="!test? ( test )" - -BDEPEND=" - emacs? ( app-editors/emacs:* ) -" - -COMMON_DEPEND=" - dev-libs/jsoncpp - >=dev-cpp/abseil-cpp-${ABSEIL_MIN_VER}:=[${MULTILIB_USEDEP}] - zlib? ( sys-libs/zlib[${MULTILIB_USEDEP}] ) -" - -DEPEND=" - ${COMMON_DEPEND} - test? ( >=dev-cpp/gtest-1.9[${MULTILIB_USEDEP}] ) -" -RDEPEND=" - ${COMMON_DEPEND} - ${BDEPEND} -" - -PATCHES=( - "${FILESDIR}/${PN}-26.1-disable-32-bit-tests.patch" - "${FILESDIR}/${PN}-23.3-static_assert-failure.patch" -) - -DOCS=( CONTRIBUTORS.txt README.md ) - -src_configure() { - if tc-ld-is-gold; then - # https://sourceware.org/bugzilla/show_bug.cgi?id=24527 - tc-ld-disable-gold - fi - - cmake-multilib_src_configure -} - -multilib_src_configure() { - local mycmakeargs=( - -Dprotobuf_DISABLE_RTTI="yes" # TODO why? - -Dprotobuf_BUILD_EXAMPLES="$(usex examples)" - -Dprotobuf_WITH_ZLIB="$(usex zlib)" - -Dprotobuf_BUILD_TESTS="$(usex test)" - -Dprotobuf_ABSL_PROVIDER="package" - ) - use test && mycmakeargs+=(-Dprotobuf_USE_EXTERNAL_GTEST=ON) - - cmake_src_configure -} - -src_compile() { - cmake-multilib_src_compile - - if use emacs; then - elisp-compile editors/protobuf-mode.el - fi -} - -src_test() { - local -x srcdir="${S}"/src - cmake-multilib_src_test -} - -multilib_src_install_all() { - find "${ED}" -name "*.la" -delete || die - - if [[ ! -f "${ED}/usr/$(get_libdir)/libprotobuf.so.${SLOT#*/}" ]]; then - eerror "No matching library found with SLOT variable, currently set: ${SLOT}\n" \ - "Expected value: ${ED}/usr/$(get_libdir)/libprotobuf.so.${SLOT#*/}" - die "Please update SLOT variable" - fi - - insinto /usr/share/vim/vimfiles/syntax - doins editors/proto.vim - insinto /usr/share/vim/vimfiles/ftdetect - doins "${FILESDIR}/proto.vim" - - if use emacs; then - elisp-install "${PN}" editors/protobuf-mode.el* - elisp-site-file-install "${FILESDIR}/70${PN}-gentoo.el" - fi - - if use examples; then - DOCS+=(examples) - docompress -x "/usr/share/doc/${PF}/examples" - fi - - einstalldocs -} - -pkg_postinst() { - use emacs && elisp-site-regen -} - -pkg_postrm() { - use emacs && elisp-site-regen -} diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-25.3.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-25.3.ebuild deleted file mode 100644 index cf1d9198d96..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-25.3.ebuild +++ /dev/null @@ -1,116 +0,0 @@ -# Copyright 2008-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit cmake-multilib elisp-common - -ABSEIL_BRANCH="lts_2023_08_02" # NOTE from https://github.com/protocolbuffers/protobuf/blob/main/.gitmodules - -ABSEIL_MIN_VER="${ABSEIL_BRANCH//lts_}" -ABSEIL_MIN_VER="${ABSEIL_MIN_VER//_/}" - -if [[ "${PV}" == *9999 ]]; then - EGIT_REPO_URI="https://github.com/protocolbuffers/protobuf.git" - EGIT_SUBMODULES=( '-*' ) - - inherit git-r3 -else - SRC_URI="https://github.com/protocolbuffers/protobuf/archive/v${PV}.tar.gz -> ${P}.tar.gz" - KEYWORDS="~alpha amd64 ~arm ~arm64 ~loong ~mips ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos" -fi - -DESCRIPTION="Google's Protocol Buffers - Extensible mechanism for serializing structured data" -HOMEPAGE="https://protobuf.dev/" - -LICENSE="BSD" -SLOT="0/$(ver_cut 1-2).0" -IUSE="emacs examples test zlib" -RESTRICT="!test? ( test )" - -BDEPEND=" - emacs? ( app-editors/emacs:* ) -" - -COMMON_DEPEND=" - dev-libs/jsoncpp - >=dev-cpp/abseil-cpp-${ABSEIL_MIN_VER}:=[${MULTILIB_USEDEP}] - zlib? ( sys-libs/zlib[${MULTILIB_USEDEP}] ) -" - -DEPEND=" - ${COMMON_DEPEND} - test? ( >=dev-cpp/gtest-1.9[${MULTILIB_USEDEP}] ) -" -RDEPEND=" - ${COMMON_DEPEND} - ${BDEPEND} -" - -PATCHES=( - "${FILESDIR}/${PN}-26.1-disable-32-bit-tests.patch" - "${FILESDIR}/${PN}-23.3-static_assert-failure.patch" -) - -DOCS=( CONTRIBUTORS.txt README.md ) - -multilib_src_configure() { - local mycmakeargs=( - -Dprotobuf_DISABLE_RTTI="yes" # TODO why? - -Dprotobuf_BUILD_EXAMPLES="$(usex examples)" - -Dprotobuf_WITH_ZLIB="$(usex zlib)" - -Dprotobuf_BUILD_TESTS="$(usex test)" - -Dprotobuf_ABSL_PROVIDER="package" - ) - use test && mycmakeargs+=(-Dprotobuf_USE_EXTERNAL_GTEST=ON) - - cmake_src_configure -} - -src_compile() { - cmake-multilib_src_compile - - if use emacs; then - elisp-compile editors/protobuf-mode.el - fi -} - -src_test() { - local -x srcdir="${S}"/src - cmake-multilib_src_test -} - -multilib_src_install_all() { - find "${ED}" -name "*.la" -delete || die - - if [[ ! -f "${ED}/usr/$(get_libdir)/libprotobuf.so.${SLOT#*/}" ]]; then - eerror "No matching library found with SLOT variable, currently set: ${SLOT}\n" \ - "Expected value: ${ED}/usr/$(get_libdir)/libprotobuf.so.${SLOT#*/}" - die "Please update SLOT variable" - fi - - insinto /usr/share/vim/vimfiles/syntax - doins editors/proto.vim - insinto /usr/share/vim/vimfiles/ftdetect - doins "${FILESDIR}/proto.vim" - - if use emacs; then - elisp-install "${PN}" editors/protobuf-mode.el* - elisp-site-file-install "${FILESDIR}/70${PN}-gentoo.el" - fi - - if use examples; then - DOCS+=(examples) - docompress -x "/usr/share/doc/${PF}/examples" - fi - - einstalldocs -} - -pkg_postinst() { - use emacs && elisp-site-regen -} - -pkg_postrm() { - use emacs && elisp-site-regen -} diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-25.4.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-25.4.ebuild deleted file mode 100644 index 158b36af630..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-25.4.ebuild +++ /dev/null @@ -1,165 +0,0 @@ -# Copyright 2008-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit cmake-multilib elisp-common multilib - -# NOTE from https://github.com/protocolbuffers/protobuf/blob/main/.gitmodules -ABSEIL_BRANCH="lts_2023_08_02" - -ABSEIL_MIN_VER="${ABSEIL_BRANCH//lts_}" -ABSEIL_MIN_VER="${ABSEIL_MIN_VER//_/}" - -if [[ "${PV}" == *9999 ]]; then - EGIT_REPO_URI="https://github.com/protocolbuffers/protobuf.git" - EGIT_SUBMODULES=( '-*' ) - MY_SLOT="28.0" - - inherit git-r3 -else - SRC_URI="https://github.com/protocolbuffers/protobuf/releases/download/v${PV}/${P}.tar.gz" - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~mips ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~x64-macos" - MY_SLOT=$(ver_cut 1-2) -fi - -DESCRIPTION="Google's Protocol Buffers - Extensible mechanism for serializing structured data" -HOMEPAGE="https://protobuf.dev/" - -LICENSE="BSD" -SLOT="0/${MY_SLOT}.0" -IUSE="conformance debug emacs examples +libprotoc libupb +protobuf +protoc test zlib" - -REQUIRED_USE=" - || ( - libprotoc - libupb - protobuf - protoc - ) -" - -RESTRICT="!test? ( test )" - -BDEPEND=" - emacs? ( app-editors/emacs:* ) - !protobuf? ( - >=dev-libs/protobuf-${PV} - ) -" - -COMMON_DEPEND=" - dev-libs/jsoncpp[${MULTILIB_USEDEP}] - >=dev-cpp/abseil-cpp-${ABSEIL_MIN_VER}:=[${MULTILIB_USEDEP}] - zlib? ( sys-libs/zlib[${MULTILIB_USEDEP}] ) -" - -DEPEND=" - ${COMMON_DEPEND} - test? ( >=dev-cpp/gtest-1.9[${MULTILIB_USEDEP}] ) -" -RDEPEND=" - ${COMMON_DEPEND} - ${BDEPEND} -" - -PATCHES=( - "${FILESDIR}/${PN}-26.1-disable-32-bit-tests.patch" - "${FILESDIR}/${PN}-23.3-static_assert-failure.patch" - "${FILESDIR}/${PN}-27.4-findJsonCpp.patch" -) - -DOCS=( CONTRIBUTORS.txt README.md ) - -src_prepare() { - cmake_src_prepare - - cp "${FILESDIR}/FindJsonCpp.cmake" "${S}/cmake" || die -} - -multilib_src_configure() { - local mycmakeargs=( - -Dprotobuf_ABSL_PROVIDER="package" - -Dprotobuf_JSONCPP_PROVIDER="package" - - -Dprotobuf_BUILD_CONFORMANCE="$(usex test "$(usex conformance)")" - -Dprotobuf_BUILD_EXAMPLES="$(usex examples)" - -Dprotobuf_BUILD_LIBPROTOC="$(usex libprotoc)" - -Dprotobuf_BUILD_LIBUPB="$(usex libupb)" - -Dprotobuf_BUILD_PROTOBUF_BINARIES="$(usex protobuf)" - -Dprotobuf_BUILD_PROTOC_BINARIES="$(usex protoc)" - -Dprotobuf_BUILD_SHARED_LIBS="yes" - -Dprotobuf_BUILD_TESTS="$(usex test)" - - -Dprotobuf_DISABLE_RTTI="no" - - -Dprotobuf_INSTALL="yes" - -Dprotobuf_INSTALL_EXAMPLES="$(usex examples)" - -Dprotobuf_TEST_XML_OUTDIR="$(usex test)" - - -Dprotobuf_WITH_ZLIB="$(usex zlib)" - -Dprotobuf_VERBOSE="$(usex debug)" - -DCMAKE_MODULE_PATH="${S}/cmake" - ) - use test && mycmakeargs+=( -Dprotobuf_USE_EXTERNAL_GTEST="yes" ) - - cmake_src_configure -} - -src_compile() { - cmake-multilib_src_compile - - if use emacs; then - elisp-compile editors/protobuf-mode.el - fi -} - -src_test() { - local -x srcdir="${S}/src" - - local -x TEST_TMPDIR="${T%/}/TEST_TMPDIR_${ABI}" - mkdir -m 777 "${TEST_TMPDIR}" || die - - setup_test_env() { - ln -sr "${S}/src" "${BUILD_DIR}/include" || die - } - - multilib_foreach_abi setup_test_env - - cmake-multilib_src_test -} - -multilib_src_install_all() { - find "${ED}" -name "*.la" -delete || die - - if [[ ! -f "${ED}/usr/$(get_libdir)/libprotobuf$(get_libname ${SLOT#*/})" ]]; then - eerror "No matching library found with SLOT variable, currently set: ${SLOT}\n" \ - "Expected value: ${ED}/usr/$(get_libdir)/libprotobuf$(get_libname ${SLOT#*/})" - die "Please update SLOT variable" - fi - - insinto /usr/share/vim/vimfiles/syntax - doins editors/proto.vim - insinto /usr/share/vim/vimfiles/ftdetect - doins "${FILESDIR}/proto.vim" - - if use emacs; then - elisp-install "${PN}" editors/protobuf-mode.el* - elisp-site-file-install "${FILESDIR}/70${PN}-gentoo.el" - fi - - if use examples; then - DOCS+=(examples) - docompress -x "/usr/share/doc/${PF}/examples" - fi - - einstalldocs -} - -pkg_postinst() { - use emacs && elisp-site-regen -} - -pkg_postrm() { - use emacs && elisp-site-regen -} diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-25.5.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-25.5.ebuild deleted file mode 100644 index e947731a59e..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-25.5.ebuild +++ /dev/null @@ -1,166 +0,0 @@ -# Copyright 2008-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit cmake-multilib elisp-common multilib - -# NOTE from https://github.com/protocolbuffers/protobuf/blob/main/.gitmodules -ABSEIL_BRANCH="lts_2023_08_02" - -ABSEIL_MIN_VER="${ABSEIL_BRANCH//lts_}" -ABSEIL_MIN_VER="${ABSEIL_MIN_VER//_/}" - -if [[ "${PV}" == *9999 ]]; then - EGIT_REPO_URI="https://github.com/protocolbuffers/protobuf.git" - EGIT_SUBMODULES=( '-*' ) - SLOT="0/9999" - - inherit git-r3 -else - SRC_URI="https://github.com/protocolbuffers/protobuf/releases/download/v${PV}/${P}.tar.gz" - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~mips ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~x64-macos" - SLOT="0/$(ver_cut 1-2).0" -fi - -DESCRIPTION="Google's Protocol Buffers - Extensible mechanism for serializing structured data" -HOMEPAGE="https://protobuf.dev/" - -LICENSE="BSD" -IUSE="conformance debug emacs examples +libprotoc +protobuf +protoc test zlib" - -# Require protobuf for the time being -REQUIRED_USE=" - protobuf - protobuf? ( protoc ) - examples? ( protobuf ) - libprotoc? ( protobuf ) -" - -RESTRICT="!test? ( test )" - -BDEPEND=" - emacs? ( app-editors/emacs:* ) -" - -COMMON_DEPEND=" - >=dev-cpp/abseil-cpp-${ABSEIL_MIN_VER}:=[${MULTILIB_USEDEP}] - zlib? ( sys-libs/zlib[${MULTILIB_USEDEP}] ) -" - -DEPEND=" - ${COMMON_DEPEND} - conformance? ( dev-libs/jsoncpp[${MULTILIB_USEDEP}] ) - test? ( >=dev-cpp/gtest-1.11[${MULTILIB_USEDEP}] ) -" -RDEPEND=" - ${COMMON_DEPEND} - ${BDEPEND} -" - -PATCHES=( - "${FILESDIR}/${PN}-26.1-disable-32-bit-tests.patch" - "${FILESDIR}/${PN}-23.3-static_assert-failure.patch" - "${FILESDIR}/${PN}-27.4-findJsonCpp.patch" -) - -DOCS=( CONTRIBUTORS.txt README.md ) - -src_prepare() { - cmake_src_prepare - - cp "${FILESDIR}/FindJsonCpp.cmake" "${S}/cmake" || die -} - -multilib_src_configure() { - local mycmakeargs=( - -Dprotobuf_ABSL_PROVIDER="package" - -Dprotobuf_JSONCPP_PROVIDER="package" - - -Dprotobuf_BUILD_CONFORMANCE="$(usex test "$(usex conformance)")" - -Dprotobuf_BUILD_LIBPROTOC="$(usex libprotoc)" - -Dprotobuf_BUILD_PROTOBUF_BINARIES="$(usex protobuf)" - -Dprotobuf_BUILD_PROTOC_BINARIES="$(usex protoc)" - -Dprotobuf_BUILD_SHARED_LIBS="yes" - -Dprotobuf_BUILD_TESTS="$(usex test)" - - -Dprotobuf_DISABLE_RTTI="no" - - -Dprotobuf_INSTALL="yes" - -Dprotobuf_TEST_XML_OUTDIR="$(usex test)" - - -Dprotobuf_WITH_ZLIB="$(usex zlib)" - -Dprotobuf_VERBOSE="$(usex debug)" - -DCMAKE_MODULE_PATH="${S}/cmake" - ) - if use protobuf ; then - if use examples ; then - mycmakeargs+=( - -Dprotobuf_BUILD_EXAMPLES="$(usex examples)" - -Dprotobuf_INSTALL_EXAMPLES="$(usex examples)" - ) - fi - fi - - use test && mycmakeargs+=( -Dprotobuf_USE_EXTERNAL_GTEST="yes" ) - - cmake_src_configure -} - -src_compile() { - cmake-multilib_src_compile - - if use emacs; then - elisp-compile editors/protobuf-mode.el - fi -} - -src_test() { - local -x srcdir="${S}/src" - - local -x TEST_TMPDIR="${T%/}/TEST_TMPDIR_${ABI}" - mkdir -m 777 "${TEST_TMPDIR}" || die - - setup_test_env() { - ln -sr "${S}/src" "${BUILD_DIR}/include" || die - } - - multilib_foreach_abi setup_test_env - - cmake-multilib_src_test -} - -multilib_src_install_all() { - find "${ED}" -name "*.la" -delete || die - - if [[ ! -f "${ED}/usr/$(get_libdir)/libprotobuf$(get_libname ${SLOT#*/})" ]]; then - eerror "No matching library found with SLOT variable, currently set: ${SLOT}\n" \ - "Expected value: ${ED}/usr/$(get_libdir)/libprotobuf$(get_libname ${SLOT#*/})" - die "Please update SLOT variable" - fi - - insinto /usr/share/vim/vimfiles/syntax - doins editors/proto.vim - insinto /usr/share/vim/vimfiles/ftdetect - doins "${FILESDIR}/proto.vim" - - if use emacs; then - elisp-install "${PN}" editors/protobuf-mode.el* - elisp-site-file-install "${FILESDIR}/70${PN}-gentoo.el" - fi - - if use examples; then - DOCS+=(examples) - docompress -x "/usr/share/doc/${PF}/examples" - fi - - einstalldocs -} - -pkg_postinst() { - use emacs && elisp-site-regen -} - -pkg_postrm() { - use emacs && elisp-site-regen -} diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-26.1-r2.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-26.1-r2.ebuild deleted file mode 100644 index 422310009a8..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-26.1-r2.ebuild +++ /dev/null @@ -1,125 +0,0 @@ -# Copyright 2008-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit cmake-multilib elisp-common toolchain-funcs - -ABSEIL_BRANCH="lts_2023_08_02" # NOTE from https://github.com/protocolbuffers/protobuf/blob/main/.gitmodules - -ABSEIL_MIN_VER="${ABSEIL_BRANCH//lts_}" -ABSEIL_MIN_VER="${ABSEIL_MIN_VER//_/}" - -if [[ "${PV}" == *9999 ]]; then - EGIT_REPO_URI="https://github.com/protocolbuffers/protobuf.git" - EGIT_SUBMODULES=( '-*' ) - - inherit git-r3 -else - SRC_URI="https://github.com/protocolbuffers/protobuf/archive/v${PV}.tar.gz -> ${P}.tar.gz" - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~mips ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos" -fi - -DESCRIPTION="Google's Protocol Buffers - Extensible mechanism for serializing structured data" -HOMEPAGE="https://protobuf.dev/" - -LICENSE="BSD" -SLOT="0/$(ver_cut 1-2).0" -IUSE="emacs examples test zlib" -RESTRICT="!test? ( test )" - -BDEPEND=" - emacs? ( app-editors/emacs:* ) -" - -COMMON_DEPEND=" - dev-libs/jsoncpp - >=dev-cpp/abseil-cpp-${ABSEIL_MIN_VER}:=[${MULTILIB_USEDEP}] - zlib? ( sys-libs/zlib[${MULTILIB_USEDEP}] ) -" - -DEPEND=" - ${COMMON_DEPEND} - test? ( >=dev-cpp/gtest-1.9[${MULTILIB_USEDEP}] ) -" -RDEPEND=" - ${COMMON_DEPEND} - ${BDEPEND} -" - -PATCHES=( - "${FILESDIR}/${PN}-26.1-disable-32-bit-tests.patch" - "${FILESDIR}/${PN}-23.3-static_assert-failure.patch" -) - -DOCS=( CONTRIBUTORS.txt README.md ) - -src_configure() { - if tc-ld-is-gold; then - # https://sourceware.org/bugzilla/show_bug.cgi?id=24527 - tc-ld-disable-gold - fi - - cmake-multilib_src_configure -} - -multilib_src_configure() { - local mycmakeargs=( - -Dprotobuf_DISABLE_RTTI="yes" # TODO why? - -Dprotobuf_BUILD_EXAMPLES="$(usex examples)" - -Dprotobuf_WITH_ZLIB="$(usex zlib)" - -Dprotobuf_BUILD_TESTS="$(usex test)" - -Dprotobuf_ABSL_PROVIDER="package" - ) - use test && mycmakeargs+=(-Dprotobuf_USE_EXTERNAL_GTEST=ON) - - cmake_src_configure -} - -src_compile() { - cmake-multilib_src_compile - - if use emacs; then - elisp-compile editors/protobuf-mode.el - fi -} - -src_test() { - local -x srcdir="${S}"/src - cmake-multilib_src_test -} - -multilib_src_install_all() { - find "${ED}" -name "*.la" -delete || die - - if [[ ! -f "${ED}/usr/$(get_libdir)/libprotobuf.so.${SLOT#*/}" ]]; then - eerror "No matching library found with SLOT variable, currently set: ${SLOT}\n" \ - "Expected value: ${ED}/usr/$(get_libdir)/libprotobuf.so.${SLOT#*/}" - die "Please update SLOT variable" - fi - - insinto /usr/share/vim/vimfiles/syntax - doins editors/proto.vim - insinto /usr/share/vim/vimfiles/ftdetect - doins "${FILESDIR}/proto.vim" - - if use emacs; then - elisp-install "${PN}" editors/protobuf-mode.el* - elisp-site-file-install "${FILESDIR}/70${PN}-gentoo.el" - fi - - if use examples; then - DOCS+=(examples) - docompress -x "/usr/share/doc/${PF}/examples" - fi - - einstalldocs -} - -pkg_postinst() { - use emacs && elisp-site-regen -} - -pkg_postrm() { - use emacs && elisp-site-regen -} diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-27.2.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-27.2.ebuild deleted file mode 100644 index 5fab1016050..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-27.2.ebuild +++ /dev/null @@ -1,160 +0,0 @@ -# Copyright 2008-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit cmake-multilib elisp-common toolchain-funcs multilib - -ABSEIL_BRANCH="lts_2023_08_02" # NOTE from https://github.com/protocolbuffers/protobuf/blob/main/.gitmodules - -ABSEIL_MIN_VER="${ABSEIL_BRANCH//lts_}" -ABSEIL_MIN_VER="${ABSEIL_MIN_VER//_/}" - -if [[ "${PV}" == *9999 ]]; then - EGIT_REPO_URI="https://github.com/protocolbuffers/protobuf.git" - EGIT_SUBMODULES=( '-*' ) - MY_SLOT="27.2" - - inherit git-r3 -else - SRC_URI="https://github.com/protocolbuffers/protobuf/archive/v${PV}.tar.gz -> ${P}.tar.gz" - KEYWORDS="~alpha amd64 ~arm arm64 ~loong ~mips ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~x64-macos" - MY_SLOT=$(ver_cut 1-2) -fi - -DESCRIPTION="Google's Protocol Buffers - Extensible mechanism for serializing structured data" -HOMEPAGE="https://protobuf.dev/" - -LICENSE="BSD" -SLOT="0/${MY_SLOT}.0" -IUSE="conformance emacs examples +libprotoc libupb +protobuf +protoc test zlib" - -REQUIRED_USE=" - || ( - libprotoc - libupb - protobuf - protoc - ) -" - -RESTRICT="!test? ( test )" - -BDEPEND=" - emacs? ( app-editors/emacs:* ) - !protobuf? ( - >=dev-libs/protobuf-${PV} - ) -" - -COMMON_DEPEND=" - dev-libs/jsoncpp - >=dev-cpp/abseil-cpp-${ABSEIL_MIN_VER}:=[${MULTILIB_USEDEP}] - zlib? ( sys-libs/zlib[${MULTILIB_USEDEP}] ) -" - -DEPEND=" - ${COMMON_DEPEND} - test? ( >=dev-cpp/gtest-1.9[${MULTILIB_USEDEP}] ) -" -RDEPEND=" - ${COMMON_DEPEND} - ${BDEPEND} -" - -PATCHES=( - "${FILESDIR}/${PN}-26.1-disable-32-bit-tests.patch" - "${FILESDIR}/${PN}-23.3-static_assert-failure.patch" -) - -DOCS=( CONTRIBUTORS.txt README.md ) - -# src_prepare() { -# rm "${S}/third_party/utf8_range/" -rf || die -# cmake_src_prepare -# } - -src_configure() { - if tc-ld-is-gold; then - # https://sourceware.org/bugzilla/show_bug.cgi?id=24527 - tc-ld-disable-gold - fi - - cmake-multilib_src_configure -} - -multilib_src_configure() { - local mycmakeargs=( - -Dprotobuf_ABSL_PROVIDER="package" - -Dprotobuf_JSONCPP_PROVIDER="package" - - -Dprotobuf_BUILD_CONFORMANCE="$(usex test "$(usex conformance)")" - -Dprotobuf_BUILD_EXAMPLES="$(usex examples)" - -Dprotobuf_BUILD_LIBPROTOC="$(usex libprotoc)" - -Dprotobuf_BUILD_LIBUPB="$(usex libupb)" - -Dprotobuf_BUILD_PROTOBUF_BINARIES="$(usex protobuf)" - -Dprotobuf_BUILD_PROTOC_BINARIES="$(usex protoc)" - -Dprotobuf_BUILD_SHARED_LIBS="yes" - -Dprotobuf_BUILD_TESTS="$(usex test)" - - -Dprotobuf_DISABLE_RTTI="no" - - -Dprotobuf_INSTALL="yes" - -Dprotobuf_INSTALL_EXAMPLES="$(usex examples)" - -Dprotobuf_TEST_XML_OUTDIR="$(usex test)" - - -Dprotobuf_WITH_ZLIB="$(usex zlib)" - -Dprotobuf_VERBOSE="yes" - ) - use test && mycmakeargs+=( -Dprotobuf_USE_EXTERNAL_GTEST="yes" ) - - cmake_src_configure -} - -src_compile() { - cmake-multilib_src_compile - - if use emacs; then - elisp-compile editors/protobuf-mode.el - fi -} - -src_test() { - local -x srcdir="${S}"/src - cmake-multilib_src_test -} - -multilib_src_install_all() { - find "${ED}" -name "*.la" -delete || die - - if [[ ! -f "${ED}/usr/$(get_libdir)/libprotobuf$(get_libname ${SLOT#*/})" ]]; then - eerror "No matching library found with SLOT variable, currently set: ${SLOT}\n" \ - "Expected value: ${ED}/usr/$(get_libdir)/libprotobuf$(get_libname ${SLOT#*/})" - die "Please update SLOT variable" - fi - - insinto /usr/share/vim/vimfiles/syntax - doins editors/proto.vim - insinto /usr/share/vim/vimfiles/ftdetect - doins "${FILESDIR}/proto.vim" - - if use emacs; then - elisp-install "${PN}" editors/protobuf-mode.el* - elisp-site-file-install "${FILESDIR}/70${PN}-gentoo.el" - fi - - if use examples; then - DOCS+=(examples) - docompress -x "/usr/share/doc/${PF}/examples" - fi - - einstalldocs -} - -pkg_postinst() { - use emacs && elisp-site-regen -} - -pkg_postrm() { - use emacs && elisp-site-regen -} diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-27.4.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-27.4.ebuild deleted file mode 100644 index 30ab416efd8..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-27.4.ebuild +++ /dev/null @@ -1,166 +0,0 @@ -# Copyright 2008-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit cmake-multilib elisp-common multilib - -# NOTE from https://github.com/protocolbuffers/protobuf/blob/main/.gitmodules -ABSEIL_BRANCH="lts_2023_08_02" - -ABSEIL_MIN_VER="${ABSEIL_BRANCH//lts_}" -ABSEIL_MIN_VER="${ABSEIL_MIN_VER//_/}" - -if [[ "${PV}" == *9999 ]]; then - EGIT_REPO_URI="https://github.com/protocolbuffers/protobuf.git" - EGIT_SUBMODULES=( '-*' ) - MY_SLOT="28.0" - - inherit git-r3 -else - SRC_URI="https://github.com/protocolbuffers/protobuf/releases/download/v${PV}/${P}.tar.gz" - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~mips ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~x64-macos" - MY_SLOT=$(ver_cut 1-2) -fi - -DESCRIPTION="Google's Protocol Buffers - Extensible mechanism for serializing structured data" -HOMEPAGE="https://protobuf.dev/" - -LICENSE="BSD" -SLOT="0/${MY_SLOT}.0" -IUSE="conformance debug emacs examples +libprotoc libupb +protobuf +protoc test zlib" - -REQUIRED_USE=" - || ( - libprotoc - libupb - protobuf - protoc - ) -" - -RESTRICT="!test? ( test )" - -BDEPEND=" - emacs? ( app-editors/emacs:* ) - !protobuf? ( - >=dev-libs/protobuf-${PV} - ) -" - -COMMON_DEPEND=" - dev-libs/jsoncpp[${MULTILIB_USEDEP}] - >=dev-cpp/abseil-cpp-${ABSEIL_MIN_VER}:=[${MULTILIB_USEDEP}] - zlib? ( sys-libs/zlib[${MULTILIB_USEDEP}] ) -" - -DEPEND=" - ${COMMON_DEPEND} - test? ( >=dev-cpp/gtest-1.11[${MULTILIB_USEDEP}] ) -" -RDEPEND=" - ${COMMON_DEPEND} - ${BDEPEND} -" - -PATCHES=( - "${FILESDIR}/${PN}-26.1-disable-32-bit-tests.patch" - "${FILESDIR}/${PN}-23.3-static_assert-failure.patch" - "${FILESDIR}/${PN}-27.4-findJsonCpp.patch" - "${FILESDIR}/${PN}-28.0-disable-test_upb-lto.patch" -) - -DOCS=( CONTRIBUTORS.txt README.md ) - -src_prepare() { - cmake_src_prepare - - cp "${FILESDIR}/FindJsonCpp.cmake" "${S}/cmake" || die -} - -multilib_src_configure() { - local mycmakeargs=( - -Dprotobuf_ABSL_PROVIDER="package" - -Dprotobuf_JSONCPP_PROVIDER="package" - - -Dprotobuf_BUILD_CONFORMANCE="$(usex test "$(usex conformance)")" - -Dprotobuf_BUILD_EXAMPLES="$(usex examples)" - -Dprotobuf_BUILD_LIBPROTOC="$(usex libprotoc)" - -Dprotobuf_BUILD_LIBUPB="$(usex libupb)" - -Dprotobuf_BUILD_PROTOBUF_BINARIES="$(usex protobuf)" - -Dprotobuf_BUILD_PROTOC_BINARIES="$(usex protoc)" - -Dprotobuf_BUILD_SHARED_LIBS="yes" - -Dprotobuf_BUILD_TESTS="$(usex test)" - - -Dprotobuf_DISABLE_RTTI="no" - - -Dprotobuf_INSTALL="yes" - -Dprotobuf_INSTALL_EXAMPLES="$(usex examples)" - -Dprotobuf_TEST_XML_OUTDIR="$(usex test)" - - -Dprotobuf_WITH_ZLIB="$(usex zlib)" - -Dprotobuf_VERBOSE="$(usex debug)" - -DCMAKE_MODULE_PATH="${S}/cmake" - ) - use test && mycmakeargs+=( -Dprotobuf_USE_EXTERNAL_GTEST="yes" ) - - cmake_src_configure -} - -src_compile() { - cmake-multilib_src_compile - - if use emacs; then - elisp-compile editors/protobuf-mode.el - fi -} - -src_test() { - local -x srcdir="${S}/src" - - local -x TEST_TMPDIR="${T%/}/TEST_TMPDIR_${ABI}" - mkdir -m 777 "${TEST_TMPDIR}" || die - - setup_test_env() { - ln -sr "${S}/src" "${BUILD_DIR}/include" || die - } - - multilib_foreach_abi setup_test_env - - cmake-multilib_src_test -} - -multilib_src_install_all() { - find "${ED}" -name "*.la" -delete || die - - if [[ ! -f "${ED}/usr/$(get_libdir)/libprotobuf$(get_libname ${SLOT#*/})" ]]; then - eerror "No matching library found with SLOT variable, currently set: ${SLOT}\n" \ - "Expected value: ${ED}/usr/$(get_libdir)/libprotobuf$(get_libname ${SLOT#*/})" - die "Please update SLOT variable" - fi - - insinto /usr/share/vim/vimfiles/syntax - doins editors/proto.vim - insinto /usr/share/vim/vimfiles/ftdetect - doins "${FILESDIR}/proto.vim" - - if use emacs; then - elisp-install "${PN}" editors/protobuf-mode.el* - elisp-site-file-install "${FILESDIR}/70${PN}-gentoo.el" - fi - - if use examples; then - DOCS+=(examples) - docompress -x "/usr/share/doc/${PF}/examples" - fi - - einstalldocs -} - -pkg_postinst() { - use emacs && elisp-site-regen -} - -pkg_postrm() { - use emacs && elisp-site-regen -} diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-27.5.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-27.5.ebuild deleted file mode 100644 index 16f078b651a..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-27.5.ebuild +++ /dev/null @@ -1,175 +0,0 @@ -# Copyright 2008-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit cmake-multilib dot-a elisp-common multilib - -# NOTE from https://github.com/protocolbuffers/protobuf/blob/main/.gitmodules -ABSEIL_BRANCH="lts_2023_08_02" - -ABSEIL_MIN_VER="${ABSEIL_BRANCH//lts_}" -ABSEIL_MIN_VER="${ABSEIL_MIN_VER//_/}" - -if [[ "${PV}" == *9999 ]]; then - EGIT_REPO_URI="https://github.com/protocolbuffers/protobuf.git" - EGIT_SUBMODULES=( '-*' ) - MY_SLOT="28.0" - - inherit git-r3 -else - SRC_URI="https://github.com/protocolbuffers/protobuf/releases/download/v${PV}/${P}.tar.gz" - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~mips ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~x64-macos" - MY_SLOT=$(ver_cut 1-2) -fi - -DESCRIPTION="Google's Protocol Buffers - Extensible mechanism for serializing structured data" -HOMEPAGE="https://protobuf.dev/" - -LICENSE="BSD" -SLOT="0/${MY_SLOT}.0" -IUSE="conformance debug emacs examples +libprotoc libupb +protobuf +protoc test zlib" - -# Require protobuf for the time being -REQUIRED_USE=" - protobuf - examples? ( protobuf protoc ) - libprotoc? ( protobuf ) - libupb? ( protobuf ) - protoc? ( protobuf ) -" - -RESTRICT="!test? ( test )" - -BDEPEND=" - emacs? ( app-editors/emacs:* ) -" - -COMMON_DEPEND=" - >=dev-cpp/abseil-cpp-${ABSEIL_MIN_VER}:=[${MULTILIB_USEDEP}] - zlib? ( sys-libs/zlib[${MULTILIB_USEDEP}] ) -" - -DEPEND=" - ${COMMON_DEPEND} - conformance? ( dev-libs/jsoncpp[${MULTILIB_USEDEP}] ) - test? ( >=dev-cpp/gtest-1.11[${MULTILIB_USEDEP}] ) -" -RDEPEND=" - ${COMMON_DEPEND} - ${BDEPEND} -" - -PATCHES=( - "${FILESDIR}/${PN}-26.1-disable-32-bit-tests.patch" - "${FILESDIR}/${PN}-23.3-static_assert-failure.patch" - "${FILESDIR}/${PN}-27.4-findJsonCpp.patch" - "${FILESDIR}/${PN}-28.0-disable-test_upb-lto.patch" -) - -DOCS=( CONTRIBUTORS.txt README.md ) - -src_prepare() { - cmake_src_prepare - - cp "${FILESDIR}/FindJsonCpp.cmake" "${S}/cmake" || die -} - -multilib_src_configure() { - # Currently, the only static library is libupb (and there is no - # USE=static-libs), so optimize away the fat-lto build time penalty. - use libupb && lto-guarantee-fat - - local mycmakeargs=( - -Dprotobuf_ABSL_PROVIDER="package" - -Dprotobuf_JSONCPP_PROVIDER="package" - - -Dprotobuf_BUILD_CONFORMANCE="$(usex test "$(usex conformance)")" - -Dprotobuf_BUILD_LIBPROTOC="$(usex libprotoc)" - -Dprotobuf_BUILD_LIBUPB="$(usex libupb)" - -Dprotobuf_BUILD_PROTOBUF_BINARIES="$(usex protobuf)" - -Dprotobuf_BUILD_PROTOC_BINARIES="$(usex protoc)" - -Dprotobuf_BUILD_SHARED_LIBS="yes" - -Dprotobuf_BUILD_TESTS="$(usex test)" - - -Dprotobuf_DISABLE_RTTI="no" - - -Dprotobuf_INSTALL="yes" - -Dprotobuf_TEST_XML_OUTDIR="$(usex test)" - - -Dprotobuf_WITH_ZLIB="$(usex zlib)" - -Dprotobuf_VERBOSE="$(usex debug)" - -DCMAKE_MODULE_PATH="${S}/cmake" - ) - if use protobuf ; then - if use examples ; then - mycmakeargs+=( - -Dprotobuf_BUILD_EXAMPLES="$(usex examples)" - -Dprotobuf_INSTALL_EXAMPLES="$(usex examples)" - ) - fi - fi - - use test && mycmakeargs+=( -Dprotobuf_USE_EXTERNAL_GTEST="yes" ) - - cmake_src_configure -} - -src_compile() { - cmake-multilib_src_compile - - if use emacs; then - elisp-compile editors/protobuf-mode.el - fi -} - -src_test() { - local -x srcdir="${S}/src" - - local -x TEST_TMPDIR="${T%/}/TEST_TMPDIR_${ABI}" - mkdir -m 777 "${TEST_TMPDIR}" || die - - setup_test_env() { - ln -sr "${S}/src" "${BUILD_DIR}/include" || die - } - - multilib_foreach_abi setup_test_env - - cmake-multilib_src_test -} - -multilib_src_install_all() { - use libupb && strip-lto-bytecode - find "${ED}" -name "*.la" -delete || die - - if [[ ! -f "${ED}/usr/$(get_libdir)/libprotobuf$(get_libname ${SLOT#*/})" ]]; then - eerror "No matching library found with SLOT variable, currently set: ${SLOT}\n" \ - "Expected value: ${ED}/usr/$(get_libdir)/libprotobuf$(get_libname ${SLOT#*/})" - die "Please update SLOT variable" - fi - - insinto /usr/share/vim/vimfiles/syntax - doins editors/proto.vim - insinto /usr/share/vim/vimfiles/ftdetect - doins "${FILESDIR}/proto.vim" - - if use emacs; then - elisp-install "${PN}" editors/protobuf-mode.el* - elisp-site-file-install "${FILESDIR}/70${PN}-gentoo.el" - fi - - if use examples; then - DOCS+=(examples) - docompress -x "/usr/share/doc/${PF}/examples" - fi - - einstalldocs -} - -pkg_postinst() { - use emacs && elisp-site-regen -} - -pkg_postrm() { - use emacs && elisp-site-regen -} diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-29.2.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-29.2.ebuild deleted file mode 100644 index d1c1fc5e951..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-29.2.ebuild +++ /dev/null @@ -1,176 +0,0 @@ -# Copyright 2008-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit cmake-multilib elisp-common multilib - -# NOTE from https://github.com/protocolbuffers/protobuf/blob/main/.gitmodules -ABSEIL_BRANCH="lts_2023_08_02" - -ABSEIL_MIN_VER="${ABSEIL_BRANCH//lts_}" -ABSEIL_MIN_VER="${ABSEIL_MIN_VER//_/}" - -if [[ "${PV}" == *9999 ]]; then - EGIT_REPO_URI="https://github.com/protocolbuffers/protobuf.git" - EGIT_SUBMODULES=( '-*' ) - SLOT="0/9999" - - inherit git-r3 -else - SRC_URI="https://github.com/protocolbuffers/protobuf/releases/download/v${PV}/${P}.tar.gz" - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~x64-macos" - SLOT="0/$(ver_cut 1-2).0" -fi - -DESCRIPTION="Google's Protocol Buffers - Extensible mechanism for serializing structured data" -HOMEPAGE="https://protobuf.dev/" - -LICENSE="BSD" -IUSE="conformance debug emacs examples +libprotoc libupb +protobuf +protoc test zlib" - -# Require protobuf for the time being -REQUIRED_USE=" - protobuf - protobuf? ( protoc ) - examples? ( protobuf ) - libprotoc? ( protobuf ) - libupb? ( protobuf ) -" - -RESTRICT="!test? ( test )" - -BDEPEND=" - emacs? ( app-editors/emacs:* ) -" - -COMMON_DEPEND=" - >=dev-cpp/abseil-cpp-${ABSEIL_MIN_VER}:=[${MULTILIB_USEDEP}] - zlib? ( sys-libs/zlib[${MULTILIB_USEDEP}] ) -" - -DEPEND=" - ${COMMON_DEPEND} - conformance? ( dev-libs/jsoncpp[${MULTILIB_USEDEP}] ) - test? ( >=dev-cpp/gtest-1.11[${MULTILIB_USEDEP}] ) -" -RDEPEND=" - ${COMMON_DEPEND} - ${BDEPEND} -" - -PATCHES=( - "${FILESDIR}/${PN}-23.3-static_assert-failure.patch" - "${FILESDIR}/${PN}-27.4-findJsonCpp.patch" - "${FILESDIR}/${PN}-28.0-disable-test_upb-lto.patch" -) - -DOCS=( CONTRIBUTORS.txt README.md ) - -src_prepare() { - cmake_src_prepare - - cp "${FILESDIR}/FindJsonCpp.cmake" "${S}/cmake" || die -} - -multilib_src_configure() { - local mycmakeargs=( - -Dprotobuf_ABSL_PROVIDER="package" - -Dprotobuf_JSONCPP_PROVIDER="package" - - -Dprotobuf_BUILD_CONFORMANCE="$(usex test "$(usex conformance)")" - -Dprotobuf_BUILD_LIBPROTOC="$(usex libprotoc)" - -Dprotobuf_BUILD_LIBUPB="$(usex libupb)" - -Dprotobuf_BUILD_PROTOBUF_BINARIES="$(usex protobuf)" - -Dprotobuf_BUILD_PROTOC_BINARIES="$(usex protoc)" - -Dprotobuf_BUILD_SHARED_LIBS="yes" - -Dprotobuf_BUILD_TESTS="$(usex test)" - - -Dprotobuf_DISABLE_RTTI="no" - - -Dprotobuf_INSTALL="yes" - -Dprotobuf_TEST_XML_OUTDIR="$(usex test)" - - -Dprotobuf_WITH_ZLIB="$(usex zlib)" - -Dprotobuf_VERBOSE="$(usex debug)" - -DCMAKE_MODULE_PATH="${S}/cmake" - ) - if use protobuf ; then - if use examples ; then - mycmakeargs+=( - -Dprotobuf_BUILD_EXAMPLES="$(usex examples)" - -Dprotobuf_INSTALL_EXAMPLES="$(usex examples)" - ) - fi - fi - - use test && mycmakeargs+=( -Dprotobuf_USE_EXTERNAL_GTEST="yes" ) - - cmake_src_configure -} - -src_compile() { - cmake-multilib_src_compile - - if use emacs; then - elisp-compile editors/protobuf-mode.el - fi -} - -src_test() { - local -x srcdir="${S}/src" - - local -x TEST_TMPDIR="${T%/}/TEST_TMPDIR_${ABI}" - mkdir -m 777 "${TEST_TMPDIR}" || die - - setup_test_env() { - ln -sr "${S}/src" "${BUILD_DIR}/include" || die - } - - multilib_foreach_abi setup_test_env - - # Do headstands for LTO # 942985 - local -x GTEST_FILTER - GTEST_FILTER="-FileDescriptorSetSource/EncodeDecodeTest*" - - cmake-multilib_src_test - - GTEST_FILTER="${GTEST_FILTER//-/}" - - cmake-multilib_src_test -} - -multilib_src_install_all() { - find "${ED}" -name "*.la" -delete || die - - if [[ ! -f "${ED}/usr/$(get_libdir)/libprotobuf$(get_libname ${SLOT#*/})" ]]; then - eerror "No matching library found with SLOT variable, currently set: ${SLOT}\n" \ - "Expected value: ${ED}/usr/$(get_libdir)/libprotobuf$(get_libname ${SLOT#*/})" - die "Please update SLOT variable" - fi - - insinto /usr/share/vim/vimfiles/syntax - doins editors/proto.vim - insinto /usr/share/vim/vimfiles/ftdetect - doins "${FILESDIR}/proto.vim" - - if use emacs; then - elisp-install "${PN}" editors/protobuf-mode.el* - elisp-site-file-install "${FILESDIR}/70${PN}-gentoo.el" - fi - - if use examples; then - DOCS+=(examples) - docompress -x "/usr/share/doc/${PF}/examples" - fi - - einstalldocs -} - -pkg_postinst() { - use emacs && elisp-site-regen -} - -pkg_postrm() { - use emacs && elisp-site-regen -} diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-29.4.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-29.5.ebuild similarity index 84% rename from sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-29.4.ebuild rename to sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-29.5.ebuild index ea46bda5641..dbfa1f78724 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-29.4.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-29.5.ebuild @@ -5,11 +5,8 @@ EAPI=8 inherit cmake-multilib dot-a elisp-common multilib -# NOTE from https://github.com/protocolbuffers/protobuf/blob/main/.gitmodules -ABSEIL_BRANCH="lts_2023_08_02" - -ABSEIL_MIN_VER="${ABSEIL_BRANCH//lts_}" -ABSEIL_MIN_VER="${ABSEIL_MIN_VER//_/}" +# NOTE from https://github.com/protocolbuffers/protobuf/blob/main/cmake/dependencies.cmake +ABSEIL_MIN_VER="20250127.0" if [[ "${PV}" == *9999 ]]; then EGIT_REPO_URI="https://github.com/protocolbuffers/protobuf.git" @@ -67,8 +64,8 @@ RDEPEND=" PATCHES=( "${FILESDIR}/${PN}-23.3-static_assert-failure.patch" - "${FILESDIR}/${PN}-27.4-findJsonCpp.patch" "${FILESDIR}/${PN}-28.0-disable-test_upb-lto.patch" + "${FILESDIR}/${PN}-30.0-findJsonCpp.patch" ) DOCS=( CONTRIBUTORS.txt README.md ) @@ -85,9 +82,6 @@ multilib_src_configure() { use libupb && lto-guarantee-fat local mycmakeargs=( - -Dprotobuf_ABSL_PROVIDER="package" - -Dprotobuf_JSONCPP_PROVIDER="package" - -Dprotobuf_BUILD_CONFORMANCE="$(usex test "$(usex conformance)")" -Dprotobuf_BUILD_LIBPROTOC="$(usex libprotoc)" -Dprotobuf_BUILD_LIBUPB="$(usex libupb)" @@ -104,6 +98,9 @@ multilib_src_configure() { -Dprotobuf_WITH_ZLIB="$(usex zlib)" -Dprotobuf_VERBOSE="$(usex debug)" -DCMAKE_MODULE_PATH="${S}/cmake" + + -Dprotobuf_LOCAL_DEPENDENCIES_ONLY="yes" + # -Dprotobuf_FORCE_FETCH_DEPENDENCIES="no" ) if use protobuf ; then if use examples ; then @@ -114,8 +111,6 @@ multilib_src_configure() { fi fi - use test && mycmakeargs+=( -Dprotobuf_USE_EXTERNAL_GTEST="yes" ) - cmake_src_configure } @@ -130,18 +125,19 @@ src_compile() { src_test() { local -x srcdir="${S}/src" - local -x TEST_TMPDIR="${T%/}/TEST_TMPDIR_${ABI}" - mkdir -m 777 "${TEST_TMPDIR}" || die + # we override here to inject env vars + multilib_src_test() { + local -x TEST_TMPDIR="${T%/}/TEST_TMPDIR_${ABI}" + mkdir -p -m 770 "${TEST_TMPDIR}" || die - setup_test_env() { - ln -sr "${S}/src" "${BUILD_DIR}/include" || die - } + ln -srf "${S}/src" "${BUILD_DIR}/include" || die - multilib_foreach_abi setup_test_env + cmake_src_test "${_cmake_args[@]}" + } # Do headstands for LTO # 942985 local -x GTEST_FILTER - GTEST_FILTER="-FileDescriptorSetSource/EncodeDecodeTest*" + GTEST_FILTER="-FileDescriptorSetSource/EncodeDecodeTest*:LazilyBuildDependenciesTest.GeneratedFile:PythonGeneratorTest/PythonGeneratorTest.PythonWithCppFeatures/*" cmake-multilib_src_test @@ -154,9 +150,9 @@ multilib_src_install_all() { use libupb && strip-lto-bytecode find "${ED}" -name "*.la" -delete || die - if [[ ! -f "${ED}/usr/$(get_libdir)/libprotobuf$(get_libname ${SLOT#*/})" ]]; then + if [[ ! -f "${ED}/usr/$(get_libdir)/libprotobuf$(get_libname "${SLOT#*/}")" ]]; then eerror "No matching library found with SLOT variable, currently set: ${SLOT}\n" \ - "Expected value: ${ED}/usr/$(get_libdir)/libprotobuf$(get_libname ${SLOT#*/})" + "Expected value: ${ED}/usr/$(get_libdir)/libprotobuf$(get_libname "${SLOT#*/}")" die "Please update SLOT variable" fi diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-28.3-r1.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-32.1.ebuild similarity index 61% rename from sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-28.3-r1.ebuild rename to sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-32.1.ebuild index 659a39c8264..8c53aec0673 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-28.3-r1.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-32.1.ebuild @@ -3,13 +3,10 @@ EAPI=8 -inherit cmake-multilib elisp-common multilib +inherit cmake-multilib dot-a elisp-common flag-o-matic multilib toolchain-funcs -# NOTE from https://github.com/protocolbuffers/protobuf/blob/main/.gitmodules -ABSEIL_BRANCH="lts_2023_08_02" - -ABSEIL_MIN_VER="${ABSEIL_BRANCH//lts_}" -ABSEIL_MIN_VER="${ABSEIL_MIN_VER//_/}" +# NOTE from https://github.com/protocolbuffers/protobuf/blob/main/cmake/dependencies.cmake +ABSEIL_MIN_VER="20250127.0" if [[ "${PV}" == *9999 ]]; then EGIT_REPO_URI="https://github.com/protocolbuffers/protobuf.git" @@ -19,7 +16,7 @@ if [[ "${PV}" == *9999 ]]; then inherit git-r3 else SRC_URI="https://github.com/protocolbuffers/protobuf/releases/download/v${PV}/${P}.tar.gz" - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~mips ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~x64-macos" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~x64-macos" SLOT="0/$(ver_cut 1-2).0" fi @@ -27,7 +24,7 @@ DESCRIPTION="Google's Protocol Buffers - Extensible mechanism for serializing st HOMEPAGE="https://protobuf.dev/" LICENSE="BSD" -IUSE="conformance debug emacs examples +libprotoc libupb +protobuf +protoc test zlib" +IUSE="conformance debug emacs examples +libprotoc +libupb +protobuf +protoc test zlib" # Require protobuf for the time being REQUIRED_USE=" @@ -36,6 +33,7 @@ REQUIRED_USE=" examples? ( protobuf ) libprotoc? ( protobuf ) libupb? ( protobuf ) + protoc? ( libupb ) " RESTRICT="!test? ( test )" @@ -66,10 +64,9 @@ RDEPEND=" " PATCHES=( - "${FILESDIR}/${PN}-26.1-disable-32-bit-tests.patch" "${FILESDIR}/${PN}-23.3-static_assert-failure.patch" - "${FILESDIR}/${PN}-27.4-findJsonCpp.patch" - "${FILESDIR}/${PN}-28.0-disable-test_upb-lto.patch" + # "${FILESDIR}/${PN}-28.0-disable-test_upb-lto.patch" # applied manually + "${FILESDIR}/${PN}-30.0-findJsonCpp.patch" ) DOCS=( CONTRIBUTORS.txt README.md ) @@ -77,14 +74,23 @@ DOCS=( CONTRIBUTORS.txt README.md ) src_prepare() { cmake_src_prepare +# if tc-is-lto; then +# eapply "${FILESDIR}/${PN}-28.0-disable-test_upb-lto.patch" +# fi + cp "${FILESDIR}/FindJsonCpp.cmake" "${S}/cmake" || die } multilib_src_configure() { - local mycmakeargs=( - -Dprotobuf_ABSL_PROVIDER="package" - -Dprotobuf_JSONCPP_PROVIDER="package" + use libupb && filter-lto + # Currently, the only static library is libupb (and there is no + # USE=static-libs), so optimize away the fat-lto build time penalty. + use libupb && lto-guarantee-fat + + use libupb && filter-lto + + local mycmakeargs=( -Dprotobuf_BUILD_CONFORMANCE="$(usex test "$(usex conformance)")" -Dprotobuf_BUILD_LIBPROTOC="$(usex libprotoc)" -Dprotobuf_BUILD_LIBUPB="$(usex libupb)" @@ -101,6 +107,9 @@ multilib_src_configure() { -Dprotobuf_WITH_ZLIB="$(usex zlib)" -Dprotobuf_VERBOSE="$(usex debug)" -DCMAKE_MODULE_PATH="${S}/cmake" + + -Dprotobuf_LOCAL_DEPENDENCIES_ONLY="yes" + # -Dprotobuf_FORCE_FETCH_DEPENDENCIES="no" ) if use protobuf ; then if use examples ; then @@ -111,8 +120,6 @@ multilib_src_configure() { fi fi - use test && mycmakeargs+=( -Dprotobuf_USE_EXTERNAL_GTEST="yes" ) - cmake_src_configure } @@ -124,35 +131,61 @@ src_compile() { fi } +# we override here to inject env vars +multilib_src_test() { + local -x TEST_TMPDIR="${T%/}/TEST_TMPDIR_${ABI}" + mkdir -p -m 770 "${TEST_TMPDIR}" || die + + ln -srf "${S}/src" "${BUILD_DIR}/include" || die + + cmake_src_test "${_cmake_args[@]}" +} + src_test() { local -x srcdir="${S}/src" - local -x TEST_TMPDIR="${T%/}/TEST_TMPDIR_${ABI}" - mkdir -m 777 "${TEST_TMPDIR}" || die - - setup_test_env() { - ln -sr "${S}/src" "${BUILD_DIR}/include" || die - } +# local CMAKE_SKIP_TESTS=( +# "^full-test$" +# ) - multilib_foreach_abi setup_test_env + local GTEST_SKIP_TESTS=( + "PackedTest/12.DecodeEmptyPackedField" + ) - # Do headstands for LTO # 942985 - local -x GTEST_FILTER - GTEST_FILTER="-FileDescriptorSetSource/EncodeDecodeTest*" + if tc-is-lto; then + # Do headstands for LTO # 942985 + GTEST_SKIP_TESTS+=( + "FileDescriptorSetSource/EncodeDecodeTest*" + "LazilyBuildDependenciesTest.GeneratedFile" + "PythonGeneratorTest/PythonGeneratorTest.PythonWithCppFeatures/*" + ) + fi - cmake-multilib_src_test + if [[ ! -v GTEST_FILTER ]]; then + local -x GTEST_FILTER + fi - GTEST_FILTER="${GTEST_FILTER//-/}" + [[ -n ${GTEST_RUN_TESTS[*]} ]] && GTEST_FILTER+="$(IFS=':' ; echo "${GTEST_SKIP_TESTS[*]}")" + [[ -n ${GTEST_SKIP_TESTS[*]} ]] && GTEST_FILTER+="${GTEST_FILTER+:}-$(IFS=':' ; echo "${GTEST_SKIP_TESTS[*]}")" cmake-multilib_src_test + +# if tc-is-lto; then +# # GTEST_FILTER="${GTEST_FILTER//-/}" +# GTEST_FILTER="$(IFS=':' ; echo "${GTEST_SKIP_TESTS[*]}")" +# +# cmake-multilib_src_test +# fi } multilib_src_install_all() { + use libupb && strip-lto-bytecode + find "${ED}" -name "*.la" -delete || die - if [[ ! -f "${ED}/usr/$(get_libdir)/libprotobuf$(get_libname ${SLOT#*/})" ]]; then + if [[ ! -f "${ED}/usr/$(get_libdir)/libprotobuf$(get_libname "${SLOT#*/}")" ]]; then eerror "No matching library found with SLOT variable, currently set: ${SLOT}\n" \ - "Expected value: ${ED}/usr/$(get_libdir)/libprotobuf$(get_libname ${SLOT#*/})" + "Expected value: ${ED}/usr/$(get_libdir)/libprotobuf$(get_libname "${SLOT#*/}")" die "Please update SLOT variable" fi diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-9999.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-9999.ebuild index d9d8b3bf748..1df6a650e0c 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-9999.ebuild @@ -3,7 +3,7 @@ EAPI=8 -inherit cmake-multilib dot-a elisp-common flag-o-matic multilib +inherit cmake-multilib dot-a elisp-common flag-o-matic multilib toolchain-funcs # NOTE from https://github.com/protocolbuffers/protobuf/blob/main/cmake/dependencies.cmake ABSEIL_MIN_VER="20250127.0" @@ -24,7 +24,7 @@ DESCRIPTION="Google's Protocol Buffers - Extensible mechanism for serializing st HOMEPAGE="https://protobuf.dev/" LICENSE="BSD" -IUSE="conformance debug emacs examples +libprotoc libupb +protobuf +protoc test zlib" +IUSE="conformance debug emacs examples +libprotoc +libupb +protobuf +protoc test zlib" # Require protobuf for the time being REQUIRED_USE=" @@ -33,6 +33,7 @@ REQUIRED_USE=" examples? ( protobuf ) libprotoc? ( protobuf ) libupb? ( protobuf ) + protoc? ( libupb ) " RESTRICT="!test? ( test )" @@ -64,7 +65,7 @@ RDEPEND=" PATCHES=( "${FILESDIR}/${PN}-23.3-static_assert-failure.patch" - "${FILESDIR}/${PN}-28.0-disable-test_upb-lto.patch" + # "${FILESDIR}/${PN}-28.0-disable-test_upb-lto.patch" # applied manually "${FILESDIR}/${PN}-30.0-findJsonCpp.patch" ) @@ -73,13 +74,17 @@ DOCS=( CONTRIBUTORS.txt README.md ) src_prepare() { cmake_src_prepare +# if tc-is-lto; then +# eapply "${FILESDIR}/${PN}-28.0-disable-test_upb-lto.patch" +# fi + cp "${FILESDIR}/FindJsonCpp.cmake" "${S}/cmake" || die } multilib_src_configure() { # bug #963340 (seems to only happen when upgrading from older pb, # possibly w/o tests too). - filter-lto + use libupb && filter-lto # Currently, the only static library is libupb (and there is no # USE=static-libs), so optimize away the fat-lto build time penalty. @@ -126,28 +131,45 @@ src_compile() { fi } -src_test() { - local -x srcdir="${S}/src" +# we override here to inject env vars +multilib_src_test() { + local -x TEST_TMPDIR="${T%/}/TEST_TMPDIR_${ABI}" + mkdir -p -m 770 "${TEST_TMPDIR}" || die - # we override here to inject env vars - multilib_src_test() { - local -x TEST_TMPDIR="${T%/}/TEST_TMPDIR_${ABI}" - mkdir -p -m 770 "${TEST_TMPDIR}" || die + ln -srf "${S}/src" "${BUILD_DIR}/include" || die - ln -srf "${S}/src" "${BUILD_DIR}/include" || die + cmake_src_test "${_cmake_args[@]}" +} - cmake_src_test "${_cmake_args[@]}" - } +src_test() { + local -x srcdir="${S}/src" - # Do headstands for LTO # 942985 - local -x GTEST_FILTER - GTEST_FILTER="-FileDescriptorSetSource/EncodeDecodeTest*:LazilyBuildDependenciesTest.GeneratedFile:PythonGeneratorTest/PythonGeneratorTest.PythonWithCppFeatures/*" + local GTEST_SKIP_TESTS=( + "PackedTest/12.DecodeEmptyPackedField" + ) - cmake-multilib_src_test + if tc-is-lto; then + # Do headstands for LTO # 942985 + GTEST_SKIP_TESTS+=( + "FileDescriptorSetSource/EncodeDecodeTest*" + "LazilyBuildDependenciesTest.GeneratedFile" + "PythonGeneratorTest/PythonGeneratorTest.PythonWithCppFeatures/*" + ) + fi - GTEST_FILTER="${GTEST_FILTER//-/}" + if [[ ! -v GTEST_FILTER ]]; then + local -x GTEST_FILTER + fi + [[ -n ${GTEST_RUN_TESTS[*]} ]] && GTEST_FILTER+="$(IFS=':' ; echo "${GTEST_SKIP_TESTS[*]}")" + [[ -n ${GTEST_SKIP_TESTS[*]} ]] && GTEST_FILTER+="${GTEST_FILTER+:}-$(IFS=':' ; echo "${GTEST_SKIP_TESTS[*]}")" cmake-multilib_src_test + +# if tc-is-lto; then +# GTEST_FILTER="${GTEST_FILTER//-/}" +# +# cmake-multilib_src_test +# fi } multilib_src_install_all() { diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/tree-sitter/Manifest b/sdk_container/src/third_party/portage-stable/dev-libs/tree-sitter/Manifest index 679072f48dd..0753b4a9881 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/tree-sitter/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-libs/tree-sitter/Manifest @@ -1,5 +1,4 @@ -DIST tree-sitter-0.23.0.tar.gz 2977346 BLAKE2B e10846d5bd0a6aa1ecac362e2ab2ccf0f0bdb17c5fde796d8d65f8bc84a6e054d86c18a42e66e8effef865f95013c38ff6bd6ab5498a680ae172d7d57020604e SHA512 ab821be564ac7223cc4f9659c08922a78016af9dd3bd69166706fb6a889ac175ba2712a337a1303aceb8f44beaf58640a183e77dddc2c57e35da23079d0cd7b9 DIST tree-sitter-0.24.3.tar.gz 3018668 BLAKE2B fa703b6250e11274d0c5ebccb741cc41f521cc5e882383d8f891369540ce6b3b4b048eddb4d0c88186e57516e2d01977e76b42352f26759b3f6093a339cc6a11 SHA512 2d934c03b0ee71419654d03bf6e4ca759b4ef3217b8837fcaef64ee5b4bc8ea8298ff685ae4aaa477b615d11d538ff960b92529b11f13e936b85bad52e369cd3 -DIST tree-sitter-0.25.3.tar.gz 856455 BLAKE2B 4527d13ea702dced09d9227ad9f6a18484e8517c5da1840c22c5e69686084dbc46de0c07e7e06980e6dde4cf07791fe88fba10f90684a2ef29b58f84b59a2176 SHA512 a626dcea5378774511aa1ef669e4dbada3079440b596882172a676c61e53aa6f701b537e3575851af9e10b1e264da25a9f6487b01f43a896cf1a22d58ca7e623 +DIST tree-sitter-0.25.10.tar.gz 864648 BLAKE2B ae80d0e995cc5e3b40198caa3a7845f209f7df87948020d6b0a6669899bbeb113d852e2197cdaf1fe54944cdc8362cb73487af33960969fac087f45d33025c48 SHA512 f0465a2fabe303c1b62f1f55ed08aa57372ac11370d229adcccd99b5e8067be53e92da281cdfbcd034e2ecefb33ac90a119eeac9035670ac8fbaa4242cb87a11 DIST tree-sitter-0.25.6.tar.gz 857070 BLAKE2B 3bb6b6130e1a96c96b5af4608bf60f8bbd00cbf1fdc9905b7a6169db52351c2ae3a907eca444363ab2b3185a54d0080aa487cbe252e6e015c1cd7a735e420679 SHA512 47213b68233d376e145e3f42b4674d64e7ff27436f4a028e751d9ad8494469ff67b002ce184346d3f6848df2c91386c28127827c43a8bea34da5e84f2530f02f DIST tree-sitter-0.25.8.tar.gz 857462 BLAKE2B aa3f0d9056544bb6ef1127723563449c7672e06b5289e1596f2c1b5826905c578830c7e6c3bc58a91e388d647a5a5629e71f5f0af2a431e73c3be4f93ce5b6f4 SHA512 0d26d0699f61fa27b5adbc298ff53f8e0f5b9f2f1b216744200f6f50cff777c9c5a5a5b92304a4d1889fccd9d8a6dd6b7d4947bac907a91850322281f754ea53 diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/tree-sitter/tree-sitter-0.23.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/tree-sitter/tree-sitter-0.23.0.ebuild deleted file mode 100644 index 20863acffab..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-libs/tree-sitter/tree-sitter-0.23.0.ebuild +++ /dev/null @@ -1,50 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 -inherit optfeature toolchain-funcs - -DESCRIPTION="Tree-sitter is a parser generator tool and an incremental parsing library" -HOMEPAGE="https://github.com/tree-sitter/tree-sitter" - -if [[ ${PV} == *9999* ]]; then - inherit git-r3 - EGIT_REPO_URI="https://github.com/${PN}/${PN}" -else - SRC_URI="https://github.com/${PN}/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz" - KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos" -fi - -LICENSE="MIT" -# ABI is not stable. Revisit after tree-sitter-1.0. -# https://bugs.gentoo.org/930039 -# https://github.com/tree-sitter/tree-sitter/pull/3302 -SLOT="0/${PV}" -RESTRICT="test" # tests are for CLI and not the lib - -PATCHES=( - "${FILESDIR}/${PN}-0.22.2-no-static.patch" -) - -src_prepare() { - default - tc-export CC -} - -src_compile() { - emake \ - PREFIX="${EPREFIX}/usr" \ - LIBDIR="${EPREFIX}/usr/$(get_libdir)" \ - STRIP="" # bug 930020 -} - -src_install() { - emake DESTDIR="${D}" \ - PREFIX="${EPREFIX}/usr" \ - LIBDIR="${EPREFIX}/usr/$(get_libdir)" \ - install -} - -pkg_postinst() { - optfeature "building and testing grammars" dev-util/tree-sitter-cli -} diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/tree-sitter/tree-sitter-0.25.3.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/tree-sitter/tree-sitter-0.25.10.ebuild similarity index 91% rename from sdk_container/src/third_party/portage-stable/dev-libs/tree-sitter/tree-sitter-0.25.3.ebuild rename to sdk_container/src/third_party/portage-stable/dev-libs/tree-sitter/tree-sitter-0.25.10.ebuild index 20863acffab..7121e61d879 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/tree-sitter/tree-sitter-0.25.3.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/tree-sitter/tree-sitter-0.25.10.ebuild @@ -12,7 +12,7 @@ if [[ ${PV} == *9999* ]]; then EGIT_REPO_URI="https://github.com/${PN}/${PN}" else SRC_URI="https://github.com/${PN}/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz" - KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos" fi LICENSE="MIT" diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/tree-sitter/tree-sitter-0.25.8.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/tree-sitter/tree-sitter-0.25.8.ebuild index 7121e61d879..20863acffab 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/tree-sitter/tree-sitter-0.25.8.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/tree-sitter/tree-sitter-0.25.8.ebuild @@ -12,7 +12,7 @@ if [[ ${PV} == *9999* ]]; then EGIT_REPO_URI="https://github.com/${PN}/${PN}" else SRC_URI="https://github.com/${PN}/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz" - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos" + KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos" fi LICENSE="MIT" diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/yajl/yajl-2.1.0-r5.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/yajl/yajl-2.1.0-r5.ebuild deleted file mode 100644 index 05d3e450842..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-libs/yajl/yajl-2.1.0-r5.ebuild +++ /dev/null @@ -1,36 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit cmake-multilib multibuild - -DESCRIPTION="Small event-driven (SAX-style) JSON parser" -HOMEPAGE="https://lloyd.github.io/yajl/" -SRC_URI="https://github.com/lloyd/yajl/archive/refs/tags/${PV}.tar.gz -> ${P}-r5.tar.gz" - -LICENSE="ISC" -SLOT="0/2" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris" -IUSE="" - -PATCHES=( - "${FILESDIR}"/${P}-uclibc.patch # git master 5d4bf525 - "${FILESDIR}"/${P}-pkg-config.patch # downstream - "${FILESDIR}"/${P}-memory-leak.patch # Bug 908036 -) - -src_prepare() { - cmake_src_prepare - multilib_copy_sources -} - -multilib_src_test() { - cd "${S}"/test/parsing || die - ./run_tests.sh "${BUILD_DIR}"/test/parsing/yajl_test || die -} - -src_install() { - cmake-multilib_src_install - find "${D}" -name libyajl_s.a -delete || die -} diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/yajl/yajl-2.1.0-r6.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/yajl/yajl-2.1.0-r6.ebuild index edc4f8fed26..65d5806d3cc 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/yajl/yajl-2.1.0-r6.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/yajl/yajl-2.1.0-r6.ebuild @@ -11,7 +11,7 @@ SRC_URI="https://github.com/lloyd/yajl/archive/refs/tags/${PV}.tar.gz -> ${P}-r5 LICENSE="ISC" SLOT="0/2" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris" IUSE="" PATCHES=( diff --git a/sdk_container/src/third_party/portage-stable/dev-python/certifi/metadata.xml b/sdk_container/src/third_party/portage-stable/dev-python/certifi/metadata.xml index 980216c62a7..b23492cc143 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/certifi/metadata.xml +++ b/sdk_container/src/third_party/portage-stable/dev-python/certifi/metadata.xml @@ -10,5 +10,6 @@ projg2/certifi-system-store tiran/certifi-system-store certifi-system-store + cpe:/a:certifi:certifi diff --git a/sdk_container/src/third_party/portage-stable/dev-python/cffi/cffi-2.0.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/cffi/cffi-2.0.0.ebuild index c83761a7bae..e5a7c990f9c 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/cffi/cffi-2.0.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-python/cffi/cffi-2.0.0.ebuild @@ -20,7 +20,7 @@ HOMEPAGE=" LICENSE="MIT" SLOT="0/${PV}" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" # Needs recent libffi for HPPA fixes DEPEND=" diff --git a/sdk_container/src/third_party/portage-stable/dev-python/charset-normalizer/Manifest b/sdk_container/src/third_party/portage-stable/dev-python/charset-normalizer/Manifest index 7f2d979a1ba..17fc69ce7ca 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/charset-normalizer/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-python/charset-normalizer/Manifest @@ -1,2 +1,3 @@ -DIST charset_normalizer-3.4.2.tar.gz 126367 BLAKE2B a83f719394753e7612657caee102c2a662980ef78e2be25a7f109913eb2650ec94b6a01a885a4f7a66b6ca8d47c680c163fdaf6bd043226b340a7aec6f15ab78 SHA512 702d9c23fe68d3538e4f45d5d9451beb02853ecf1ec6b36a7068ed8ade707bd0fd2a1764137381294590d0e5ffc2e296866f402dff33f65ec0458cf1102970fe DIST charset_normalizer-3.4.3.tar.gz 122371 BLAKE2B 9735b4419aec98a11e3b53fc96e892f63299d89653cda489a5938e90526d24241ee2224f2aed149ae2e4becdf2742335175e8c25a2952b76098cfca61edef72a SHA512 b8ee22e9da98d09a3a36b2cd49e0bb27956a444dd59a1d27f1244040147a4e09fbd67d112ec59ace2133fe92b72a4de3a26f0b678bc2b6455c3ead2c2aaa9cfd +DIST charset_normalizer-3.4.4.tar.gz 129418 BLAKE2B 0f462077fe20ffc9555a5628263b48370d50e43261f30abb7715e3c82ba3c7fcb3bec1c2adea65ad5864e0bd656b79fd5129fbd2791edee66ec2839d210f48d3 SHA512 ea3e15123b6a526ef52abeae2a8a8af0b044380606d4ef4a43ca1feb4c626b5899b511634ee8927b959f5ab1dbbd3c57651d1ac3a91c5ab67cd905034f759c9c +DIST charset_normalizer-3.4.4.tar.gz.provenance 9506 BLAKE2B 890a0a810b142da096c1c0d805d9014bac9d1facfd0d51439c12167b047ade62e0d50fc1e6ffb65f5b019586a0706bb21bd75d485c5b9041cfe693ce38b15207 SHA512 55c4a7299bc0c3b556f5d1d344a77c653f0537719bd68ecf036c6339a8e09c169dee1d4d967f86946074b3da2e09f4a85ad1473fe7500cf427faf3dd8a5f95a8 diff --git a/sdk_container/src/third_party/portage-stable/dev-python/charset-normalizer/charset-normalizer-3.4.2.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/charset-normalizer/charset-normalizer-3.4.4.ebuild similarity index 63% rename from sdk_container/src/third_party/portage-stable/dev-python/charset-normalizer/charset-normalizer-3.4.2.ebuild rename to sdk_container/src/third_party/portage-stable/dev-python/charset-normalizer/charset-normalizer-3.4.4.ebuild index bd088c5ecb7..f99ddf5ba37 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/charset-normalizer/charset-normalizer-3.4.2.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-python/charset-normalizer/charset-normalizer-3.4.4.ebuild @@ -4,7 +4,8 @@ # please keep this ebuild at EAPI 8 -- sys-apps/portage dep EAPI=8 -DISTUTILS_USE_PEP517=setuptools +DISTUTILS_USE_PEP517=standalone +PYPI_VERIFY_REPO=https://github.com/jawah/charset_normalizer PYTHON_COMPAT=( python3_{11..14} pypy3_11 ) inherit distutils-r1 pypi @@ -17,11 +18,15 @@ HOMEPAGE=" LICENSE="MIT" 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=" + dev-python/setuptools[${PYTHON_USEDEP}] +" + +EPYTEST_PLUGINS=() distutils_enable_tests pytest python_test() { - local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 epytest -o addopts= } 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 eaf3323019e..5c14b8f39fa 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 @@ -15,10 +15,12 @@ DIST cryptography-45.0.6.tar.gz 744949 BLAKE2B 271143188d0a7485066b5c89fc0397e6f DIST cryptography-45.0.7.tar.gz 744980 BLAKE2B 4df55f24e60a2d8f9da9532c1b8000b835feb5d9ecb2cc6ed3d047652d353a296350ee1e98416c56877b36d71274b2e60637d017d03efd0cff1ccee8ed48c3b2 SHA512 a5149bc43b4c172d6ca17f2e6dabb4b11295970205b1cd4fcb897e58bef4ca154ceeb384ac29a568dfcfd3ba75326c2a1d7e9e590c617a154b12b2e7922bd824 DIST cryptography-46.0.1.tar.gz 749198 BLAKE2B 291ad3070f257082e620e4452b977b8600a4f53a0c40d526afe98f86689b32bd49e472dd128a6401e4fb926f94bca17e381c03bd9707047fb48faa9b5fe74983 SHA512 5d0ebdc3c86c03507389b2223f668818ce8c5b35ac506feb67fca9dbb43d38e684983cb9b805930caa9cea0c53e9f324354eef03bf8b651140c07e39ac4f8c07 DIST cryptography-46.0.2.tar.gz 749293 BLAKE2B 15b519da25b4ab61db084d577b3045c4f00e3a8d51eedcdfcd73e282222ad0eb3c5b3cec73641ba16d3585699d9188e4421d3bbb6f68c18b5e495a5e98e12405 SHA512 f9bac5e4cc22c5c2914604bae596548356a4b62c0242ae9ffc11014167eb33fcac8b14c2c18778e2272424a80ffc2cd0ae97bea3ea61e2a143bc8c63664bab03 +DIST cryptography-46.0.3.tar.gz 749258 BLAKE2B aa7eab6b6a39551034c8ade545a0b8c52d2d778a9e74dbf306eada2dc5314e3cdc7dee23af2fba8d2aa14ece260e3ace920f890f3e02370e8e86b20001ade2ee SHA512 b4e1af6e8ef676396e25806c64a981bb70372ca0162c2fe7d6a242243686d9fed35262080a3d0241afbf71963fc7d753a46fd31489fff3a734ef6c1203b64d02 DIST cryptography_vectors-45.0.6.tar.gz 35344645 BLAKE2B 78e8cc7b27eefdf9f499ce64479c67be9ea320967fa6791f19e89c298b783972845728fe43b3c7e6d37fbe1bcd894b268a63cf47be7cc10c5487612cd3587cc5 SHA512 0571c8b5b6e6f7b8787f6bcd395f75460ef615cb9cfd2c779b11326c74b38f285dcb1d84123d3a7996530976fdda78ec266d5c849ea9d6c51835c5ef933b9bfa DIST cryptography_vectors-45.0.7.tar.gz 35344680 BLAKE2B 4e6586777fcd24ed38f33a6dc7bdb60f959b22a96d7b8ef66c2172aec72f48b7afa99a4a2d58463bf2d5d07dc0b808eb6dfe8808435c03694416d348834c7bd6 SHA512 8f2d06fcc3192d6c3c54c8114d79f6d96faa61e11c81d9a8551b783db9afba6d972a1a91bc97dfac388661ff975bcd570a1291bd81abba575d5f04807e2d9294 DIST cryptography_vectors-46.0.1.tar.gz 33809230 BLAKE2B 40e4f411c85c98175d246a6a089e5a0adb02b5944de23f75f2e4225f250344f994f3afa097e6e761303d1626ff21a839fc5f511dc971c11801501295e3d544bf SHA512 60a6cc937ef1d819343ea90894c16655e6c3f932684ad5d602d55c6af776c8aaa43214868d04d9bde4ff19bb0b9d0d4e2eed8e3aaccc7b6f277f5f0aa8aac893 DIST cryptography_vectors-46.0.2.tar.gz 33809237 BLAKE2B 8f12b78e8fd5e4e8c28315fd7e3883669fd8a88f6e29cb03e41d98d4fc0327a1cabb836c77f9ac638a5dce0cc24b445c09ecccd7f1210fc2635d89c27631d54a SHA512 842f9886aa6e02e6cb7f105c705678ef1a6fef1c68397422aa27d93074f072fafb218f71f1d8900f69885b0068639dbb9beda80104bcc41d22b6f6b313fa36d5 +DIST cryptography_vectors-46.0.3.tar.gz 33809245 BLAKE2B c5832c11ba23fd44c745cd766a83ceb39a622ebbaca0dc463785776dd36d4d8065a4780894b7ff8260408893527a86e5f90367cf6b26f50c99a2f0db325e64e9 SHA512 6ebb80c4040143484bcc69239144362e7cef479dab2b9ebd68993ade3da1ed812cc1b7f3c41dc1a9a7ae0874c2e794e32f2762c896e768507ac55596fa45d765 DIST find-msvc-tools-0.1.1.crate 30228 BLAKE2B 9f6d84697a0310021a59789a0aebcf5895490e4dd719a2ef820ddf2f225ecd13c814e2c03e8d4de4089a2d1599b469a900c0c1072f9b57dcce9fb8634dcea6b2 SHA512 cc91ce79858db4a6feb3ff0fe24d7b29a523285247116a42b27affacc3f034afc0d458ac8716922f5fec5f23deafd62e875ec899d4ea58531d028535c22e137e 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 @@ -31,9 +33,11 @@ DIST memoffset-0.9.1.crate 9032 BLAKE2B 0aab55fe084134bb599c52d77c96400db40949b1 DIST once_cell-1.21.3.crate 34534 BLAKE2B 3578aaef305cad2fdffdc40c392775a3540bfab3f3aeafd22466d9507bf8346b9fcc200929d48525b051070c0aaa423ecbcaa12868b34dca007991effb224166 SHA512 32a87506c6f4598f3ca2c88556014ef2093d5db9a08602335e847caa537a866492fa74c894e7e1da2e4289a1d3dbffcb90a9e37a4a1453203832f434b8206990 DIST openssl-0.10.72.crate 283852 BLAKE2B a221ff329fd068da6d88b98e32c0fb9750e074fd87eb261614ba08771df0879fefb80ed0b60a26fcf4ef808e0ff6484f7e4fcbc38146186d30ca4e74d17fa803 SHA512 ee4cfb893e7112fd274baef3283f3bc44385a3e014c9bb4eb24ffc6153fe56e2f66807d8d5874f97254390041cec3affc41bf7b2bc7e5d39bf60413ffb747786 DIST openssl-0.10.73.crate 283994 BLAKE2B 06675b7c6bb1c73b10826577d7d928f4d001494a4c2add24a593c8dd82731a91974147981a63f56b2f11f769b1b93194b9cbcd14e77a578d6d649ad8119e856c SHA512 be1b5384ba72984fbca1aec534764d7b5180cbafe33433cda9662c492fcf219a3a3fe4148fc3c0702aeef63e2570ae7f27dc6a8dba95c7471d4a4c20f7ab1926 +DIST openssl-0.10.74.crate 285425 BLAKE2B 2d736aa20701a97230f10f4a75b3c3c0cea0a86b52facbb639dfe425ea052a4bd0abf494708ab96aad276000736ab4ce7dd8c47951f01181cd17c6e0be692107 SHA512 02f60bf13826a4225b4c849d7dee33fbb648c173bc32bc2139a50c38fdf5aeb9d5cfb092d86edeb6f281206454ccf2b41cc23c7af74ed976423b933eefe50867 DIST openssl-macros-0.1.1.crate 5601 BLAKE2B 69dc1c1f3b7bc4f934cae0dce64c3efa501162e5279efd6af3b74f7a7716c04b6996b306b310f1c045cfa2eff2895314a47ecbb020a817e461c6d77d0bc11e92 SHA512 57e75c84f78fb83f884eeaedb0dd135ecb40192dad2facd908e6a575c9b65b38a2c93bca4630e09ea5a82c77d8bc8364cb2f5778cbfe9d8f484cafe3346b883c DIST openssl-sys-0.9.108.crate 78190 BLAKE2B 202b0a380bb8d462842c7c2190d8d61e3d959b10aba462a75a3f1722a2a975f6f5eaaa30078dde7b56a7c2bb3a93d776b30cf3f718a8e723c2ef14d9ca400294 SHA512 f1d2cbf26b6bf7faf840e9afa6e86e7a38a303c169f54c098433c106cfb3aa264a692419ef2ca31f734551b5f7b97cffb1a3e28984eec0324cfb60e9cf3f1865 DIST openssl-sys-0.9.109.crate 78247 BLAKE2B 3bf1da4b999a0c9a0891baafccdc541809169921837166b31381590aedc5356992cd71f21a374877dea4cf8015eaf5d8ac7c7ffccb11511893d5d0b8e57e037c SHA512 2dbb01e3b734554d85f9fedfbf9f3ef55132fdd5a328e2930ce056d05ed55a579c3fb12b907f3989ffe15344e7f1633ccd610524d56fe6c9a687acba2d0e6fc9 +DIST openssl-sys-0.9.110.crate 80412 BLAKE2B c59794f0b31013231829db4c9b495a5083b4adcaed5779b4ee013bafe4667fdcee12ef7e2a0c30d4abbe340ef036dbf8c40a41e8293231d7f4137c9bc7bfa820 SHA512 8e43f0cc67ebb084c18df410322df75bc384adfcf8fcafe2b0febcd6ee47a1825037db880012c7076c7b11153a101d6d0006437ba0d53a7182f1bcdf51af8d65 DIST pem-3.0.5.crate 18140 BLAKE2B 1a19acf6c5d4dafb4411688d87b668d2ea1abe8f561dc2d5de8894066c06e32c5c1392d0e6963d07bab27368a1b39a4f0520485500a1312e2ae43b5c0959ab16 SHA512 09b4a75bda0df6153799e56cdf175d88b7c88b49fda3e19fffba5aa821e433bf3bc9f254f5016131d3dd2d3146c3f6b73e71e04b81ac7d52b581c638cd60d0ff DIST pkg-config-0.3.32.crate 21370 BLAKE2B 74ded191f066bc223739b3d4afec58f23de57566e7604e3dd62001d9a095a7b6a3633fdb01fdc46960c8134a694d6bf097d9ecec62b38c4f14acafbbabd6e893 SHA512 59569110185fa665f76a13e884a67ad1578c55246abacfc18cb9f037b2d2d9ec3f2078a3adfe5cc82a451892c9ad55f918ee01362a741f57dc9ff6846a4e32e5 DIST portable-atomic-1.11.0.crate 181258 BLAKE2B 627bd7c306f6c4d7991abd9f995b7e0ce110a7ace738690c287a43ce3b979691214e525876f8ace0c2f0d10d781fba95c7d3bf29aea28e09b05b06f4764db03f SHA512 71774f8308963c5399095c6b755befdf9ff3d28f9529b4bae1fe0f2aba733339a267aa6f0ff854e59fa5044a9b0c2c86bad3bc4fcaa951724c839b0d6a22041e diff --git a/sdk_container/src/third_party/portage-stable/dev-python/cryptography/cryptography-46.0.2.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/cryptography/cryptography-46.0.2.ebuild index 36d6d42b6e9..0f0f51a4caf 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/cryptography/cryptography-46.0.2.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-python/cryptography/cryptography-46.0.2.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-46.0.3.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/cryptography/cryptography-46.0.3.ebuild new file mode 100644 index 00000000000..bafdd1e51e0 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-python/cryptography/cryptography-46.0.3.ebuild @@ -0,0 +1,134 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +CARGO_OPTIONAL=yes +DISTUTILS_EXT=1 +DISTUTILS_USE_PEP517=maturin +PYTHON_COMPAT=( python3_{11..14} pypy3_11 ) +PYTHON_REQ_USE="threads(+)" + +CRATES=" + asn1@0.22.0 + asn1_derive@0.22.0 + autocfg@1.5.0 + base64@0.22.1 + bitflags@2.9.4 + cc@1.2.37 + cfg-if@1.0.3 + find-msvc-tools@0.1.1 + foreign-types-shared@0.1.1 + foreign-types@0.3.2 + heck@0.5.0 + indoc@2.0.6 + itoa@1.0.15 + libc@0.2.175 + memoffset@0.9.1 + once_cell@1.21.3 + openssl-macros@0.1.1 + openssl-sys@0.9.110 + openssl@0.10.74 + pem@3.0.5 + pkg-config@0.3.32 + portable-atomic@1.11.1 + proc-macro2@1.0.101 + pyo3-build-config@0.26.0 + pyo3-ffi@0.26.0 + pyo3-macros-backend@0.26.0 + pyo3-macros@0.26.0 + pyo3@0.26.0 + quote@1.0.40 + self_cell@1.2.0 + shlex@1.3.0 + syn@2.0.106 + target-lexicon@0.13.3 + unicode-ident@1.0.19 + unindent@0.2.4 + 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)") + ) +" + +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= + $(python_gen_cond_dep ' + >=dev-python/cffi-2.0.0:=[${PYTHON_USEDEP}] + ' 'python*') +" +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 pytest-subtests ) +EPYTEST_XDIST=1 +distutils_enable_tests pytest + +src_unpack() { + 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}/cryptography_vectors-${PV}" + local EPYTEST_IGNORE=( + tests/bench + ) + epytest +} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/cython/Manifest b/sdk_container/src/third_party/portage-stable/dev-python/cython/Manifest index 04ea75d897f..debd32e57d1 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/cython/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-python/cython/Manifest @@ -1,3 +1,5 @@ DIST cython-3.1.2.tar.gz 3184825 BLAKE2B 8be6016f3e9a5a7db71fd1cab65424db1a1cd8e9d0118f01432964eb816135021f77542aff2b1f0fd2af8f657f952ebce2f420d7610ae37c6c6956f94e54a636 SHA512 c674027dae58377ea71d8d8b15601e6e0c80435807603251e685608218805fef2e6eac4bbebd3c50c319cd7da660ff9ce1a6daeb673eb40ce70bbfe7f0069600 DIST cython-3.1.3.tar.gz 3186689 BLAKE2B 520adbaf737b2625a5b6d5802484d84dccf12867ec4c6d379816b84c4413e9a766ee3c21f0ce4209f7961b19346f5e874ab09ed7bf9dc9a259afb8e65ae2359e SHA512 dbf14b486e9dc3cf978abd80f0fcc16d9ed8077d5a44c66b669291d6cc89beeae3e901e4975cee44208dcf52f11ba331a8d73587bf55891976a9ec4818a2470b DIST cython-3.1.4.tar.gz 3190778 BLAKE2B 7e554db21ba009dc70157ad03b414091f9bba15586c5fa842b23cc28c116dc153857e99c9981dd0f783f696b6afa3b2689424231b88ae89bcf9233fa8006b9c9 SHA512 dd524d7de59f949a8bac1cb944a7a2b4eb26b13107db4fd6f9af000d5af18dd08ac5768253721e3513f5b4c1593fdd8cf055f4ffc17d541b2b90ca461522e8f1 +DIST cython-3.1.5.tar.gz 3192050 BLAKE2B c076c14685cc0d01d3f70dd35c8dd6c8c6c285f0a7cd575b4b20d6b4ce941e8cc70e1859b4185e0bc485c6963e74e5b33fe9030ec9feb881cc8692434f497ae8 SHA512 cff0cebd3b72b47f92a0bb8f77e564655a966ee58442b7fe76db2263b8b0d5b3636bfb0a561b1f27fd10cfd113e52388b32971bea66f4d2cb6dbf8580465b873 +DIST cython-3.1.6.tar.gz 3192329 BLAKE2B 78ea2c33ce38441574c0566b2c093ed91c01b523812484a8da5f426c46d64d0e4c67c2b3e1bf8122c399a9c18372fe93ff63d20fcc2907e0a84c79fd1107d79d SHA512 29950bcb02b2000ffd278a881d91e9c99f554375238a1ea1e7866d6fff120233bca8d7a7c05de93136fddacdb4c071652de8c3b63b6c312dff43435193fe7b89 diff --git a/sdk_container/src/third_party/portage-stable/dev-python/cython/cython-3.1.4.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/cython/cython-3.1.4.ebuild index df3f0a82889..a71d9d567a4 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/cython/cython-3.1.4.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-python/cython/cython-3.1.4.ebuild @@ -21,7 +21,7 @@ HOMEPAGE=" LICENSE="Apache-2.0" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" IUSE="test test-full" RESTRICT="!test? ( test )" diff --git a/sdk_container/src/third_party/portage-stable/dev-python/cython/cython-3.1.5.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/cython/cython-3.1.5.ebuild new file mode 100644 index 00000000000..df3f0a82889 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-python/cython/cython-3.1.5.ebuild @@ -0,0 +1,128 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_EXT=1 +DISTUTILS_USE_PEP517=setuptools +PYTHON_FULLY_TESTED=( python3_{11..14} ) +PYTHON_TESTED=( "${PYTHON_FULLY_TESTED[@]}" pypy3_11 ) +PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" python3_{13,14}t ) +PYTHON_REQ_USE="threads(+)" + +inherit distutils-r1 multiprocessing pypi toolchain-funcs + +DESCRIPTION="A Python to C compiler" +HOMEPAGE=" + https://cython.org/ + https://github.com/cython/cython/ + https://pypi.org/project/Cython/ +" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" +IUSE="test test-full" +RESTRICT="!test? ( test )" + +BDEPEND=" + ${RDEPEND} + test? ( + test-full? ( + $(python_gen_cond_dep ' + dev-python/numpy[${PYTHON_USEDEP}] + ' "${PYTHON_FULLY_TESTED[@]}") + ) + ) +" + +PATCHES=( + "${FILESDIR}/${PN}-0.29.23-pythran-parallel-install.patch" +) + +distutils_enable_sphinx docs \ + dev-python/jinja2 \ + dev-python/sphinx-issues \ + dev-python/sphinx-tabs + +python_compile() { + # Python gets confused when it is in sys.path before build. + local -x PYTHONPATH= + + if use elibc_musl ; then + # Workaround for bug #925318 + local -x LDFLAGS="${LDFLAGS} -Wl,-z,stack-size=2097152" + fi + + distutils-r1_python_compile +} + +python_test() { + # PYTHON_TESTED controls whether we expect the testsuite to + # pass at all, while PYTHON_FULLY_TESTED allows skipping before + # numpy is ported (and possibly other deps in future). + if ! has "${EPYTHON/./_}" "${PYTHON_TESTED[@]}"; then + einfo "Skipping tests on ${EPYTHON} (xfail)" + return + fi + + # Needed to avoid confusing cache tests + unset CYTHON_FORCE_REGEN + + tc-export CC + + local testargs=( + -vv + -j "$(makeopts_jobs)" + --work-dir "${BUILD_DIR}"/tests + + --no-examples + --no-code-style + + # Fails to find embedded.c + --exclude 'embedded' + # coverage_installed_pkg needs dev-python/pip and doesn't like + # 'externally-managed' (bug #927995), but we don't really + # want automagic test dependencies at all, so just skip + # unimportant-for-us coverage tests entirely. + --exclude 'run.coverage*' + --exclude 'Cython.Coverage' + # Automagic on dev-python/python-tests, could add this in future + --exclude 'run.test_exceptions' + # TODO: Unpackaged dev-python/interpreters-pep-734 (interpreters_backport) + # This only shows up as a failure with >=3.13. + --exclude 'subinterpreters_threading_stress_test' + + # The fix for https://github.com/cython/cython/issues/6938 + # changes these tests s.t. they break with our build layout. + --exclude 'build.depfile*' + ) + + if [[ ${EPYTHON} == pypy3* ]] ; then + testargs+=( + # Recursion issue + --exclude 'run.if_else_expr' + --exclude 'run.test_patma*' + # Slight output difference (missing '<') + --exclude 'run.cpp_exception_ptr_just_handler' + + ) + fi + + # Keep test-full for numpy as it's large and doesn't pass tests itself + # on niche arches. + if ! use test-full || ! has "${EPYTHON/./_}" "${PYTHON_FULLY_TESTED[@]}"; then + testargs+=( + --exclude 'run.numpy*' + --exclude 'run.ufunc' + --exclude 'numpy*' + ) + fi + + "${PYTHON}" runtests.py "${testargs[@]}" || die "Tests fail with ${EPYTHON}" +} + +python_install_all() { + local DOCS=( CHANGES.rst README.rst ToDo.txt USAGE.txt ) + distutils-r1_python_install_all +} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/cython/cython-3.1.6.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/cython/cython-3.1.6.ebuild new file mode 100644 index 00000000000..df3f0a82889 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-python/cython/cython-3.1.6.ebuild @@ -0,0 +1,128 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_EXT=1 +DISTUTILS_USE_PEP517=setuptools +PYTHON_FULLY_TESTED=( python3_{11..14} ) +PYTHON_TESTED=( "${PYTHON_FULLY_TESTED[@]}" pypy3_11 ) +PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" python3_{13,14}t ) +PYTHON_REQ_USE="threads(+)" + +inherit distutils-r1 multiprocessing pypi toolchain-funcs + +DESCRIPTION="A Python to C compiler" +HOMEPAGE=" + https://cython.org/ + https://github.com/cython/cython/ + https://pypi.org/project/Cython/ +" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" +IUSE="test test-full" +RESTRICT="!test? ( test )" + +BDEPEND=" + ${RDEPEND} + test? ( + test-full? ( + $(python_gen_cond_dep ' + dev-python/numpy[${PYTHON_USEDEP}] + ' "${PYTHON_FULLY_TESTED[@]}") + ) + ) +" + +PATCHES=( + "${FILESDIR}/${PN}-0.29.23-pythran-parallel-install.patch" +) + +distutils_enable_sphinx docs \ + dev-python/jinja2 \ + dev-python/sphinx-issues \ + dev-python/sphinx-tabs + +python_compile() { + # Python gets confused when it is in sys.path before build. + local -x PYTHONPATH= + + if use elibc_musl ; then + # Workaround for bug #925318 + local -x LDFLAGS="${LDFLAGS} -Wl,-z,stack-size=2097152" + fi + + distutils-r1_python_compile +} + +python_test() { + # PYTHON_TESTED controls whether we expect the testsuite to + # pass at all, while PYTHON_FULLY_TESTED allows skipping before + # numpy is ported (and possibly other deps in future). + if ! has "${EPYTHON/./_}" "${PYTHON_TESTED[@]}"; then + einfo "Skipping tests on ${EPYTHON} (xfail)" + return + fi + + # Needed to avoid confusing cache tests + unset CYTHON_FORCE_REGEN + + tc-export CC + + local testargs=( + -vv + -j "$(makeopts_jobs)" + --work-dir "${BUILD_DIR}"/tests + + --no-examples + --no-code-style + + # Fails to find embedded.c + --exclude 'embedded' + # coverage_installed_pkg needs dev-python/pip and doesn't like + # 'externally-managed' (bug #927995), but we don't really + # want automagic test dependencies at all, so just skip + # unimportant-for-us coverage tests entirely. + --exclude 'run.coverage*' + --exclude 'Cython.Coverage' + # Automagic on dev-python/python-tests, could add this in future + --exclude 'run.test_exceptions' + # TODO: Unpackaged dev-python/interpreters-pep-734 (interpreters_backport) + # This only shows up as a failure with >=3.13. + --exclude 'subinterpreters_threading_stress_test' + + # The fix for https://github.com/cython/cython/issues/6938 + # changes these tests s.t. they break with our build layout. + --exclude 'build.depfile*' + ) + + if [[ ${EPYTHON} == pypy3* ]] ; then + testargs+=( + # Recursion issue + --exclude 'run.if_else_expr' + --exclude 'run.test_patma*' + # Slight output difference (missing '<') + --exclude 'run.cpp_exception_ptr_just_handler' + + ) + fi + + # Keep test-full for numpy as it's large and doesn't pass tests itself + # on niche arches. + if ! use test-full || ! has "${EPYTHON/./_}" "${PYTHON_FULLY_TESTED[@]}"; then + testargs+=( + --exclude 'run.numpy*' + --exclude 'run.ufunc' + --exclude 'numpy*' + ) + fi + + "${PYTHON}" runtests.py "${testargs[@]}" || die "Tests fail with ${EPYTHON}" +} + +python_install_all() { + local DOCS=( CHANGES.rst README.rst ToDo.txt USAGE.txt ) + distutils-r1_python_install_all +} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/ensurepip-pip/Manifest b/sdk_container/src/third_party/portage-stable/dev-python/ensurepip-pip/Manifest index 86f564765d0..3d2fa10525d 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/ensurepip-pip/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-python/ensurepip-pip/Manifest @@ -1,2 +1,3 @@ -DIST pip-25.1.1.gh.tar.gz 9219969 BLAKE2B eb443451deeb71888c2fc56ac5c8cb2d0515ec0efff975fab98cfa65d1fc5e66948243b3acebf1f4b0446e46082abb9fd350816579a4f5af1292c160490ce930 SHA512 ce61c9861265139b3c5ea9be9dc246097cd75c21687cf8301f80a377d02420c4524f0d6307d2ca0232ff8715b1105343bcfdb9cac6b69503780ab2c4645558dc +DIST flit_core-3.12.0-py3-none-any.whl 45594 BLAKE2B 7c6cb6eb03d45bbba27f27b3728881b57fe82dd38e03f884d3b7c46116eb2b9dd76f92bdaf7f594ef8ccbe12ec8f9a56424ff9e9fc7a839c4818a113fdf0c3d3 SHA512 790c12b1f43201e365fb3f8f2f0a54e1a578876799dfdf8bfeea679a25ea096bf62946d006618c1458ae6e37ce6d00998f37e9aba426d5ab80d32ef2d75da4e0 DIST pip-25.2.gh.tar.gz 9121715 BLAKE2B 3bfe61d6d0d6f3a79c3fd801f5cb40b203fd12085d925ae7cde53adca3c5ee523fdfd9449546e1bc8ca719b3e8766cfef3162919e13a77f7adc0d20a951d11c7 SHA512 5cc65c9091fdda7905e26ce32ddaa3a1c2fd287d69fd3da67c814ba7e8e5be59301d8327c06cdca78c1b95f4a5b5f75c87f36a549022408cc0e8f9411c0db11e +DIST pip-25.3.gh.tar.gz 9115712 BLAKE2B 87d848c497163a45ee3de8f6f75c80b5051b07062c5a15450ae98b59a6cebc6bf03ca8525d57929493f2cfeb28d5623401eba69f0bdfc734389efbb84eafdf53 SHA512 f50db092213ec3bb819d3da5669f73d119b5ec7f7ac5e8a587a17c27eafa32bc17a057df09389c526a3769ef3577f5553187d54ceffa89aed63f4b4498ff044e diff --git a/sdk_container/src/third_party/portage-stable/dev-python/ensurepip-pip/ensurepip-pip-25.1.1-r1.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/ensurepip-pip/ensurepip-pip-25.3.ebuild similarity index 75% rename from sdk_container/src/third_party/portage-stable/dev-python/ensurepip-pip/ensurepip-pip-25.1.1-r1.ebuild rename to sdk_container/src/third_party/portage-stable/dev-python/ensurepip-pip/ensurepip-pip-25.3.ebuild index 38ed03ad972..4073ff7c4e2 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/ensurepip-pip/ensurepip-pip-25.1.1-r1.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-python/ensurepip-pip/ensurepip-pip-25.3.ebuild @@ -3,12 +3,14 @@ EAPI=8 -DISTUTILS_USE_PEP517=setuptools +DISTUTILS_USE_PEP517=flit # PYTHON_COMPAT is used only for testing PYTHON_COMPAT=( pypy3_11 python3_{11..14} ) PYTHON_REQ_USE="ssl(+),threads(+)" -inherit distutils-r1 +inherit distutils-r1 pypi + +FLIT_CORE_PV=3.12.0 MY_P=${P#ensurepip-} DESCRIPTION="Shared pip wheel for ensurepip Python module" @@ -19,12 +21,15 @@ HOMEPAGE=" " SRC_URI=" https://github.com/pypa/pip/archive/${PV}.tar.gz -> ${MY_P}.gh.tar.gz + test? ( + $(pypi_wheel_url flit-core "${FLIT_CORE_PV}") + ) " S=${WORKDIR}/${MY_P} LICENSE="MIT" SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" IUSE="test test-rust" RESTRICT="!test? ( test )" @@ -46,7 +51,8 @@ BDEPEND=" ) " -EPYTEST_PLUGINS=( pytest-rerunfailures ) +EPYTEST_PLUGINS=() +EPYTEST_RERUNS=5 EPYTEST_XDIST=1 distutils_enable_tests pytest @@ -70,13 +76,14 @@ declare -A VENDOR_LICENSES=( [tomli_w]=MIT [truststore]=MIT [urllib3]=MIT - [typing_extensions.py]=PSF-2 ) LICENSE+=" ${VENDOR_LICENSES[*]}" python_prepare_all() { local PATCHES=( - "${FILESDIR}/pip-23.1-no-coverage.patch" + # remove coverage & pytest-subket wheel expectation from test suite + # (from dev-python/pip) + "${FILESDIR}/pip-25.2-test-wheels.patch" ) distutils-r1_python_prepare_all @@ -84,6 +91,7 @@ python_prepare_all() { if use test; then local wheels=( "${BROOT}"/usr/lib/python/ensurepip/{setuptools,wheel}-*.whl + "${DISTDIR}/$(pypi_wheel_name flit-core "${FLIT_CORE_PV}")" ) mkdir tests/data/common_wheels/ || die cp "${wheels[@]}" tests/data/common_wheels/ || die @@ -91,7 +99,7 @@ python_prepare_all() { # Verify that we've covered licenses for all vendored packages cd src/pip/_vendor || die - local packages=( */ [A-Za-z]*.py ) + local packages=( */ ) local pkg missing=() for pkg in "${packages[@]%/}"; do if [[ ! -v "VENDOR_LICENSES[${pkg}]" ]]; then @@ -136,6 +144,9 @@ python_test() { tests/unit/test_base_command.py::test_base_command_provides_tempdir_helpers ) local EPYTEST_IGNORE=( + # from upstream options + src/pip/_vendor + tests/tests_cache # requires proxy.py tests/functional/test_proxy.py ) @@ -146,26 +157,8 @@ python_test() { # unexpected tempfiles? tests/functional/test_install_config.py::test_do_not_prompt_for_authentication tests/functional/test_install_config.py::test_prompt_for_authentication - ) - ;; - python3.14*) - EPYTEST_DESELECT+=( - # TODO: segfaults - tests/unit/test_collector.py::test_get_index_content_directory_append_index - # https://github.com/python/cpython/issues/125974 - tests/unit/test_collector.py::test_ensure_quoted_url - tests/unit/test_finder.py::test_finder_priority_file_over_page - tests/unit/test_urls.py::test_path_to_url_unix - tests/unit/test_collector.py::test_clean_url_path - tests/unit/test_collector.py::test_clean_url_path_with_local_path - tests/unit/test_req.py::TestRequirementSet::test_download_info_local_editable_dir - tests/unit/test_req.py::test_parse_editable_local - tests/unit/test_req.py::test_parse_editable_local_extras - tests/unit/test_req.py::test_get_url_from_path__archive_file - tests/unit/test_req.py::test_get_url_from_path__installable_dir - tests/functional/test_lock.py::test_lock_wheel_from_findlinks - tests/functional/test_lock.py::test_lock_sdist_from_findlinks - tests/functional/test_lock.py::test_lock_local_editable_with_dep + # wrong path + tests/functional/test_install.py::test_install_editable_with_prefix_setup_py ) ;; esac @@ -182,8 +175,8 @@ python_test() { local -x PIP_DISABLE_PIP_VERSION_CHECK=1 # rerunfailures because test suite breaks if packages are installed # in parallel - epytest -m "not network" -o tmp_path_retention_policy=all \ - --reruns=5 --use-venv + epytest -m "not network" -o addopts= -o tmp_path_retention_policy=all \ + --use-venv } src_install() { diff --git a/sdk_container/src/third_party/portage-stable/dev-python/ensurepip-pip/files/pip-23.1-no-coverage.patch b/sdk_container/src/third_party/portage-stable/dev-python/ensurepip-pip/files/pip-23.1-no-coverage.patch deleted file mode 100644 index 2e12ee7cd07..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/ensurepip-pip/files/pip-23.1-no-coverage.patch +++ /dev/null @@ -1,42 +0,0 @@ -From d915b0eec7b5844c06b5d8853544c8c5b538b0b9 Mon Sep 17 00:00:00 2001 -From: Arthur Zamarin -Date: Fri, 29 Jul 2022 14:06:03 +0300 -Subject: [PATCH] Disable coverage testing support inside test venvs - ---- a/tests/conftest.py -+++ b/tests/conftest.py -@@ -408,13 +408,6 @@ def wheel_install(tmpdir_factory: pytest.TempPathFactory, common_wheels: Path) - - return _common_wheel_editable_install(tmpdir_factory, common_wheels, "wheel") - - --@pytest.fixture(scope="session") --def coverage_install( -- tmpdir_factory: pytest.TempPathFactory, common_wheels: Path --) -> Path: -- return _common_wheel_editable_install(tmpdir_factory, common_wheels, "coverage") -- -- - def install_pth_link( - venv: VirtualEnvironment, project_name: str, lib_dir: Path - ) -> None: -@@ -431,3 +424,2 @@ def virtualenv_template( - setuptools_install: Path, - wheel_install: Path, -- coverage_install: Path, -@@ -457,13 +449,6 @@ def virtualenv_template( - [os.fspath(venv.bin / "python"), "setup.py", "-q", "develop"], cwd=pip_editable - ) - -- # Install coverage and pth file for executing it in any spawned processes -- # in this virtual environment. -- install_pth_link(venv, "coverage", coverage_install) -- # zz prefix ensures the file is after easy-install.pth. -- with open(venv.site / "zz-coverage-helper.pth", "a") as f: -- f.write("import coverage; coverage.process_startup()") -- - # Drop (non-relocatable) launchers. - for exe in os.listdir(venv.bin): - if not ( --- -2.40.0 - diff --git a/sdk_container/src/third_party/portage-stable/dev-python/fasteners/Manifest b/sdk_container/src/third_party/portage-stable/dev-python/fasteners/Manifest index 2b4a392aded..1be69d6f006 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/fasteners/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-python/fasteners/Manifest @@ -1,2 +1 @@ -DIST fasteners-0.19.gh.tar.gz 43188 BLAKE2B c30f4dc3da6605aa2552f58ae1071b51efefe2aea59ca8815fd50eebdbe7e826756cd9923485d6fb99dcc39196def485f4c1346a234bc7af09e2426c84b6a0d3 SHA512 47db216ff5bad5c669ca2d9be0ee09feba4a3d55ed0eac8d3623bd3d112b0b87fb9019f8785d035ec32ad9fa9e4ae7d1c92a576c97eec29acc82711d7e71a465 DIST fasteners-0.20.gh.tar.gz 42740 BLAKE2B 89d3f3432bff3ec6716a96b51867227a4cebfe05cb8ed9554480dbcc0d31b2afa1d173b3dd4cf786688f74e994c6ab390c77898fc045b5636d10ab626103e57c SHA512 539ce5b16f70a73fe6b7296a1bab3b751eff7b7385b980eba3e4d6e42eb263448fd074f325529a30d982e1c366a122aef46bc359578a370ef1278225c09a5f71 diff --git a/sdk_container/src/third_party/portage-stable/dev-python/fasteners/fasteners-0.19.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/fasteners/fasteners-0.19.ebuild deleted file mode 100644 index 4d265a5650b..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/fasteners/fasteners-0.19.ebuild +++ /dev/null @@ -1,36 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DISTUTILS_USE_PEP517=setuptools -PYTHON_COMPAT=( python3_{10..13} ) - -inherit distutils-r1 - -DESCRIPTION="Python package that provides useful locks" -HOMEPAGE=" - https://github.com/harlowja/fasteners/ - https://pypi.org/project/fasteners/ -" -SRC_URI=" - https://github.com/harlowja/fasteners/archive/${PV}.tar.gz - -> ${P}.gh.tar.gz -" - -LICENSE="Apache-2.0" -SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~x64-macos" - -BDEPEND=" - test? ( - dev-python/diskcache[${PYTHON_USEDEP}] - dev-python/more-itertools[${PYTHON_USEDEP}] - ) -" - -distutils_enable_tests pytest - -EPYTEST_IGNORE=( - tests/test_eventlet.py -) diff --git a/sdk_container/src/third_party/portage-stable/dev-python/fasteners/fasteners-0.20.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/fasteners/fasteners-0.20.ebuild index 2bd3efb9aa7..c868a8b8d1a 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/fasteners/fasteners-0.20.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-python/fasteners/fasteners-0.20.ebuild @@ -4,7 +4,7 @@ EAPI=8 DISTUTILS_USE_PEP517=setuptools -PYTHON_COMPAT=( python3_{11..13} ) +PYTHON_COMPAT=( python3_{11..14} ) inherit distutils-r1 diff --git a/sdk_container/src/third_party/portage-stable/dev-python/lark/Manifest b/sdk_container/src/third_party/portage-stable/dev-python/lark/Manifest index 76e4a6bf548..51bee5e75cb 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/lark/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-python/lark/Manifest @@ -1,2 +1,3 @@ DIST lark-1.2.2.tar.gz 252132 BLAKE2B 175f51930972f17051af6fefdf71ef4602f126d373888f30a630a703d038abe9bb2706da80564c72f19273f7d0bfbe351ab34e9d72fa1ad9dd7181232eefe61e SHA512 77cf3abf26b827cb60eae4c193de0c98780df7dfa3daa1c21ca5d73bc16387d77561d57e8a20c69ceaeb35531b7191fe765b9834587972e2697f3f07def96b6c DIST lark-1.3.0.tar.gz 259551 BLAKE2B 0df524ef483efeb7ab42973a1c06146e4e50fb59c489606498cc7dd8db61be76c7cf12062981cdbe9121ad98a1f892940d0b4d592d63c7d8d1563de4feab2f65 SHA512 d20191bb98e823f078359ccf2f391f9d01c80d7481d3c8061f8a6a8083f069e11029017158f773683b8e662f6cc81075f5cb4965c5fecde3956f131e3938af3d +DIST lark-1.3.1.tar.gz 382732 BLAKE2B d08d8f73d79699f33795a46d1e8ae4aa86425e63df4dea19ce9aefaa18749bed5505f5dd657313e4d0463cd217f851494b939da7e134557f4a8f6c26321d7f42 SHA512 aee4ec6a6dd2e25801c66688861d0b25b68b7b916492764b3f8621dd70c33a93b364cb70d84ccac645cb7156892b90b503d6c79dedb9f656830c70a9b43549d0 diff --git a/sdk_container/src/third_party/portage-stable/dev-python/lark/lark-1.3.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/lark/lark-1.3.0.ebuild index 48238c25d04..598cdbf0800 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/lark/lark-1.3.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-python/lark/lark-1.3.0.ebuild @@ -16,7 +16,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" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos" # dev-python/regex doesn't support pypy BDEPEND=" diff --git a/sdk_container/src/third_party/portage-stable/dev-python/lark/lark-1.3.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/lark/lark-1.3.1.ebuild new file mode 100644 index 00000000000..c2c85f3adc6 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-python/lark/lark-1.3.1.ebuild @@ -0,0 +1,38 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{11..14} pypy3_11 ) + +inherit distutils-r1 pypi + +DESCRIPTION="Python module to propose a modern general-purpose parsing library for Python" +HOMEPAGE=" + https://github.com/lark-parser/lark/ + https://pypi.org/project/lark/ +" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos" + +# dev-python/regex doesn't support pypy +BDEPEND=" + >=dev-python/setuptools-scm-9.2.2[${PYTHON_USEDEP}] + test? ( + dev-python/atomicwrites[${PYTHON_USEDEP}] + $(python_gen_cond_dep ' + dev-python/regex[${PYTHON_USEDEP}] + ' 'python*') + ) +" + +EPYTEST_PLUGINS=() +distutils_enable_tests pytest + +EPYTEST_IGNORE=( + # require dev-python/js2py which is a really bad quality package + tests/test_nearley/test_nearley.py +) diff --git a/sdk_container/src/third_party/portage-stable/dev-python/lxml/lxml-6.0.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/lxml/lxml-6.0.1.ebuild index 73bb6d0459a..1dbc4ac1bae 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/lxml/lxml-6.0.1.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-python/lxml/lxml-6.0.1.ebuild @@ -23,7 +23,7 @@ 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 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" IUSE="doc examples +threads test" RESTRICT="!test? ( test )" diff --git a/sdk_container/src/third_party/portage-stable/dev-python/lxml/lxml-6.0.2.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/lxml/lxml-6.0.2.ebuild index 89b5e534d56..60b87d50980 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/lxml/lxml-6.0.2.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-python/lxml/lxml-6.0.2.ebuild @@ -23,7 +23,7 @@ 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 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~loong ~m68k ~mips ~ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" IUSE="doc examples +threads test" RESTRICT="!test? ( test )" diff --git a/sdk_container/src/third_party/portage-stable/dev-python/markupsafe/markupsafe-3.0.3.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/markupsafe/markupsafe-3.0.3.ebuild index 2d9bc92594c..0a9605f0c6d 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/markupsafe/markupsafe-3.0.3.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-python/markupsafe/markupsafe-3.0.3.ebuild @@ -19,7 +19,7 @@ HOMEPAGE=" LICENSE="BSD" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x64-solaris" +KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~x64-macos ~x64-solaris" IUSE="+native-extensions" EPYTEST_PLUGINS=() diff --git a/sdk_container/src/third_party/portage-stable/dev-python/more-itertools/more-itertools-10.8.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/more-itertools/more-itertools-10.8.0.ebuild index d40c215bdb3..b2a03b7cf5e 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/more-itertools/more-itertools-10.8.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-python/more-itertools/more-itertools-10.8.0.ebuild @@ -16,7 +16,7 @@ HOMEPAGE=" LICENSE="MIT" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" distutils_enable_sphinx docs \ dev-python/furo diff --git a/sdk_container/src/third_party/portage-stable/dev-python/pefile/pefile-2024.8.26.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/pefile/pefile-2024.8.26.ebuild index 5e1d6ab44aa..cac259dcd46 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/pefile/pefile-2024.8.26.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-python/pefile/pefile-2024.8.26.ebuild @@ -1,10 +1,10 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 DISTUTILS_USE_PEP517=setuptools -PYTHON_COMPAT=( python3_{10..13} ) +PYTHON_COMPAT=( python3_{10..14} ) inherit distutils-r1 DESCRIPTION="Module to read and work with Portable Executable (PE) files" diff --git a/sdk_container/src/third_party/portage-stable/dev-python/pefile/pefile-9999.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/pefile/pefile-9999.ebuild index 3eecccc699f..04bbded5d5b 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/pefile/pefile-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-python/pefile/pefile-9999.ebuild @@ -1,10 +1,10 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 DISTUTILS_USE_PEP517=setuptools -PYTHON_COMPAT=( python3_{10..13} ) +PYTHON_COMPAT=( python3_{10..14} ) inherit distutils-r1 DESCRIPTION="Module to read and work with Portable Executable (PE) files" diff --git a/sdk_container/src/third_party/portage-stable/dev-python/pillow/Manifest b/sdk_container/src/third_party/portage-stable/dev-python/pillow/Manifest index 09ccbd13585..af5b38e2111 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/pillow/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-python/pillow/Manifest @@ -1,4 +1,3 @@ -DIST pillow-11.2.1.gh.tar.gz 47086538 BLAKE2B 306c3f4292681caea75835dc972229854e12260190f7e7b63ad5292091fcbb28a16fe102c9b2359fe72b99ad97821fa37715f5934bfe79a983efa81b07abf2a4 SHA512 4b5eee712b6cedf175e251ca29bb6e6dda27491585d343ef71ed416819e91510c4add6be50fe1151ab5f178f4686968de111beff4143a978b7a32519293a5725 DIST pillow-11.3.0.gh.tar.gz 47173056 BLAKE2B 1260c7025e6013c50782024756a0c891d3735bd7d4c1c9d0a89d9eb1c94bd2f762369086f7269d487100e8a0e2678a73012bf29172697c1a1a18e58f9019a9bd SHA512 7d97e623bd41da94dd89a66dc600cea016d0a4f33fbf036175768ea96b2031c1968acf4fc3d9b2835ce93f9533838a9ce68a6579a7397f4aeccafb6032adb3db +DIST pillow-12.0.0.gh.tar.gz 47078314 BLAKE2B 14540f6b016004de56e5736f66f23999ebc2683c4be5053631fd6890502d7416d05e9ef858460fec4473d873893303b51f251ed3b50facb11616211b0629e79c SHA512 816237bf65b65a8f7ec941db6ea07814af602efe6f214e2a253b1d0b6b9dbbe9895a9822c6de67af40bd507e658b8c088707440f689d5fd237985f4ee0f7bfc2 DIST pillow-test-images-7077675d2cda485d63de4aefe0fefbf6f655c5a0.gh.tar.gz 57430276 BLAKE2B 6e8dcde60832004f5a0ea0e14024fdcd0b08cf0e225f27e39b7c2058582d6d5efe7fcaccb5bd28754affa6fe4125735fb4beeaa2075e6aceea0a998ebc0747fe SHA512 795f015c9b73a8c941fb5cd880b1ab36b24d38612db53367ab0e6c05dd1cdbfd47034decb7e36d7de940eeea1582d644ca7bee3b131577578692569c2c60c32b -DIST pillow-test-images-716bdc4adaf97601e5b9a31c9be25f8975381ee1.gh.tar.gz 57416881 BLAKE2B 8ea5fff2231567f957fc911120c1b50610722477da99559639317e4513e4bc4e73b8b49368a6d95c6938333f0c48db7672c3713eaef70494f7896dadd07cc42d SHA512 b00009be0f5ca85ec0c761fa780f0e650c1877b456b9a9426a4d2300a0c5654358495299e129ded411fccb641e4add7e460bcb3ca7be055f3b207407ccefb33c diff --git a/sdk_container/src/third_party/portage-stable/dev-python/pillow/files/pillow-11.2.1-py314.patch b/sdk_container/src/third_party/portage-stable/dev-python/pillow/files/pillow-11.2.1-py314.patch deleted file mode 100644 index b9fe40d4704..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/pillow/files/pillow-11.2.1-py314.patch +++ /dev/null @@ -1,49 +0,0 @@ -https://github.com/python-pillow/Pillow/pull/8948 -https://github.com/python-pillow/Pillow/commit/3c71559804e661a5f727e2007a5be51f26d9af27 - -From c7193f74fc5ce1a0fe1742a0845165024be45ef5 Mon Sep 17 00:00:00 2001 -From: Andrew Murray -Date: Thu, 8 May 2025 20:10:34 +1000 -Subject: [PATCH 1/3] Updated error message - ---- - Tests/test_image_resample.py | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/Tests/test_image_resample.py b/Tests/test_image_resample.py -index ce6209c0da4..73b25ed51b2 100644 ---- a/Tests/test_image_resample.py -+++ b/Tests/test_image_resample.py -@@ -462,7 +462,7 @@ def test_wrong_arguments(self, resample: Image.Resampling) -> None: - im.resize((32, 32), resample, (20, 20, 20, 100)) - im.resize((32, 32), resample, (20, 20, 100, 20)) - -- with pytest.raises(TypeError, match="must be sequence of length 4"): -+ with pytest.raises(TypeError, match="must be (sequence|tuple) of length 4"): - im.resize((32, 32), resample, (im.width, im.height)) # type: ignore[arg-type] - - with pytest.raises(ValueError, match="can't be negative"): - -From 215069af5ddec6f4d3b92b8bc7554a10e2efb669 Mon Sep 17 00:00:00 2001 -From: Andrew Murray -Date: Thu, 8 May 2025 22:13:13 +1000 -Subject: [PATCH 3/3] Added support for Python 3.14 - ---- - setup.py | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/setup.py b/setup.py -index 5ecd6b8160a..5d41e27d981 100644 ---- a/setup.py -+++ b/setup.py -@@ -46,7 +46,7 @@ def get_version() -> str: - ZLIB_ROOT = None - FUZZING_BUILD = "LIB_FUZZING_ENGINE" in os.environ - --if sys.platform == "win32" and sys.version_info >= (3, 14): -+if sys.platform == "win32" and sys.version_info >= (3, 15): - import atexit - - atexit.register( - diff --git a/sdk_container/src/third_party/portage-stable/dev-python/pillow/pillow-11.2.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/pillow/pillow-12.0.0.ebuild similarity index 89% rename from sdk_container/src/third_party/portage-stable/dev-python/pillow/pillow-11.2.1.ebuild rename to sdk_container/src/third_party/portage-stable/dev-python/pillow/pillow-12.0.0.ebuild index 21b27055505..28c0c615dd4 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/pillow/pillow-11.2.1.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-python/pillow/pillow-12.0.0.ebuild @@ -15,7 +15,7 @@ MY_PN=Pillow MY_P=${MY_PN}-${PV} # upstream always fetches from main -TEST_IMAGE_COMMIT="716bdc4adaf97601e5b9a31c9be25f8975381ee1" +TEST_IMAGE_COMMIT="7077675d2cda485d63de4aefe0fefbf6f655c5a0" DESCRIPTION="Python Imaging Library (fork)" HOMEPAGE=" @@ -35,7 +35,7 @@ S=${WORKDIR}/${MY_P} LICENSE="HPND" SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~x64-macos" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~x64-macos" IUSE="avif examples imagequant +jpeg jpeg2k lcms test tiff tk truetype webp xcb zlib" REQUIRED_USE="test? ( jpeg jpeg2k lcms tiff truetype )" RESTRICT="!test? ( test )" @@ -60,13 +60,13 @@ RDEPEND=" dev-python/olefile[${PYTHON_USEDEP}] " BDEPEND=" + dev-python/pybind11[${PYTHON_USEDEP}] >=dev-python/setuptools-77[${PYTHON_USEDEP}] dev-python/wheel[${PYTHON_USEDEP}] virtual/pkgconfig test? ( dev-python/defusedxml[${PYTHON_USEDEP}] dev-python/packaging[${PYTHON_USEDEP}] - dev-python/pytest-timeout[${PYTHON_USEDEP}] || ( media-gfx/imagemagick[png] media-gfx/graphicsmagick[png] @@ -74,6 +74,7 @@ BDEPEND=" ) " +EPYTEST_PLUGINS=( pytest-timeout ) EPYTEST_XDIST=1 distutils_enable_tests pytest @@ -81,8 +82,6 @@ src_prepare() { local PATCHES=( # https://github.com/python-pillow/pillow/pull/7634 "${FILESDIR}/${PN}-10.2.0-cross.patch" - # https://github.com/python-pillow/Pillow/pull/8948 - "${FILESDIR}/${PN}-11.2.1-py314.patch" ) distutils-r1_src_prepare @@ -150,9 +149,9 @@ python_test() { esac "${EPYTHON}" selftest.py --installed || die "selftest failed with ${EPYTHON}" - local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 # leak tests are fragile and broken under xdist - epytest -k "not leak" -p timeout || die "Tests failed with ${EPYTHON}" + # nonfatal implied by xvfb + nonfatal epytest -k "not leak" || die "Tests failed with ${EPYTHON}" } python_install() { diff --git a/sdk_container/src/third_party/portage-stable/dev-python/pip/Manifest b/sdk_container/src/third_party/portage-stable/dev-python/pip/Manifest index 86f564765d0..3d2fa10525d 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/pip/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-python/pip/Manifest @@ -1,2 +1,3 @@ -DIST pip-25.1.1.gh.tar.gz 9219969 BLAKE2B eb443451deeb71888c2fc56ac5c8cb2d0515ec0efff975fab98cfa65d1fc5e66948243b3acebf1f4b0446e46082abb9fd350816579a4f5af1292c160490ce930 SHA512 ce61c9861265139b3c5ea9be9dc246097cd75c21687cf8301f80a377d02420c4524f0d6307d2ca0232ff8715b1105343bcfdb9cac6b69503780ab2c4645558dc +DIST flit_core-3.12.0-py3-none-any.whl 45594 BLAKE2B 7c6cb6eb03d45bbba27f27b3728881b57fe82dd38e03f884d3b7c46116eb2b9dd76f92bdaf7f594ef8ccbe12ec8f9a56424ff9e9fc7a839c4818a113fdf0c3d3 SHA512 790c12b1f43201e365fb3f8f2f0a54e1a578876799dfdf8bfeea679a25ea096bf62946d006618c1458ae6e37ce6d00998f37e9aba426d5ab80d32ef2d75da4e0 DIST pip-25.2.gh.tar.gz 9121715 BLAKE2B 3bfe61d6d0d6f3a79c3fd801f5cb40b203fd12085d925ae7cde53adca3c5ee523fdfd9449546e1bc8ca719b3e8766cfef3162919e13a77f7adc0d20a951d11c7 SHA512 5cc65c9091fdda7905e26ce32ddaa3a1c2fd287d69fd3da67c814ba7e8e5be59301d8327c06cdca78c1b95f4a5b5f75c87f36a549022408cc0e8f9411c0db11e +DIST pip-25.3.gh.tar.gz 9115712 BLAKE2B 87d848c497163a45ee3de8f6f75c80b5051b07062c5a15450ae98b59a6cebc6bf03ca8525d57929493f2cfeb28d5623401eba69f0bdfc734389efbb84eafdf53 SHA512 f50db092213ec3bb819d3da5669f73d119b5ec7f7ac5e8a587a17c27eafa32bc17a057df09389c526a3769ef3577f5553187d54ceffa89aed63f4b4498ff044e diff --git a/sdk_container/src/third_party/portage-stable/dev-python/pip/files/pip-23.1-no-coverage.patch b/sdk_container/src/third_party/portage-stable/dev-python/pip/files/pip-23.1-no-coverage.patch deleted file mode 100644 index 963bd4e7d43..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/pip/files/pip-23.1-no-coverage.patch +++ /dev/null @@ -1,48 +0,0 @@ -From d915b0eec7b5844c06b5d8853544c8c5b538b0b9 Mon Sep 17 00:00:00 2001 -From: Arthur Zamarin -Date: Fri, 29 Jul 2022 14:06:03 +0300 -Subject: [PATCH] Disable coverage testing support inside test venvs - ---- - tests/conftest.py | 15 --------------- - 1 file changed, 15 deletions(-) - -diff --git a/tests/conftest.py b/tests/conftest.py -index 57dd7e68a..af2af9ffa 100644 ---- a/tests/conftest.py -+++ b/tests/conftest.py -@@ -408,13 +408,6 @@ def wheel_install(tmpdir_factory: pytest.TempPathFactory, common_wheels: Path) - - return _common_wheel_editable_install(tmpdir_factory, common_wheels, "wheel") - - --@pytest.fixture(scope="session") --def coverage_install( -- tmpdir_factory: pytest.TempPathFactory, common_wheels: Path --) -> Path: -- return _common_wheel_editable_install(tmpdir_factory, common_wheels, "coverage") -- -- - def install_pth_link( - venv: VirtualEnvironment, project_name: str, lib_dir: Path - ) -> None: -@@ -431,3 +424,2 @@ def virtualenv_template( - setuptools_install: Path, - wheel_install: Path, -- coverage_install: Path, -@@ -457,13 +449,6 @@ def virtualenv_template( - [os.fspath(venv.bin / "python"), "setup.py", "-q", "develop"], cwd=pip_editable - ) - -- # Install coverage and pth file for executing it in any spawned processes -- # in this virtual environment. -- install_pth_link(venv, "coverage", coverage_install) -- # zz prefix ensures the file is after easy-install.pth. -- with open(venv.site / "zz-coverage-helper.pth", "a") as f: -- f.write("import coverage; coverage.process_startup()") -- - # Drop (non-relocatable) launchers. - for exe in os.listdir(venv.bin): - if not ( --- -2.40.0 - diff --git a/sdk_container/src/third_party/portage-stable/dev-python/pip/pip-25.1.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/pip/pip-25.3.ebuild similarity index 75% rename from sdk_container/src/third_party/portage-stable/dev-python/pip/pip-25.1.1.ebuild rename to sdk_container/src/third_party/portage-stable/dev-python/pip/pip-25.3.ebuild index 21d48cae396..1439ec798fe 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/pip/pip-25.1.1.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-python/pip/pip-25.3.ebuild @@ -5,12 +5,13 @@ EAPI=8 # please bump dev-python/ensurepip-pip along with this package! -DISTUTILS_USE_PEP517=setuptools +DISTUTILS_USE_PEP517=flit PYTHON_TESTED=( pypy3_11 python3_{11..14} ) PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" ) PYTHON_REQ_USE="ssl(+),threads(+)" -inherit distutils-r1 shell-completion +inherit distutils-r1 pypi shell-completion +FLIT_CORE_PV=3.12.0 DESCRIPTION="The PyPA recommended tool for installing Python packages" HOMEPAGE=" @@ -20,27 +21,30 @@ HOMEPAGE=" " SRC_URI=" https://github.com/pypa/pip/archive/${PV}.tar.gz -> ${P}.gh.tar.gz + test? ( + $(pypi_wheel_url flit-core "${FLIT_CORE_PV}") + ) " LICENSE="MIT" 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="test test-rust" RESTRICT="!test? ( test )" # see src/pip/_vendor/vendor.txt RDEPEND=" - >=dev-python/cachecontrol-0.14.2[${PYTHON_USEDEP}] + >=dev-python/cachecontrol-0.14.3[${PYTHON_USEDEP}] >=dev-python/dependency-groups-1.3.0[${PYTHON_USEDEP}] - >=dev-python/distlib-0.3.9[${PYTHON_USEDEP}] + >=dev-python/distlib-0.4.0[${PYTHON_USEDEP}] >=dev-python/distro-1.9.0[${PYTHON_USEDEP}] - >=dev-python/msgpack-1.1.0[${PYTHON_USEDEP}] + >=dev-python/msgpack-1.1.1[${PYTHON_USEDEP}] >=dev-python/packaging-25.0[${PYTHON_USEDEP}] - >=dev-python/platformdirs-4.3.7[${PYTHON_USEDEP}] + >=dev-python/platformdirs-4.3.8[${PYTHON_USEDEP}] >=dev-python/pyproject-hooks-1.2.0[${PYTHON_USEDEP}] - >=dev-python/requests-2.32.3[${PYTHON_USEDEP}] - >=dev-python/rich-14.0.0[${PYTHON_USEDEP}] - >=dev-python/resolvelib-1.1.0[${PYTHON_USEDEP}] + >=dev-python/requests-2.32.4[${PYTHON_USEDEP}] + >=dev-python/rich-14.1.0[${PYTHON_USEDEP}] + >=dev-python/resolvelib-1.2.0[${PYTHON_USEDEP}] >=dev-python/setuptools-70.3.0[${PYTHON_USEDEP}] >=dev-python/tomli-w-1.2.0[${PYTHON_USEDEP}] >=dev-python/truststore-0.10.1[${PYTHON_USEDEP}] @@ -72,7 +76,8 @@ BDEPEND=" python_prepare_all() { local PATCHES=( - "${FILESDIR}/pip-23.1-no-coverage.patch" + # remove coverage & pytest-subket wheel expectation from test suite + "${FILESDIR}/pip-25.2-test-wheels.patch" # prepare to unbundle dependencies "${FILESDIR}/pip-25.0.1-unbundle.patch" ) @@ -85,10 +90,12 @@ python_prepare_all() { -e 's:from pip\._vendor import:import:g' \ -e 's:from pip\._vendor\.:from :g' \ {} + || die + sed -i -e '/_vendor.*\(COPYING\|LICENSE\)/d' pyproject.toml || die if use test; then local wheels=( "${BROOT}"/usr/lib/python/ensurepip/{setuptools,wheel}-*.whl + "${DISTDIR}/$(pypi_wheel_name flit-core "${FLIT_CORE_PV}")" ) mkdir tests/data/common_wheels/ || die cp "${wheels[@]}" tests/data/common_wheels/ || die @@ -134,6 +141,7 @@ python_test() { tests/functional/test_lock.py::test_lock_vcs # broken by system site-packages use tests/functional/test_freeze.py::test_freeze_with_setuptools + tests/functional/test_install.py::test_install_subprocess_output_handling tests/functional/test_pip_runner_script.py::test_runner_work_in_environments_with_no_pip tests/functional/test_uninstall.py::test_basic_uninstall_distutils tests/unit/test_base_command.py::test_base_command_global_tempdir_cleanup @@ -146,6 +154,8 @@ python_test() { tests/functional/test_uninstall.py::test_uninstall_non_local_distutils ) local EPYTEST_IGNORE=( + # from upstream options + tests/tests_cache # requires proxy.py tests/functional/test_proxy.py ) @@ -156,26 +166,8 @@ python_test() { # unexpected tempfiles? tests/functional/test_install_config.py::test_do_not_prompt_for_authentication tests/functional/test_install_config.py::test_prompt_for_authentication - ) - ;; - python3.14*) - EPYTEST_DESELECT+=( - # TODO: segfaults - tests/unit/test_collector.py::test_get_index_content_directory_append_index - # https://github.com/python/cpython/issues/125974 - tests/unit/test_collector.py::test_ensure_quoted_url - tests/unit/test_finder.py::test_finder_priority_file_over_page - tests/unit/test_urls.py::test_path_to_url_unix - tests/unit/test_collector.py::test_clean_url_path - tests/unit/test_collector.py::test_clean_url_path_with_local_path - tests/unit/test_req.py::TestRequirementSet::test_download_info_local_editable_dir - tests/unit/test_req.py::test_parse_editable_local - tests/unit/test_req.py::test_parse_editable_local_extras - tests/unit/test_req.py::test_get_url_from_path__archive_file - tests/unit/test_req.py::test_get_url_from_path__installable_dir - tests/functional/test_lock.py::test_lock_wheel_from_findlinks - tests/functional/test_lock.py::test_lock_sdist_from_findlinks - tests/functional/test_lock.py::test_lock_local_editable_with_dep + # wrong path + tests/functional/test_install.py::test_install_editable_with_prefix_setup_py ) ;; esac @@ -190,12 +182,13 @@ python_test() { fi local -x PIP_DISABLE_PIP_VERSION_CHECK=1 - local EPYTEST_PLUGINS=( pytest-rerunfailures ) - local EPYTEST_XDIST=1 + local EPYTEST_PLUGINS=() # rerunfailures because test suite breaks if packages are installed - # in parallel - epytest -m "not network" -o tmp_path_retention_policy=all \ - --reruns=5 --use-venv + # to system site-packages while it's running + local EPYTEST_RERUNS=5 + local EPYTEST_XDIST=1 + epytest -m "not network" -o addopts= -o tmp_path_retention_policy=all \ + --use-venv } python_install_all() { diff --git a/sdk_container/src/third_party/portage-stable/dev-python/poetry-core/poetry-core-2.2.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/poetry-core/poetry-core-2.2.1.ebuild index d58aeb570aa..8a25f1c8425 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/poetry-core/poetry-core-2.2.1.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-python/poetry-core/poetry-core-2.2.1.ebuild @@ -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" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos" IUSE="test" RESTRICT="!test? ( test )" diff --git a/sdk_container/src/third_party/portage-stable/dev-python/pycparser/pycparser-2.23.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/pycparser/pycparser-2.23.ebuild index e74211d7ed4..9f4aecf1611 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/pycparser/pycparser-2.23.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-python/pycparser/pycparser-2.23.ebuild @@ -17,7 +17,7 @@ HOMEPAGE=" LICENSE="BSD" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" RDEPEND=" dev-python/ply:=[${PYTHON_USEDEP}] 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 5cb6113c574..59b152135d9 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 @@ -2,3 +2,5 @@ DIST setuptools_scm-8.3.1.tar.gz 78088 BLAKE2B 6cedb55fc16830d12a28fe5b662c371b1 DIST setuptools_scm-9.2.0.tar.gz 201229 BLAKE2B b2633c1a4f5a8a4b0ff23bf9b866e9bcb5f5c7b3a5fff9159d207b7405f8e3d76efddf3dda6a3083efdbd83bd3ff9d3399ebd2bcbe87598a93d36494ac169753 SHA512 da76f5440d03cadc545d0ed4275476c2d5b42013a100ee3948e77a05fdb61087fe208785bbb460d96423da7f6849b5eab45914f0054b21fd1d0c36ce0eac1795 DIST setuptools_scm-9.2.1.tar.gz 202821 BLAKE2B 5780ac8ad0e1c35b9a1d34ecfba6d7c8a0776153356d66371aa24700ba2b1849ee7097652d8566123fc975bd81fd69e7201e636dfa06bb3aa05b8d79ce0fabe8 SHA512 a50559e6d12474056a30dec8276c637302ce33e54f88ce508ef0a93158ed8b15d07e108dc907e3ad2e315444643639177ef049759003ef34d6cc1243d21e312e DIST setuptools_scm-9.2.1.tar.gz.provenance 9513 BLAKE2B d885e11b12bf8087fbf1f134c11f05210f5fc25a2b0b3e2084d7a48da07eeb62ee5b68df229eff2fd3c00856e56216d4e1c2c2220b4ae7c7870020723aa314b5 SHA512 2c0bb8ade54e92d304333e04cacdc40ecb35cad2a5f024a0b349dc2a295ea327fdb93cc24ba155e71cd308cfca404f7288c4e5f2dd1b6eab2daafed24669f676 +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-9.2.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/setuptools-scm/setuptools-scm-9.2.0.ebuild index acf15a322b5..6fab476c7a9 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/setuptools-scm/setuptools-scm-9.2.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-python/setuptools-scm/setuptools-scm-9.2.0.ebuild @@ -17,7 +17,7 @@ HOMEPAGE=" LICENSE="MIT" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" # 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-9.2.2.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/setuptools-scm/setuptools-scm-9.2.2.ebuild new file mode 100644 index 00000000000..38d40d6badc --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-python/setuptools-scm/setuptools-scm-9.2.2.ebuild @@ -0,0 +1,53 @@ +# Copyright 1999-2025 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=standalone +PYPI_VERIFY_REPO=https://github.com/pypa/setuptools-scm +PYTHON_COMPAT=( python3_{11..14} python3_{13,14}t pypy3_11 ) + +inherit distutils-r1 pypi + +DESCRIPTION="Manage versions by scm tags via setuptools" +HOMEPAGE=" + https://github.com/pypa/setuptools-scm/ + https://pypi.org/project/setuptools-scm/ +" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" + +# there's an optional dep on rich for cute logs +RDEPEND=" + dev-python/packaging[${PYTHON_USEDEP}] + >=dev-python/setuptools-64[${PYTHON_USEDEP}] +" +BDEPEND=" + dev-python/setuptools[${PYTHON_USEDEP}] + test? ( + dev-python/build[${PYTHON_USEDEP}] + dev-python/typing-extensions[${PYTHON_USEDEP}] + dev-vcs/git + ) +" + +EPYTEST_PLUGINS=( pytest-timeout ) +distutils_enable_tests pytest + +EPYTEST_DESELECT=( + # the usual nondescript gpg-agent failure + testing/test_git.py::test_git_getdate_signed_commit + + # fetching from the Internet + testing/test_integration.py::test_xmlsec_download_regression + testing/test_regressions.py::test_pip_download + + # calls flake8, unpredictable + testing/test_functions.py::test_dump_version_flake8 + + # incompatible with current mypy version + testing/test_functions.py::test_dump_version_mypy +) diff --git a/sdk_container/src/third_party/portage-stable/dev-python/tree-sitter/Manifest b/sdk_container/src/third_party/portage-stable/dev-python/tree-sitter/Manifest index 335acadcc5e..d3329791d7e 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/tree-sitter/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-python/tree-sitter/Manifest @@ -1,5 +1,3 @@ -DIST tree-sitter-0.23.0.gh.tar.gz 167761 BLAKE2B 694e90f608f51fe4f9add476cd5ebcd0ce04a7b027efc4948ce49a6cc0f05ebf4f15e0fe3f365f89f3e04cfec542cb3f1db1e5b05ff7ca23d3134561ea3dcf36 SHA512 67a6f3359c6283c58afcdbe5b6a521cdfcf2585a5361fb69a55eff82941726a143528a402e6d609286d8846c77e20d0a38551525d761e35abb21045ad9c5a2f8 -DIST tree-sitter-0.23.1.gh.tar.gz 168079 BLAKE2B fe3f8d9dae426d7771eab7775d78a0af72e59bf3448005cec1e597a3263b2ac89d7b2c1a80aa12da42db54b242da10d0395673412257d57dff557b2cf4763869 SHA512 39ed2d5d8a737bd72d539701a2dab5abc501b151a3666180f127645895582757eba2ec98607bbeb07bf90377fccad4a93cb385ce16565ed3420908129cea4f57 DIST tree-sitter-0.24.0.gh.tar.gz 170141 BLAKE2B 3d7f076f947192105be2fc9d93831eb331c1ec189619f6db860db8b6b6c1f2f33cd03edf315c09a5de6637d870351d06d5507d9c0de8a4dadc4e9e863ac233e8 SHA512 471d605cc29bcf7fd228eefe8a3bc2dd39c163d584e941cfd8ac0e498ff1815c7cadb9a7a45c643f704b8c9f12932bcc53597c835e23b5988da087f9a6a59067 -DIST tree-sitter-0.25.0.gh.tar.gz 173820 BLAKE2B 63dbb9992fb6c4212a7a7cffd44b852d94d78a9699ec856807ce333ac494409f7dcd5cf3d8b0fdfa03c03a484ed3d5b0ee51c3847667474a04c811ae561f0918 SHA512 357a0aa1c9393f9ec1a056e87b54e5178abbd6b2525a863b2ed5ba788337a9ae555a52092fe89803215487d324e287f2c2cbe2d60f878e1c053cf6b41a387eeb DIST tree-sitter-0.25.1.gh.tar.gz 174288 BLAKE2B 2580e7909e28ea05dfe8a015eb0e26d465318a0962666dc8de3d82d80c7647a62398abee093ccea13a04119e685dac3365ed098a70f7c50fac383cef34f7cb62 SHA512 37a6035921d44a13ef2128c8ff5dd7d8424dd50c1b5089a143ecfd921848304d91339d17108fa9e2f7ea0a6755b03413061ed6a6561ef1d8473534e8cf4636ef +DIST tree-sitter-0.25.2.gh.tar.gz 174357 BLAKE2B c136098245beff521e7bf26b58b0cb4adfcfbec05ad59f62949c422c414cd879a973390875c285b014593790a5fb243863cc2b82dbecbf3297f24b394b06350a SHA512 ee0ee294cd3380442bb6f4f62413590818bfa4afbde1601bb89c777e97dcee885a22a06e529913c2fb08d082f5de775ced9403ffd5d2ca35dcfd0b19072ee452 diff --git a/sdk_container/src/third_party/portage-stable/dev-python/tree-sitter/tree-sitter-0.23.0-r1.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/tree-sitter/tree-sitter-0.23.0-r1.ebuild deleted file mode 100644 index feee18f4ef5..00000000000 --- a/sdk_container/src/third_party/portage-stable/dev-python/tree-sitter/tree-sitter-0.23.0-r1.ebuild +++ /dev/null @@ -1,67 +0,0 @@ -# Copyright 1999-2025 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_{10..13} ) - -inherit distutils-r1 - -DESCRIPTION="Python bindings to the Tree-sitter parsing library" -HOMEPAGE=" - https://github.com/tree-sitter/py-tree-sitter/ - https://pypi.org/project/tree-sitter/ -" -SRC_URI=" - https://github.com/tree-sitter/py-tree-sitter/archive/v${PV}.tar.gz - -> ${P}.gh.tar.gz -" -S=${WORKDIR}/py-${P} - -LICENSE="MIT" -SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" - -# setuptools is needed for distutils import -DEPEND=" - >=dev-libs/tree-sitter-0.23.0:= - "${T}"/catalyst-tmpdir.conf + dotmpfiles "${T}"/catalyst-tmpdir.conf + + doman files/catalyst.1 files/catalyst-config.5 files/catalyst-spec.5 + insinto /etc/catalyst + doins etc/* +} + +pkg_postinst() { + if [[ -z ${REPLACING_VERSIONS} ]]; then + optfeature "ccache support" dev-util/ccache + fi + tmpfiles_process catalyst-tmpdir.conf +} diff --git a/sdk_container/src/third_party/portage-stable/dev-util/catalyst/catalyst-4.1.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-util/catalyst/catalyst-4.1.0.ebuild new file mode 100644 index 00000000000..0eb6758a965 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-util/catalyst/catalyst-4.1.0.ebuild @@ -0,0 +1,136 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +MY_P=${P/_/-} + +if [[ ${PV} == *9999* ]]; then + SRC_ECLASS="git-r3" + EGIT_REPO_URI="https://anongit.gentoo.org/git/proj/catalyst.git" + EGIT_BRANCH="master" +else + SRC_URI="https://gitweb.gentoo.org/proj/catalyst.git/snapshot/${MY_P}.tar.bz2" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + S="${WORKDIR}/${MY_P/_/-}" +fi + +PYTHON_COMPAT=( python3_{10..13} ) +DISTUTILS_USE_PEP517=setuptools + +inherit distutils-r1 linux-info optfeature tmpfiles ${SRC_ECLASS} + +DESCRIPTION="Release metatool used for creating releases based on Gentoo Linux" +HOMEPAGE="https://wiki.gentoo.org/wiki/Catalyst" + +LICENSE="GPL-2+" +SLOT="0" +IUSE="doc +iso qcow2" + +BDEPEND=" + app-text/asciidoc +" +DEPEND=" + sys-apps/portage[${PYTHON_USEDEP}] + >=dev-python/snakeoil-0.6.5[${PYTHON_USEDEP}] + dev-python/fasteners[${PYTHON_USEDEP}] + dev-python/tomli[${PYTHON_USEDEP}] + sys-apps/util-linux[python,${PYTHON_USEDEP}] +" +RDEPEND=" + ${DEPEND} + >=dev-python/pydecomp-0.3[${PYTHON_USEDEP}] + app-arch/lbzip2 + app-arch/pixz + app-arch/tar[xattr] + dev-vcs/git + sys-fs/dosfstools + sys-fs/squashfs-tools-ng[tools] + + iso? ( + app-cdr/cdrtools + dev-libs/libisoburn + + amd64? ( + sys-boot/grub[grub_platforms_efi-32,grub_platforms_efi-64] + sys-fs/mtools + ) + arm64? ( + sys-boot/grub[grub_platforms_efi-64] + sys-fs/mtools + ) + ppc? ( + sys-boot/grub:2[grub_platforms_ieee1275] + ) + ppc64? ( + sys-boot/grub:2[grub_platforms_ieee1275] + ) + sparc? ( + sys-boot/grub:2[grub_platforms_ieee1275] + ) + x86? ( + sys-boot/grub[grub_platforms_efi-32] + ) + ) + + qcow2? ( + amd64? ( + sys-boot/grub[grub_platforms_efi-32,grub_platforms_efi-64] + sys-fs/dosfstools + sys-fs/xfsprogs + sys-block/parted + app-emulation/qemu + ) + ) +" + +pkg_setup() { + CONFIG_CHECK=" + ~UTS_NS ~IPC_NS + ~SQUASHFS ~SQUASHFS_ZLIB ~XFS_FS ~VFAT_FS + " + linux-info_pkg_setup +} + +python_prepare_all() { + python_setup + echo VERSION="${PV}" "${PYTHON}" setup.py set_version + VERSION="${PV}" "${PYTHON}" setup.py set_version || die + distutils-r1_python_prepare_all +} + +# Build man pages here so as to not clobber default src_compile +src_configure() { + # build the man pages and docs + emake +} + +python_install_all() { + distutils-r1_python_install_all + if use doc; then + dodoc files/HOWTO.html files/docbook-xsl.css + fi +} + +python_install() { + distutils-r1_python_install + rm -rv "${D}"$(python_get_sitedir)/usr +} + +src_install() { + distutils-r1_src_install + + echo 'd /var/tmp/catalyst 0755 root root' > "${T}"/catalyst-tmpdir.conf + dotmpfiles "${T}"/catalyst-tmpdir.conf + + doman files/catalyst.1 files/catalyst-config.5 files/catalyst-spec.5 + insinto /etc/catalyst + doins etc/* +} + +pkg_postinst() { + if [[ -z ${REPLACING_VERSIONS} ]]; then + optfeature "ccache support" dev-util/ccache + fi + tmpfiles_process catalyst-tmpdir.conf +} diff --git a/sdk_container/src/third_party/portage-stable/dev-util/catalyst/catalyst-9999.ebuild b/sdk_container/src/third_party/portage-stable/dev-util/catalyst/catalyst-9999.ebuild index c4e2bd3dcf3..0eb6758a965 100644 --- a/sdk_container/src/third_party/portage-stable/dev-util/catalyst/catalyst-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-util/catalyst/catalyst-9999.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 diff --git a/sdk_container/src/third_party/portage-stable/dev-util/gdbus-codegen/gdbus-codegen-2.84.4.ebuild b/sdk_container/src/third_party/portage-stable/dev-util/gdbus-codegen/gdbus-codegen-2.84.4.ebuild index bb3d561f1bd..13032e2e69f 100644 --- a/sdk_container/src/third_party/portage-stable/dev-util/gdbus-codegen/gdbus-codegen-2.84.4.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-util/gdbus-codegen/gdbus-codegen-2.84.4.ebuild @@ -17,7 +17,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 ~amd64-linux ~x86-linux ~x64-macos" +KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos" RDEPEND=" ${PYTHON_DEPS} diff --git a/sdk_container/src/third_party/portage-stable/dev-util/glib-utils/glib-utils-2.84.4.ebuild b/sdk_container/src/third_party/portage-stable/dev-util/glib-utils/glib-utils-2.84.4.ebuild index a8beae9e148..6d000457f03 100644 --- a/sdk_container/src/third_party/portage-stable/dev-util/glib-utils/glib-utils-2.84.4.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-util/glib-utils/glib-utils-2.84.4.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 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" RDEPEND="${PYTHON_DEPS}" DEPEND="${RDEPEND}" diff --git a/sdk_container/src/third_party/portage-stable/dev-util/maturin/maturin-1.9.6.ebuild b/sdk_container/src/third_party/portage-stable/dev-util/maturin/maturin-1.9.6.ebuild index 9dbf6aa5ed2..2f72dec1c4a 100644 --- a/sdk_container/src/third_party/portage-stable/dev-util/maturin/maturin-1.9.6.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-util/maturin/maturin-1.9.6.ebuild @@ -24,7 +24,7 @@ LICENSE+=" MPL-2.0 Unicode-3.0 Unicode-DFS-2016 " # crates 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" IUSE="doc +ssl test" RESTRICT="!test? ( test )" diff --git a/sdk_container/src/third_party/portage-stable/dev-util/perf/Manifest b/sdk_container/src/third_party/portage-stable/dev-util/perf/Manifest index 08d3098394b..c76b2c10a3a 100644 --- a/sdk_container/src/third_party/portage-stable/dev-util/perf/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-util/perf/Manifest @@ -1,2 +1,3 @@ DIST linux-6.14.tar.xz 149408504 BLAKE2B 11835719804b406fe281ea1c276a84dc0cbaa808552ddcca9233d3eaeb1c001d0455c7205379b02de8e8db758c1bae6fe7ceb6697e63e3cf9ae7187dc7a9715e SHA512 71dcaa3772d8d9797c3ae30cae9c582b11a7047a3bbcb8dfd479a4dffb40ff0da74cf3d45175f50cc9992e338bcadd46c9c570f54054ca3bde6661768d3d22eb DIST linux-6.16.tar.xz 152620004 BLAKE2B 87bc4da7e89cc8265aebffea7ec6c09f711be24fee87cb1c03a264c03fd5a538d66aa806640835aa5103926e612cdfbc52d7c861d7f7065f1a8bb11d893b0921 SHA512 55a00f89ad6db6db2e26ff5dc5cfc96bbf6654e5bd5d17d2a3b944a47640367e54139716d230923187bebc6cb7756edc9511a620fb8abc6f32c50a658a734784 +DIST linux-6.17.tar.xz 153382068 BLAKE2B 0edb2324be5638aa75984128aafdba3e50824187d2fcdff8794eab99d85c10c3a17d1e840053c2c83df5ee11fdf69f1c9452c57ecc9dae01c4af38180fe7821a SHA512 063999d7b819970657f6b7713fdb4173da2065ffdeed7cae197026dbb1edfd7f1d50374f073a1e19ef9686539594824ff6ecb8a930d97c4f272cb12f1c6d8355 diff --git a/sdk_container/src/third_party/portage-stable/dev-util/perf/perf-6.16-r1.ebuild b/sdk_container/src/third_party/portage-stable/dev-util/perf/perf-6.16-r1.ebuild index 918a9e75c68..8ef5a9c46b8 100644 --- a/sdk_container/src/third_party/portage-stable/dev-util/perf/perf-6.16-r1.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-util/perf/perf-6.16-r1.ebuild @@ -47,8 +47,8 @@ BDEPEND=" ${PYTHON_DEPS} >=app-arch/tar-1.34-r2 $(python_gen_cond_dep ' - dev-python/setuptools[${PYTHON_USEDEP}] - ') + dev-python/setuptools[${PYTHON_USEDEP}] + ') app-alternatives/yacc app-alternatives/lex sys-apps/which @@ -252,7 +252,7 @@ perf_make() { PKG_CONFIG="$(tc-getPKG_CONFIG)" prefix="${EPREFIX}/usr" bindir_relative="bin" tipdir="share/doc/${PF}" - EXTRA_CFLAGS="${CFLAGS}" + EXTRA_CFLAGS="${CPPFLAGS} ${CFLAGS}" EXTRA_LDFLAGS="${LDFLAGS}" ARCH="${arch}" BUILD_BPF_SKEL=$(usex bpf 1 "") \ @@ -300,6 +300,9 @@ perf_make() { src_compile() { filter-lto + # capstone-6 compatibility (#964350) + append-cppflags -DCAPSTONE_AARCH64_COMPAT_HEADER -DCAPSTONE_SYSTEMZ_COMPAT_HEADER + perf_make -f Makefile.perf perf_make -C Documentation man } diff --git a/sdk_container/src/third_party/portage-stable/dev-util/perf/perf-6.17.ebuild b/sdk_container/src/third_party/portage-stable/dev-util/perf/perf-6.17.ebuild new file mode 100644 index 00000000000..8ef5a9c46b8 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-util/perf/perf-6.17.ebuild @@ -0,0 +1,338 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +LLVM_COMPAT=( {18..21} ) +PYTHON_COMPAT=( python3_{10..14} python3_{13,14}t) +inherit bash-completion-r1 estack flag-o-matic linux-info llvm-r1 toolchain-funcs python-single-r1 + +DESCRIPTION="Userland tools for Linux Performance Counters" +HOMEPAGE="https://perfwiki.github.io/main/" + +LINUX_V="${PV:0:1}.x" +if [[ ${PV} == *_rc* ]] ; then + LINUX_VER=$(ver_cut 1-2).$(($(ver_cut 3)-1)) + PATCH_VERSION=$(ver_cut 1-3) + LINUX_PATCH=patch-${PV//_/-}.xz + SRC_URI="https://www.kernel.org/pub/linux/kernel/v${LINUX_V}/testing/${LINUX_PATCH} + https://www.kernel.org/pub/linux/kernel/v${LINUX_V}/testing/v${PATCH_VERSION}/${LINUX_PATCH}" +elif [[ ${PV} == *.*.* ]] ; then + # stable-release series + LINUX_VER=$(ver_cut 1-2) + LINUX_PATCH=patch-${PV}.xz + SRC_URI="https://www.kernel.org/pub/linux/kernel/v${LINUX_V}/${LINUX_PATCH}" +else + LINUX_VER=${PV} +fi + +LINUX_SOURCES="linux-${LINUX_VER}.tar.xz" +SRC_URI+=" https://www.kernel.org/pub/linux/kernel/v${LINUX_V}/${LINUX_SOURCES}" + +S_K="${WORKDIR}/linux-${LINUX_VER}" +S="${S_K}/tools/perf" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86 ~amd64-linux ~x86-linux" +IUSE="abi_mips_o32 abi_mips_n32 abi_mips_n64 babeltrace capstone big-endian bpf caps crypt debug gtk java libpfm +libtraceevent +libtracefs lzma numa perl +python +slang systemtap tcmalloc unwind" + +REQUIRED_USE=" + ${PYTHON_REQUIRED_USE} +" + +# setuptools (and Python) are always needed even if not building Python bindings +BDEPEND=" + ${LINUX_PATCH+dev-util/patchutils} + ${PYTHON_DEPS} + >=app-arch/tar-1.34-r2 + $(python_gen_cond_dep ' + dev-python/setuptools[${PYTHON_USEDEP}] + ') + app-alternatives/yacc + app-alternatives/lex + sys-apps/which + virtual/pkgconfig + app-text/asciidoc + app-text/sgml-common + app-text/xmlto + sys-process/time +" + +RDEPEND=" + babeltrace? ( dev-util/babeltrace:0/1 ) + bpf? ( + dev-libs/libbpf + dev-util/bpftool + dev-util/pahole + $(llvm_gen_dep ' + llvm-core/clang:${LLVM_SLOT}= + llvm-core/llvm:${LLVM_SLOT}= + ') + ) + caps? ( sys-libs/libcap ) + capstone? ( dev-libs/capstone ) + crypt? ( dev-libs/openssl:= ) + gtk? ( x11-libs/gtk+:2 ) + java? ( virtual/jre:* ) + libpfm? ( dev-libs/libpfm:= ) + libtraceevent? ( dev-libs/libtraceevent ) + libtracefs? ( dev-libs/libtracefs ) + lzma? ( app-arch/xz-utils ) + numa? ( sys-process/numactl ) + perl? ( dev-lang/perl:= ) + python? ( ${PYTHON_DEPS} ) + slang? ( sys-libs/slang ) + systemtap? ( dev-debug/systemtap ) + tcmalloc? ( dev-util/google-perftools ) + unwind? ( sys-libs/libunwind:= ) + app-arch/zstd:= + dev-libs/elfutils + sys-libs/binutils-libs:= + sys-libs/zlib + virtual/libcrypt +" + +DEPEND="${RDEPEND} + >=sys-kernel/linux-headers-5.10 + java? ( virtual/jdk ) +" + +QA_FLAGS_IGNORED=( + 'usr/bin/perf-read-vdso32' # not linked with anything except for libc + 'usr/libexec/perf-core/dlfilters/.*' # plugins +) + +pkg_setup() { + local CONFIG_CHECK=" + ~!SCHED_OMIT_FRAME_POINTER + ~DEBUG_INFO + ~FRAME_POINTER + ~FTRACE + ~FTRACE_SYSCALLS + ~FUNCTION_TRACER + ~KALLSYMS + ~KALLSYMS_ALL + ~KPROBES + ~KPROBE_EVENTS + ~PERF_EVENTS + ~STACKTRACE + ~TRACEPOINTS + ~UPROBES + ~UPROBE_EVENTS + " + + use bpf && llvm-r1_pkg_setup + # We enable python unconditionally as libbpf always generates + # API headers using python script + python_setup + + if use bpf ; then + CONFIG_CHECK+="~BPF ~BPF_EVENTS ~BPF_SYSCALL ~DEBUG_INFO_BTF ~HAVE_EBPF_JIT ~UNWINDER_FRAME_POINTER" + fi + + linux-info_pkg_setup +} + +# src_unpack and src_prepare are copied to dev-util/bpftool since +# it's building from the same tarball, please keep it in sync with bpftool +src_unpack() { + local paths=( + 'arch/*/include/*' 'arch/*/lib/*' 'arch/*/tools/*' 'include/*' + 'kernel/bpf/*' 'lib/*' 'scripts/*' 'tools/arch/*' 'tools/bpf/*' + 'tools/build/*' 'tools/include/*' 'tools/lib/*' 'tools/perf/*' + 'tools/scripts/*' + ) + + # We expect the tar implementation to support the -j option (both + # GNU tar and libarchive's tar support that). + echo ">>> Unpacking ${LINUX_SOURCES} (${paths[*]}) to ${PWD}" + gtar --wildcards -xpf "${DISTDIR}"/${LINUX_SOURCES} \ + "${paths[@]/#/linux-${LINUX_VER}/}" || die + + if [[ -n ${LINUX_PATCH} ]] ; then + eshopts_push -o noglob + ebegin "Filtering partial source patch" + xzcat "${DISTDIR}"/${LINUX_PATCH} | filterdiff -p1 ${paths[@]/#/-i} > ${P}.patch + assert -n "Unpacking to ${P} from ${DISTDIR}/${LINUX_PATCH} failed" + eend $? || die "filterdiff failed" + test -s ${P}.patch || die "patch is empty?!" + eshopts_pop + fi + + local a + for a in ${A}; do + [[ ${a} == ${LINUX_SOURCES} ]] && continue + [[ ${a} == ${LINUX_PATCH} ]] && continue + unpack ${a} + done +} + +src_prepare() { + default + if [[ -n ${LINUX_PATCH} ]] ; then + pushd "${S_K}" >/dev/null || die + eapply "${WORKDIR}"/${P}.patch + popd || die + fi + + pushd "${S_K}" >/dev/null || die + # Gentoo patches go here + popd || die + + # Drop some upstream too-developer-oriented flags and fix the + # Makefile in general + sed -i \ + -e "s@\$(sysconfdir_SQ)/bash_completion.d@$(get_bashcompdir)@" \ + "${S}"/Makefile.perf || die + # A few places still use -Werror w/out $(WERROR) protection. + sed -i -e 's@-Werror@@' \ + "${S}"/Makefile.perf "${S_K}"/tools/lib/bpf/Makefile \ + "${S_K}"/tools/lib/perf/Makefile || die + + # Avoid the call to make kernelversion + sed -i -e '/PERF-VERSION-GEN/d' Makefile.perf || die + echo "#define PERF_VERSION \"${PV}\"" > PERF-VERSION-FILE + + # The code likes to compile local assembly files which lack ELF markings. + find -name '*.S' -exec sed -i '$a.section .note.GNU-stack,"",%progbits' {} + +} + +puse() { usex $1 "" 1; } +perf_make() { + # The arch parsing is a bit funky. The perf tools package is integrated + # into the kernel, so it wants an ARCH that looks like the kernel arch, + # but it also wants to know about the split value -- i386/x86_64 vs just + # x86. We can get that by telling the func to use an older linux version. + # It's kind of a hack, but not that bad ... + + # LIBDIR sets a search path of perf-gtk.so. Bug 515954 + + local arch=$(tc-arch-kernel) + local java_dir + use java && java_dir="${EPREFIX}/etc/java-config-2/current-system-vm" + + # sync this with the whitelist in tools/perf/Makefile.config + local disable_libdw + if ! use amd64 && ! use x86 && \ + ! use arm && \ + ! use arm64 && \ + ! use ppc && ! use ppc64 \ + ! use s390 && \ + ! use riscv && \ + ! use loong + then + disable_libdw=1 + fi + + # perf directly invokes LD for linking without going through CC, on mips + # it is required to specify the emulation. port of below buildroot patch + # https://patchwork.ozlabs.org/project/buildroot/patch/20170217105905.32151-1-Vincent.Riera@imgtec.com/ + local linker="$(tc-getLD)" + if use mips + then + if use big-endian + then + use abi_mips_n64 && linker+=" -m elf64btsmip" + use abi_mips_n32 && linker+=" -m elf32btsmipn32" + use abi_mips_o32 && linker+=" -m elf32btsmip" + else + use abi_mips_n64 && linker+=" -m elf64ltsmip" + use abi_mips_n32 && linker+=" -m elf32ltsmipn32" + use abi_mips_o32 && linker+=" -m elf32ltsmip" + fi + fi + + # FIXME: NO_CORESIGHT + local emakeargs=( + V=1 VF=1 + HOSTCC="$(tc-getBUILD_CC)" HOSTLD="$(tc-getBUILD_LD)" + CC="$(tc-getCC)" CXX="$(tc-getCXX)" AR="$(tc-getAR)" LD="${linker}" NM="$(tc-getNM)" + CLANG="${CHOST}-clang" + PKG_CONFIG="$(tc-getPKG_CONFIG)" + prefix="${EPREFIX}/usr" bindir_relative="bin" + tipdir="share/doc/${PF}" + EXTRA_CFLAGS="${CPPFLAGS} ${CFLAGS}" + EXTRA_LDFLAGS="${LDFLAGS}" + ARCH="${arch}" + BUILD_BPF_SKEL=$(usex bpf 1 "") \ + BUILD_NONDISTRO=1 + JDIR="${java_dir}" + CORESIGHT= + GTK2=$(usex gtk 1 "") + feature-gtk2-infobar=$(usex gtk 1 "") + NO_AUXTRACE= + NO_BACKTRACE= + NO_CAPSTONE=$(puse capstone) + NO_DEMANGLE= + NO_JVMTI=$(puse java) + NO_LIBAUDIT=1 + NO_LIBBABELTRACE=$(puse babeltrace) + NO_LIBBIONIC=1 + NO_LIBBPF=$(puse bpf) + NO_LIBCAP=$(puse caps) + NO_LIBCRYPTO=$(puse crypt) + NO_LIBDW_DWARF_UNWIND="${disable_libdw}" + NO_LIBELF= + NO_LIBLLVM=$(puse bpf) + NO_LIBNUMA=$(puse numa) + NO_LIBPERL=$(puse perl) + NO_LIBPFM4=$(puse libpfm) + NO_LIBPYTHON=$(puse python) + NO_LIBTRACEEVENT=$(puse libtraceevent) + NO_LIBUNWIND=$(puse unwind) + NO_SDT=$(puse systemtap) + NO_SHELLCHECK=1 + NO_SLANG=$(puse slang) + NO_LZMA=$(puse lzma) + NO_ZLIB= + TCMALLOC=$(usex tcmalloc 1 "") + WERROR=0 + DEBUG=$(usex debug 1 "") + LIBDIR="/usr/libexec/perf-core" + libdir="${EPREFIX}/usr/$(get_libdir)" + plugindir="${EPREFIX}/usr/$(get_libdir)/perf/plugins" + "$@" + ) + NO_JEVENTS=$(puse python) emake "${emakeargs[@]}" +} + +src_compile() { + filter-lto + + # capstone-6 compatibility (#964350) + append-cppflags -DCAPSTONE_AARCH64_COMPAT_HEADER -DCAPSTONE_SYSTEMZ_COMPAT_HEADER + + perf_make -f Makefile.perf + perf_make -C Documentation man +} + +src_test() { + : +} + +src_install() { + perf_make -f Makefile.perf install DESTDIR="${D}" + + if use python; then + perf_make -f Makefile.perf install-python_ext DESTDIR="${D}" + fi + + if use gtk; then + local libdir + libdir="$(get_libdir)" + # on some arches it ends up in lib even on 64bit, ppc64 for instance. + [[ -f "${ED}"/usr/lib/libperf-gtk.so ]] && libdir="lib" + mv "${ED}"/usr/${libdir}/libperf-gtk.so \ + "${ED}"/usr/libexec/perf-core || die + fi + + dodoc CREDITS + + dodoc *txt Documentation/*.txt + + # perf needs this decompressed to print out tips for users + docompress -x /usr/share/doc/${PF}/tips.txt + + doman Documentation/*.1 +} diff --git a/sdk_container/src/third_party/portage-stable/dev-vcs/git/Manifest b/sdk_container/src/third_party/portage-stable/dev-vcs/git/Manifest index a1fa6a1245b..b80976784a7 100644 --- a/sdk_container/src/third_party/portage-stable/dev-vcs/git/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-vcs/git/Manifest @@ -1,9 +1,15 @@ DIST git-2.49.1.tar.xz 7773832 BLAKE2B 89bd1202f580aa11ea774809140c02c2cde1f55730d7b0e9e75f9ca1f8dee006b31cd34e689a42a942b61bae2a01d46bcec22f4ae7aeee7d007c5ac109a3be06 SHA512 4dc63f2935e66d708dbecfdb77c6e5d697f4bc79af51ab860ed87499336d66d44f16abc7edf414c56f30d46de3a1a676c56c240557140c91aa388136e652cbdc DIST git-2.50.1.tar.xz 7880972 BLAKE2B 4e5e3168d7dd88cc508920dd773df2ec6b568c70e8068a18010f01241ebc9e9140ca13a9820e14f0d4695e966c436aef305a81e61cc66007b756b75f48dd5d16 SHA512 09f37290c0d4d074b97363f4a4be1813426e93ac3fa993c4d671bb1462bcc9335713c17d1442196a35205a603eeb052662382935d27498875a251f4fe86f6b36 DIST git-2.51.0.tar.xz 7857228 BLAKE2B b385ee2c7aed601435952c983045055c970cdda607d83ae8ba904ee10e5e76bca097ccbe0f22e4e1467c6d606c9eecb952ffb382f351124325b6fd5d87083596 SHA512 2b8c59589266c0c9e58a9f4fda4a970a8a492e2e0ecbafc414fcfacac4a04251f0115b3676f4599a415b53906f1dea312b18a42e9bde455286abd62ec327beaf +DIST git-2.51.1.tar.xz 7865216 BLAKE2B 3bb26baee468498f882eb3bf995c58cf441a9e7537ca3dafbe58cf24a947d37a52749b62e3095446787514f0eb9e1d767d4efbee29a8d63851803e8c6bb4daa6 SHA512 bc22d26bbfad4a549d2fb6bed11eb019c2dee607c86bf8faaa986774e526e5b367d80c9a79ab50358624634d840e8e0d27e0b46411d1aabbf76728b7a7f138dd +DIST git-2.51.2.tar.xz 7865980 BLAKE2B d567f52da82cabc5d2e4f542f02209aa170536864769fa49c9a24c5129e0603a940b1adf6dedf892c8971d947400a104d312b376f3f6aa23029cb57dffc9acb4 SHA512 547c3e522d9e6a2c2ccab24ee0c7f4f2d29878759563356e3a2ae9675884b7044ce5a236803170a203b79443760eb18a7089eec02bd105316e3ab045ab7603a7 DIST git-htmldocs-2.49.1.tar.xz 1602244 BLAKE2B 8d6df9ff42660123577933a95971bdd47d94b650b2cb8abafa4f4cbd981d016d3d3fdcbb08f22616ee44f928fc0aaac4f0ffee8a1d1d0c659240fcc2db9e2a25 SHA512 39db559a507b732d18ce1fa3ac513e87ca27b1d5df0f6d26cdead7b5add4eb29889d4c81e09b25c6fdbd813a0f13c833a22a4b6bbba6dea3b126e841a61424f8 DIST git-htmldocs-2.50.1.tar.xz 1615796 BLAKE2B 6d340b552075bce7d724824eefd03540d558e24c07b49e48f1bb4262a5b3632b6aa7782bb02b15aaf424d22e5460bffee066f1e2bb0018791dcec8afa79dd3b8 SHA512 ebe437851b039bab4ec83be807583a23beaf43073248ffdcddee2328fc621b5b712c094faac3ee15a783f5a0cbdd92c2635879426007e8ef0ddcb70f227782f9 DIST git-htmldocs-2.51.0.tar.xz 1627664 BLAKE2B 17106db9d7edf8717281d5af88ec9b53c91f6ba56552d5952d25ff593b4d227194df53a33dd52eb4791dd5044a7d867f8bed2371087e6dfdb4a0110e09f70055 SHA512 55460724b73bc42ebb611a4c0657f59040e8e7b28d56cb26814ae97c1b13ce3577e57e5a66f2749a93b7b3496b8a665ce5a2c31ba471eadb3267813915dc7051 +DIST git-htmldocs-2.51.1.tar.xz 1629412 BLAKE2B e135a355e84c4bd1a1d1e54dd6ff875b43145649cdc90696b1650f74ff3a0b2a94190d23ffffc22b621703fbb713d042283a5e65b0ed60860cc892d26b44226e SHA512 0abfbef358162d03fc033bca23bc95cae0561e8f4852abfd49d53d546005caf0b6f759776c7bbada8353cb340b3b48b0c1cd0415db0bbf04efe591e7b9411fe1 +DIST git-htmldocs-2.51.2.tar.xz 1629724 BLAKE2B ed8593f9ccbd8017656af7193914638c25be7ed2a449d3509d49949a1eff2134b3a9c163802155610e32cb07f9ea4eced9ebd0758eb0f36b0ff028c0ee0462f0 SHA512 cafb7fa2f0a3be6bff006f65c8462047e6f2c80482b09df7c45e7caba12acee670ddb886c125dcc751a5d701ebf812737f981bd0bcbc3035432de26db981929a DIST git-manpages-2.49.1.tar.xz 594536 BLAKE2B b29aea1817053fefacc9a16abb86ea9fb4f2f239a268661a357cda16ab02b55ff3736b0c7d870fcacf4867bd063e14177bc46109115845fdea26b1870ff5f463 SHA512 0fbd824bfd68c72e8a6509989ffd016d1256cc3c5dfe4634170de2a07cdbdb4506f4b9136fa3176ac56c6f20f518a16758f1391bbd658be0caa8ebcc34158feb DIST git-manpages-2.50.1.tar.xz 598416 BLAKE2B c47be82829562057a99da3dc801958c2f7d1eeabb5af3c28cc3a66ec03a02b96e2d1d670ce39f7ab1d39fc113abe896c73b2126129cd98c3d33292267f160690 SHA512 9de90823bfb815ce31938794b80bf8526d162125afe23084114c47d360235a8d63b6fcdf78613bd91ee492b8d8c614d026cce51733bdd63bffe533f7da616d05 DIST git-manpages-2.51.0.tar.xz 602200 BLAKE2B 12b103871dcd8173e88e2eb96621620682c19aecfb6ecbd7a9b3d8bb7358eed78c00af0738c502c5ff71ac8d85894c68ed33f395aed426d580210d4c1d36faf6 SHA512 ee2eb3bc90a63cb28ccdc8716b2d610b55eefbc0da255b7360695bc686ba52841b147c879a4f8b2ecdb767814b815929f7e0dd57fa612a87ef5e36b862056144 +DIST git-manpages-2.51.1.tar.xz 602552 BLAKE2B a8781e1b7b040b39ca17ee9ea20688bc14bdd0a948e1bab2e39e01747770a97f64119e4eacdedd07e3d281469025958ca34d73faacad7c36381e9a9c8f4fe4ab SHA512 e8f00835472c2078023e28cb9ae1ac2aac8c4e950a8ef453eafe894d9bb8411e3e89108606b3783c00883db2bb041defb0bf9dd5b3558bcbd6b07b7f28c66e92 +DIST git-manpages-2.51.2.tar.xz 602340 BLAKE2B 856c4531ed27b53f390f738774d758813f717b378bd64e4736e8627fe898b34b64b8d4b9fb686573f21d90d8db859062371586c440f3c6efca38346a04f7120b SHA512 d6443f22590797eb6947fbb317e2ec52beeabd6d3117425e23d93085952c4d9eaa8d26ae677a8f4d73938f9611ac636f5f26e29527cc96d1a6612c2853103a94 diff --git a/sdk_container/src/third_party/portage-stable/dev-vcs/git/files/git-2.51.1-openssh-10.1-tests.patch b/sdk_container/src/third_party/portage-stable/dev-vcs/git/files/git-2.51.1-openssh-10.1-tests.patch new file mode 100644 index 00000000000..ffcfd73787d --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-vcs/git/files/git-2.51.1-openssh-10.1-tests.patch @@ -0,0 +1,14 @@ +https://bugs.gentoo.org/964608 +(Tangentially: https://bugs.debian.org/1118288) +https://lore.kernel.org/git/4e2952e512afc780b621d2c153b3e6e4eb7ed89a.camel@xry111.site/ +--- a/t/t7528-signed-commit-ssh.sh ++++ b/t/t7528-signed-commit-ssh.sh +@@ -82,7 +82,7 @@ test_expect_success GPGSSH 'create signed commits' ' + test_expect_success GPGSSH 'sign commits using literal public keys with ssh-agent' ' + test_when_finished "test_unconfig commit.gpgsign" && + test_config gpg.format ssh && +- eval $(ssh-agent) && ++ eval $(ssh-agent -T || ssh-agent) && + test_when_finished "kill ${SSH_AGENT_PID}" && + test_when_finished "test_unconfig user.signingkey" && + mkdir tmpdir && diff --git a/sdk_container/src/third_party/portage-stable/dev-vcs/git/git-2.51.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-vcs/git/git-2.51.0.ebuild index fd246a98df7..b4bac67aea0 100644 --- a/sdk_container/src/third_party/portage-stable/dev-vcs/git/git-2.51.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-vcs/git/git-2.51.0.ebuild @@ -50,7 +50,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 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" + KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" fi fi diff --git a/sdk_container/src/third_party/portage-stable/dev-vcs/git/git-2.51.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-vcs/git/git-2.51.1.ebuild new file mode 100644 index 00000000000..a5192104c3e --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-vcs/git/git-2.51.1.ebuild @@ -0,0 +1,478 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +GENTOO_DEPEND_ON_PERL=no + +# bug #329479: git-remote-testgit is not multiple-version aware +PYTHON_COMPAT=( python3_{11..14} ) + +inherit toolchain-funcs perl-module bash-completion-r1 optfeature plocale python-single-r1 systemd meson + +PLOCALES="bg ca de es fr is it ko pt_PT ru sv vi zh_CN" + +if [[ ${PV} == *9999 ]]; then + EGIT_REPO_URI="https://git.kernel.org/pub/scm/git/git.git" + + inherit git-r3 + # Please ensure that all _four_ 9999 ebuilds get updated; they track the 4 upstream branches. + # See https://git-scm.com/docs/gitworkflows#_graduation + # In order of stability: + # 9999-r0: maint + # 9999-r1: master + # 9999-r2: next + # 9999-r3: seen + case ${PVR} in + 9999) EGIT_BRANCH=maint ;; + 9999-r1) EGIT_BRANCH=master ;; + 9999-r2) EGIT_BRANCH=next;; + 9999-r3) EGIT_BRANCH=seen ;; + esac +fi + +MY_PV="${PV/_rc/.rc}" +MY_P="${PN}-${MY_PV}" + +DOC_VER="${MY_PV}" + +DESCRIPTION="Stupid content tracker: distributed VCS designed for speed and efficiency" +HOMEPAGE="https://www.git-scm.com/" + +if [[ ${PV} != *9999 ]]; then + SRC_URI_SUFFIX="xz" + SRC_URI_KORG="https://www.kernel.org/pub/software/scm/git" + + [[ ${PV/rc} != ${PV} ]] && SRC_URI_KORG+='/testing' + + SRC_URI="${SRC_URI_KORG}/${MY_P}.tar.${SRC_URI_SUFFIX}" + SRC_URI+=" ${SRC_URI_KORG}/${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX}" + 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 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" + fi +fi + +S="${WORKDIR}"/${MY_P} + +LICENSE="GPL-2" +SLOT="0" +IUSE="+curl cgi cvs doc keyring +gpg highlight +iconv +nls +pcre perforce +perl +safe-directory selinux subversion test tk +webdav xinetd" + +# Common to both DEPEND and RDEPEND +DEPEND=" + dev-libs/openssl:= + sys-libs/zlib + curl? ( + net-misc/curl + webdav? ( dev-libs/expat ) + ) + keyring? ( + app-crypt/libsecret + dev-libs/glib:2 + ) + iconv? ( virtual/libiconv ) + pcre? ( dev-libs/libpcre2:= ) + perl? ( dev-lang/perl:=[-build(-)] ) + tk? ( dev-lang/tk:= ) +" +RDEPEND=" + ${DEPEND} + gpg? ( app-crypt/gnupg ) + perl? ( + dev-perl/Error + dev-perl/MailTools + dev-perl/Authen-SASL + >=virtual/perl-libnet-3.110.0-r4[ssl] + cgi? ( + dev-perl/CGI + highlight? ( app-text/highlight ) + ) + cvs? ( + >=dev-vcs/cvsps-2.1:0 + dev-perl/DBI + dev-perl/DBD-SQLite + ) + subversion? ( + dev-vcs/subversion[-dso(-),perl] + dev-perl/libwww-perl + dev-perl/TermReadKey + ) + ) + perforce? ( ${PYTHON_DEPS} ) + selinux? ( sec-policy/selinux-git ) +" + +# This is how info docs are created with Git: +# .txt/asciidoc --(asciidoc)---------> .xml/docbook +# .xml/docbook --(docbook2texi.pl)--> .texi +# .texi --(makeinfo)---------> .info +BDEPEND=" + doc? ( + app-text/asciidoc + app-text/docbook2X + app-text/xmlto + sys-apps/texinfo + ) + keyring? ( virtual/pkgconfig ) + nls? ( sys-devel/gettext ) + test? ( + app-arch/unzip + app-crypt/gnupg + dev-lang/perl + ) +" + +# Live ebuild builds man pages and HTML docs, additionally +if [[ ${PV} == *9999 ]]; then + BDEPEND+=" app-text/asciidoc" +fi + +SITEFILE="50${PN}-gentoo.el" + +REQUIRED_USE=" + cgi? ( perl ) + cvs? ( perl ) + perforce? ( ${PYTHON_REQUIRED_USE} ) + subversion? ( perl ) + webdav? ( curl ) +" + +RESTRICT="!test? ( test )" + +PATCHES=( + "${FILESDIR}"/${PN}-2.48.1-macos-no-fsmonitor.patch + + # This patch isn't merged upstream but is kept in the ebuild by + # demand from developers. It's opt-in (needs a config option) + # and the documentation mentions that it is a Gentoo addition. + "${FILESDIR}"/${PN}-2.50.0-diff-implement-config.diff.renames-copies-harder.patch + + "${FILESDIR}"/${PN}-2.51.1-openssh-10.1-tests.patch +) + +pkg_setup() { + if use subversion && has_version "dev-vcs/subversion[dso]" ; then + ewarn "Per Gentoo bugs #223747, #238586, when subversion is built" + ewarn "with USE=dso, there may be weird crashes in git-svn. You" + ewarn "have been warned!" + fi + + if use perforce ; then + python-single-r1_pkg_setup + fi +} + +src_unpack() { + if [[ ${PV} != *9999 ]] ; then + unpack ${MY_P}.tar.${SRC_URI_SUFFIX} + + cd "${S}" || die + unpack ${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX} + + if use doc ; then + pushd "${S}"/Documentation &>/dev/null || die + unpack ${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX} + popd &>/dev/null || die + fi + else + git-r3_src_unpack + fi + +} + +src_prepare() { + if ! use safe-directory ; then + # This patch neuters the "safe directory" detection. + # bugs #838271, #838223 + PATCHES+=( + "${FILESDIR}"/git-2.46.2-unsafe-directory.patch + ) + fi + + default +} + +src_configure() { + local contrib=( + completion + subtree + + $(usev perl 'contacts') + ) + local credential_helpers=( + $(usev keyring 'libsecret') + $(usev perl 'netrc') + ) + + # Needs macOS Frameworks that can't currently be built with GCC. + if [[ ${CHOST} == *-darwin* ]] && tc-is-clang ; then + credential_helpers+=( osxkeychain ) + fi + + local native_file="${T}"/meson.ini.local + cat >> ${native_file} <<-EOF || die + [binaries] + # We don't want to bake /usr/bin/sh from usrmerged systems into + # binaries. /bin/sh is required by POSIX. + sh='/bin/sh' + EOF + + local emesonargs=( + --native-file "${native_file}" + + $(meson_feature curl) + $(meson_feature cgi gitweb) + $(meson_feature webdav expat) + $(meson_feature iconv) + $(meson_feature nls gettext) + $(meson_feature pcre pcre2) + $(meson_feature perl) + $(meson_feature perforce python) + $(meson_use test tests) + + -Dcontrib=$(IFS=, ; echo "${contrib[*]}" ) + -Dcredential_helpers=$(IFS=, ; echo "${credential_helpers[*]}" ) + + -Dmacos_use_homebrew_gettext=false + -Dperl_cpan_fallback=false + # TODO: allow zlib-ng + -Dzlib_backend=zlib + ) + + [[ ${CHOST} == *-darwin* ]] && emesonargs+=( -Dfsmonitor=false ) + + # For non-live, we use a downloaded docs tarball instead. + if [[ ${PV} == *9999 ]] || use doc ; then + emesonargs+=( + -Ddocs="man$(usev doc ',html')" + ) + fi + + if [[ ${PV} != *9999 ]] ; then + # Non-live ebuilds download the sources from a tarball which does not + # include a .git directory. Coccinelle assumes it exists and fails + # otherwise. + # + # Fixes https://bugs.gentoo.org/952004 + emesonargs+=( + -Dcoccinelle=disabled + ) + fi + + meson_src_configure + + if use tk ; then + local tkdir + for tkdir in git-gui gitk-git ; do + ( + EMESON_SOURCE="${S}"/${tkdir} + BUILD_DIR="${WORKDIR}"/${tkdir}_build + emesonargs=() + meson_src_configure + ) + done + fi +} + +git_emake() { + local mymakeargs=( + prefix="${EPREFIX}"/usr + htmldir="${EPREFIX}"/usr/share/doc/${PF}/html + sysconfdir="${EPREFIX}"/etc + perllibdir="$(use perl && perl_get_raw_vendorlib)" + + CC="$(tc-getCC)" + CFLAGS="${CFLAGS}" + LDFLAGS="${LDFLAGS}" + PKG_CONFIG="$(tc-getPKG_CONFIG)" + OPTAR="$(tc-getAR)" + OPTCC="$(tc-getCC)" + OPTCFLAGS="${CFLAGS}" + OPTLDFLAGS="${LDFLAGS}" + + PERL_PATH="${EPREFIX}/usr/bin/perl" + PERL_MM_OPT="" + + V=1 + + "$@" + ) + + emake "${mymakeargs[@]}" +} + +src_compile() { + meson_src_compile + + if use tk ; then + local tkdir + for tkdir in git-gui gitk-git ; do + ( + EMESON_SOURCE="${S}"/${tkdir} + BUILD_DIR="${WORKDIR}"/${tkdir}_build + meson_src_compile + ) + done + fi + + if use doc ; then + # Workaround fragments that still use the Makefile and can't + # find the bits from Meson's out-of-source build + ln -s "${BUILD_DIR}"/Documentation/asciidoc.conf "${S}"/Documentation/asciidoc.conf || die + fi + + git_emake -C contrib/diff-highlight +} + +src_test() { + # t0610-reftable-basics.sh uses $A + local -x A= + + meson_src_test +} + +src_install() { + meson_src_install + + if use doc ; then + cp -r "${ED}"/usr/share/doc/git-doc/. "${ED}"/usr/share/doc/${PF}/html || die + rm -rf "${ED}"/usr/share/doc/git-doc/ || die + fi + + # Depending on the tarball and manual rebuild of the documentation, the + # manpages may exist in either OR both of these directories. + find man?/*.[157] >/dev/null 2>&1 && doman man?/*.[157] + find Documentation/*.[157] >/dev/null 2>&1 && doman Documentation/*.[157] + dodoc README* Documentation/{SubmittingPatches,CodingGuidelines} + + local d + for d in / /howto/ /technical/ ; do + docinto ${d} + dodoc Documentation${d}*.adoc + done + docinto / + + newbashcomp contrib/completion/git-completion.bash ${PN} + bashcomp_alias git gitk + # Not really a bash-completion file (bug #477920) + # but still needed uncompressed (bug #507480) + insinto /usr/share/${PN} + doins contrib/completion/git-prompt.sh + + #dobin contrib/fast-import/git-p4 # Moved upstream + #dodoc contrib/fast-import/git-p4.txt # Moved upstream + newbin contrib/fast-import/import-tars.perl import-tars + + # diff-highlight + dobin contrib/diff-highlight/diff-highlight + newdoc contrib/diff-highlight/README README.diff-highlight + + # git-jump + exeinto /usr/libexec/git-core/ + doexe contrib/git-jump/git-jump + newdoc contrib/git-jump/README git-jump.txt + + dodir /usr/share/${PN}/contrib + # The following are excluded: + # completion - installed above + # diff-highlight - done above + # git-jump - done above + # gitview - installed above + # p4import - excluded because fast-import has a better one + # patches - stuff the Git guys made to go upstream to other places + # subtree - built seperately + # svnimport - use git-svn + # thunderbird-patch-inline - fixes thunderbird + local contrib_objects=( + buildsystems + fast-import + rerere-train.sh + stats + ) + local i + for i in "${contrib_objects[@]}" ; do + cp -rf "${S}"/contrib/${i} "${ED}"/usr/share/${PN}/contrib || die "Failed contrib ${i}" + done + + if use cgi ; then + # We used to install in /usr/share/${PN}/gitweb + # but upstream installs in /usr/share/gitweb + # so we will install a symlink and use their location for compat with other + # distros + dosym ../gitweb /usr/share/${PN}/gitweb + + # INSTALL discusses configuration issues, not just installation + docinto / + newdoc "${S}"/gitweb/INSTALL INSTALL.gitweb + newdoc "${S}"/gitweb/README README.gitweb + + for d in "${ED}"/usr/lib{,64}/perl5/ ; do + if [[ -d "${d}" ]] ; then + find "${d}" -name .packlist -delete || die + fi + done + else + rm -rf "${ED}"/usr/share/gitweb + fi + + if use perl ; then + dodir "$(perl_get_vendorlib)" + mv "${ED}"/usr/share/perl5/Git.pm "${ED}/$(perl_get_vendorlib)" || die + mv "${ED}"/usr/share/perl5/Git "${ED}/$(perl_get_vendorlib)" || die + fi + + if ! use subversion ; then + rm -f "${ED}"/usr/libexec/git-core/git-svn \ + "${ED}"/usr/share/man/man1/git-svn.1* + fi + + if use xinetd ; then + insinto /etc/xinetd.d + newins "${FILESDIR}"/git-daemon.xinetd git-daemon + fi + + if ! use prefix ; then + newinitd "${FILESDIR}"/git-daemon-r2.initd git-daemon + newconfd "${FILESDIR}"/git-daemon.confd git-daemon + systemd_newunit "${FILESDIR}/git-daemon_at-r1.service" "git-daemon@.service" + systemd_dounit "${FILESDIR}/git-daemon.socket" + fi + + if use tk ; then + local tkdir + for tkdir in git-gui gitk-git ; do + ( + EMESON_SOURCE="${S}"/${tkdir} + BUILD_DIR="${WORKDIR}"/${tkdir}_build + meson_src_install + ) + done + fi + + perl_delete_localpod + + # Remove disabled linguas + # we could remove sources in src_prepare, but install does not + # handle missing locale dir well + rm_loc() { + if [[ -e "${ED}/usr/share/locale/${1}" ]] ; then + rm -r "${ED}/usr/share/locale/${1}" || die + fi + } + plocale_for_each_disabled_locale rm_loc +} + +pkg_postinst() { + if [[ -z ${REPLACING_VERSIONS} ]] ; then + elog "Please read /usr/share/bash-completion/completions/git for Git bash command" + elog "completion." + elog "Please read /usr/share/git/git-prompt.sh for Git bash prompt" + elog "Note that the prompt bash code is now in that separate script" + fi + + optfeature_header "Some scripts require additional dependencies:" + optfeature git-quiltimport dev-util/quilt + optfeature git-instaweb www-servers/lighttpd www-servers/apache www-servers/nginx +} diff --git a/sdk_container/src/third_party/portage-stable/dev-vcs/git/git-2.51.2-r1.ebuild b/sdk_container/src/third_party/portage-stable/dev-vcs/git/git-2.51.2-r1.ebuild new file mode 100644 index 00000000000..8f8c7532108 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-vcs/git/git-2.51.2-r1.ebuild @@ -0,0 +1,476 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +GENTOO_DEPEND_ON_PERL=no + +# bug #329479: git-remote-testgit is not multiple-version aware +PYTHON_COMPAT=( python3_{11..14} ) + +inherit toolchain-funcs perl-module bash-completion-r1 optfeature plocale python-single-r1 systemd meson + +PLOCALES="bg ca de es fr is it ko pt_PT ru sv vi zh_CN" + +if [[ ${PV} == *9999 ]]; then + EGIT_REPO_URI="https://git.kernel.org/pub/scm/git/git.git" + + inherit git-r3 + # Please ensure that all _four_ 9999 ebuilds get updated; they track the 4 upstream branches. + # See https://git-scm.com/docs/gitworkflows#_graduation + # In order of stability: + # 9999-r0: maint + # 9999-r1: master + # 9999-r2: next + # 9999-r3: seen + case ${PVR} in + 9999) EGIT_BRANCH=maint ;; + 9999-r1) EGIT_BRANCH=master ;; + 9999-r2) EGIT_BRANCH=next;; + 9999-r3) EGIT_BRANCH=seen ;; + esac +fi + +MY_PV="${PV/_rc/.rc}" +MY_P="${PN}-${MY_PV}" + +DOC_VER="${MY_PV}" + +DESCRIPTION="Stupid content tracker: distributed VCS designed for speed and efficiency" +HOMEPAGE="https://www.git-scm.com/" + +if [[ ${PV} != *9999 ]]; then + SRC_URI_SUFFIX="xz" + SRC_URI_KORG="https://www.kernel.org/pub/software/scm/git" + + [[ ${PV/rc} != ${PV} ]] && SRC_URI_KORG+='/testing' + + SRC_URI="${SRC_URI_KORG}/${MY_P}.tar.${SRC_URI_SUFFIX}" + SRC_URI+=" ${SRC_URI_KORG}/${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX}" + 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 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" + fi +fi + +S="${WORKDIR}"/${MY_P} + +LICENSE="GPL-2" +SLOT="0" +IUSE="+curl cgi cvs doc keyring +gpg highlight +iconv +nls +pcre perforce +perl +safe-directory selinux subversion test tk +webdav xinetd" + +# Common to both DEPEND and RDEPEND +DEPEND=" + dev-libs/openssl:= + sys-libs/zlib + curl? ( + net-misc/curl + webdav? ( dev-libs/expat ) + ) + keyring? ( + app-crypt/libsecret + dev-libs/glib:2 + ) + iconv? ( virtual/libiconv ) + pcre? ( dev-libs/libpcre2:= ) + perl? ( dev-lang/perl:=[-build(-)] ) + tk? ( dev-lang/tk:= ) +" +RDEPEND=" + ${DEPEND} + gpg? ( app-alternatives/gpg ) + perl? ( + dev-perl/Error + dev-perl/MailTools + dev-perl/Authen-SASL + >=virtual/perl-libnet-3.110.0-r4[ssl] + cgi? ( + dev-perl/CGI + highlight? ( app-text/highlight ) + ) + cvs? ( + >=dev-vcs/cvsps-2.1:0 + dev-perl/DBI + dev-perl/DBD-SQLite + ) + subversion? ( + dev-vcs/subversion[-dso(-),perl] + dev-perl/libwww-perl + dev-perl/TermReadKey + ) + ) + perforce? ( ${PYTHON_DEPS} ) + selinux? ( sec-policy/selinux-git ) +" + +# This is how info docs are created with Git: +# .txt/asciidoc --(asciidoc)---------> .xml/docbook +# .xml/docbook --(docbook2texi.pl)--> .texi +# .texi --(makeinfo)---------> .info +BDEPEND=" + doc? ( + app-text/asciidoc + app-text/docbook2X + app-text/xmlto + sys-apps/texinfo + ) + keyring? ( virtual/pkgconfig ) + nls? ( sys-devel/gettext ) + test? ( + app-arch/unzip + app-crypt/gnupg + dev-lang/perl + ) +" + +# Live ebuild builds man pages and HTML docs, additionally +if [[ ${PV} == *9999 ]]; then + BDEPEND+=" app-text/asciidoc" +fi + +SITEFILE="50${PN}-gentoo.el" + +REQUIRED_USE=" + cgi? ( perl ) + cvs? ( perl ) + perforce? ( ${PYTHON_REQUIRED_USE} ) + subversion? ( perl ) + webdav? ( curl ) +" + +RESTRICT="!test? ( test )" + +PATCHES=( + "${FILESDIR}"/${PN}-2.48.1-macos-no-fsmonitor.patch + + # This patch isn't merged upstream but is kept in the ebuild by + # demand from developers. It's opt-in (needs a config option) + # and the documentation mentions that it is a Gentoo addition. + "${FILESDIR}"/${PN}-2.50.0-diff-implement-config.diff.renames-copies-harder.patch +) + +pkg_setup() { + if use subversion && has_version "dev-vcs/subversion[dso]" ; then + ewarn "Per Gentoo bugs #223747, #238586, when subversion is built" + ewarn "with USE=dso, there may be weird crashes in git-svn. You" + ewarn "have been warned!" + fi + + if use perforce ; then + python-single-r1_pkg_setup + fi +} + +src_unpack() { + if [[ ${PV} != *9999 ]] ; then + unpack ${MY_P}.tar.${SRC_URI_SUFFIX} + + cd "${S}" || die + unpack ${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX} + + if use doc ; then + pushd "${S}"/Documentation &>/dev/null || die + unpack ${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX} + popd &>/dev/null || die + fi + else + git-r3_src_unpack + fi + +} + +src_prepare() { + if ! use safe-directory ; then + # This patch neuters the "safe directory" detection. + # bugs #838271, #838223 + PATCHES+=( + "${FILESDIR}"/git-2.46.2-unsafe-directory.patch + ) + fi + + default +} + +src_configure() { + local contrib=( + completion + subtree + + $(usev perl 'contacts') + ) + local credential_helpers=( + $(usev keyring 'libsecret') + $(usev perl 'netrc') + ) + + # Needs macOS Frameworks that can't currently be built with GCC. + if [[ ${CHOST} == *-darwin* ]] && tc-is-clang ; then + credential_helpers+=( osxkeychain ) + fi + + local native_file="${T}"/meson.ini.local + cat >> ${native_file} <<-EOF || die + [binaries] + # We don't want to bake /usr/bin/sh from usrmerged systems into + # binaries. /bin/sh is required by POSIX. + sh='/bin/sh' + EOF + + local emesonargs=( + --native-file "${native_file}" + + $(meson_feature curl) + $(meson_feature cgi gitweb) + $(meson_feature webdav expat) + $(meson_feature iconv) + $(meson_feature nls gettext) + $(meson_feature pcre pcre2) + $(meson_feature perl) + $(meson_feature perforce python) + $(meson_use test tests) + + -Dcontrib=$(IFS=, ; echo "${contrib[*]}" ) + -Dcredential_helpers=$(IFS=, ; echo "${credential_helpers[*]}" ) + + -Dmacos_use_homebrew_gettext=false + -Dperl_cpan_fallback=false + # TODO: allow zlib-ng + -Dzlib_backend=zlib + ) + + [[ ${CHOST} == *-darwin* ]] && emesonargs+=( -Dfsmonitor=false ) + + # For non-live, we use a downloaded docs tarball instead. + if [[ ${PV} == *9999 ]] || use doc ; then + emesonargs+=( + -Ddocs="man$(usev doc ',html')" + ) + fi + + if [[ ${PV} != *9999 ]] ; then + # Non-live ebuilds download the sources from a tarball which does not + # include a .git directory. Coccinelle assumes it exists and fails + # otherwise. + # + # Fixes https://bugs.gentoo.org/952004 + emesonargs+=( + -Dcoccinelle=disabled + ) + fi + + meson_src_configure + + if use tk ; then + local tkdir + for tkdir in git-gui gitk-git ; do + ( + EMESON_SOURCE="${S}"/${tkdir} + BUILD_DIR="${WORKDIR}"/${tkdir}_build + emesonargs=() + meson_src_configure + ) + done + fi +} + +git_emake() { + local mymakeargs=( + prefix="${EPREFIX}"/usr + htmldir="${EPREFIX}"/usr/share/doc/${PF}/html + sysconfdir="${EPREFIX}"/etc + perllibdir="$(use perl && perl_get_raw_vendorlib)" + + CC="$(tc-getCC)" + CFLAGS="${CFLAGS}" + LDFLAGS="${LDFLAGS}" + PKG_CONFIG="$(tc-getPKG_CONFIG)" + OPTAR="$(tc-getAR)" + OPTCC="$(tc-getCC)" + OPTCFLAGS="${CFLAGS}" + OPTLDFLAGS="${LDFLAGS}" + + PERL_PATH="${EPREFIX}/usr/bin/perl" + PERL_MM_OPT="" + + V=1 + + "$@" + ) + + emake "${mymakeargs[@]}" +} + +src_compile() { + meson_src_compile + + if use tk ; then + local tkdir + for tkdir in git-gui gitk-git ; do + ( + EMESON_SOURCE="${S}"/${tkdir} + BUILD_DIR="${WORKDIR}"/${tkdir}_build + meson_src_compile + ) + done + fi + + if use doc ; then + # Workaround fragments that still use the Makefile and can't + # find the bits from Meson's out-of-source build + ln -s "${BUILD_DIR}"/Documentation/asciidoc.conf "${S}"/Documentation/asciidoc.conf || die + fi + + git_emake -C contrib/diff-highlight +} + +src_test() { + # t0610-reftable-basics.sh uses $A + local -x A= + + meson_src_test +} + +src_install() { + meson_src_install + + if use doc ; then + cp -r "${ED}"/usr/share/doc/git-doc/. "${ED}"/usr/share/doc/${PF}/html || die + rm -rf "${ED}"/usr/share/doc/git-doc/ || die + fi + + # Depending on the tarball and manual rebuild of the documentation, the + # manpages may exist in either OR both of these directories. + find man?/*.[157] >/dev/null 2>&1 && doman man?/*.[157] + find Documentation/*.[157] >/dev/null 2>&1 && doman Documentation/*.[157] + dodoc README* Documentation/{SubmittingPatches,CodingGuidelines} + + local d + for d in / /howto/ /technical/ ; do + docinto ${d} + dodoc Documentation${d}*.adoc + done + docinto / + + newbashcomp contrib/completion/git-completion.bash ${PN} + bashcomp_alias git gitk + # Not really a bash-completion file (bug #477920) + # but still needed uncompressed (bug #507480) + insinto /usr/share/${PN} + doins contrib/completion/git-prompt.sh + + #dobin contrib/fast-import/git-p4 # Moved upstream + #dodoc contrib/fast-import/git-p4.txt # Moved upstream + newbin contrib/fast-import/import-tars.perl import-tars + + # diff-highlight + dobin contrib/diff-highlight/diff-highlight + newdoc contrib/diff-highlight/README README.diff-highlight + + # git-jump + exeinto /usr/libexec/git-core/ + doexe contrib/git-jump/git-jump + newdoc contrib/git-jump/README git-jump.txt + + dodir /usr/share/${PN}/contrib + # The following are excluded: + # completion - installed above + # diff-highlight - done above + # git-jump - done above + # gitview - installed above + # p4import - excluded because fast-import has a better one + # patches - stuff the Git guys made to go upstream to other places + # subtree - built seperately + # svnimport - use git-svn + # thunderbird-patch-inline - fixes thunderbird + local contrib_objects=( + buildsystems + fast-import + rerere-train.sh + stats + ) + local i + for i in "${contrib_objects[@]}" ; do + cp -rf "${S}"/contrib/${i} "${ED}"/usr/share/${PN}/contrib || die "Failed contrib ${i}" + done + + if use cgi ; then + # We used to install in /usr/share/${PN}/gitweb + # but upstream installs in /usr/share/gitweb + # so we will install a symlink and use their location for compat with other + # distros + dosym ../gitweb /usr/share/${PN}/gitweb + + # INSTALL discusses configuration issues, not just installation + docinto / + newdoc "${S}"/gitweb/INSTALL INSTALL.gitweb + newdoc "${S}"/gitweb/README README.gitweb + + for d in "${ED}"/usr/lib{,64}/perl5/ ; do + if [[ -d "${d}" ]] ; then + find "${d}" -name .packlist -delete || die + fi + done + else + rm -rf "${ED}"/usr/share/gitweb + fi + + if use perl ; then + dodir "$(perl_get_vendorlib)" + mv "${ED}"/usr/share/perl5/Git.pm "${ED}/$(perl_get_vendorlib)" || die + mv "${ED}"/usr/share/perl5/Git "${ED}/$(perl_get_vendorlib)" || die + fi + + if ! use subversion ; then + rm -f "${ED}"/usr/libexec/git-core/git-svn \ + "${ED}"/usr/share/man/man1/git-svn.1* + fi + + if use xinetd ; then + insinto /etc/xinetd.d + newins "${FILESDIR}"/git-daemon.xinetd git-daemon + fi + + if ! use prefix ; then + newinitd "${FILESDIR}"/git-daemon-r2.initd git-daemon + newconfd "${FILESDIR}"/git-daemon.confd git-daemon + systemd_newunit "${FILESDIR}/git-daemon_at-r1.service" "git-daemon@.service" + systemd_dounit "${FILESDIR}/git-daemon.socket" + fi + + if use tk ; then + local tkdir + for tkdir in git-gui gitk-git ; do + ( + EMESON_SOURCE="${S}"/${tkdir} + BUILD_DIR="${WORKDIR}"/${tkdir}_build + meson_src_install + ) + done + fi + + perl_delete_localpod + + # Remove disabled linguas + # we could remove sources in src_prepare, but install does not + # handle missing locale dir well + rm_loc() { + if [[ -e "${ED}/usr/share/locale/${1}" ]] ; then + rm -r "${ED}/usr/share/locale/${1}" || die + fi + } + plocale_for_each_disabled_locale rm_loc +} + +pkg_postinst() { + if [[ -z ${REPLACING_VERSIONS} ]] ; then + elog "Please read /usr/share/bash-completion/completions/git for Git bash command" + elog "completion." + elog "Please read /usr/share/git/git-prompt.sh for Git bash prompt" + elog "Note that the prompt bash code is now in that separate script" + fi + + optfeature_header "Some scripts require additional dependencies:" + optfeature git-quiltimport dev-util/quilt + optfeature git-instaweb www-servers/lighttpd www-servers/apache www-servers/nginx +} diff --git a/sdk_container/src/third_party/portage-stable/dev-vcs/git/git-9999-r1.ebuild b/sdk_container/src/third_party/portage-stable/dev-vcs/git/git-9999-r1.ebuild index 9288f91c0ca..8f8c7532108 100644 --- a/sdk_container/src/third_party/portage-stable/dev-vcs/git/git-9999-r1.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-vcs/git/git-9999-r1.ebuild @@ -79,7 +79,7 @@ DEPEND=" " RDEPEND=" ${DEPEND} - gpg? ( app-crypt/gnupg ) + gpg? ( app-alternatives/gpg ) perl? ( dev-perl/Error dev-perl/MailTools diff --git a/sdk_container/src/third_party/portage-stable/dev-vcs/git/git-9999-r2.ebuild b/sdk_container/src/third_party/portage-stable/dev-vcs/git/git-9999-r2.ebuild index 9288f91c0ca..8f8c7532108 100644 --- a/sdk_container/src/third_party/portage-stable/dev-vcs/git/git-9999-r2.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-vcs/git/git-9999-r2.ebuild @@ -79,7 +79,7 @@ DEPEND=" " RDEPEND=" ${DEPEND} - gpg? ( app-crypt/gnupg ) + gpg? ( app-alternatives/gpg ) perl? ( dev-perl/Error dev-perl/MailTools diff --git a/sdk_container/src/third_party/portage-stable/dev-vcs/git/git-9999-r3.ebuild b/sdk_container/src/third_party/portage-stable/dev-vcs/git/git-9999-r3.ebuild index 9288f91c0ca..8f8c7532108 100644 --- a/sdk_container/src/third_party/portage-stable/dev-vcs/git/git-9999-r3.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-vcs/git/git-9999-r3.ebuild @@ -79,7 +79,7 @@ DEPEND=" " RDEPEND=" ${DEPEND} - gpg? ( app-crypt/gnupg ) + gpg? ( app-alternatives/gpg ) perl? ( dev-perl/Error dev-perl/MailTools diff --git a/sdk_container/src/third_party/portage-stable/dev-vcs/git/git-9999.ebuild b/sdk_container/src/third_party/portage-stable/dev-vcs/git/git-9999.ebuild index 9288f91c0ca..8f8c7532108 100644 --- a/sdk_container/src/third_party/portage-stable/dev-vcs/git/git-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-vcs/git/git-9999.ebuild @@ -79,7 +79,7 @@ DEPEND=" " RDEPEND=" ${DEPEND} - gpg? ( app-crypt/gnupg ) + gpg? ( app-alternatives/gpg ) perl? ( dev-perl/Error dev-perl/MailTools diff --git a/sdk_container/src/third_party/portage-stable/eclass/cmake.eclass b/sdk_container/src/third_party/portage-stable/eclass/cmake.eclass index 0a8b93c215a..4f1a0ff6061 100644 --- a/sdk_container/src/third_party/portage-stable/eclass/cmake.eclass +++ b/sdk_container/src/third_party/portage-stable/eclass/cmake.eclass @@ -19,7 +19,11 @@ # out-of-source builds (default) and in-source builds. case ${EAPI} in - 7|8) ;; + 7) + ewarn "${CATEGORY}/${PF}: ebuild uses ${ECLASS} with deprecated EAPI ${EAPI}!" + ewarn "${CATEGORY}/${PF}: Support will be removed on 2025-11-14. Please port to newer EAPI." + ;; + 8) ;; *) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;; esac @@ -110,6 +114,15 @@ fi # The default is set to "yes" (enabled). : "${CMAKE_WARN_UNUSED_CLI:=yes}" +# @ECLASS_VARIABLE: CMAKE_ECM_MODE +# @DEFAULT_UNSET +# @DESCRIPTION: +# Default value is "auto", which means _cmake_modify-cmakelists will make an +# effort to detect find_package(ECM) in CMakeLists.txt. If set to true, make +# extra checks and add common config settings related to ECM (KDE Extra CMake +# Modules). If set to false, do nothing. +: "${CMAKE_ECM_MODE:=auto}" + # @ECLASS_VARIABLE: CMAKE_EXTRA_CACHE_FILE # @USER_VARIABLE # @DEFAULT_UNSET @@ -124,11 +137,31 @@ fi # If set, skip detection of CMakeLists.txt unsupported in CMake 4 in case of # false positives (e.g. unused outdated bundled libs). -# @ECLASS_VARIABLE: _CMAKE_MINREQVER_UNSUPPORTED +# @ECLASS_VARIABLE: _CMAKE_MINREQVER_CMAKE305 +# @DEFAULT_UNSET +# @DESCRIPTION: +# Internal array containing : tuples detected by +# _cmake_minreqver-check() for any CMakeLists.txt with cmake_minimum_required +# version lower than 3.5. +_CMAKE_MINREQVER_CMAKE305=() + +# @ECLASS_VARIABLE: _CMAKE_MINREQVER_CMAKE310 # @DEFAULT_UNSET # @DESCRIPTION: -# Internal status set by _cmake_minreqver-lt(); is true if an unsupported -# cmake_minimum_required value was detected. +# Internal array containing : tuples detected by +# _cmake_minreqver-check() for any CMakeLists.txt with cmake_minimum_required +# version lower than 3.10 (causes CMake warnings as of 4.0) on top of those +# already added to _CMAKE_MINREQVER_CMAKE305. +_CMAKE_MINREQVER_CMAKE310=() + +# @ECLASS_VARIABLE: _CMAKE_MINREQVER_CMAKE316 +# @DEFAULT_UNSET +# @DESCRIPTION: +# Internal array containing : tuples detected by +# _cmake_minreqver-check() for any CMakeLists.txt with cmake_minimum_required +# version lower than 3.16 (causes ECM warnings since 5.100), on top of those +# already added to _CMAKE_MINREQVER_CMAKE305 and _CMAKE_MINREQVER_CMAKE310. +_CMAKE_MINREQVER_CMAKE316=() # @ECLASS_VARIABLE: CMAKE_QA_SRC_DIR_READONLY # @USER_VARIABLE @@ -150,6 +183,14 @@ fi [[ ${WANT_CMAKE} ]] && die "WANT_CMAKE has been removed and is a no-op" [[ ${PREFIX} ]] && die "PREFIX has been removed and is a no-op" +case ${CMAKE_ECM_MODE} in + auto|true|false) ;; + *) + eerror "Unknown value for \${CMAKE_ECM_MODE}" + die "Value ${CMAKE_ECM_MODE} is not supported" + ;; +esac + case ${CMAKE_MAKEFILE_GENERATOR} in emake) BDEPEND="dev-build/make" @@ -330,25 +371,141 @@ _cmake_check_build_dir() { mkdir -p "${BUILD_DIR}" || die } -# @FUNCTION: _cmake_minreqver-lt -# @USAGE: +# @FUNCTION: _cmake_minreqver-check +# @USAGE: or # @INTERNAL # @DESCRIPTION: -# Internal function for detecting occurrence of lower-than-specified -# in cmake_minimum_required of a given CMake file . +# Internal function for flagging any deprecated or unsupported +# cmake_minimum_required version in a given CMake file . +# If is specified as second arg, only check against that value. # Returns 0 if the regex matched (a lower-than-specified version found). -_cmake_minreqver-lt() { +_cmake_minreqver-check() { local ver chk=1 + if [[ "$#" == 2 ]]; then + local file="${1}" + local lt_version="${2}" + elif [[ "$#" == 1 ]]; then + local file="${1}" + else + die "${FUNCNAME[0]} must be passed either one or two arguments" + fi ver=$(sed -ne "/^\s*cmake_minimum_required/I{s/.*\(\.\.\.*\|\s\)\([0-9][0-9.]*\)\([)]\|\s\).*$/\2/p;q}" \ - "${2}" 2>/dev/null \ + "${file}" 2>/dev/null \ ) - if [[ -n ${ver} ]] && ver_test "${ver}" -lt "${1}"; then - _CMAKE_MINREQVER_UNSUPPORTED=true - chk=0 + if [[ -z ${ver} ]]; then + return 1 # no cmake_minimum_required found + fi + if [[ -n ${lt_version} ]]; then + chk=$(ver_test "${ver}" -lt "${lt_version}") + else + if ver_test "${ver}" -lt "3.5"; then + _CMAKE_MINREQVER_CMAKE305+=( "${file}":"${ver}" ) + chk=0 + fi + # we don't want duplicates that were already flagged + if [[ $chk != 0 ]] && ver_test "${ver}" -lt "3.10"; then + _CMAKE_MINREQVER_CMAKE310+=( "${file}":"${ver}" ) + chk=0 + fi + # we don't want duplicates that were already flagged + if [[ $chk != 0 ]] && ver_test "${ver}" -lt "3.16"; then + _CMAKE_MINREQVER_CMAKE316+=( "${file}":"${ver}" ) + chk=0 + fi fi return ${chk} } +# @FUNCTION: _cmake_minreqver-info +# @INTERNAL +# @DESCRIPTION: +# QA Notice and file listings for any CMakeLists.txt file not meeting various +# minimum standards for cmake_minimum_required. +_cmake_minreqver-info() { + local warnlvl + [[ -n ${_CMAKE_MINREQVER_CMAKE305[@]} ]] && warnlvl=305 + [[ -n ${_CMAKE_MINREQVER_CMAKE310[@]} ]] || [[ ${warnlvl} ]] && warnlvl=310 + [[ ${CMAKE_ECM_MODE} == true ]] && + { [[ -n ${_CMAKE_MINREQVER_CMAKE316[@]} ]] || [[ ${warnlvl} ]]; } && warnlvl=316 + + local weak_qaw="QA Notice: " + minreqver_qanotice() { + case ${1} in + 305) + eqawarn "${weak_qaw}Compatibility with CMake < 3.5 has been removed from CMake 4," + eqawarn "${CATEGORY}/${PN} will fail to build w/o a fix." + eqawarn "See also tracker bug #951350; check existing bug or file a new one for" + eqawarn "this package, and take it upstream." + ;; + 310) + eqawarn "${weak_qaw}Compatibility with CMake < 3.10 will be removed in a future release." + eqawarn "If not fixed in upstream's code repository, we should make sure they are aware." + eqawarn "See also tracker bug #964405; check existing or file a new bug for this package." + ;; + 316) + eqawarn "${weak_qaw}Compatibility w/ CMake < 3.16 will be removed in future ECM release." + eqawarn "If not fixed in upstream's code repository, we should make sure they are aware." + eqawarn "See also tracker bug #964407; check existing or file a new bug for this package." + ;; + esac + eqawarn + weak_qaw="" # weak notice: no "QA Notice" starting with second call + } + + local info + minreqver_listing() { + case ${1} in + 305) + eqawarn "The following CMakeLists.txt files are causing errors:" + for info in ${_CMAKE_MINREQVER_CMAKE305[*]}; do + eqawarn " ${info#"${CMAKE_USE_DIR}/"}"; + done + eqawarn + ;; + 310) + if [[ -n ${_CMAKE_MINREQVER_CMAKE310[@]} ]]; then + eqawarn "The following CMakeLists.txt files are causing warnings:" + for info in ${_CMAKE_MINREQVER_CMAKE310[*]}; do + eqawarn " ${info#"${CMAKE_USE_DIR}/"}"; + done + eqawarn + fi + ;; + 316) + if [[ ${warnlvl} -ge 316 ]] && [[ -n ${_CMAKE_MINREQVER_CMAKE316[@]} ]]; then + eqawarn "The following CMakeLists.txt files are causing warnings:" + for info in ${_CMAKE_MINREQVER_CMAKE316[*]}; do + eqawarn " ${info#"${CMAKE_USE_DIR}/"}"; + done + eqawarn + fi + ;; + esac + } + + # CMake 4-caused error is highest priority and must always be shown + if [[ -n ${_CMAKE_MINREQVER_CMAKE305[@]} ]]; then + minreqver_qanotice 305 + minreqver_listing 305 + fi + # for warnings, we only want the latest relevant one, but list all flagged files + if [[ ${warnlvl} -ge 310 ]]; then + minreqver_qanotice ${warnlvl} + for info in 310 316; do minreqver_listing ${info}; done + fi + if [[ ${warnlvl} ]]; then + if [[ -n ${_CMAKE_MINREQVER_CMAKE305[@]} ]] && has_version -b ">=dev-build/cmake-4"; then + eqawarn "CMake 4 detected; building with -DCMAKE_POLICY_VERSION_MINIMUM=3.5" + eqawarn "This is merely a workaround to avoid CMake Error and *not* a permanent fix;" + eqawarn "there may be new build or runtime bugs as a result." + eqawarn + fi + eqawarn "An upstreamable patch should take any resulting CMake policy changes" + eqawarn "into account. See also:" + eqawarn " https://cmake.org/cmake/help/latest/manual/cmake-policies.7.html" + fi +} + # @FUNCTION: _cmake_modify-cmakelists # @INTERNAL # @DESCRIPTION: @@ -375,9 +532,12 @@ _cmake_modify-cmakelists() { einfo "${mod_line:22:99}" done fi + if [[ ${CMAKE_ECM_MODE} == auto ]] && grep -Eq "\s*find_package\s*\(\s*ECM " "${file}"; then + CMAKE_ECM_MODE=true + fi # Detect unsupported minimum CMake versions unless CMAKE_QA_COMPAT_SKIP is set - if [[ -z ${_CMAKE_MINREQVER_UNSUPPORTED} ]] && ! [[ ${CMAKE_QA_COMPAT_SKIP} ]]; then - _cmake_minreqver-lt "3.5" "${file}" + if ! [[ ${CMAKE_QA_COMPAT_SKIP} ]]; then + _cmake_minreqver-check "${file}" fi done < <(find "${CMAKE_USE_DIR}" -type f -iname "CMakeLists.txt" -print0 || die) @@ -397,23 +557,6 @@ _cmake_modify-cmakelists() { _EOF_ } -# @FUNCTION: _cmake4_callout -# @INTERNAL -# @DESCRIPTION: -# QA notice printout for build systems unsupported w/ CMake-4. -_cmake4_callout() { - if [[ ${_CMAKE_MINREQVER_UNSUPPORTED} ]]; then - eqawarn "QA Notice: Compatibility with CMake < 3.5 has been removed from CMake 4," - eqawarn "${CATEGORY}/${PN} will fail to build w/o a fix." - eqawarn "See also tracker bug #951350; check existing bug or file a new one for" - eqawarn "this package, and take it upstream." - if has_version -b ">=dev-build/cmake-4"; then - eqawarn "CMake 4 detected; building with -DCMAKE_POLICY_VERSION_MINIMUM=3.5" - eqawarn "This is merely a workaround and *not* a permanent fix." - fi - fi -} - # @FUNCTION: cmake_prepare # @DESCRIPTION: # Check existence of and sanitise CMake files, then make ${CMAKE_USE_DIR} @@ -445,7 +588,7 @@ cmake_prepare() { # Remove dangerous things. _cmake_modify-cmakelists - _cmake4_callout + _cmake_minreqver-info # Make ${CMAKE_USE_DIR} read-only in order to detect broken build systems if [[ ${CMAKE_QA_SRC_DIR_READONLY} && ! ${CMAKE_IN_SOURCE_BUILD} ]]; then @@ -486,14 +629,13 @@ cmake_src_prepare() { find "${S}" -name "${name}.cmake" -exec rm -v {} + || die done _cmake_modify-cmakelists # Remove dangerous things. - _cmake4_callout + _cmake_minreqver-info popd > /dev/null || die # Make ${S} read-only in order to detect broken build systems if [[ ${CMAKE_QA_SRC_DIR_READONLY} && ! ${CMAKE_IN_SOURCE_BUILD} ]]; then chmod -R a-w "${S}" fi _CMAKE_PREPARE_HAS_RUN=1 - eqawarn "QA Notice: cmake.eclass will throw unsupported EAPI=7 error after 2025-11-01." else default_src_prepare cmake_prepare @@ -631,20 +773,15 @@ cmake_src_configure() { set(CMAKE_USER_MAKE_RULES_OVERRIDE "${build_rules}" CACHE FILEPATH "Gentoo override rules") set(CMAKE_INSTALL_DOCDIR "${EPREFIX}/usr/share/doc/${PF}" CACHE PATH "") set(BUILD_SHARED_LIBS ON CACHE BOOL "") - set(Python3_FIND_UNVERSIONED_NAMES FIRST CACHE STRING "") + set(Python3_FIND_UNVERSIONED_NAMES FIRST CACHE STRING "") # FindPythonInterp, Gentoo-bug #835799 + set(CMAKE_POLICY_DEFAULT_CMP0094 NEW CACHE STRING "" ) # FindPython, Gentoo-bug #959154 set(CMAKE_DISABLE_PRECOMPILE_HEADERS ON CACHE BOOL "") + set(CMAKE_INTERPROCEDURAL_OPTIMIZATION OFF CACHE BOOL "") set(CMAKE_TLS_VERIFY ON CACHE BOOL "") set(CMAKE_COMPILE_WARNING_AS_ERROR OFF CACHE BOOL "") + set(CMAKE_LINK_WARNING_AS_ERROR OFF CACHE BOOL "") _EOF_ - if [[ -n ${_ECM_ECLASS} ]]; then - cat >> ${common_config} <<- _EOF_ || die - set(ECM_DISABLE_QMLPLUGINDUMP ON CACHE BOOL "") - set(ECM_DISABLE_APPSTREAMTEST ON CACHE BOOL "") - set(ECM_DISABLE_GIT ON CACHE BOOL "") - _EOF_ - fi - # See bug 689410 if [[ "${ARCH}" == riscv ]]; then echo 'set(CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX '"${libdir#lib}"' CACHE STRING "library search suffix" FORCE)' >> "${common_config}" || die @@ -716,7 +853,9 @@ cmake_src_configure() { cmakeargs+=( -C "${CMAKE_EXTRA_CACHE_FILE}" ) fi - if [[ ${_CMAKE_MINREQVER_UNSUPPORTED} ]] && has_version -b ">=dev-build/cmake-4"; then + if ! [[ ${CMAKE_QA_COMPAT_SKIP} ]] && + [[ -n ${_CMAKE_MINREQVER_CMAKE305[@]} ]] && + has_version -b ">=dev-build/cmake-4"; then cmakeargs+=( -DCMAKE_POLICY_VERSION_MINIMUM=3.5 ) fi @@ -852,7 +991,7 @@ cmake_src_install() { while read -d '' -r file ; do # Detect unsupported minimum CMake versions unless CMAKE_QA_COMPAT_SKIP is set if ! [[ ${CMAKE_QA_COMPAT_SKIP} ]]; then - _cmake_minreqver-lt "3.5" "${file}" && files+=( "${file#"${D}"}" ) + _cmake_minreqver-check "3.5" "${file}" && files+=( "${file#"${D}"}" ) fi done < <(find "${D}" -type f -iname "*.cmake" -print0 || die) if [[ ${#files[*]} -gt 0 ]]; then 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 e9826f4cf3d..8fc92cf4fca 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 @@ -551,6 +551,7 @@ distutils_enable_tests() { case ${1} in import-check) test_pkgs+=' dev-python/pytest-import-check[${PYTHON_USEDEP}]' + EPYTEST_PLUGINS+=( pytest-import-check ) ;& pytest) test_pkgs+=' >=dev-python/pytest-7.4.4[${PYTHON_USEDEP}]' @@ -1287,7 +1288,7 @@ distutils-r1_python_compile() { # from the oldest to the newest implementation, # and the wheels are forward-compatible. if [[ - ( ! ${DISTUTILS_EXT} && ${whl} == *py3-none-any* ) || + ( ! ${DISTUTILS_EXT} && ${whl} == *py3-none* ) || ( ${EPYTHON} == python* && # freethreading does not support stable ABI diff --git a/sdk_container/src/third_party/portage-stable/eclass/pypi.eclass b/sdk_container/src/third_party/portage-stable/eclass/pypi.eclass index 38068aac335..14c4edb391d 100644 --- a/sdk_container/src/third_party/portage-stable/eclass/pypi.eclass +++ b/sdk_container/src/third_party/portage-stable/eclass/pypi.eclass @@ -298,9 +298,9 @@ _pypi_provenance_url() { # @DESCRIPTION: # Output the URL to PyPI provenance for the specified artifact. pypi_provenance_url() { - local _PYPI_PROVENANCE_URL + local _PYPI_ATTESTATION_URL _pypi_provenance_url "${@}" - echo "${_PYPI_PROVENANCE_URL}" + echo "${_PYPI_ATTESTATION_URL}" } # @FUNCTION: pypi_verify_provenance 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 e213273a3a7..b08dbd586ba 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 @@ -1538,9 +1538,17 @@ epytest() { ) fi - args+=( - "--reruns=${EPYTEST_RERUNS}" - ) + if has_version ">=dev-python/pytest-rerunfailures-16.1"; then + args+=( + # --reruns only adds N reruns for tests not marked for reruns + # --force-reruns overrides the rerun count for all tests + "--force-reruns=${EPYTEST_RERUNS}" + ) + else + args+=( + "--reruns=${EPYTEST_RERUNS}" + ) + fi fi if [[ -n ${EPYTEST_TIMEOUT} ]]; then 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 309a3f4d5d1..b5a992199dc 100644 --- a/sdk_container/src/third_party/portage-stable/eclass/rust.eclass +++ b/sdk_container/src/third_party/portage-stable/eclass/rust.eclass @@ -98,6 +98,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.91.0" "1.90.0" "1.89.0" "1.88.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 0acb2cb365b..514d4def64a 100644 --- a/sdk_container/src/third_party/portage-stable/eclass/toolchain.eclass +++ b/sdk_container/src/third_party/portage-stable/eclass/toolchain.eclass @@ -340,7 +340,7 @@ if [[ ${PN} != kgcc64 && ${PN} != gcc-* ]] ; then tc_version_is_at_least 14.1 ${PV} && IUSE+=" rust" TC_FEATURES+=( rust ) tc_version_is_at_least 13.3.1_p20250522 ${PV} && IUSE+=" time64" tc_version_is_at_least 15.1 ${PV} && IUSE+=" libgdiagnostics" - tc_version_is_at_least 15.1 ${PV} && IUSE+=" cobol" + tc_version_is_at_least 15.1 ${PV} && IUSE+=" cobol" TC_FEATURES+=( cobol ) fi if tc_version_is_at_least 10; then @@ -363,6 +363,10 @@ GMP_MPFR_DEPS=">=dev-libs/gmp-4.3.2:0= >=dev-libs/mpfr-2.4.2:0=" RDEPEND+=" ${GMP_MPFR_DEPS}" RDEPEND+=" >=dev-libs/mpc-0.8.1:0=" +if tc_has_feature cobol && tc_version_is_at_least 16.0.0_p20251019 ; then + RDEPEND+=" cobol? ( dev-libs/libxml2:= )" +fi + if tc_has_feature objc-gc ; then RDEPEND+=" objc-gc? ( >=dev-libs/boehm-gc-7.4.2 )" fi diff --git a/sdk_container/src/third_party/portage-stable/eclass/verify-sig.eclass b/sdk_container/src/third_party/portage-stable/eclass/verify-sig.eclass index 1cd3e1010ae..ba1086d6641 100644 --- a/sdk_container/src/third_party/portage-stable/eclass/verify-sig.eclass +++ b/sdk_container/src/third_party/portage-stable/eclass/verify-sig.eclass @@ -58,7 +58,7 @@ IUSE="verify-sig" # Signature verification method to use. The allowed value are: # # - minisig -- verify signatures with (base64) Ed25519 public key using app-crypt/minisign -# - openpgp -- verify PGP signatures using app-crypt/gnupg (the default) +# - openpgp -- verify PGP signatures using app-alternatives/gpg (the default) # - sigstore -- verify signatures using dev-python/sigstore # - signify -- verify signatures with Ed25519 public key using app-crypt/signify : "${VERIFY_SIG_METHOD:=openpgp}" @@ -70,7 +70,10 @@ case ${VERIFY_SIG_METHOD} in openpgp) BDEPEND=" verify-sig? ( - app-crypt/gnupg + || ( + app-alternatives/gpg + app-crypt/gnupg[-alternatives(-)] + ) >=app-portage/gemato-20 ) " @@ -276,7 +279,7 @@ verify-sig_verify_message() { # https://bugs.gentoo.org/854492 local -x TMPDIR=/tmp gemato gpg-wrap -K "${key}" "${extra_args[@]}" -- \ - gpg --verify --output="${output_file}" "${file}" || + "${GNUPG:-gpg}" --verify --output="${output_file}" "${file}" || die "PGP signature verification failed" ;; signify) @@ -380,6 +383,7 @@ _gpg_verify_signed_checksums() { verify-sig_verify_unsigned_checksums - "${algo}" "${files}" < <( verify-sig_verify_message "${checksum_file}" - "${key}" + echo ) } diff --git a/sdk_container/src/third_party/portage-stable/net-analyzer/openbsd-netcat/Manifest b/sdk_container/src/third_party/portage-stable/net-analyzer/openbsd-netcat/Manifest index 9d649ed1d18..0335465e67d 100644 --- a/sdk_container/src/third_party/portage-stable/net-analyzer/openbsd-netcat/Manifest +++ b/sdk_container/src/third_party/portage-stable/net-analyzer/openbsd-netcat/Manifest @@ -2,3 +2,5 @@ DIST netcat-openbsd_1.218-5.debian.tar.xz 52052 BLAKE2B 38ccde34bfa6f1873a8e38fa DIST netcat-openbsd_1.218.orig.tar.gz 22964 BLAKE2B 2dba29cc93ef5295ec24db7632454564fa640fba139116d2732aff465c9a4b37238f65d51ad727f9b29d304b73ce05282b82ec468444c63f5611a90a1384ac62 SHA512 a830f0e3efdff01ba1bb0b344f49d545b9c184001cd641e523a6d24670b97d52dc723318660a5ec8f3215cb57ebe62ca4c06387000b6c8b6495a5c653a4206c6 DIST netcat-openbsd_1.219-1.debian.tar.xz 52048 BLAKE2B 62c2e4a6446fbdb01ea34a70c10dc72a980e62b4d8e06e4564f05932b9fb291be73558a1b8c11f448c509b0fc3c5fe42381a1a9f0a14bba0c2e087dd1e6da9f1 SHA512 badc1afbe8a467c068fa1d3bf12817d568eae5bb9774f9f11d3b30c065eb3a8b39724bb456329d7153ea3160cd10fab159a6756f7eeafd9bfc8c5d78114f7da6 DIST netcat-openbsd_1.219.orig.tar.gz 22940 BLAKE2B 4e871124a22fec2ba572f2a614b7eb5134565acd5d952973f7e7f76ead6b22d0811efcc916726da1e7719c5d3014f94ea53ad09804a77b55c4b15fc571bf0e95 SHA512 9f6d531d33410457b8f1e6a3eb0d105dbd819d5e4fe9753d32d7fd4583680ceba102a60307a8b5ef26b47047492b207388742b725da3708d30d360d4a196f115 +DIST netcat-openbsd_1.234-1.debian.tar.xz 52892 BLAKE2B 82be4c8f944cb8a63805d0ad97cc675ebe46c8510acf14bd68f98c289107615a3ee6f9f1119b3f21fd6c8673c60d95d0c520d9a0917f42aac1f20e367b631836 SHA512 481a9617749c02cee3ee0b871eb8f7f364f1514c1c89bf1d1d741bb4c4960ae3279306f233b4edb1c6805f9bb0cc0d056e59003bb35db8ee28aa779540ab4fb9 +DIST netcat-openbsd_1.234.orig.tar.gz 23408 BLAKE2B 60d43fad746374b18862d53394e7e3d70da242b3ef242730f5dbf124d237e7b6d95139c09e916f0d5b4301bf6d5d10e4548e61a9044075965b3df1c6232dac9e SHA512 81b1cb461cb26d728b0a5d1d07c53624a05c84872a82f3d9cba43c9e8c25581b773cbe7a3467ad91add028f6765d9349c21dafbe0d746806763ae601547a9673 diff --git a/sdk_container/src/third_party/portage-stable/net-analyzer/openbsd-netcat/openbsd-netcat-1.234_p1.ebuild b/sdk_container/src/third_party/portage-stable/net-analyzer/openbsd-netcat/openbsd-netcat-1.234_p1.ebuild new file mode 100644 index 00000000000..debffdb44a5 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/net-analyzer/openbsd-netcat/openbsd-netcat-1.234_p1.ebuild @@ -0,0 +1,69 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit toolchain-funcs + +MY_PV=$(ver_cut 1-2) +DESCRIPTION="The OpenBSD network swiss army knife" +HOMEPAGE="https://cvsweb.openbsd.org/src/usr.bin/nc/ https://salsa.debian.org/debian/netcat-openbsd" +SRC_URI=" + mirror://debian/pool/main/n/netcat-openbsd/netcat-openbsd_${MY_PV}.orig.tar.gz + mirror://debian/pool/main/n/netcat-openbsd/netcat-openbsd_${MY_PV}-$(ver_cut 4).debian.tar.xz +" +S="${WORKDIR}"/netcat-openbsd-${MY_PV} + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86 ~amd64-linux ~arm64-macos ~x64-macos" + +RDEPEND=" + !net-analyzer/netcat + !elibc_Darwin? ( dev-libs/libbsd ) +" +BDEPEND="virtual/pkgconfig" + +src_prepare() { + local i + for i in $(<"${WORKDIR}"/debian/patches/series) ; do + PATCHES+=( "${WORKDIR}"/debian/patches/${i} ) + done + + if [[ ${CHOST} == *-darwin* ]] ; then + # This undoes some of the Debian/Linux changes + PATCHES+=( "${FILESDIR}"/${PN}-1.219-darwin.patch ) + + if [[ ${CHOST##*-darwin} -lt 20 ]] ; then + PATCHES+=( "${FILESDIR}"/${PN}-1.190-darwin13.patch ) + fi + fi + + if use elibc_musl ; then + PATCHES+=( "${FILESDIR}"/${PN}-1.105-musl-b64_ntop.patch ) + fi + + default +} + +src_compile() { + # gnu99 for bug #943711 + emake CC="$(tc-getCC) -std=gnu99" CFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}" PKG_CONFIG="$(tc-getPKG_CONFIG)" +} + +src_install() { + dobin nc + doman nc.1 + + cd "${WORKDIR}"/debian || die + newdoc netcat-openbsd.README.Debian README + dodoc -r examples +} + +pkg_postinst() { + if use kernel_linux ; then + ewarn "SO_REUSEPORT is introduced in linux 3.9. If your running kernel is older" + ewarn "and kernel header is newer, nc will not listen correctly. Matching the header" + ewarn "to the running kernel will do. See bug #490246 for details." + fi +} diff --git a/sdk_container/src/third_party/portage-stable/net-fs/cifs-utils/cifs-utils-7.4.ebuild b/sdk_container/src/third_party/portage-stable/net-fs/cifs-utils/cifs-utils-7.4.ebuild index 53562db9382..f92792e017c 100644 --- a/sdk_container/src/third_party/portage-stable/net-fs/cifs-utils/cifs-utils-7.4.ebuild +++ b/sdk_container/src/third_party/portage-stable/net-fs/cifs-utils/cifs-utils-7.4.ebuild @@ -3,7 +3,7 @@ EAPI=8 -PYTHON_COMPAT=( python3_{10..13} ) +PYTHON_COMPAT=( python3_{11..13} ) inherit autotools bash-completion-r1 flag-o-matic linux-info pam python-single-r1 @@ -13,7 +13,7 @@ SRC_URI="https://ftp.samba.org/pub/linux-cifs/${PN}/${P}.tar.bz2" LICENSE="GPL-3" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x86-linux" +KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~loong ~mips ~ppc ppc64 ~riscv ~s390 ~sparc x86 ~x86-linux" IUSE="+acl +ads +caps creds pam +python systemd" RDEPEND=" diff --git a/sdk_container/src/third_party/portage-stable/net-fs/samba/Manifest b/sdk_container/src/third_party/portage-stable/net-fs/samba/Manifest index d03a29e04e0..ed340f3e598 100644 --- a/sdk_container/src/third_party/portage-stable/net-fs/samba/Manifest +++ b/sdk_container/src/third_party/portage-stable/net-fs/samba/Manifest @@ -1,6 +1,9 @@ DIST samba-4.20.8.tar.gz 42531989 BLAKE2B 4c8d6d4fe40c0640667089179af5a8a49e6117fcd46b735ac59ffad0334e7fddffb99d2204c30d272a1902b8bf22bc9dc10a7b58762642977f0aec25acb91a57 SHA512 1dc598cb3aa830d35985e5840f1956d48b93eef02805248ececd0eb472b514311a9f6e69798bb5f5735a845b6e1c8de84b4ecaff6dea7a61324202d6fb0b3eeb DIST samba-4.21.7.tar.gz 42689509 BLAKE2B c7cfdab05402f0df38c1a643126072fdaf4d031e339e171180009ecaf9de7d06c490f344b2eea6ccec1021ecbf84aabe5c0d9b2718ab461f95502ce52dd1ffbc SHA512 f44a0dc880b2a5694f9c46ff11c808ae263f68c91cc9b0e32869bb44f84c1fdcc49370a396f38e0f452133c29357d8ad80a689af67bd85f648b2121e7792b555 DIST samba-4.21.8.tar.gz 42696867 BLAKE2B b86d9a5f2ae072b50555757d97241ff48d2a1155323da43c70a6f809a1fb2e303077d414b6614ca1740e06b4f613d1754860eeed043d65afc77cf1ecf2fc823f SHA512 194d89f2df2513b9e7e84b2b2554c8f553f6115ba98d3b3dee3efced33cbce74c9b4fac119625a4b772a516ab3fcb21595e1bd2e6f9bf3d162b25f6bb25b6dce +DIST samba-4.21.9.tar.gz 42695134 BLAKE2B 21132a5fb75d42772f7c6ba414f7bb7b862e43d10b84a97155b1f2aeb40d4841d36697e9a6a795eed2a38a7076933b0b2cd731ea679f0dc820137b897be9e835 SHA512 465ccb912c443e3b187d9662f605141011626b12ebc979558e3c710487382cae8fe110e0bc5232f04c839cb5d13313f8f68f2edd2511ead31cefb9096ecdcf08 DIST samba-4.22.3.tar.gz 42869744 BLAKE2B 9ad02f617df307d6a7e0f88d030a4e3884d221ad2862f42af0cf8fb7cc595578fea9ce210b4bad2521634bd3b9752a58a077905f82ce5e9ef4eb8331a8044efc SHA512 5fe79857c9c21d13912bd4f937ec00ad885d4b53d814265428916578927615f3d4a2fe921df88960e6651cd78b202734fee58ff38f6fb7fbffdfe8f129bcf59a DIST samba-4.22.4.tar.gz 42873748 BLAKE2B c2d239f2d62f450fbef84ceee1077201c0fca926cc97e99527d4bff07ff11a815a4167ca270afd04af4257759bcc1e003493bfcfd9e552e9410d426921341c8c SHA512 4a4ef586bc6d8fa5984d87814022a35988afaf4ee0aebaf023c4a1debfec4215525e886efe2efd4647a4374855d8cd15c6fc919de84454847206d558fcd21ea2 +DIST samba-4.22.5.tar.gz 42876122 BLAKE2B c6ee4c98c4aced9faa0b5f90c61a3ea9473fc8c90e7c3ceb470aba9354fb4bb21cdd16a7d19bb6b0faee4454259e02546b4bb5093e8e8fe64a67b5635fc1152b SHA512 ee183e664768076f814c252afef0cd2225961d173174e8f4703d8cf59fe2abc2d1a089e293905849201ab2af75e27d8666360072a85bcce2b0dc735324d6b02e DIST samba-4.23.0.tar.gz 43320412 BLAKE2B e4787045dd85dce9e03b18d04d09ed1c3adae01f13545e99c2d84af8855f42f716bb256d8eee2830164f2fd59c7386f1547f4ec45504edc3c80470b27fe05ab4 SHA512 b95504c28b7773db792f9bc895644efc8027ec7724beca6435f2ba5a862eda3023551528275ec23aae9ad580d42350015d8851757b9ea54d099321fe8a31fe8c +DIST samba-4.23.2.tar.gz 43324641 BLAKE2B 6ea7254f07121e32c6ac0914f45451c0174d68006dbc7836469a9d201d5acadbf6d8ed79d962ba7faa4cd404f52b5c27c02b7025feb37e4a56162bcd0a863401 SHA512 115022f736a36a902e939babd9cf62d71a60363ac0f8bc06f2fe07716f2c99cf44cba2513107edae6e673dbd6af7ea69757fe27fe74954bfb8c6904a92c93d80 diff --git a/sdk_container/src/third_party/portage-stable/net-fs/samba/samba-4.21.9-r1.ebuild b/sdk_container/src/third_party/portage-stable/net-fs/samba/samba-4.21.9-r1.ebuild new file mode 100644 index 00000000000..6566205eed8 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/net-fs/samba/samba-4.21.9-r1.ebuild @@ -0,0 +1,391 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{11..13} ) +PYTHON_REQ_USE="threads(+),xml(+)" +inherit python-single-r1 flag-o-matic waf-utils multilib-minimal linux-info systemd pam tmpfiles + +DESCRIPTION="Samba Suite Version 4" +HOMEPAGE="https://samba.org/" + +MY_PV="${PV/_rc/rc}" +MY_P="${PN}-${MY_PV}" +if [[ ${PV} == *_rc* ]]; then + SRC_URI="https://download.samba.org/pub/samba/rc/${MY_P}.tar.gz" +else + SRC_URI="https://download.samba.org/pub/samba/stable/${MY_P}.tar.gz" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86" +fi +S="${WORKDIR}/${MY_P}" + +LICENSE="GPL-3" +SLOT="0/2.10.0" +IUSE="acl addc ads ceph client cluster cups debug fam glusterfs gpg" +IUSE+=" iprint json ldap llvm-libunwind lmdb pam profiling-data python quota" +IUSE+=" +regedit selinux snapper spotlight syslog system-heimdal +system-mitkrb5" +IUSE+=" systemd test unwind winbind zeroconf" + +# ldap needs ads (bug #941578) +REQUIRED_USE="${PYTHON_REQUIRED_USE} + addc? ( json python !system-mitkrb5 winbind ) + ads? ( acl ldap python winbind ) + cluster? ( ads ) + gpg? ( addc ) + ldap? ( ads ) + spotlight? ( json ) + test? ( python ) + !ads? ( !addc ) + ?? ( system-heimdal system-mitkrb5 ) +" + +# the test suite is messed, it uses system-installed samba +# bits instead of what was built, tests things disabled via use +# flags, and generally just fails to work in a way ebuilds could +# rely on in its current state +RESTRICT="test" + +MULTILIB_WRAPPED_HEADERS=( + /usr/include/samba-4.0/policy.h + /usr/include/samba-4.0/dcerpc_server.h + /usr/include/samba-4.0/ctdb.h + /usr/include/samba-4.0/ctdb_client.h + /usr/include/samba-4.0/ctdb_protocol.h + /usr/include/samba-4.0/ctdb_private.h + /usr/include/samba-4.0/ctdb_typesafe_cb.h + /usr/include/samba-4.0/ctdb_version.h +) + +TALLOC_VERSION="2.4.2" +TDB_VERSION="1.4.12" +TEVENT_VERSION="0.16.1" + +COMMON_DEPEND=" + >=app-arch/libarchive-3.1.2:=[${MULTILIB_USEDEP}] + dev-lang/perl:= + dev-libs/icu:=[${MULTILIB_USEDEP}] + dev-libs/libbsd[${MULTILIB_USEDEP}] + dev-libs/libtasn1:=[${MULTILIB_USEDEP}] + dev-libs/popt[${MULTILIB_USEDEP}] + dev-perl/Parse-Yapp + >=net-libs/gnutls-3.4.7:=[${MULTILIB_USEDEP}] + >=sys-fs/e2fsprogs-1.46.4-r51[${MULTILIB_USEDEP}] + !sys-libs/ldb + sys-libs/libcap[${MULTILIB_USEDEP}] + sys-libs/liburing:=[${MULTILIB_USEDEP}] + sys-libs/ncurses:= + sys-libs/readline:= + >=sys-libs/talloc-${TALLOC_VERSION}[${MULTILIB_USEDEP}] + >=sys-libs/tdb-${TDB_VERSION}[${MULTILIB_USEDEP}] + >=sys-libs/tevent-${TEVENT_VERSION}[${MULTILIB_USEDEP}] + sys-libs/zlib[${MULTILIB_USEDEP}] + virtual/libcrypt:=[${MULTILIB_USEDEP}] + virtual/libiconv + $(python_gen_cond_dep ' + addc? ( + dev-python/cryptography[${PYTHON_USEDEP}] + dev-python/dnspython:=[${PYTHON_USEDEP}] + dev-python/markdown[${PYTHON_USEDEP}] + net-dns/bind[gssapi] + ) + ads? ( + dev-python/cryptography[${PYTHON_USEDEP}] + dev-python/dnspython:=[${PYTHON_USEDEP}] + dev-python/markdown[${PYTHON_USEDEP}] + net-dns/bind[gssapi] + ) + ') + acl? ( virtual/acl ) + ceph? ( sys-cluster/ceph ) + cluster? ( net-libs/rpcsvc-proto ) + cups? ( net-print/cups ) + debug? ( dev-util/lttng-ust ) + fam? ( virtual/fam ) + gpg? ( app-crypt/gpgme:= ) + json? ( dev-libs/jansson:= ) + ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] ) + lmdb? ( >=dev-db/lmdb-0.9.16:=[${MULTILIB_USEDEP}] ) + pam? ( sys-libs/pam ) + python? ( + sys-libs/talloc[python,${PYTHON_SINGLE_USEDEP}] + sys-libs/tdb[python,${PYTHON_SINGLE_USEDEP}] + sys-libs/tevent[python,${PYTHON_SINGLE_USEDEP}] + ) + snapper? ( sys-apps/dbus ) + system-heimdal? ( >=app-crypt/heimdal-1.5[-ssl(-),${MULTILIB_USEDEP}] ) + system-mitkrb5? ( >=app-crypt/mit-krb5-1.19[${MULTILIB_USEDEP}] ) + !system-heimdal? ( !system-mitkrb5? ( sys-apps/keyutils[${MULTILIB_USEDEP}] ) ) + systemd? ( sys-apps/systemd:= ) + unwind? ( + llvm-libunwind? ( llvm-runtimes/libunwind:= ) + !llvm-libunwind? ( sys-libs/libunwind:= ) + ) + zeroconf? ( net-dns/avahi[dbus] ) +" +DEPEND="${COMMON_DEPEND} + dev-perl/JSON + net-libs/libtirpc[${MULTILIB_USEDEP}] + net-libs/rpcsvc-proto + spotlight? ( dev-libs/glib ) + test? ( + >=dev-util/cmocka-1.1.3[${MULTILIB_USEDEP}] + $(python_gen_cond_dep "dev-python/python-subunit[\${PYTHON_USEDEP},${MULTILIB_USEDEP}]" ) + !system-mitkrb5? ( + >=net-dns/resolv_wrapper-1.1.4 + >=net-libs/socket_wrapper-1.1.9 + >=sys-libs/nss_wrapper-1.1.3 + >=sys-libs/uid_wrapper-1.2.1 + ) + )" +RDEPEND="${COMMON_DEPEND} + client? ( net-fs/cifs-utils[ads?] ) + python? ( ${PYTHON_DEPS} ) + selinux? ( sec-policy/selinux-samba ) +" +BDEPEND="${PYTHON_DEPS} + app-text/docbook-xsl-stylesheets + dev-libs/libxslt + virtual/pkgconfig +" + +PATCHES=( + "${FILESDIR}"/${PN}-4.18.4-pam.patch + "${FILESDIR}"/ldb-2.5.2-skip-wav-tevent-check.patch +) + +CONFDIR="${FILESDIR}/4.4" +WAF_BINARY="${S}/buildtools/bin/waf" +SHAREDMODS="" + +pkg_setup() { + # Package fails to build with distcc + export DISTCC_DISABLE=1 + export PYTHONHASHSEED=1 + + python-single-r1_pkg_setup + + SHAREDMODS="$(usev !snapper '!')vfs_snapper" + if use cluster ; then + SHAREDMODS+=",idmap_rid,idmap_tdb2,idmap_ad" + elif use ads ; then + SHAREDMODS+=",idmap_ad" + fi +} + +check_samba_dep_versions() { + actual_talloc_version=$(sed -En '/^VERSION =/{s/[^0-9.]//gp}' lib/talloc/wscript || die) + if [[ ${actual_talloc_version} != ${TALLOC_VERSION} ]] ; then + eerror "Source talloc version: ${TALLOC_VERSION}" + eerror "Ebuild talloc version: ${actual_talloc_version}" + die "Ebuild needs to fix TALLOC_VERSION!" + fi + + actual_tdb_version=$(sed -En '/^VERSION =/{s/[^0-9.]//gp}' lib/tdb/wscript || die) + if [[ ${actual_tdb_version} != ${TDB_VERSION} ]] ; then + eerror "Source tdb version: ${TDB_VERSION}" + eerror "Ebuild tdb version: ${actual_tdb_version}" + die "Ebuild needs to fix TDB_VERSION!" + fi + + actual_tevent_version=$(sed -En '/^VERSION =/{s/[^0-9.]//gp}' lib/tevent/wscript || die) + if [[ ${actual_tevent_version} != ${TEVENT_VERSION} ]] ; then + eerror "Source tevent version: ${TEVENT_VERSION}" + eerror "Ebuild tevent version: ${actual_tevent_version}" + die "Ebuild needs to fix TEVENT_VERSION!" + fi +} + +src_prepare() { + default + + check_samba_dep_versions + + # Unbundle dnspython + sed -i -e '/"dns.resolver":/d' "${S}"/third_party/wscript || die + + # Unbundle iso8601 unless tests are enabled + if ! use test ; then + sed -i -e '/"iso8601":/d' "${S}"/third_party/wscript || die + fi + + # Ugly hackaround for bug #592502 + #cp /usr/include/tevent_internal.h "${S}"/lib/tevent/ || die + + # bug #943942 + append-cflags -std=gnu17 + + # WAF + multilib_copy_sources +} + +multilib_src_configure() { + # When specifying libs for samba build you must append NONE to the end to + # stop it automatically including things + local bundled_libs="NONE" + if ! use system-heimdal && ! use system-mitkrb5 ; then + bundled_libs="heimbase,heimntlm,hdb,kdc,krb5,wind,gssapi,hcrypto,hx509,roken,asn1,com_err,NONE" + fi + + # We "use" bundled cmocka when we're not running tests as we're + # not using it anyway. Means we avoid making users install it for + # no reason. bug #802531 + if ! use test ; then + bundled_libs="cmocka,${bundled_libs}" + fi + + # bug #874633 + if use llvm-libunwind ; then + mkdir -p "${T}"/${ABI}/pkgconfig || die + + local -x PKG_CONFIG_PATH="${T}/${ABI}/pkgconfig:${PKG_CONFIG_PATH}" + + cat <<-EOF > "${T}"/${ABI}/pkgconfig/libunwind-generic.pc || die + exec_prefix=\${prefix} + libdir=/usr/$(get_libdir) + includedir=\${prefix}/include + + Name: libunwind-generic + Description: libunwind generic library + Version: 1.70 + Libs: -L\${libdir} -lunwind + Cflags: -I\${includedir} + EOF + fi + + local myconf=( + --enable-fhs + --sysconfdir="${EPREFIX}/etc" + --localstatedir="${EPREFIX}/var" + --with-modulesdir="${EPREFIX}/usr/$(get_libdir)/samba" + --with-piddir="${EPREFIX}/run/${PN}" + --bundled-libraries="${bundled_libs}" + --builtin-libraries=NONE + --disable-rpath + --disable-rpath-install + --nopyc + --nopyo + --without-winexe + $(multilib_native_use_with acl acl-support) + $(multilib_native_usex addc '' '--without-ad-dc') + $(multilib_native_use_enable ceph cephfs) + $(multilib_native_use_with cluster cluster-support) + $(multilib_native_use_enable cups) + --without-dmapi + $(multilib_native_use_with fam) + $(multilib_native_use_enable glusterfs) + $(multilib_native_use_with gpg gpgme) + $(multilib_native_use_with json) + $(multilib_native_use_enable iprint) + $(multilib_native_use_with pam) + $(multilib_native_usex pam "--with-pammodulesdir=${EPREFIX}/$(get_libdir)/security" '') + $(multilib_native_use_with quota quotas) + $(multilib_native_use_with regedit) + $(multilib_native_use_enable spotlight) + $(multilib_native_use_with syslog) + $(multilib_native_use_with systemd) + --systemd-install-services + --with-systemddir="$(systemd_get_systemunitdir)" + $(multilib_native_use_with unwind libunwind) + $(multilib_native_use_with winbind) + $(multilib_native_usex python '' '--disable-python') + $(multilib_native_use_enable zeroconf avahi) + $(multilib_native_usex test '--enable-selftest' '') + $(usev system-mitkrb5 "--with-system-mitkrb5 ${ESYSROOT}/usr $(multilib_native_usex addc --with-experimental-mit-ad-dc '')") + $(use_with ads) + $(use_with debug lttng) + $(use_with ldap) + $(use_with profiling-data) + --private-libraries='!ldb' + $(usex lmdb '' --without-ldb-lmdb) + # bug #683148 + --jobs 1 + ) + + if multilib_is_native_abi ; then + myconf+=( --with-shared-modules=${SHAREDMODS} ) + else + myconf+=( --with-shared-modules=DEFAULT,!vfs_snapper ) + fi + + append-cppflags "-I${ESYSROOT}/usr/include/et" + + waf-utils_src_configure ${myconf[@]} +} + +multilib_src_compile() { + waf-utils_src_compile +} + +multilib_src_test() { + if multilib_is_native_abi ; then + "${WAF_BINARY}" test || die "Test failed" + fi +} + +multilib_src_install() { + waf-utils_src_install + + # Make all .so files executable + find "${ED}" -type f -name "*.so" -exec chmod +x {} + || die + # smbspool_krb5_wrapper must only be accessible to root, bug #880739 + find "${ED}" -type f -name "smbspool_krb5_wrapper" -exec chmod go-rwx {} + || die + + # Remove empty runtime dirs created by build system (bug #892341) + find "${ED}"/{run,var} -type d -empty -delete || die + + if multilib_is_native_abi ; then + # Install ldap schema for server (bug #491002) + if use ldap ; then + insinto /etc/openldap/schema + doins examples/LDAP/samba.schema + fi + + # Create symlink for cups (bug #552310) + if use cups ; then + dosym ../../../bin/smbspool \ + /usr/libexec/cups/backend/smb + fi + + # Install example config file + insinto /etc/samba + doins examples/smb.conf.default + + # Fix paths in example file (bug #603964) + sed \ + -e '/log file =/s@/usr/local/samba/var/@/var/log/samba/@' \ + -e '/include =/s@/usr/local/samba/lib/@/etc/samba/@' \ + -e '/path =/s@/usr/local/samba/lib/@/var/lib/samba/@' \ + -e '/path =/s@/usr/local/samba/@/var/lib/samba/@' \ + -e '/path =/s@/usr/spool/samba@/var/spool/samba@' \ + -i "${ED}"/etc/samba/smb.conf.default || die + + # Install init script and conf.d file + newinitd "${CONFDIR}/samba4.initd-r1" samba + newconfd "${CONFDIR}/samba4.confd" samba + + dotmpfiles "${FILESDIR}"/samba.conf + if ! use addc ; then + rm "${D}/$(systemd_get_systemunitdir)/samba.service" \ + || die + fi + + # Preserve functionality for old gentoo-specific unit names + dosym nmb.service "$(systemd_get_systemunitdir)/nmbd.service" + dosym smb.service "$(systemd_get_systemunitdir)/smbd.service" + dosym winbind.service "$(systemd_get_systemunitdir)/winbindd.service" + + use python && python_optimize + fi + + if use pam && use winbind ; then + newpamd "${CONFDIR}/system-auth-winbind.pam" system-auth-winbind + # bugs #376853 and #590374 + insinto /etc/security + doins examples/pam_winbind/pam_winbind.conf + fi +} + +pkg_postinst() { + tmpfiles_process samba.conf +} diff --git a/sdk_container/src/third_party/portage-stable/net-fs/samba/samba-4.22.5-r1.ebuild b/sdk_container/src/third_party/portage-stable/net-fs/samba/samba-4.22.5-r1.ebuild new file mode 100644 index 00000000000..dcbcc71af3a --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/net-fs/samba/samba-4.22.5-r1.ebuild @@ -0,0 +1,391 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{11..13} ) +PYTHON_REQ_USE="threads(+),xml(+)" +inherit python-single-r1 flag-o-matic waf-utils multilib-minimal linux-info systemd pam tmpfiles + +DESCRIPTION="Samba Suite Version 4" +HOMEPAGE="https://samba.org/" + +MY_PV="${PV/_rc/rc}" +MY_P="${PN}-${MY_PV}" +if [[ ${PV} == *_rc* ]]; then + SRC_URI="https://download.samba.org/pub/samba/rc/${MY_P}.tar.gz" +else + SRC_URI="https://download.samba.org/pub/samba/stable/${MY_P}.tar.gz" + KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~sparc x86" +fi +S="${WORKDIR}/${MY_P}" + +LICENSE="GPL-3" +SLOT="0/2.10.0" +IUSE="acl addc ads ceph client cluster cups debug fam glusterfs gpg" +IUSE+=" iprint json ldap llvm-libunwind lmdb pam profiling-data python quota" +IUSE+=" +regedit selinux snapper spotlight syslog system-heimdal +system-mitkrb5" +IUSE+=" systemd test unwind winbind zeroconf" + +# ldap needs ads (bug #941578) +REQUIRED_USE="${PYTHON_REQUIRED_USE} + addc? ( json python !system-mitkrb5 winbind ) + ads? ( acl ldap python winbind ) + cluster? ( ads ) + gpg? ( addc ) + ldap? ( ads ) + spotlight? ( json ) + test? ( python ) + !ads? ( !addc ) + ?? ( system-heimdal system-mitkrb5 ) +" + +# the test suite is messed, it uses system-installed samba +# bits instead of what was built, tests things disabled via use +# flags, and generally just fails to work in a way ebuilds could +# rely on in its current state +RESTRICT="test" + +MULTILIB_WRAPPED_HEADERS=( + /usr/include/samba-4.0/policy.h + /usr/include/samba-4.0/dcerpc_server.h + /usr/include/samba-4.0/ctdb.h + /usr/include/samba-4.0/ctdb_client.h + /usr/include/samba-4.0/ctdb_protocol.h + /usr/include/samba-4.0/ctdb_private.h + /usr/include/samba-4.0/ctdb_typesafe_cb.h + /usr/include/samba-4.0/ctdb_version.h +) + +TALLOC_VERSION="2.4.3" +TDB_VERSION="1.4.13" +TEVENT_VERSION="0.16.2" + +COMMON_DEPEND=" + >=app-arch/libarchive-3.1.2:=[${MULTILIB_USEDEP}] + dev-lang/perl:= + dev-libs/icu:=[${MULTILIB_USEDEP}] + dev-libs/libbsd[${MULTILIB_USEDEP}] + dev-libs/libtasn1:=[${MULTILIB_USEDEP}] + dev-libs/popt[${MULTILIB_USEDEP}] + dev-perl/Parse-Yapp + >=net-libs/gnutls-3.4.7:=[${MULTILIB_USEDEP}] + >=sys-fs/e2fsprogs-1.46.4-r51[${MULTILIB_USEDEP}] + !sys-libs/ldb + sys-libs/libcap[${MULTILIB_USEDEP}] + sys-libs/liburing:=[${MULTILIB_USEDEP}] + sys-libs/ncurses:= + sys-libs/readline:= + >=sys-libs/talloc-${TALLOC_VERSION}[${MULTILIB_USEDEP}] + >=sys-libs/tdb-${TDB_VERSION}[${MULTILIB_USEDEP}] + >=sys-libs/tevent-${TEVENT_VERSION}[${MULTILIB_USEDEP}] + sys-libs/zlib[${MULTILIB_USEDEP}] + virtual/libcrypt:=[${MULTILIB_USEDEP}] + virtual/libiconv + $(python_gen_cond_dep ' + addc? ( + dev-python/cryptography[${PYTHON_USEDEP}] + dev-python/dnspython:=[${PYTHON_USEDEP}] + dev-python/markdown[${PYTHON_USEDEP}] + net-dns/bind[gssapi] + ) + ads? ( + dev-python/cryptography[${PYTHON_USEDEP}] + dev-python/dnspython:=[${PYTHON_USEDEP}] + dev-python/markdown[${PYTHON_USEDEP}] + net-dns/bind[gssapi] + ) + ') + acl? ( virtual/acl ) + ceph? ( sys-cluster/ceph ) + cluster? ( net-libs/rpcsvc-proto ) + cups? ( net-print/cups ) + debug? ( dev-util/lttng-ust ) + fam? ( virtual/fam ) + gpg? ( app-crypt/gpgme:= ) + json? ( dev-libs/jansson:= ) + ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] ) + lmdb? ( >=dev-db/lmdb-0.9.16:=[${MULTILIB_USEDEP}] ) + pam? ( sys-libs/pam ) + python? ( + sys-libs/talloc[python,${PYTHON_SINGLE_USEDEP}] + sys-libs/tdb[python,${PYTHON_SINGLE_USEDEP}] + sys-libs/tevent[python,${PYTHON_SINGLE_USEDEP}] + ) + snapper? ( sys-apps/dbus ) + system-heimdal? ( >=app-crypt/heimdal-1.5[-ssl(-),${MULTILIB_USEDEP}] ) + system-mitkrb5? ( >=app-crypt/mit-krb5-1.19[${MULTILIB_USEDEP}] ) + !system-heimdal? ( !system-mitkrb5? ( sys-apps/keyutils[${MULTILIB_USEDEP}] ) ) + systemd? ( sys-apps/systemd:= ) + unwind? ( + llvm-libunwind? ( llvm-runtimes/libunwind:= ) + !llvm-libunwind? ( sys-libs/libunwind:= ) + ) + zeroconf? ( net-dns/avahi[dbus] ) +" +DEPEND="${COMMON_DEPEND} + dev-perl/JSON + net-libs/libtirpc[${MULTILIB_USEDEP}] + net-libs/rpcsvc-proto + spotlight? ( dev-libs/glib ) + test? ( + >=dev-util/cmocka-1.1.3[${MULTILIB_USEDEP}] + $(python_gen_cond_dep "dev-python/python-subunit[\${PYTHON_USEDEP},${MULTILIB_USEDEP}]" ) + !system-mitkrb5? ( + >=net-dns/resolv_wrapper-1.1.4 + >=net-libs/socket_wrapper-1.1.9 + >=sys-libs/nss_wrapper-1.1.3 + >=sys-libs/uid_wrapper-1.2.1 + ) + )" +RDEPEND="${COMMON_DEPEND} + client? ( net-fs/cifs-utils[ads?] ) + python? ( ${PYTHON_DEPS} ) + selinux? ( sec-policy/selinux-samba ) +" +BDEPEND="${PYTHON_DEPS} + app-text/docbook-xsl-stylesheets + dev-libs/libxslt + virtual/pkgconfig +" + +PATCHES=( + "${FILESDIR}"/${PN}-4.18.4-pam.patch + "${FILESDIR}"/ldb-2.5.2-skip-wav-tevent-check.patch +) + +CONFDIR="${FILESDIR}/4.4" +WAF_BINARY="${S}/buildtools/bin/waf" +SHAREDMODS="" + +pkg_setup() { + # Package fails to build with distcc + export DISTCC_DISABLE=1 + export PYTHONHASHSEED=1 + + python-single-r1_pkg_setup + + SHAREDMODS="$(usev !snapper '!')vfs_snapper" + if use cluster ; then + SHAREDMODS+=",idmap_rid,idmap_tdb2,idmap_ad" + elif use ads ; then + SHAREDMODS+=",idmap_ad" + fi +} + +check_samba_dep_versions() { + actual_talloc_version=$(sed -En '/^VERSION =/{s/[^0-9.]//gp}' lib/talloc/wscript || die) + if [[ ${actual_talloc_version} != ${TALLOC_VERSION} ]] ; then + eerror "Source talloc version: ${TALLOC_VERSION}" + eerror "Ebuild talloc version: ${actual_talloc_version}" + die "Ebuild needs to fix TALLOC_VERSION!" + fi + + actual_tdb_version=$(sed -En '/^VERSION =/{s/[^0-9.]//gp}' lib/tdb/wscript || die) + if [[ ${actual_tdb_version} != ${TDB_VERSION} ]] ; then + eerror "Source tdb version: ${TDB_VERSION}" + eerror "Ebuild tdb version: ${actual_tdb_version}" + die "Ebuild needs to fix TDB_VERSION!" + fi + + actual_tevent_version=$(sed -En '/^VERSION =/{s/[^0-9.]//gp}' lib/tevent/wscript || die) + if [[ ${actual_tevent_version} != ${TEVENT_VERSION} ]] ; then + eerror "Source tevent version: ${TEVENT_VERSION}" + eerror "Ebuild tevent version: ${actual_tevent_version}" + die "Ebuild needs to fix TEVENT_VERSION!" + fi +} + +src_prepare() { + default + + check_samba_dep_versions + + # Unbundle dnspython + sed -i -e '/"dns.resolver":/d' "${S}"/third_party/wscript || die + + # Unbundle iso8601 unless tests are enabled + if ! use test ; then + sed -i -e '/"iso8601":/d' "${S}"/third_party/wscript || die + fi + + # Ugly hackaround for bug #592502 + #cp /usr/include/tevent_internal.h "${S}"/lib/tevent/ || die + + # bug #943942 + append-cflags -std=gnu17 + + # WAF + multilib_copy_sources +} + +multilib_src_configure() { + # When specifying libs for samba build you must append NONE to the end to + # stop it automatically including things + local bundled_libs="NONE" + if ! use system-heimdal && ! use system-mitkrb5 ; then + bundled_libs="heimbase,heimntlm,hdb,kdc,krb5,wind,gssapi,hcrypto,hx509,roken,asn1,com_err,NONE" + fi + + # We "use" bundled cmocka when we're not running tests as we're + # not using it anyway. Means we avoid making users install it for + # no reason. bug #802531 + if ! use test ; then + bundled_libs="cmocka,${bundled_libs}" + fi + + # bug #874633 + if use llvm-libunwind ; then + mkdir -p "${T}"/${ABI}/pkgconfig || die + + local -x PKG_CONFIG_PATH="${T}/${ABI}/pkgconfig:${PKG_CONFIG_PATH}" + + cat <<-EOF > "${T}"/${ABI}/pkgconfig/libunwind-generic.pc || die + exec_prefix=\${prefix} + libdir=/usr/$(get_libdir) + includedir=\${prefix}/include + + Name: libunwind-generic + Description: libunwind generic library + Version: 1.70 + Libs: -L\${libdir} -lunwind + Cflags: -I\${includedir} + EOF + fi + + local myconf=( + --enable-fhs + --sysconfdir="${EPREFIX}/etc" + --localstatedir="${EPREFIX}/var" + --with-modulesdir="${EPREFIX}/usr/$(get_libdir)/samba" + --with-piddir="${EPREFIX}/run/${PN}" + --bundled-libraries="${bundled_libs}" + --builtin-libraries=NONE + --disable-rpath + --disable-rpath-install + --nopyc + --nopyo + --without-winexe + $(multilib_native_use_with acl acl-support) + $(multilib_native_usex addc '' '--without-ad-dc') + $(multilib_native_use_enable ceph cephfs) + $(multilib_native_use_with cluster cluster-support) + $(multilib_native_use_enable cups) + --without-dmapi + $(multilib_native_use_with fam) + $(multilib_native_use_enable glusterfs) + $(multilib_native_use_with gpg gpgme) + $(multilib_native_use_with json) + $(multilib_native_use_enable iprint) + $(multilib_native_use_with pam) + $(multilib_native_usex pam "--with-pammodulesdir=${EPREFIX}/$(get_libdir)/security" '') + $(multilib_native_use_with quota quotas) + $(multilib_native_use_with regedit) + $(multilib_native_use_enable spotlight) + $(multilib_native_use_with syslog) + $(multilib_native_use_with systemd) + --systemd-install-services + --with-systemddir="$(systemd_get_systemunitdir)" + $(multilib_native_use_with unwind libunwind) + $(multilib_native_use_with winbind) + $(multilib_native_usex python '' '--disable-python') + $(multilib_native_use_enable zeroconf avahi) + $(multilib_native_usex test '--enable-selftest' '') + $(usev system-mitkrb5 "--with-system-mitkrb5 ${ESYSROOT}/usr $(multilib_native_usex addc --with-experimental-mit-ad-dc '')") + $(use_with ads) + $(use_with debug lttng) + $(use_with ldap) + $(use_with profiling-data) + --private-libraries='!ldb' + $(usex lmdb '' --without-ldb-lmdb) + # bug #683148 + --jobs 1 + ) + + if multilib_is_native_abi ; then + myconf+=( --with-shared-modules=${SHAREDMODS} ) + else + myconf+=( --with-shared-modules=DEFAULT,!vfs_snapper ) + fi + + append-cppflags "-I${ESYSROOT}/usr/include/et" + + waf-utils_src_configure ${myconf[@]} +} + +multilib_src_compile() { + waf-utils_src_compile +} + +multilib_src_test() { + if multilib_is_native_abi ; then + "${WAF_BINARY}" test || die "Test failed" + fi +} + +multilib_src_install() { + waf-utils_src_install + + # Make all .so files executable + find "${ED}" -type f -name "*.so" -exec chmod +x {} + || die + # smbspool_krb5_wrapper must only be accessible to root, bug #880739 + find "${ED}" -type f -name "smbspool_krb5_wrapper" -exec chmod go-rwx {} + || die + + # Remove empty runtime dirs created by build system (bug #892341) + find "${ED}"/{run,var} -type d -empty -delete || die + + if multilib_is_native_abi ; then + # Install ldap schema for server (bug #491002) + if use ldap ; then + insinto /etc/openldap/schema + doins examples/LDAP/samba.schema + fi + + # Create symlink for cups (bug #552310) + if use cups ; then + dosym ../../../bin/smbspool \ + /usr/libexec/cups/backend/smb + fi + + # Install example config file + insinto /etc/samba + doins examples/smb.conf.default + + # Fix paths in example file (bug #603964) + sed \ + -e '/log file =/s@/usr/local/samba/var/@/var/log/samba/@' \ + -e '/include =/s@/usr/local/samba/lib/@/etc/samba/@' \ + -e '/path =/s@/usr/local/samba/lib/@/var/lib/samba/@' \ + -e '/path =/s@/usr/local/samba/@/var/lib/samba/@' \ + -e '/path =/s@/usr/spool/samba@/var/spool/samba@' \ + -i "${ED}"/etc/samba/smb.conf.default || die + + # Install init script and conf.d file + newinitd "${CONFDIR}/samba4.initd-r1" samba + newconfd "${CONFDIR}/samba4.confd" samba + + dotmpfiles "${FILESDIR}"/samba.conf + if ! use addc ; then + rm "${D}/$(systemd_get_systemunitdir)/samba.service" \ + || die + fi + + # Preserve functionality for old gentoo-specific unit names + dosym nmb.service "$(systemd_get_systemunitdir)/nmbd.service" + dosym smb.service "$(systemd_get_systemunitdir)/smbd.service" + dosym winbind.service "$(systemd_get_systemunitdir)/winbindd.service" + + use python && python_optimize + fi + + if use pam && use winbind ; then + newpamd "${CONFDIR}/system-auth-winbind.pam" system-auth-winbind + # bugs #376853 and #590374 + insinto /etc/security + doins examples/pam_winbind/pam_winbind.conf + fi +} + +pkg_postinst() { + tmpfiles_process samba.conf +} diff --git a/sdk_container/src/third_party/portage-stable/net-fs/samba/samba-4.23.2-r1.ebuild b/sdk_container/src/third_party/portage-stable/net-fs/samba/samba-4.23.2-r1.ebuild new file mode 100644 index 00000000000..dd7219c4620 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/net-fs/samba/samba-4.23.2-r1.ebuild @@ -0,0 +1,394 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{11..13} ) +PYTHON_REQ_USE="threads(+),xml(+)" +inherit python-single-r1 flag-o-matic waf-utils multilib-minimal linux-info systemd pam tmpfiles + +DESCRIPTION="Samba Suite Version 4" +HOMEPAGE="https://samba.org/" + +MY_PV="${PV/_rc/rc}" +MY_P="${PN}-${MY_PV}" +if [[ ${PV} == *_rc* ]]; then + SRC_URI="https://download.samba.org/pub/samba/rc/${MY_P}.tar.gz" +else + SRC_URI="https://download.samba.org/pub/samba/stable/${MY_P}.tar.gz" + KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86" +fi +S="${WORKDIR}/${MY_P}" + +LICENSE="GPL-3" +SLOT="0/2.11.0" +IUSE="acl addc ads ceph client cluster cups debug fam glusterfs gpg" +IUSE+=" iprint json ldap llvm-libunwind lmdb pam profiling-data python quota" +IUSE+=" +regedit selinux snapper spotlight syslog system-heimdal +system-mitkrb5" +IUSE+=" systemd test unwind winbind zeroconf" + +# ldap needs ads (bug #941578) +REQUIRED_USE="${PYTHON_REQUIRED_USE} + addc? ( json python !system-mitkrb5 winbind ) + ads? ( acl ldap python winbind ) + cluster? ( ads ) + gpg? ( addc ) + ldap? ( ads ) + spotlight? ( json ) + test? ( python ) + !ads? ( !addc ) + ?? ( system-heimdal system-mitkrb5 ) +" + +# the test suite is messed, it uses system-installed samba +# bits instead of what was built, tests things disabled via use +# flags, and generally just fails to work in a way ebuilds could +# rely on in its current state +RESTRICT="test" + +MULTILIB_WRAPPED_HEADERS=( + /usr/include/samba-4.0/policy.h + /usr/include/samba-4.0/dcerpc_server.h + /usr/include/samba-4.0/ctdb.h + /usr/include/samba-4.0/ctdb_client.h + /usr/include/samba-4.0/ctdb_protocol.h + /usr/include/samba-4.0/ctdb_private.h + /usr/include/samba-4.0/ctdb_typesafe_cb.h + /usr/include/samba-4.0/ctdb_version.h +) + +TALLOC_VERSION="2.4.3" +TDB_VERSION="1.4.14" +TEVENT_VERSION="0.17.1" + +COMMON_DEPEND=" + >=app-arch/libarchive-3.1.2:=[${MULTILIB_USEDEP}] + dev-lang/perl:= + dev-libs/icu:=[${MULTILIB_USEDEP}] + dev-libs/libbsd[${MULTILIB_USEDEP}] + dev-libs/libtasn1:=[${MULTILIB_USEDEP}] + dev-libs/popt[${MULTILIB_USEDEP}] + dev-perl/Parse-Yapp + >=net-libs/gnutls-3.4.7:=[${MULTILIB_USEDEP}] + >=net-libs/ngtcp2-1.12.0[${MULTILIB_USEDEP}] + >=sys-fs/e2fsprogs-1.46.4-r51[${MULTILIB_USEDEP}] + !sys-libs/ldb + sys-libs/libcap[${MULTILIB_USEDEP}] + sys-libs/liburing:=[${MULTILIB_USEDEP}] + sys-libs/ncurses:= + sys-libs/readline:= + >=sys-libs/talloc-${TALLOC_VERSION}[${MULTILIB_USEDEP}] + >=sys-libs/tdb-${TDB_VERSION}[${MULTILIB_USEDEP}] + >=sys-libs/tevent-${TEVENT_VERSION}[${MULTILIB_USEDEP}] + sys-libs/zlib[${MULTILIB_USEDEP}] + virtual/libcrypt:=[${MULTILIB_USEDEP}] + virtual/libiconv + $(python_gen_cond_dep ' + addc? ( + dev-python/cryptography[${PYTHON_USEDEP}] + dev-python/dnspython:=[${PYTHON_USEDEP}] + dev-python/markdown[${PYTHON_USEDEP}] + net-dns/bind[gssapi] + ) + ads? ( + dev-python/cryptography[${PYTHON_USEDEP}] + dev-python/dnspython:=[${PYTHON_USEDEP}] + dev-python/markdown[${PYTHON_USEDEP}] + net-dns/bind[gssapi] + ) + ') + acl? ( virtual/acl ) + ceph? ( sys-cluster/ceph ) + cluster? ( net-libs/rpcsvc-proto ) + cups? ( net-print/cups ) + debug? ( dev-util/lttng-ust ) + fam? ( virtual/fam ) + gpg? ( app-crypt/gpgme:= ) + json? ( dev-libs/jansson:= ) + ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] ) + lmdb? ( >=dev-db/lmdb-0.9.16:=[${MULTILIB_USEDEP}] ) + pam? ( sys-libs/pam ) + python? ( + sys-libs/talloc[python,${PYTHON_SINGLE_USEDEP}] + sys-libs/tdb[python,${PYTHON_SINGLE_USEDEP}] + sys-libs/tevent[python,${PYTHON_SINGLE_USEDEP}] + ) + snapper? ( sys-apps/dbus ) + system-heimdal? ( >=app-crypt/heimdal-1.5[-ssl(-),${MULTILIB_USEDEP}] ) + system-mitkrb5? ( >=app-crypt/mit-krb5-1.19[${MULTILIB_USEDEP}] ) + !system-heimdal? ( !system-mitkrb5? ( sys-apps/keyutils[${MULTILIB_USEDEP}] ) ) + systemd? ( sys-apps/systemd:= ) + unwind? ( + llvm-libunwind? ( llvm-runtimes/libunwind:= ) + !llvm-libunwind? ( sys-libs/libunwind:= ) + ) + zeroconf? ( net-dns/avahi[dbus] ) +" +DEPEND="${COMMON_DEPEND} + dev-perl/JSON + net-libs/libtirpc[${MULTILIB_USEDEP}] + net-libs/rpcsvc-proto + spotlight? ( dev-libs/glib ) + test? ( + >=dev-util/cmocka-1.1.3[${MULTILIB_USEDEP}] + $(python_gen_cond_dep "dev-python/python-subunit[\${PYTHON_USEDEP},${MULTILIB_USEDEP}]" ) + !system-mitkrb5? ( + >=net-dns/resolv_wrapper-1.1.4 + >=net-libs/socket_wrapper-1.1.9 + >=sys-libs/nss_wrapper-1.1.3 + >=sys-libs/uid_wrapper-1.2.1 + ) + )" +RDEPEND="${COMMON_DEPEND} + client? ( net-fs/cifs-utils[ads?] ) + python? ( ${PYTHON_DEPS} ) + selinux? ( sec-policy/selinux-samba ) +" +BDEPEND="${PYTHON_DEPS} + app-text/docbook-xsl-stylesheets + dev-libs/libxslt + virtual/pkgconfig +" + +PATCHES=( + "${FILESDIR}"/${PN}-4.18.4-pam.patch + "${FILESDIR}"/ldb-2.5.2-skip-wav-tevent-check.patch +) + +CONFDIR="${FILESDIR}/4.4" +WAF_BINARY="${S}/buildtools/bin/waf" +SHAREDMODS="" + +pkg_setup() { + # Package fails to build with distcc + export DISTCC_DISABLE=1 + export PYTHONHASHSEED=1 + + python-single-r1_pkg_setup + + SHAREDMODS="$(usev !snapper '!')vfs_snapper" + if use cluster ; then + SHAREDMODS+=",idmap_rid,idmap_tdb2,idmap_ad" + elif use ads ; then + SHAREDMODS+=",idmap_ad" + fi +} + +check_samba_dep_versions() { + actual_talloc_version=$(sed -En '/^VERSION =/{s/[^0-9.]//gp}' lib/talloc/wscript || die) + if [[ ${actual_talloc_version} != ${TALLOC_VERSION} ]] ; then + eerror "Source talloc version: ${TALLOC_VERSION}" + eerror "Ebuild talloc version: ${actual_talloc_version}" + die "Ebuild needs to fix TALLOC_VERSION!" + fi + + actual_tdb_version=$(sed -En '/^VERSION =/{s/[^0-9.]//gp}' lib/tdb/wscript || die) + if [[ ${actual_tdb_version} != ${TDB_VERSION} ]] ; then + eerror "Source tdb version: ${TDB_VERSION}" + eerror "Ebuild tdb version: ${actual_tdb_version}" + die "Ebuild needs to fix TDB_VERSION!" + fi + + actual_tevent_version=$(sed -En '/^VERSION =/{s/[^0-9.]//gp}' lib/tevent/wscript || die) + if [[ ${actual_tevent_version} != ${TEVENT_VERSION} ]] ; then + eerror "Source tevent version: ${TEVENT_VERSION}" + eerror "Ebuild tevent version: ${actual_tevent_version}" + die "Ebuild needs to fix TEVENT_VERSION!" + fi +} + +src_prepare() { + default + + check_samba_dep_versions + + # Unbundle dnspython + sed -i -e '/"dns.resolver":/d' "${S}"/third_party/wscript || die + + # Unbundle iso8601 unless tests are enabled + if ! use test ; then + sed -i -e '/"iso8601":/d' "${S}"/third_party/wscript || die + fi + + # Ugly hackaround for bug #592502 + #cp /usr/include/tevent_internal.h "${S}"/lib/tevent/ || die + + # bug #943942 + append-cflags -std=gnu17 + + # WAF + multilib_copy_sources +} + +multilib_src_configure() { + # When specifying libs for samba build you must append NONE to the end to + # stop it automatically including things + local bundled_libs="NONE" + if ! use system-heimdal && ! use system-mitkrb5 ; then + bundled_libs="heimbase,heimntlm,hdb,kdc,krb5,wind,gssapi,hcrypto,hx509,roken,asn1,com_err,NONE" + fi + + # We "use" bundled cmocka when we're not running tests as we're + # not using it anyway. Means we avoid making users install it for + # no reason. bug #802531 + if ! use test ; then + bundled_libs="cmocka,${bundled_libs}" + fi + + # bug #874633 + if use llvm-libunwind ; then + mkdir -p "${T}"/${ABI}/pkgconfig || die + + local -x PKG_CONFIG_PATH="${T}/${ABI}/pkgconfig:${PKG_CONFIG_PATH}" + + cat <<-EOF > "${T}"/${ABI}/pkgconfig/libunwind-generic.pc || die + exec_prefix=\${prefix} + libdir=/usr/$(get_libdir) + includedir=\${prefix}/include + + Name: libunwind-generic + Description: libunwind generic library + Version: 1.70 + Libs: -L\${libdir} -lunwind + Cflags: -I\${includedir} + EOF + fi + + bundled_libs="libquic,${bundled_libs}" + + local myconf=( + --enable-fhs + --sysconfdir="${EPREFIX}/etc" + --localstatedir="${EPREFIX}/var" + --with-modulesdir="${EPREFIX}/usr/$(get_libdir)/samba" + --with-piddir="${EPREFIX}/run/${PN}" + --bundled-libraries="${bundled_libs}" + --builtin-libraries=NONE + --disable-rpath + --disable-rpath-install + --nopyc + --nopyo + --without-winexe + $(multilib_native_use_with acl acl-support) + $(multilib_native_usex addc '' '--without-ad-dc') + $(multilib_native_use_enable ceph cephfs) + $(multilib_native_use_with cluster cluster-support) + $(multilib_native_use_enable cups) + --without-dmapi + $(multilib_native_use_with fam) + $(multilib_native_use_enable glusterfs) + $(multilib_native_use_with gpg gpgme) + $(multilib_native_use_with json) + $(multilib_native_use_enable iprint) + $(multilib_native_use_with pam) + $(multilib_native_usex pam "--with-pammodulesdir=${EPREFIX}/$(get_libdir)/security" '') + $(multilib_native_use_with quota quotas) + $(multilib_native_use_with regedit) + $(multilib_native_use_enable spotlight) + $(multilib_native_use_with syslog) + $(multilib_native_use_with systemd) + --systemd-install-services + --with-systemddir="$(systemd_get_systemunitdir)" + $(multilib_native_use_with unwind libunwind) + $(multilib_native_use_with winbind) + $(multilib_native_usex python '' '--disable-python') + $(multilib_native_use_enable zeroconf avahi) + $(multilib_native_usex test '--enable-selftest' '') + $(usev system-mitkrb5 "--with-system-mitkrb5 $(multilib_native_usex addc --with-experimental-mit-ad-dc '')") + $(use_with ads) + $(use_with debug lttng) + $(use_with ldap) + $(use_with profiling-data) + --private-libraries='!ldb' + $(usex lmdb '' --without-ldb-lmdb) + # bug #683148 + --jobs 1 + ) + + if multilib_is_native_abi ; then + myconf+=( --with-shared-modules=${SHAREDMODS} ) + else + myconf+=( --with-shared-modules=DEFAULT,!vfs_snapper ) + fi + + append-cppflags "-I${ESYSROOT}/usr/include/et" + + waf-utils_src_configure ${myconf[@]} +} + +multilib_src_compile() { + waf-utils_src_compile +} + +multilib_src_test() { + if multilib_is_native_abi ; then + "${WAF_BINARY}" test || die "Test failed" + fi +} + +multilib_src_install() { + waf-utils_src_install + + # Make all .so files executable + find "${ED}" -type f -name "*.so" -exec chmod +x {} + || die + # smbspool_krb5_wrapper must only be accessible to root, bug #880739 + find "${ED}" -type f -name "smbspool_krb5_wrapper" -exec chmod go-rwx {} + || die + + # Remove empty runtime dirs created by build system (bug #892341) + find "${ED}"/{run,var} -type d -empty -delete || die + + if multilib_is_native_abi ; then + # Install ldap schema for server (bug #491002) + if use ldap ; then + insinto /etc/openldap/schema + doins examples/LDAP/samba.schema + fi + + # Create symlink for cups (bug #552310) + if use cups ; then + dosym ../../../bin/smbspool \ + /usr/libexec/cups/backend/smb + fi + + # Install example config file + insinto /etc/samba + doins examples/smb.conf.default + + # Fix paths in example file (bug #603964) + sed \ + -e '/log file =/s@/usr/local/samba/var/@/var/log/samba/@' \ + -e '/include =/s@/usr/local/samba/lib/@/etc/samba/@' \ + -e '/path =/s@/usr/local/samba/lib/@/var/lib/samba/@' \ + -e '/path =/s@/usr/local/samba/@/var/lib/samba/@' \ + -e '/path =/s@/usr/spool/samba@/var/spool/samba@' \ + -i "${ED}"/etc/samba/smb.conf.default || die + + # Install init script and conf.d file + newinitd "${CONFDIR}/samba4.initd-r1" samba + newconfd "${CONFDIR}/samba4.confd" samba + + dotmpfiles "${FILESDIR}"/samba.conf + if ! use addc ; then + rm "${D}/$(systemd_get_systemunitdir)/samba.service" \ + || die + fi + + # Preserve functionality for old gentoo-specific unit names + dosym nmb.service "$(systemd_get_systemunitdir)/nmbd.service" + dosym smb.service "$(systemd_get_systemunitdir)/smbd.service" + dosym winbind.service "$(systemd_get_systemunitdir)/winbindd.service" + + use python && python_optimize + fi + + if use pam && use winbind ; then + newpamd "${CONFDIR}/system-auth-winbind.pam" system-auth-winbind + # bugs #376853 and #590374 + insinto /etc/security + doins examples/pam_winbind/pam_winbind.conf + fi +} + +pkg_postinst() { + tmpfiles_process samba.conf +} diff --git a/sdk_container/src/third_party/portage-stable/net-libs/gnutls/gnutls-3.8.10-r1.ebuild b/sdk_container/src/third_party/portage-stable/net-libs/gnutls/gnutls-3.8.10-r1.ebuild index 4156212331c..6e129b4a9c6 100644 --- a/sdk_container/src/third_party/portage-stable/net-libs/gnutls/gnutls-3.8.10-r1.ebuild +++ b/sdk_container/src/third_party/portage-stable/net-libs/gnutls/gnutls-3.8.10-r1.ebuild @@ -17,7 +17,7 @@ LICENSE="GPL-3 LGPL-2.1+" # Subslot format: # . SLOT="0/30.30" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" IUSE="brotli +cxx dane doc examples +idn nls +openssl pkcs11 sslv2 sslv3 static-libs test test-full +tls-heartbeat tools zlib zstd" REQUIRED_USE="test-full? ( cxx dane doc examples idn nls openssl pkcs11 tls-heartbeat tools )" RESTRICT="!test? ( test )" diff --git a/sdk_container/src/third_party/portage-stable/net-libs/libtirpc/libtirpc-1.3.7.ebuild b/sdk_container/src/third_party/portage-stable/net-libs/libtirpc/libtirpc-1.3.7.ebuild index 5e56f8c45ab..2bf4062aba2 100644 --- a/sdk_container/src/third_party/portage-stable/net-libs/libtirpc/libtirpc-1.3.7.ebuild +++ b/sdk_container/src/third_party/portage-stable/net-libs/libtirpc/libtirpc-1.3.7.ebuild @@ -14,7 +14,7 @@ SRC_URI=" LICENSE="BSD BSD-2 BSD-4 LGPL-2.1+" SLOT="0/3" # subslot matches SONAME major -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux" +KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux" IUSE="kerberos static-libs" RDEPEND="kerberos? ( >=virtual/krb5-0-r1[${MULTILIB_USEDEP}] )" diff --git a/sdk_container/src/third_party/portage-stable/net-misc/chrony/chrony-4.8.ebuild b/sdk_container/src/third_party/portage-stable/net-misc/chrony/chrony-4.8.ebuild index 1df434d0280..051a0e28b2c 100644 --- a/sdk_container/src/third_party/portage-stable/net-misc/chrony/chrony-4.8.ebuild +++ b/sdk_container/src/third_party/portage-stable/net-misc/chrony/chrony-4.8.ebuild @@ -19,7 +19,7 @@ else SRC_URI+=" verify-sig? ( https://chrony-project.org/releases/${P/_/-}-tar-gz-asc.txt -> ${P/_/-}.tar.gz.asc )" if [[ ${PV} != *_pre* ]] ; then - KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ppc ppc64 ~riscv ~sparc x86" + KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~sparc x86" fi fi diff --git a/sdk_container/src/third_party/portage-stable/net-misc/curl/Manifest b/sdk_container/src/third_party/portage-stable/net-misc/curl/Manifest index 7ce5cf50377..9c58784e038 100644 --- a/sdk_container/src/third_party/portage-stable/net-misc/curl/Manifest +++ b/sdk_container/src/third_party/portage-stable/net-misc/curl/Manifest @@ -1,6 +1,6 @@ -DIST curl-8.14.1.tar.xz 2817248 BLAKE2B 4ce2277d143084823855b714e86047a94d4c52a686b8d16d9ab76c31168f1a74d63dfa7608cff36706a8a0b9bf9cc611a9b99860b176a227bca580cd95e9cff2 SHA512 7f6eae04cc23c50fc41d448aa28dfa59141018009e42c5b1e3f4e0d40c0633460b4e6eec05dfc290f7953671096abfa70a8b5443fccdd3f1be6be32ac10b31d9 -DIST curl-8.14.1.tar.xz.asc 488 BLAKE2B f664f526dbffa0a1af2b28f51982445f7d9064b3c3b3e6dd04322003db22da2acde5d493c80204b36a9219d42959543c5a0aee47f2365eb713490ff2fc5f475f SHA512 663b1652bb27338310d1475a8b0422f04e68fca74be11a4b7120de948af4fc0c2b08b75ce5372d657aa89504a27b36b937b5091cb2d932297a7490d5e390d99f DIST curl-8.15.0.tar.xz 2773156 BLAKE2B ae809be87f34d079413129c27e618a6d15c2bf9087fd7e679cefe9b6d8645f0dd092e8c3e1f62b7bd0dffdd0b77e0bc5ac031ffce4e50060ec20b280618c8e68 SHA512 d27e316d70973906ac4b8d2c280f7e99b7528966aa1220c13a38ed45fca2ed6bbde54b8a9d7bed9e283171b92edb621f7b95162ef7d392e6383b0ee469de3191 DIST curl-8.15.0.tar.xz.asc 488 BLAKE2B 4b0bab065a1d2d5b7e5d49989bd4953344d844cafd3036b4cb2ed2dec82e59031832f05c06dc6a801e4668d92c936df74aeff7a5f2c15ff614da4b1673a67501 SHA512 b6aef1c6a1f32c60401494df565a748fa96c1d5098138772c22f6208bafeb8e61402f3077cbc274ea2c05f35ff376d8f736c58554520f8d20fded36d876499a5 DIST curl-8.16.0.tar.xz 2788632 BLAKE2B 573d56779481abf0b7d20225bba4f068cb726f23f69ce10076438e32cc6c16d1229c211aee05fc5e3e9cb9d78bbfdc5da0d8b73e730c0865879000eb90accf6a SHA512 8262c3dc113cfd5744ef1b82dbccaa69448a9395ad5c094c22df5cf537a047a927d3332db2cb3be12a31a68a60d8d0fa8485b916e975eda36a4ebd860da4f621 DIST curl-8.16.0.tar.xz.asc 488 BLAKE2B d213bd447c668118b49b7356dc99e710de927b93f81325802bae5e286b61481da6ed30f23c7f4f3cfb0f01222db88602ff4e510f4a1401e98511eb0c72ac6abb SHA512 591568e997c0d955a00152ce5bdfb4586d84b42f5c1e15df503514fb4eb4bf289a98b1ebdad23913119c67c27d51a6e6f4065ee6f7657b971c3a581c928a0d82 +DIST curl-8.17.0-rc1.tar.xz 2789224 BLAKE2B f741f2385666a5f5902c9137e49c8131680903b61b3d52d4d48ec385cb69a9135ed40cfba9ac7e1bf4e24fe70a03b81336f54ee1e9cb464c88cfa6fe1c5d24c4 SHA512 bbaa3c97860f51c069dfc448d212a0d2149abfe76429bd4e7e3b005f44851e609008b90f5ed5caad048b5815043433248b495c41edf04d4bb5b76a8af41ede02 +DIST curl-8.17.0-rc1.tar.xz.asc 488 BLAKE2B 2e753849bdb0ab224953cf56d03e0dbfc69152ad36c0783db688e808ce46e290d0ddbc3d7ce86b9bb4ad7e13ca20107b02ec6227c4a0ffc14470a1c257f90d99 SHA512 e86f7c9000ee5e8ee775947e720a17cf327b1f3053d6a6d92d3d1d27ed8dacefe1934ce3ee67b1efd59a601e0312bcffd1fb0900b760fda15e0fe7ba1a892c8f diff --git a/sdk_container/src/third_party/portage-stable/net-misc/curl/curl-8.16.0-r1.ebuild b/sdk_container/src/third_party/portage-stable/net-misc/curl/curl-8.16.0-r1.ebuild index b63c12ee18f..a6f266968e3 100644 --- a/sdk_container/src/third_party/portage-stable/net-misc/curl/curl-8.16.0-r1.ebuild +++ b/sdk_container/src/third_party/portage-stable/net-misc/curl/curl-8.16.0-r1.ebuild @@ -22,7 +22,7 @@ else S="${WORKDIR}/${P//_/-}" else CURL_URI="https://curl.se/download/" - KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" + KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" fi SRC_URI=" ${CURL_URI}${P//_/-}.tar.xz @@ -123,7 +123,7 @@ RDEPEND=" ) mbedtls? ( app-misc/ca-certificates - net-libs/mbedtls:0=[${MULTILIB_USEDEP}] + net-libs/mbedtls:3=[${MULTILIB_USEDEP}] ) openssl? ( >=dev-libs/openssl-1.0.2:=[static-libs?,${MULTILIB_USEDEP}] diff --git a/sdk_container/src/third_party/portage-stable/net-misc/curl/curl-8.14.1.ebuild b/sdk_container/src/third_party/portage-stable/net-misc/curl/curl-8.17.0_rc1.ebuild similarity index 95% rename from sdk_container/src/third_party/portage-stable/net-misc/curl/curl-8.14.1.ebuild rename to sdk_container/src/third_party/portage-stable/net-misc/curl/curl-8.17.0_rc1.ebuild index 66516178ed7..fb7b3a522ce 100644 --- a/sdk_container/src/third_party/portage-stable/net-misc/curl/curl-8.14.1.ebuild +++ b/sdk_container/src/third_party/portage-stable/net-misc/curl/curl-8.17.0_rc1.ebuild @@ -22,7 +22,7 @@ else S="${WORKDIR}/${P//_/-}" else CURL_URI="https://curl.se/download/" - KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" fi SRC_URI=" ${CURL_URI}${P//_/-}.tar.xz @@ -98,6 +98,9 @@ REQUIRED_USE=" # However 'supported' vs 'works' are two entirely different things; be sane but # don't be afraid to require a later version. # ngtcp2 = https://bugs.gentoo.org/912029 - can only build with one tls backend at a time. +# TODO: OpenSSL-QUIC support is going to be removed in 2026; depend on ngtcp2[{gnutls,openssl}] before that point. +# - https://github.com/curl/curl/pull/18820 (Deprecate OpenSSL QUIC support) +# - https://github.com/curl/curl/issues/18336 (curl w/ OpenSSL QUIC fails to fetch Google.com) RDEPEND=" >=sys-libs/zlib-1.2.5[${MULTILIB_USEDEP}] adns? ( >=net-dns/c-ares-1.16.0:=[${MULTILIB_USEDEP}] ) @@ -123,7 +126,7 @@ RDEPEND=" ) mbedtls? ( app-misc/ca-certificates - net-libs/mbedtls:0=[${MULTILIB_USEDEP}] + net-libs/mbedtls:3=[${MULTILIB_USEDEP}] ) openssl? ( >=dev-libs/openssl-1.0.2:=[static-libs?,${MULTILIB_USEDEP}] @@ -173,7 +176,7 @@ QA_CONFIG_IMPL_DECL_SKIP=( ) PATCHES=( - "${FILESDIR}/${PN}-prefix-4.patch" + "${FILESDIR}/${PN}-prefix-5.patch" "${FILESDIR}/${PN}-respect-cflags-3.patch" ) @@ -225,10 +228,9 @@ _get_curl_tls_configure_opts() { die "Please file a bug, hit impossible condition w/ USE=ssl handling." fi - # Explicitly Disable unimplemented b + # Explicitly Disable unimplemented backends tls_opts+=( --without-amissl - --without-bearssl --without-wolfssl ) @@ -337,10 +339,8 @@ multilib_src_configure() { $(use_with kerberos gssapi "${EPREFIX}"/usr) $(use_with sasl-scram libgsasl) $(use_with psl libpsl) - --without-msh3 --without-quiche --without-schannel - --without-secure-transport --without-winidn --with-zlib --with-zsh-functions-dir="${EPREFIX}"/usr/share/zsh/site-functions diff --git a/sdk_container/src/third_party/portage-stable/net-misc/curl/curl-9999.ebuild b/sdk_container/src/third_party/portage-stable/net-misc/curl/curl-9999.ebuild index f9ed048bec4..fb7b3a522ce 100644 --- a/sdk_container/src/third_party/portage-stable/net-misc/curl/curl-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/net-misc/curl/curl-9999.ebuild @@ -98,6 +98,9 @@ REQUIRED_USE=" # However 'supported' vs 'works' are two entirely different things; be sane but # don't be afraid to require a later version. # ngtcp2 = https://bugs.gentoo.org/912029 - can only build with one tls backend at a time. +# TODO: OpenSSL-QUIC support is going to be removed in 2026; depend on ngtcp2[{gnutls,openssl}] before that point. +# - https://github.com/curl/curl/pull/18820 (Deprecate OpenSSL QUIC support) +# - https://github.com/curl/curl/issues/18336 (curl w/ OpenSSL QUIC fails to fetch Google.com) RDEPEND=" >=sys-libs/zlib-1.2.5[${MULTILIB_USEDEP}] adns? ( >=net-dns/c-ares-1.16.0:=[${MULTILIB_USEDEP}] ) @@ -123,7 +126,7 @@ RDEPEND=" ) mbedtls? ( app-misc/ca-certificates - net-libs/mbedtls:0=[${MULTILIB_USEDEP}] + net-libs/mbedtls:3=[${MULTILIB_USEDEP}] ) openssl? ( >=dev-libs/openssl-1.0.2:=[static-libs?,${MULTILIB_USEDEP}] diff --git a/sdk_container/src/third_party/portage-stable/net-misc/iperf/Manifest b/sdk_container/src/third_party/portage-stable/net-misc/iperf/Manifest index e2a566d9c91..3d405159a0b 100644 --- a/sdk_container/src/third_party/portage-stable/net-misc/iperf/Manifest +++ b/sdk_container/src/third_party/portage-stable/net-misc/iperf/Manifest @@ -1,5 +1,2 @@ -DIST iperf-2.0.13.tar.gz 326148 BLAKE2B 2a40aea9e2d7fdc935b91be5e4e586bf68dd27604375d2570570145e5db1ea5837469a4989f47586986932bef33cba05ed19ed3a9ce40c0a5531581c6d3ba982 SHA512 40fcfb8f4d27887f53a743ac07396511fb2a7ac59f4b300fe36896bd0241e191945fa253705990711772ee776d5e4227ed62760fc92abebdfebcedd11c27c0ea DIST iperf-2.2.1.tar.gz 509514 BLAKE2B 9075df9513e98beeaed5c2f6799f62f72fbfd8fc63696674018b7435dae87d5edeca3fb0541775c37c188bd61bd8394c3125a8a8c07e0c4ba1c2efa86a602404 SHA512 07a08afe647e87939e05c9cd55601ca1227c91f44ef32fdf305a0e15e524d1de29d38e9a3f66253d7308585224e54db395d7dec654d31eea746f45c6947ebc2a -DIST iperf-3.18.tar.gz 688037 BLAKE2B 64272ab8288cb217603d4fa438bc547967baa964bc518c91f9f1f1c85d9a0a9a7ca5b4c558b3e2c68507c1cb76b40592fd9a80f0bb4cc8a1716e029b32289276 SHA512 a458292c34c29a60cce60eb6be4afd15220d4cf29f225a1c1be9ec8ef86baa85fa4e174e747cacfa5711c6957ad16d448c2d3d4029b6bfd58db9c39269f30caa DIST iperf-3.19.1.tar.gz 698445 BLAKE2B fae065d3e8131c072bd70666c87067c85b2ea56fcee70197bea1d5b82266b1d2f4dbb9318b566fdd4add08776dadb1feebe9915108531d3af9e13a777e2b60e7 SHA512 7239eddf55197c45aa751d05b6518a0782ec4f2ce4d9b4246b74c41dc21077102f3f5cc3359129c32c6842d482f4a9557a92ab84d96e0a9c7063052c9cbed4f6 -DIST iperf-3.19.tar.gz 694741 BLAKE2B b6f5e9bdef5ee3fc38bef893144bc6ad003ccbc7b3db4793dbd2aec5998faa55cac215a0db06ab37729dc1c05787ebacbf09db8a6e6517f82492a6c67ec3d9e6 SHA512 f0631cd1158a90dc402fa30563e6f26dbdbc5d5b0665bed25248f9153118f55296913abeb89bf0b1db760ca2c68f60e0c9cf2df82aa096318ca618ca09176388 diff --git a/sdk_container/src/third_party/portage-stable/net-misc/iperf/files/iperf-2.0.12-ipv6.patch b/sdk_container/src/third_party/portage-stable/net-misc/iperf/files/iperf-2.0.12-ipv6.patch deleted file mode 100644 index cd189f62108..00000000000 --- a/sdk_container/src/third_party/portage-stable/net-misc/iperf/files/iperf-2.0.12-ipv6.patch +++ /dev/null @@ -1,23 +0,0 @@ ---- a/src/Listener.cpp -+++ b/src/Listener.cpp -@@ -670,6 +670,7 @@ - - // Now optimize packet flow up the raw socket - // Establish the flow BPF to forward up only "connected" packets to this raw socket -+#ifdef HAVE_IPV6 - if (l->sa_family == AF_INET6) { - struct in6_addr *v6peer = SockAddr_get_in6_addr(&server->peer); - struct in6_addr *v6local = SockAddr_get_in6_addr(&server->local); -@@ -682,9 +683,12 @@ - WARN_errno( rc == SOCKET_ERROR, "l2 v4in6 connect ip bpf"); - } - } else { -+#endif - rc = SockAddr_v4_Connect_BPF(server->mSock, ((struct sockaddr_in *)(l))->sin_addr.s_addr, ((struct sockaddr_in *)(p))->sin_addr.s_addr, ((struct sockaddr_in *)(l))->sin_port, ((struct sockaddr_in *)(p))->sin_port); - WARN_errno( rc == SOCKET_ERROR, "l2 connect ip bpf"); -+#ifdef HAVE_IPV6 - } -+#endif - if (rc < 0) - return -1; - else diff --git a/sdk_container/src/third_party/portage-stable/net-misc/iperf/files/iperf-2.0.14a.patch b/sdk_container/src/third_party/portage-stable/net-misc/iperf/files/iperf-2.0.14a.patch deleted file mode 100644 index 07fbd0c96b8..00000000000 --- a/sdk_container/src/third_party/portage-stable/net-misc/iperf/files/iperf-2.0.14a.patch +++ /dev/null @@ -1,132 +0,0 @@ -commit 12254fa398e627949af923afd0d48cd9b814f0a0 -Author: rmcmahon -Date: Tue Jan 29 23:11:18 2019 -0800 - - new version 2.0.14a, fix for -P w/server and summing - -diff --git a/configure b/configure -index f1a9983..706e7a3 100755 ---- a/configure -+++ b/configure -@@ -1,6 +1,6 @@ - #! /bin/sh - # Guess values for system-dependent variables and create Makefiles. --# Generated by GNU Autoconf 2.69 for Iperf 2.0.13. -+# Generated by GNU Autoconf 2.69 for Iperf 2.0.14a. - # - # - # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. -@@ -577,8 +577,8 @@ MAKEFLAGS= - # Identity of this package. - PACKAGE_NAME='Iperf' - PACKAGE_TARNAME='iperf' --PACKAGE_VERSION='2.0.13' --PACKAGE_STRING='Iperf 2.0.13' -+PACKAGE_VERSION='2.0.14a' -+PACKAGE_STRING='Iperf 2.0.14a' - PACKAGE_BUGREPORT='' - PACKAGE_URL='' - -@@ -1313,7 +1313,7 @@ if test "$ac_init_help" = "long"; then - # Omit some internal or obsolete options to make the list less imposing. - # This message is too long to be a string in the A/UX 3.1 sh. - cat <<_ACEOF --\`configure' configures Iperf 2.0.13 to adapt to many kinds of systems. -+\`configure' configures Iperf 2.0.14a to adapt to many kinds of systems. - - Usage: $0 [OPTION]... [VAR=VALUE]... - -@@ -1383,7 +1383,7 @@ fi - - if test -n "$ac_init_help"; then - case $ac_init_help in -- short | recursive ) echo "Configuration of Iperf 2.0.13:";; -+ short | recursive ) echo "Configuration of Iperf 2.0.14a:";; - esac - cat <<\_ACEOF - -@@ -1493,7 +1493,7 @@ fi - test -n "$ac_init_help" && exit $ac_status - if $ac_init_version; then - cat <<\_ACEOF --Iperf configure 2.0.13 -+Iperf configure 2.0.14a - generated by GNU Autoconf 2.69 - - Copyright (C) 2012 Free Software Foundation, Inc. -@@ -2236,7 +2236,7 @@ cat >config.log <<_ACEOF - This file contains any messages produced by compilers while - running configure, to aid debugging if configure makes a mistake. - --It was created by Iperf $as_me 2.0.13, which was -+It was created by Iperf $as_me 2.0.14a, which was - generated by GNU Autoconf 2.69. Invocation command line was - - $ $0 $@ -@@ -3101,7 +3101,7 @@ fi - - # Define the identity of the package. - PACKAGE='iperf' -- VERSION='2.0.13' -+ VERSION='2.0.14a' - - - cat >>confdefs.h <<_ACEOF -@@ -8854,7 +8854,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 - # report actual input values of CONFIG_FILES etc. instead of their - # values after options handling. - ac_log=" --This file was extended by Iperf $as_me 2.0.13, which was -+This file was extended by Iperf $as_me 2.0.14a, which was - generated by GNU Autoconf 2.69. Invocation command line was - - CONFIG_FILES = $CONFIG_FILES -@@ -8920,7 +8920,7 @@ _ACEOF - cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 - ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" - ac_cs_version="\\ --Iperf config.status 2.0.13 -+Iperf config.status 2.0.14a - configured by $0, generated by GNU Autoconf 2.69, - with options \\"\$ac_cs_config\\" - -diff --git a/configure.ac b/configure.ac -index cd3c9a0..4c93328 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -5,7 +5,7 @@ dnl =================================================================== - - - AC_PREREQ(2.59) --AC_INIT(Iperf,2.0.13) -+AC_INIT(Iperf,2.0.14a) - AC_CONFIG_HEADER([config.h]) - AM_INIT_AUTOMAKE() - -diff --git a/include/version.h b/include/version.h -index 87279a7..d6f9d89 100644 ---- a/include/version.h -+++ b/include/version.h -@@ -1,4 +1,4 @@ --#define IPERF_VERSION "2.0.13" --#define IPERF_VERSION_DATE "21 Jan 2019" -+#define IPERF_VERSION "2.0.14a" -+#define IPERF_VERSION_DATE "29 Jan 2019" - #define IPERF_VERSION_MAJORHEX 0x00020000 --#define IPERF_VERSION_MINORHEX 0x000D0003 -+#define IPERF_VERSION_MINORHEX 0x000E0000 -diff --git a/src/Reporter.c b/src/Reporter.c -index 80891aa..d5164ef 100644 ---- a/src/Reporter.c -+++ b/src/Reporter.c -@@ -151,7 +151,9 @@ MultiHeader* InitMulti( thread_Settings *agent, int inID) { - memset( multihdr, 0, sizeof(MultiHeader) ); - Condition_Initialize( &multihdr->barrier ); - multihdr->groupID = inID; -- multihdr->threads = agent->mThreads; -+ if (agent->mThreadMode == kMode_Client) { -+ multihdr->threads = agent->mThreads; -+ } - if ( isMultipleReport( agent ) ) { - int i; - ReporterData *data = NULL; diff --git a/sdk_container/src/third_party/portage-stable/net-misc/iperf/files/iperf-3.17.1-c23.patch b/sdk_container/src/third_party/portage-stable/net-misc/iperf/files/iperf-3.17.1-c23.patch deleted file mode 100644 index 80c432156f5..00000000000 --- a/sdk_container/src/third_party/portage-stable/net-misc/iperf/files/iperf-3.17.1-c23.patch +++ /dev/null @@ -1,58 +0,0 @@ -https://bugs.gentoo.org/944381 -https://github.com/esnet/iperf/pull/1805 - -From beadb59b90e8d3339d31f9f15525108072fde135 Mon Sep 17 00:00:00 2001 -From: Rudi Heitbaum -Date: Mon, 9 Dec 2024 10:13:02 +0000 -Subject: [PATCH] fix build with gcc-15 - ---- a/src/iperf_api.c -+++ b/src/iperf_api.c -@@ -603,25 +603,25 @@ iperf_set_mapped_v4(struct iperf_test *ipt, const int val) - } - - void --iperf_set_on_new_stream_callback(struct iperf_test* ipt, void (*callback)()) -+iperf_set_on_new_stream_callback(struct iperf_test* ipt, void (*callback)(struct iperf_stream *)) - { - ipt->on_new_stream = callback; - } - - void --iperf_set_on_test_start_callback(struct iperf_test* ipt, void (*callback)()) -+iperf_set_on_test_start_callback(struct iperf_test* ipt, void (*callback)(struct iperf_test *)) - { - ipt->on_test_start = callback; - } - - void --iperf_set_on_test_connect_callback(struct iperf_test* ipt, void (*callback)()) -+iperf_set_on_test_connect_callback(struct iperf_test* ipt, void (*callback)(struct iperf_test *)) - { - ipt->on_connect = callback; - } - - void --iperf_set_on_test_finish_callback(struct iperf_test* ipt, void (*callback)()) -+iperf_set_on_test_finish_callback(struct iperf_test* ipt, void (*callback)(struct iperf_test *)) - { - ipt->on_test_finish = callback; - } ---- a/src/iperf_api.h -+++ b/src/iperf_api.h -@@ -213,10 +213,10 @@ void iperf_set_dont_fragment( struct iperf_test* ipt, int dont_fragment ); - void iperf_set_test_congestion_control(struct iperf_test* ipt, char* cc); - void iperf_set_test_mss(struct iperf_test* ipt, int mss); - void iperf_set_mapped_v4(struct iperf_test* ipt, const int val); --void iperf_set_on_new_stream_callback(struct iperf_test* ipt, void (*callback)()); --void iperf_set_on_test_start_callback(struct iperf_test* ipt, void (*callback)()); --void iperf_set_on_test_connect_callback(struct iperf_test* ipt, void (*callback)()); --void iperf_set_on_test_finish_callback(struct iperf_test* ipt, void (*callback)()); -+void iperf_set_on_new_stream_callback(struct iperf_test* ipt, void (*callback)(struct iperf_stream *)); -+void iperf_set_on_test_start_callback(struct iperf_test* ipt, void (*callback)(struct iperf_test *)); -+void iperf_set_on_test_connect_callback(struct iperf_test* ipt, void (*callback)(struct iperf_test *)); -+void iperf_set_on_test_finish_callback(struct iperf_test* ipt, void (*callback)(struct iperf_test *)); - - #if defined(HAVE_SSL) - void iperf_set_test_client_username(struct iperf_test *ipt, const char *client_username); - diff --git a/sdk_container/src/third_party/portage-stable/net-misc/iperf/files/iperf-3.19.1-openssl-3.5.3.patch b/sdk_container/src/third_party/portage-stable/net-misc/iperf/files/iperf-3.19.1-openssl-3.5.3.patch new file mode 100644 index 00000000000..5c6bd671d78 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/net-misc/iperf/files/iperf-3.19.1-openssl-3.5.3.patch @@ -0,0 +1,247 @@ +https://bugs.gentoo.org/963583 +https://github.com/esnet/iperf/issues/1951 +https://github.com/esnet/iperf/pull/1956 + +From aab262afe1770b55bb865fd4dad2d5e737c758a6 Mon Sep 17 00:00:00 2001 +From: Michael Lowman +Date: Wed, 8 Oct 2025 22:40:07 +0200 +Subject: [PATCH 1/5] Set output buffer size prior to encrypt operation + +When calling EVP_PKEY_encrypt with a non-null output buffer, +the output buffer length must be provided. Attempts to write +beyond this length will fail. +--- + src/iperf_auth.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/iperf_auth.c b/src/iperf_auth.c +index eda015099..774e1b701 100644 +--- a/src/iperf_auth.c ++++ b/src/iperf_auth.c +@@ -252,6 +252,7 @@ int encrypt_rsa_message(const char *plaintext, EVP_PKEY *public_key, unsigned ch + #endif + rsa_buffer = OPENSSL_malloc(keysize * 2); + *encryptedtext = (unsigned char*)OPENSSL_malloc(keysize); ++ encryptedtext_len = keysize; + + BIO *bioBuff = BIO_new_mem_buf((void*)plaintext, (int)strlen(plaintext)); + rsa_buffer_len = BIO_read(bioBuff, rsa_buffer, keysize * 2); + +From 00840604c85c598f7aaeffd21db0c62472d8ab34 Mon Sep 17 00:00:00 2001 +From: Michael Lowman +Date: Wed, 8 Oct 2025 22:29:12 +0200 +Subject: [PATCH 2/5] Rename keysize to output_buffer_len + +This more accurately represents the meaning; it is the minimum +buffer allocation necessary for an encrypt or decrypt operation +to succeed. This is the same size for both ciphertext and +cleartext, as padding is applied. +--- + src/iperf_auth.c | 28 ++++++++++++++-------------- + 1 file changed, 14 insertions(+), 14 deletions(-) + +diff --git a/src/iperf_auth.c b/src/iperf_auth.c +index 774e1b701..ea516904f 100644 +--- a/src/iperf_auth.c ++++ b/src/iperf_auth.c +@@ -236,26 +236,26 @@ int encrypt_rsa_message(const char *plaintext, EVP_PKEY *public_key, unsigned ch + #endif + unsigned char *rsa_buffer = NULL; + size_t encryptedtext_len = 0; +- int rsa_buffer_len, keysize; ++ int rsa_buffer_len, output_buffer_len; + + #if OPENSSL_VERSION_MAJOR >= 3 + int rc; + ctx = EVP_PKEY_CTX_new_from_pkey(NULL, public_key, ""); + /* See evp_pkey_rsa(7) and provider-keymgmt(7) */ +- rc = EVP_PKEY_get_int_param(public_key, OSSL_PKEY_PARAM_MAX_SIZE, &keysize); /* XXX not really keysize */ ++ rc = EVP_PKEY_get_int_param(public_key, OSSL_PKEY_PARAM_MAX_SIZE, &output_buffer_len); + if (!rc) { + goto errreturn; + } + #else + rsa = EVP_PKEY_get1_RSA(public_key); +- keysize = RSA_size(rsa); ++ output_buffer_len = RSA_size(rsa); + #endif +- rsa_buffer = OPENSSL_malloc(keysize * 2); +- *encryptedtext = (unsigned char*)OPENSSL_malloc(keysize); +- encryptedtext_len = keysize; ++ rsa_buffer = OPENSSL_malloc(output_buffer_len * 2); ++ *encryptedtext = (unsigned char*)OPENSSL_malloc(output_buffer_len); ++ encryptedtext_len = output_buffer_len; + + BIO *bioBuff = BIO_new_mem_buf((void*)plaintext, (int)strlen(plaintext)); +- rsa_buffer_len = BIO_read(bioBuff, rsa_buffer, keysize * 2); ++ rsa_buffer_len = BIO_read(bioBuff, rsa_buffer, output_buffer_len * 2); + + int padding = RSA_PKCS1_OAEP_PADDING; + if (use_pkcs1_padding){ +@@ -295,26 +295,26 @@ int decrypt_rsa_message(const unsigned char *encryptedtext, const int encryptedt + #endif + unsigned char *rsa_buffer = NULL; + size_t plaintext_len = 0; +- int rsa_buffer_len, keysize; ++ int rsa_buffer_len, output_buffer_len; + + #if OPENSSL_VERSION_MAJOR >= 3 + int rc; + ctx = EVP_PKEY_CTX_new_from_pkey(NULL, private_key, ""); + /* See evp_pkey_rsa(7) and provider-keymgmt(7) */ +- rc = EVP_PKEY_get_int_param(private_key, OSSL_PKEY_PARAM_MAX_SIZE, &keysize); /* XXX not really keysize */ ++ rc = EVP_PKEY_get_int_param(private_key, OSSL_PKEY_PARAM_MAX_SIZE, &output_buffer_len); + if (!rc) { + goto errreturn; + } + #else + rsa = EVP_PKEY_get1_RSA(private_key); +- keysize = RSA_size(rsa); ++ output_buffer_len = RSA_size(rsa); + #endif +- rsa_buffer = OPENSSL_malloc(keysize * 2); ++ rsa_buffer = OPENSSL_malloc(output_buffer_len * 2); + // Note: +1 for NULL +- *plaintext = (unsigned char*)OPENSSL_malloc(keysize + 1); ++ *plaintext = (unsigned char*)OPENSSL_malloc(output_buffer_len + 1); + + BIO *bioBuff = BIO_new_mem_buf((void*)encryptedtext, encryptedtext_len); +- rsa_buffer_len = BIO_read(bioBuff, rsa_buffer, keysize * 2); ++ rsa_buffer_len = BIO_read(bioBuff, rsa_buffer, output_buffer_len * 2); + + int padding = RSA_PKCS1_OAEP_PADDING; + if (use_pkcs1_padding){ +@@ -322,7 +322,7 @@ int decrypt_rsa_message(const unsigned char *encryptedtext, const int encryptedt + } + #if OPENSSL_VERSION_MAJOR >= 3 + +- plaintext_len = keysize; ++ plaintext_len = output_buffer_len; + EVP_PKEY_decrypt_init(ctx); + + ret = EVP_PKEY_CTX_set_rsa_padding(ctx, padding); + +From f30aaa3be199313c079d585f7eaf20a0745186b9 Mon Sep 17 00:00:00 2001 +From: Michael Lowman +Date: Wed, 8 Oct 2025 16:46:20 +0200 +Subject: [PATCH 3/5] Avoid out-of-bounds access when base64 decoding short + strings + +Check the length before reading memory. +--- + src/iperf_auth.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/iperf_auth.c b/src/iperf_auth.c +index ea516904f..eddc5a85f 100644 +--- a/src/iperf_auth.c ++++ b/src/iperf_auth.c +@@ -130,9 +130,9 @@ int Base64Encode(const unsigned char* buffer, const size_t length, char** b64tex + + size_t calcDecodeLength(const char* b64input) { //Calculates the length of a decoded string + size_t len = strlen(b64input), padding = 0; +- if (b64input[len-1] == '=' && b64input[len-2] == '=') //last two chars are = ++ if (len >= 2 && b64input[len-1] == '=' && b64input[len-2] == '=') //last two chars are = + padding = 2; +- else if (b64input[len-1] == '=') //last char is = ++ else if (len >= 1 && b64input[len-1] == '=') //last char is = + padding = 1; + + return (len*3)/4 - padding; + +From 1cca42a1e77df8fba83ef6340388cad34625087c Mon Sep 17 00:00:00 2001 +From: Michael Lowman +Date: Wed, 8 Oct 2025 17:57:37 +0200 +Subject: [PATCH 4/5] Don't over-allocate followed by partial reads + +We know how much we expect to read; the input buffer +has a defined size. Allocate the exact buffer expected +instead of a larger one with a read expected to return +only partial data. This makes it simpler to follow the +logic and to avoid off-by-one errors. +--- + src/iperf_auth.c | 13 +++++++------ + 1 file changed, 7 insertions(+), 6 deletions(-) + +diff --git a/src/iperf_auth.c b/src/iperf_auth.c +index eddc5a85f..d582c615a 100644 +--- a/src/iperf_auth.c ++++ b/src/iperf_auth.c +@@ -235,7 +235,7 @@ int encrypt_rsa_message(const char *plaintext, EVP_PKEY *public_key, unsigned ch + RSA *rsa = NULL; + #endif + unsigned char *rsa_buffer = NULL; +- size_t encryptedtext_len = 0; ++ size_t encryptedtext_len = 0, plaintext_len = 0; + int rsa_buffer_len, output_buffer_len; + + #if OPENSSL_VERSION_MAJOR >= 3 +@@ -250,12 +250,13 @@ int encrypt_rsa_message(const char *plaintext, EVP_PKEY *public_key, unsigned ch + rsa = EVP_PKEY_get1_RSA(public_key); + output_buffer_len = RSA_size(rsa); + #endif +- rsa_buffer = OPENSSL_malloc(output_buffer_len * 2); ++ plaintext_len = strlen(plaintext); ++ rsa_buffer = OPENSSL_malloc(output_buffer_len); + *encryptedtext = (unsigned char*)OPENSSL_malloc(output_buffer_len); + encryptedtext_len = output_buffer_len; + +- BIO *bioBuff = BIO_new_mem_buf((void*)plaintext, (int)strlen(plaintext)); +- rsa_buffer_len = BIO_read(bioBuff, rsa_buffer, output_buffer_len * 2); ++ BIO *bioBuff = BIO_new_mem_buf((void*)plaintext, (int)plaintext_len); ++ rsa_buffer_len = BIO_read(bioBuff, rsa_buffer, plaintext_len); + + int padding = RSA_PKCS1_OAEP_PADDING; + if (use_pkcs1_padding){ +@@ -309,12 +310,12 @@ int decrypt_rsa_message(const unsigned char *encryptedtext, const int encryptedt + rsa = EVP_PKEY_get1_RSA(private_key); + output_buffer_len = RSA_size(rsa); + #endif +- rsa_buffer = OPENSSL_malloc(output_buffer_len * 2); ++ rsa_buffer = OPENSSL_malloc(output_buffer_len); + // Note: +1 for NULL + *plaintext = (unsigned char*)OPENSSL_malloc(output_buffer_len + 1); + + BIO *bioBuff = BIO_new_mem_buf((void*)encryptedtext, encryptedtext_len); +- rsa_buffer_len = BIO_read(bioBuff, rsa_buffer, output_buffer_len * 2); ++ rsa_buffer_len = BIO_read(bioBuff, rsa_buffer, encryptedtext_len); + + int padding = RSA_PKCS1_OAEP_PADDING; + if (use_pkcs1_padding){ + +From 92f288ff6230dbe186e95688c910268f6942e214 Mon Sep 17 00:00:00 2001 +From: Michael Lowman +Date: Wed, 8 Oct 2025 17:58:52 +0200 +Subject: [PATCH 5/5] Add warnings on silent truncation + +Input should not be this long, but makes the expectations +of the code clearer. +--- + src/iperf_auth.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/src/iperf_auth.c b/src/iperf_auth.c +index d582c615a..4c38fa938 100644 +--- a/src/iperf_auth.c ++++ b/src/iperf_auth.c +@@ -251,6 +251,9 @@ int encrypt_rsa_message(const char *plaintext, EVP_PKEY *public_key, unsigned ch + output_buffer_len = RSA_size(rsa); + #endif + plaintext_len = strlen(plaintext); ++ if (plaintext_len > output_buffer_len) { ++ fprintf(stderr, "Plaintext of size %zd truncated to %d; data is lost.\n", plaintext_len, output_buffer_len); ++ } + rsa_buffer = OPENSSL_malloc(output_buffer_len); + *encryptedtext = (unsigned char*)OPENSSL_malloc(output_buffer_len); + encryptedtext_len = output_buffer_len; +@@ -310,6 +313,9 @@ int decrypt_rsa_message(const unsigned char *encryptedtext, const int encryptedt + rsa = EVP_PKEY_get1_RSA(private_key); + output_buffer_len = RSA_size(rsa); + #endif ++ if (encryptedtext_len > output_buffer_len) { ++ fprintf(stderr, "Encrypted text of size %d truncated to %d; likely invalid input.\n", encryptedtext_len, output_buffer_len); ++ } + rsa_buffer = OPENSSL_malloc(output_buffer_len); + // Note: +1 for NULL + *plaintext = (unsigned char*)OPENSSL_malloc(output_buffer_len + 1); + diff --git a/sdk_container/src/third_party/portage-stable/net-misc/iperf/iperf-2.0.14a.ebuild b/sdk_container/src/third_party/portage-stable/net-misc/iperf/iperf-2.0.14a.ebuild deleted file mode 100644 index 0f317120014..00000000000 --- a/sdk_container/src/third_party/portage-stable/net-misc/iperf/iperf-2.0.14a.ebuild +++ /dev/null @@ -1,42 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit toolchain-funcs - -DESCRIPTION="Tool to measure IP bandwidth using UDP or TCP" -HOMEPAGE="https://sourceforge.net/projects/iperf2/" -SRC_URI="https://downloads.sourceforge.net/${PN}2/${PN}-2.0.13.tar.gz" -S="${WORKDIR}/${PN}-2.0.13" - -LICENSE="HPND" -SLOT="2" -KEYWORDS="amd64 ~arm ~hppa ppc ppc64 ~riscv ~sparc x86 ~amd64-linux ~x86-linux ~ppc-macos" -IUSE="ipv6 threads debug" - -DOCS=( INSTALL README ) - -PATCHES=( - "${FILESDIR}"/${PN}-2.0.12-ipv6.patch - "${FILESDIR}"/${P}.patch -) - -src_configure() { - econf \ - $(use_enable debug debuginfo) \ - $(use_enable ipv6) \ - $(use_enable threads) -} - -src_compile() { - emake AR="$(tc-getAR)" -} - -src_install() { - default - - dodoc doc/* - newinitd "${FILESDIR}"/${PN}.initd-r1 ${PN} - newconfd "${FILESDIR}"/${PN}.confd ${PN} -} diff --git a/sdk_container/src/third_party/portage-stable/net-misc/iperf/iperf-3.18.ebuild b/sdk_container/src/third_party/portage-stable/net-misc/iperf/iperf-3.18.ebuild deleted file mode 100644 index 3c46fad222c..00000000000 --- a/sdk_container/src/third_party/portage-stable/net-misc/iperf/iperf-3.18.ebuild +++ /dev/null @@ -1,54 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit autotools systemd - -DESCRIPTION="A TCP, UDP, and SCTP network bandwidth measurement tool" -HOMEPAGE="https://github.com/esnet/iperf" -SRC_URI="https://github.com/esnet/iperf/releases/download/${PV}/${P}.tar.gz" - -LICENSE="BSD" -SLOT="3" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~mips ppc ppc64 ~riscv ~sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos" -IUSE="sctp" - -DEPEND=" - >=dev-libs/cJSON-1.7.15 - dev-libs/openssl:= - sctp? ( net-misc/lksctp-tools ) -" -RDEPEND="${DEPEND}" -BDEPEND="virtual/pkgconfig" - -DOCS=( README.md RELNOTES.md ) - -PATCHES=( - "${FILESDIR}"/${PN}-3.10.1-drop-forced-debugging-symbols.patch - "${FILESDIR}"/${PN}-3.18-unbundle-cJSON.patch - "${FILESDIR}"/${PN}-3.17.1-c23.patch -) - -src_prepare() { - default - - # Drop bundled cjson - rm src/cjson.{c,h} || die - - eautoreconf -} - -src_configure() { - econf $(use_with sctp) -} - -src_install() { - default - - newconfd "${FILESDIR}"/iperf.confd iperf3 - newinitd "${FILESDIR}"/iperf3.initd iperf3 - systemd_dounit contrib/iperf3.service - - find "${ED}" -name '*.la' -type f -delete || die -} diff --git a/sdk_container/src/third_party/portage-stable/net-misc/iperf/iperf-3.19.ebuild b/sdk_container/src/third_party/portage-stable/net-misc/iperf/iperf-3.19.1-r1.ebuild similarity index 74% rename from sdk_container/src/third_party/portage-stable/net-misc/iperf/iperf-3.19.ebuild rename to sdk_container/src/third_party/portage-stable/net-misc/iperf/iperf-3.19.1-r1.ebuild index 2755d1fa244..fa3e54ce045 100644 --- a/sdk_container/src/third_party/portage-stable/net-misc/iperf/iperf-3.19.ebuild +++ b/sdk_container/src/third_party/portage-stable/net-misc/iperf/iperf-3.19.1-r1.ebuild @@ -5,13 +5,13 @@ EAPI=8 inherit autotools systemd -DESCRIPTION="A TCP, UDP, and SCTP network bandwidth measurement tool" -HOMEPAGE="https://github.com/esnet/iperf" +DESCRIPTION="TCP, UDP, and SCTP network bandwidth measurement tool" +HOMEPAGE="https://software.es.net/iperf/ https://github.com/esnet/iperf" SRC_URI="https://github.com/esnet/${PN}/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz" LICENSE="BSD" SLOT="3" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~mips ppc ppc64 ~riscv ~sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos" IUSE="sctp" DEPEND=" @@ -27,6 +27,7 @@ DOCS=( README.md RELNOTES.md ) PATCHES=( "${FILESDIR}"/${PN}-3.10.1-drop-forced-debugging-symbols.patch "${FILESDIR}"/${PN}-3.18-unbundle-cJSON.patch + "${FILESDIR}"/${PN}-3.19.1-openssl-3.5.3.patch ) src_prepare() { diff --git a/sdk_container/src/third_party/portage-stable/net-misc/ntp/files/ntp-4.2.8_p18-r2-bind-fail-NULL-dereference.patch b/sdk_container/src/third_party/portage-stable/net-misc/ntp/files/ntp-4.2.8_p18-r2-bind-fail-NULL-dereference.patch new file mode 100644 index 00000000000..eb05560d57e --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/net-misc/ntp/files/ntp-4.2.8_p18-r2-bind-fail-NULL-dereference.patch @@ -0,0 +1,20 @@ +Patch supplied by Nick Bowler on https://bugs.gentoo.org/962770 + +This avoids a NULL dereference in case ntp fails to bind() to a decided upon +address that should be bound. +--- ntp-4.2.8p18/ntpd/ntp_io.c.orig ++++ ntp-4.2.8p18/ntpd/ntp_io.c +@@ -1921,11 +1921,11 @@ + } + else { + DPRINT_INTERFACE(3, +- (ep, "updating ", " new - FAILED")); ++ (ep2, "updating ", " new - FAILED")); + + msyslog(LOG_ERR, + "cannot bind address %s", +- stoa(&ep->sin)); ++ stoa(&ep2->sin)); + } + free(ep2); + } diff --git a/sdk_container/src/third_party/portage-stable/net-misc/ntp/files/ntp-client.rc-r1 b/sdk_container/src/third_party/portage-stable/net-misc/ntp/files/ntp-client.rc-r1 new file mode 100644 index 00000000000..7a98520e91a --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/net-misc/ntp/files/ntp-client.rc-r1 @@ -0,0 +1,31 @@ +#!/sbin/openrc-run +# Copyright 1999-2013 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +depend() { + before cron portmap + after net + use dns logger +} + +checkconfig() { + if ! command -v "${NTPCLIENT_CMD}" >/dev/null 2>&1 ; then + eerror "Please edit /etc/conf.d/ntp-client" + eerror "Unable to locate the client command ${NTPCLIENT_CMD}!" + return 1 + fi + if [ -z "${NTPCLIENT_OPTS}" ] ; then + eerror "Please edit /etc/conf.d/ntp-client" + eerror "I need to know what server/options to use!" + return 1 + fi + return 0 +} + +start() { + checkconfig || return $? + + ebegin "Setting clock via the NTP client '${NTPCLIENT_CMD}'" + "${NTPCLIENT_CMD}" ${NTPCLIENT_OPTS} + eend $? "Failed to set clock" +} diff --git a/sdk_container/src/third_party/portage-stable/net-misc/ntp/metadata.xml b/sdk_container/src/third_party/portage-stable/net-misc/ntp/metadata.xml index 921f0c46b57..0514f0019c5 100644 --- a/sdk_container/src/third_party/portage-stable/net-misc/ntp/metadata.xml +++ b/sdk_container/src/third_party/portage-stable/net-misc/ntp/metadata.xml @@ -1,10 +1,7 @@ - - base-system@gentoo.org - Gentoo Base System - + NTP is a protocol designed to synchronize the clocks of computers over a network. NTP version 3 is an internet draft standard, formalized in RFC 1305. NTP version 4 is a diff --git a/sdk_container/src/third_party/portage-stable/net-misc/ntp/ntp-4.2.8_p18-r2.ebuild b/sdk_container/src/third_party/portage-stable/net-misc/ntp/ntp-4.2.8_p18-r2.ebuild new file mode 100644 index 00000000000..71eda2b6864 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/net-misc/ntp/ntp-4.2.8_p18-r2.ebuild @@ -0,0 +1,169 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools flag-o-matic systemd tmpfiles + +MY_P=${P/_p/p} +DESCRIPTION="Network Time Protocol suite/programs" +HOMEPAGE="https://www.ntp.org/" +SRC_URI="https://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-${PV:0:3}/${MY_P}.tar.gz" +S="${WORKDIR}/${MY_P}" + +LICENSE="HPND BSD ISC" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux" +IUSE="caps debug openntpd parse-clocks readline samba selinux snmp ssl +threads vim-syntax zeroconf" + +DEPEND=" + >=dev-libs/libevent-2.0.9:=[threads(+)?] + readline? ( >=sys-libs/readline-4.1:= ) + kernel_linux? ( caps? ( sys-libs/libcap ) ) + zeroconf? ( net-dns/avahi[mdnsresponder-compat] ) + snmp? ( net-analyzer/net-snmp ) + ssl? ( dev-libs/openssl:= ) + parse-clocks? ( net-misc/pps-tools ) +" +RDEPEND=" + ${DEPEND} + acct-group/ntp + acct-user/ntp + selinux? ( sec-policy/selinux-ntp ) + vim-syntax? ( app-vim/ntp-syntax ) + !net-misc/ntpsec + !openntpd? ( !net-misc/openntpd ) +" +BDEPEND=" + acct-group/ntp + acct-user/ntp + virtual/pkgconfig +" +PDEPEND="openntpd? ( net-misc/openntpd )" + +PATCHES=( + "${FILESDIR}"/${PN}-4.2.8_p18-ipc-caps.patch # bug #533966 + "${FILESDIR}"/${PN}-4.2.8-sntp-test-pthreads.patch # bug #563922 + "${FILESDIR}"/${PN}-4.2.8_p14-add_cap_ipc_lock.patch # bug #711530 + "${FILESDIR}"/${PN}-4.2.8_p15-configure-clang16.patch + "${FILESDIR}"/${PN}-4.2.8_p18-c99.patch # bug #956643 + "${FILESDIR}"/${PN}-4.2.8_p18-r2-bind-fail-NULL-dereference.patch # bug #962770 +) + +src_prepare() { + default + + # Make sure every build uses the same install layout, bug #539092 + find sntp/loc/ -type f '!' -name legacy -delete || die + + # bug #622754 + eautoreconf + + # Disable pointless checks. + touch .checkChangeLog .gcc-warning FRC.html html/.datecheck || die +} + +src_configure() { + # Ancient codebase, lto-type-mismatch in testsuite in packetProcesisng.c + # where patching it then needs Ruby. + filter-lto + + # bug #264109 + append-cppflags -D_GNU_SOURCE + append-cflags -fno-strict-overflow + + # https://bugs.gentoo.org/922508 + append-lfs-flags + + # avoid libmd5/libelf + export ac_cv_search_MD5Init=no ac_cv_header_md5_h=no + export ac_cv_lib_elf_nlist=no + # blah, no real configure options #176333 + export ac_cv_header_dns_sd_h=$(usex zeroconf) + export ac_cv_lib_dns_sd_DNSServiceRegister=${ac_cv_header_dns_sd_h} + # Unity builds, we don't really need support for it, bug #804109 + export PATH_RUBY=/bin/false + + local myeconfargs=( + --cache-file="${S}"/config.cache + + --with-lineeditlibs=readline,edit,editline + --with-yielding-select + --disable-local-libevent + + # Increase the default memlimit from 32MiB to 128MiB, bug #533232 + --with-memlock=256 + + # Avoid overriding the user's toolchain settings, bug #895802 + --with-hardenfile=/dev/null + + $(use_enable caps linuxcaps) + $(use_enable parse-clocks) + $(use_enable debug debugging) + $(use_with readline lineeditlibs readline) + $(use_enable samba ntp-signd) + $(use_with snmp ntpsnmpd) + $(use_with ssl crypto) + $(use_enable threads thread-support) + ) + + econf "${myeconfargs[@]}" +} + +src_install() { + default + + # Move ntpd/ntpdate to sbin, bug #66671 + dodir /usr/sbin + mv "${ED}"/usr/bin/{ntpd,ntpdate} "${ED}"/usr/sbin/ || die "move to sbin" + + dodoc INSTALL WHERE-TO-START + + insinto /etc + doins "${FILESDIR}"/ntp.conf + + newinitd "${FILESDIR}"/ntpd.rc-r2 ntpd + newconfd "${FILESDIR}"/ntpd.confd ntpd + newinitd "${FILESDIR}"/ntp-client.rc-r1 ntp-client + newconfd "${FILESDIR}"/ntp-client.confd ntp-client + newinitd "${FILESDIR}"/sntp.rc sntp + newconfd "${FILESDIR}"/sntp.confd sntp + if ! use caps ; then + sed -i "s|-u ntp:ntp||" "${ED}"/etc/conf.d/ntpd || die + fi + sed -i "s:/usr/bin:/usr/sbin:" "${ED}"/etc/init.d/ntpd || die + + if use openntpd ; then + cd "${ED}" || die + rm usr/sbin/ntpd || die + rm etc/{conf,init}.d/ntpd || die + rm usr/share/man/man1/ntpd.1 || die + else + newtmpfiles "${FILESDIR}"/ntp.tmpfiles ntp.conf + systemd_newunit "${FILESDIR}"/ntpd.service-r2 ntpd.service + if use caps ; then + sed -i '/ExecStart/ s|$| -u ntp:ntp|' \ + "${D}$(systemd_get_systemunitdir)"/ntpd.service \ + || die + fi + systemd_enable_ntpunit 60-ntpd ntpd.service + fi + + systemd_newunit "${FILESDIR}"/ntpdate.service-r2 ntpdate.service + systemd_install_serviced "${FILESDIR}"/ntpdate.service.conf + systemd_newunit "${FILESDIR}"/sntp.service-r3 sntp.service + systemd_install_serviced "${FILESDIR}"/sntp.service.conf +} + +pkg_postinst() { + if ! use openntpd; then + tmpfiles_process ntp.conf + fi + + if grep -qs '^[^#].*notrust' "${EROOT}"/etc/ntp.conf ; then + eerror "The notrust option was found in your /etc/ntp.conf!" + ewarn "If your ntpd starts sending out weird responses," + ewarn "then make sure you have keys properly setup and see" + ewarn "https://bugs.gentoo.org/41827" + fi +} diff --git a/sdk_container/src/third_party/portage-stable/net-misc/openssh/openssh-10.0_p2.ebuild b/sdk_container/src/third_party/portage-stable/net-misc/openssh/openssh-10.0_p2.ebuild index 9eee63dbddf..82fad77e8cf 100644 --- a/sdk_container/src/third_party/portage-stable/net-misc/openssh/openssh-10.0_p2.ebuild +++ b/sdk_container/src/third_party/portage-stable/net-misc/openssh/openssh-10.0_p2.ebuild @@ -26,7 +26,7 @@ S="${WORKDIR}/${PN}-10.0p1" LICENSE="BSD GPL-2" SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-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 xmss" diff --git a/sdk_container/src/third_party/portage-stable/net-misc/rsync/rsync-9999.ebuild b/sdk_container/src/third_party/portage-stable/net-misc/rsync/rsync-9999.ebuild index 0267e4ccbf0..f88fe921727 100644 --- a/sdk_container/src/third_party/portage-stable/net-misc/rsync/rsync-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/net-misc/rsync/rsync-9999.ebuild @@ -77,10 +77,6 @@ else BDEPEND+=" verify-sig? ( sec-keys/openpgp-keys-andrewtridgell )" fi -PATCHES=( - "${FILESDIR}"/${PN}-3.4.1-c23.patch -) - pkg_setup() { # - USE=examples needs Python itself at runtime, but nothing else # - 9999 needs commonmark at build time diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/amd64/package.use.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/amd64/package.use.mask index fac132b4b88..13513849855 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/amd64/package.use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/amd64/package.use.mask @@ -17,6 +17,18 @@ #--- END OF EXAMPLES --- +# Michał Górny (2025-11-01) +# app-crypt/sequoia-chameleon-gnupg is keyworded here. +app-alternatives/gpg -sequoia + +# Ionen Wolkens (2025-10-22) +# dev-lang/deno-bin is keyworded here +net-misc/yt-dlp -deno + +# Paul Zander (2025-06-29) +# media-libs/libvmaf is keyworded +media-libs/x265 -vmaf + # Michał Górny (2025-09-28) # Unmask on amd64 for wider testing. sci-libs/flexiblas -system-blas @@ -62,11 +74,6 @@ lxqt-base/lxqt-meta -wayland # for now until more testing and integration is done. sys-devel/gcc -cobol -# Ionen Wolkens (2025-03-10) -# dev-util/nvidia-cuda-toolkit is keyworded here -media-video/ffmpeg -npp -media-video/ffmpeg-compat -npp - # Ionen Wolkens (2025-03-10) # Old versions of ffmpeg needing old nv-codec-codecs complicate slots # (done here due to the unmasking in arch/amd64). 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 66c91beba3e..e8711457c36 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 @@ -26,8 +26,6 @@ media-sound/liblc3 -test # Ionen Wolkens (2025-03-10) # dev-util/nvidia-cuda-toolkit may never be stabilized -media-video/ffmpeg npp -media-video/ffmpeg-compat npp media-libs/osl clang-cuda # Sam James (2025-02-13) diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/amd64/use.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/amd64/use.mask index 93e238b0061..74106898b34 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/amd64/use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/amd64/use.mask @@ -49,6 +49,7 @@ # Paul Zander (2023-11-17) # ROCm/HIP works here -hip +-hiprt # Nowa Ammerlaan (2023-07-11) # Unmask secureboot flag on arches where sbsigntools is keyworded diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/amd64/use.stable.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/amd64/use.stable.mask index ab8fa42f22a..a254300eb29 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/amd64/use.stable.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/amd64/use.stable.mask @@ -7,6 +7,7 @@ # Paul Zander (2023-11-17) # ROCm/HIP is not suitable for stabilization. hip +hiprt # Andreas Sturmlechner (2020-06-06) # sci-libs/mkl is not stable, needs online registration to even run pkg_setup diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/arm/package.use.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/arm/package.use.mask index d941cf83163..22173f98e8d 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/arm/package.use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/arm/package.use.mask @@ -1,6 +1,14 @@ # Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# Sam James (2025-11-01) +# Needs pandoc. +media-sound/bluez-alsa man + +# Sam James (2025-10-28) +# Portability issues with dev-libs/apache-arrow (bug #923968). +sci-libs/gdal parquet + # PPN-SD (2025-10-04) # media-libs/libemf is not keyworded here app-office/dia wmf diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/arm64/package.use.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/arm64/package.use.mask index e7af54732f2..e782ebc4789 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/arm64/package.use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/arm64/package.use.mask @@ -1,6 +1,22 @@ # Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# Michał Górny (2025-11-01) +# app-crypt/sequoia-chameleon-gnupg is keyworded here. +app-alternatives/gpg -sequoia + +# Ionen Wolkens (2025-10-22) +# dev-lang/deno-bin is keyworded here +net-misc/yt-dlp -deno + +# Paul Zander (2025-10-18) +# media-libs/libvmaf is keyworded +media-libs/x265 -vmaf + +# Sam James (2025-10-18) +# dev-python/nvidia-ml-py is not keyworded here +sys-process/atop video_cards_nvidia + # PPN-SD (2025-10-04) # media-libs/libemf is not keyworded here app-office/dia wmf @@ -79,11 +95,6 @@ media-libs/libavif libyuv # for now until more testing and integration is done. sys-devel/gcc -cobol -# Ionen Wolkens (2025-03-10) -# dev-util/nvidia-cuda-toolkit is keyworded here -media-video/ffmpeg -npp -media-video/ffmpeg-compat -npp - # Ionen Wolkens (2025-03-10) # Old versions of ffmpeg needing old nv-codec-codecs complicate slots # (done here due to the unmasking in arch/arm64). diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/arm64/package.use.stable.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/arm64/package.use.stable.mask index 3eb71ba90d5..fc406949591 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/arm64/package.use.stable.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/arm64/package.use.stable.mask @@ -12,11 +12,6 @@ sys-block/fio rbd # scipy will surely be around in future. media-sound/liblc3 -test -# Ionen Wolkens (2025-03-12) -# dev-util/nvidia-cuda-toolkit may never be stabilized -media-video/ffmpeg npp -media-video/ffmpeg-compat npp - # Eli Schwartz (2025-01-27) # Dependencies e.g. pypy not stable here. dev-build/meson test-full 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 c2cdb613871..910bae84a57 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,19 @@ # Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# Michał Górny (2025-11-01) +# app-crypt/sequoia-chameleon-gnupg is not keyworded everywhere. +app-alternatives/gpg sequoia + +# Ionen Wolkens (2025-10-21) +# Uses dev-lang/deno-bin which offers limited per-arch prebuilts +# (source build is currently unpackaged and is non-trivial due to v8) +net-misc/yt-dlp deno + +# Paul Zander (2025-06-29) +# libvmaf has limited keywords +media-libs/x265 vmaf + # Michał Górny (2025-09-28) # Masked until sci-libs/flexiblas and sci-libs/blas-lapack-aux-wrappers # are keyworded everywhere. And for some more testing. @@ -45,11 +58,6 @@ media-gfx/blender oneapi # for now until more testing and integration is done. sys-devel/gcc cobol -# Ionen Wolkens (2025-03-10) -# dev-util/nvidia-cuda-toolkit has very few keywords -media-video/ffmpeg npp -media-video/ffmpeg-compat npp - # Thibaud CANALE (2025-03-09) # Too many dependencies are not keyworded (bug 949851) # - dev-python/google-api-python-client 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 d3ad6fa37e5..605ec97e87e 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 @@ -83,6 +83,7 @@ cudnn # ROCm/HIP only works on amd64 hip +hiprt # masking here, and unmasking in arch/x86/use.mask vidix 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 05e7d6cd92e..9c451dce4ac 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,10 @@ # NOTE: When masking a USE flag due to missing keywords, please file a keyword # request bug for the hppa arch. +# Alfred Wingate (2025-10-20) +# sys-libs/libnvme is not keyworded here +net-misc/networkmanager nbft + # PPN-SD (2025-10-04) # media-libs/libemf is not keyworded here app-office/dia wmf diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/mips/package.use.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/mips/package.use.mask index f836ad0beaa..d3c4c764c30 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/mips/package.use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/mips/package.use.mask @@ -1,6 +1,10 @@ # Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# Sam James (2025-10-31) +# Needs asciidoctor (ruby) +net-misc/chrony html + # Philipp Rösner (2025-09-23) # media-libs/zxingcpp is not keyworded here app-text/mupdf barcode 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 28ec8f3847f..c2d7a92b06d 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 @@ -83,7 +83,7 @@ app-benchmarks/stress-ng keyutils app-crypt/mit-krb5 keyutils app-emulation/qemu keyutils net-fs/cifs-utils ads creds pam -net-fs/samba ads +net-fs/samba ads addc >=sys-libs/libblockdev-3.0.0 cryptsetup sys-libs/libnvme keyutils diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc32/use.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc32/use.mask index b3053530cdf..e15d06dde38 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc32/use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc32/use.mask @@ -4,6 +4,10 @@ # Unmask the flag which corresponds to ARCH. -ppc +# Andreas Sturmlechner (2025-10-16) +# media-libs/opencv is not keyworded here +opencv + # Michał Górny (2025-04-13) # Converted to global mask. # diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc64/use.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc64/use.mask index ec7dc62380d..8aff9be942b 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc64/use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc64/use.mask @@ -5,6 +5,7 @@ # Paul Zander (2024-03-29) # not available here (see openexr, opencolorio, opencv) +color-management openvdb embree openimageio @@ -21,11 +22,6 @@ osl openexr osg -# Samuli Suominen (2012-11-24) -# TODO: Keyword and stabilize media-gfx/opencolorio and media-libs/opencv -color-management -opencv - # Brent Baude (2008-10-03) # Masking xindy use flag for ppc64 xindy diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/riscv/package.use.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/riscv/package.use.mask index 9a62f24c5e9..1f907927f12 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/riscv/package.use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/riscv/package.use.mask @@ -1,6 +1,14 @@ # Copyright 2019-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# Sam James (2025-10-28) +# Portability issues with dev-libs/apache-arrow (bug #923968). +sci-libs/gdal parquet + +# Paul Zander (2025-06-29) +# media-libs/libvmaf is keyworded +media-libs/x265 -vmaf + # Jakov Smolić (2025-10-05) # These packages are keyworded on riscv sci-libs/flexiblas -system-blas @@ -264,6 +272,5 @@ media-libs/opencv vtk sci-libs/opencascade vtk # This doesn't work for (any) riscv yet. -dev-libs/libpcre2 jit dev-libs/libpcre jit www-servers/nginx pcre-jit 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 3056411a437..9b488913508 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-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# Sam James (2025-10-31) +# Needs asciidoctor (ruby) +net-misc/chrony html + # Andreas Sturmlechner (2025-09-23) # media-libs/zxingcpp is not keyworded here. app-text/mupdf barcode diff --git a/sdk_container/src/third_party/portage-stable/profiles/base/make.defaults b/sdk_container/src/third_party/portage-stable/profiles/base/make.defaults index 8f203780d73..1d272050d37 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/base/make.defaults +++ b/sdk_container/src/third_party/portage-stable/profiles/base/make.defaults @@ -12,7 +12,7 @@ USE_EXPAND_VALUES_KERNEL="Darwin linux SunOS" # Env vars to expand into USE vars. Modifying this requires prior # discussion on gentoo-dev@lists.gentoo.org. -USE_EXPAND="ABI_MIPS ABI_S390 ABI_X86 ADA_TARGET ALSA_CARDS AMDGPU_TARGETS APACHE2_MODULES APACHE2_MPMS CALLIGRA_FEATURES CAMERAS COLLECTD_PLUGINS CPU_FLAGS_ARM CPU_FLAGS_PPC CPU_FLAGS_X86 CURL_SSL CURL_QUIC ELIBC FFTOOLS GPSD_PROTOCOLS GRUB_PLATFORMS GUILE_SINGLE_TARGET GUILE_TARGETS INPUT_DEVICES KERNEL L10N LCD_DEVICES LIBREOFFICE_EXTENSIONS LLVM_SLOT LLVM_TARGETS LUA_SINGLE_TARGET LUA_TARGETS NGINX_MODULES_HTTP NGINX_MODULES_MAIL NGINX_MODULES_STREAM OFFICE_IMPLEMENTATION OPENMPI_FABRICS OPENMPI_OFED_FEATURES OPENMPI_RM PERL_FEATURES PHP_TARGETS POSTGRES_TARGETS PYTHON_SINGLE_TARGET PYTHON_TARGETS RUST_SYSROOTS QEMU_SOFTMMU_TARGETS QEMU_USER_TARGETS RUBY_TARGETS SANE_BACKENDS RUST_SYSROOTS UWSGI_PLUGINS VIDEO_CARDS VOICEMAIL_STORAGE XTABLES_ADDONS" +USE_EXPAND="ABI_MIPS ABI_S390 ABI_X86 ADA_TARGET ALSA_CARDS AMDGPU_TARGETS APACHE2_MODULES APACHE2_MPMS CALLIGRA_FEATURES CAMERAS COLLECTD_PLUGINS CPU_FLAGS_ARM CPU_FLAGS_PPC CPU_FLAGS_X86 CURL_SSL CURL_QUIC ELIBC FFTOOLS GPSD_PROTOCOLS GRUB_PLATFORMS GUILE_SINGLE_TARGET GUILE_TARGETS INPUT_DEVICES KERNEL L10N LCD_DEVICES LIBREOFFICE_EXTENSIONS LLVM_SLOT LLVM_TARGETS LUA_SINGLE_TARGET LUA_TARGETS NGINX_MODULES_HTTP NGINX_MODULES_MAIL NGINX_MODULES_STREAM OFFICE_IMPLEMENTATION OPENMPI_FABRICS OPENMPI_OFED_FEATURES OPENMPI_RM PERL_FEATURES PHP_TARGETS POSTGRES_TARGETS PYTHON_SINGLE_TARGET PYTHON_TARGETS QEMU_SOFTMMU_TARGETS QEMU_USER_TARGETS RUBY_TARGETS RUST_SYSROOTS SANE_BACKENDS UWSGI_PLUGINS VIDEO_CARDS VOICEMAIL_STORAGE XTABLES_ADDONS" # USE_EXPAND variables whose contents are not shown in package manager # output. Changes need discussion on gentoo-dev. diff --git a/sdk_container/src/third_party/portage-stable/profiles/base/package.use b/sdk_container/src/third_party/portage-stable/profiles/base/package.use index 16321a9c6a1..2e8dbb4db66 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/base/package.use +++ b/sdk_container/src/third_party/portage-stable/profiles/base/package.use @@ -1,6 +1,15 @@ # Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# Michał Górny (2025-10-25) +# Use FlexiBLAS by default. +sci-libs/flexiblas system-blas +sci-libs/lapack flexiblas deprecated lapacke +virtual/blas flexiblas +virtual/cblas flexiblas +virtual/lapack flexiblas +virtual/lapacke flexiblas + # Mike Gilbert (2025-01-12) # Requires >= lua-5.3. >=dev-lua/lutok-0.6 lua_single_target_lua5-4 @@ -12,6 +21,8 @@ dev-python/python-tests:3.11 python_targets_python3_11 dev-python/python-tests:3.12 python_targets_python3_12 dev-python/python-tests:3.13 python_targets_python3_13 dev-python/python-tests:3.13t python_targets_python3_13t +dev-python/python-tests:3.14 python_targets_python3_14 +dev-python/python-tests:3.14t python_targets_python3_14t # Arthur Zamarin (2024-03-23) # Used by pkgcheck, so let's make it easier for all developers to install it 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 b99cd9c46b8..5ee5e2e152e 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 @@ -53,10 +53,6 @@ app-emulation/wine-proton mingw # for now (bug #952113) (2025-03-05) -# 136.0 can't be compiled with "-rust-extensions". -~mail-client/thunderbird-136.0 rust-extensions - # Ionen Wolkens (2024-12-24) # ebuild currently only support luajit, spare users from having # to set it by forcing it here (bug #946881) @@ -82,6 +78,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.91.0 llvm_slot_21 +dev-lang/rust-bin:1.91.0 llvm_slot_21 dev-lang/rust:1.90.0 llvm_slot_20 dev-lang/rust-bin:1.90.0 llvm_slot_20 dev-lang/rust:1.89.0 llvm_slot_20 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 794f537d80f..489969f2918 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,14 +6,35 @@ # New entries go on top. +# Sam James (2025-10-29) +# Help Portage resolve app-crypt/gnupg[verify-sig] with the app-alternatives/gpg +# transition. The any-of dep in verify-sig.eclass helps a bit, but it struggles +# after we made app-alternatives/gpg depend on newer gnupg to fix another problem. +# Users can unmask these locally in /etc/portage/profile/package.use.mask once +# their upgrade is done. +app-crypt/gnupg verify-sig +app-crypt/pinentry verify-sig +dev-libs/libgcrypt verify-sig +dev-libs/libgpg-error verify-sig +dev-libs/libksba verify-sig + +# Volkmar W. Pogatzki (2025-10-16) +# No suitable versions of dev-libs/protobuf available. +~dev-java/protobuf-java-4.33.0 system-protoc + +# Fabian Groffen (2025-10-18) +# PAM support is discouraged due to not being secure via Exim +# https://bugs.gentoo.org/964377 +mail-mta/exim pam + # Andreas Sturmlechner (2025-10-05) # Preparation for sci-geosciences/liblas removal. Bug #957235 <=dev-games/openscenegraph-3.6.5-r117 las -<=dev-games/openscenegraph-openmw-3.6_p20221115-r2 las +<=dev-games/openscenegraph-openmw-3.6_p20251012 las # Volkmar W. Pogatzki (2025-10-03) # No suitable versions of dev-libs/protobuf available. -=dev-java/protobuf-java-4.32.1 system-protoc +~dev-java/protobuf-java-4.32.1 system-protoc # Michał Górny (2025-09-27) # Building NumPy with ILP64 LAPACK can cause revdeps to segfault if they @@ -149,10 +170,6 @@ kde-frameworks/knewstuff:5 opds # most places. dev-build/meson test-full -# Volkmar W. Pogatzki (2025-01-09) -# No suitable versions of dev-libs/protobuf available. -=dev-java/protobuf-java-4.29.3 system-protoc - # Michał Górny (2024-12-31) # None of the sci-libs/symengine versions work with the modern versions # of dev-libs/boost in Gentoo. diff --git a/sdk_container/src/third_party/portage-stable/profiles/base/package.use.stable.mask b/sdk_container/src/third_party/portage-stable/profiles/base/package.use.stable.mask index ee94a171de0..829ec04a9a1 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/base/package.use.stable.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/base/package.use.stable.mask @@ -4,6 +4,10 @@ # New entries go on top. # Please use the same syntax as in package.use.mask. +# Alexey Shvetsov (2025-10-29) +# Need non-yet-stable caffe2 +sci-chemistry/gromacs nnpot + # Sam James (2025-10-10) # Needs not-yet-stable GCC 15. dev-lang/python tail-call-interp diff --git a/sdk_container/src/third_party/portage-stable/profiles/desc/amdgpu_targets.desc b/sdk_container/src/third_party/portage-stable/profiles/desc/amdgpu_targets.desc index 17abb8d6d2b..ee4029f1dc9 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/desc/amdgpu_targets.desc +++ b/sdk_container/src/third_party/portage-stable/profiles/desc/amdgpu_targets.desc @@ -16,6 +16,7 @@ gfx90a - CDNA2 Accelerator, codename aldebaran, including AMD Instinct MI200 ser gfx940 - CDNA3 Accelerator, codename aqua_vangaram, MI300A rev 0 gfx941 - CDNA3 Accelerator, codename aqua_vangaram, MI300X rev 0 gfx942 - CDNA3 Accelerator, codename aqua_vangaram, MI300A and MI300X rev >=1 +gfx950 - CDNA4 Accelerator, including AMD Instinct MI350X and MI355X gfx1010 - RDNA GPU, codename navi10, including Radeon RX 5700XT/5700/5700M/5700B/5700XTB/5600XT/5600/5600M, Radeon Pro 5700XT/5700, Radeon Pro W5700X/W5700 gfx1011 - RDNA GPU, codename navi12, including Radeon Pro 5600M/V520 gfx1012 - RDNA GPU, codename navi14, including Radeon RX 5500XT/5500/5500M/5500XTB/5300/5300M, Radeon Pro 5500XT/5500M/5300/5300M, Radeon Pro W5500X/W5500/W5500M/W5300M diff --git a/sdk_container/src/third_party/portage-stable/profiles/desc/openmpi_fabrics.desc b/sdk_container/src/third_party/portage-stable/profiles/desc/openmpi_fabrics.desc index 8c32d42335a..44edf288cfe 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/desc/openmpi_fabrics.desc +++ b/sdk_container/src/third_party/portage-stable/profiles/desc/openmpi_fabrics.desc @@ -1,9 +1,9 @@ -# Copyright 1999-2022 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # This file contains descriptions of OPENMPI_FABRICS USE_EXPAND flags. # Keep it sorted. -ofed - OFED RDMA stack (InfiniBand and iWARP) knem - High-Performance Intra-Node MPI Communication +ofed - OFED RDMA stack (InfiniBand and iWARP) diff --git a/sdk_container/src/third_party/portage-stable/profiles/features/big-endian/package.mask b/sdk_container/src/third_party/portage-stable/profiles/features/big-endian/package.mask index 85627bbd102..55fc18daa28 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/features/big-endian/package.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/features/big-endian/package.mask @@ -127,6 +127,11 @@ media-libs/zimg # https://gitlab.freedesktop.org/wayland/weston/-/issues/739 dev-libs/weston +# eluks (2025-09-07) +# Hard depends on gui-libs/gtk[wayland] since version 48.3, +# while "gui-libs/gtk wayland" is in big-endian package.use.mask +>=gnome-base/gnome-control-center-48.3 + # matoro (2023-04-10) # Explicit no-support for BE (#801238) media-libs/libldac diff --git a/sdk_container/src/third_party/portage-stable/profiles/features/big-endian/package.use.mask b/sdk_container/src/third_party/portage-stable/profiles/features/big-endian/package.use.mask index 5c534d769cb..3ea35553250 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/features/big-endian/package.use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/features/big-endian/package.use.mask @@ -49,16 +49,22 @@ mail-client/thunderbird system-av1 # matoro (2023-04-11) # dev-libs/weston casualties (#833010) # https://gitlab.freedesktop.org/wayland/weston/-/issues/739 -gui-libs/gtk wayland app-i18n/ibus wayland app-office/libreoffice gtk4 -gnome-base/gnome-control-center wayland -sys-apps/xdg-desktop-portal-gnome wayland -net-libs/webkit-gtk:6 wayland +app-text/evince wayland dev-libs/libportal wayland -gnome-extra/tecla wayland +dev-util/glade wayland +gnome-base/gnome-control-center wayland gnome-base/gnome-shell wayland gnome-base/nautilus wayland +gnome-extra/tecla wayland +gui-libs/gtk wayland +gui-libs/vte wayland +media-libs/clutter wayland +media-libs/clutter-gtk wayland +net-libs/webkit-gtk:6 wayland +sys-apps/xdg-desktop-portal-gnome wayland +x11-libs/vte wayland # matoro (2023-04-10) # media-libs/libldac casualties (#80238) 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 d9c16f97219..1afdca4f4da 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 @@ -1,6 +1,15 @@ # Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# Z. Liu (2025-10-18) +# nvidia-drivers only works against glibc. +dev-python/nvidia-ml-py + +# Robert Siebeck (2025-10-17) +# Binary compiled against glibc +# Bug #964371 +net-im/signal-desktop-bin + # PPN-SD (2025-10-08) # Binary bazel is compiled against glibc >=app-i18n/mozc-2.31.5851.102 @@ -300,6 +309,7 @@ dev-games/ps2-packer dev-java/openjdk-bin dev-java/openjdk-jre-bin dev-lang/dafny-bin +dev-lang/deno-bin dev-libs/luise dev-libs/nwjs dev-perl/Lab-Zhinst @@ -398,6 +408,7 @@ sci-chemistry/cara-bin sci-electronics/labone sci-libs/aotriton-bin sci-libs/mkl +sci-mathematics/geogebra-bin sci-mathematics/gimps sci-misc/jupyterlab-desktop-bin sci-misc/netlogo-bin 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 5fedd43b8de..c4b5b2ab377 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 @@ -16,11 +16,6 @@ net-mail/cyrus-imapd test media-video/ffmpeg v4l media-video/ffmpeg-compat v4l -# Ionen Wolkens (2025-03-10) -# dev-util/nvidia-cuda-toolkit is unavailable on musl -media-video/ffmpeg npp -media-video/ffmpeg-compat npp - # Sam James (2025-01-08) # Depends on currently-masked elogind version on musl profiles (bug #947739) sys-libs/pam elogind @@ -174,8 +169,9 @@ media-libs/opencv atlas media-video/ffmpeg amf media-video/ffmpeg-compat amf media-video/handbrake amf -net-fs/openafs tsm net-analyzer/nagios-plugin-check_raid megaraid-sas +net-fs/openafs tsm +net-misc/yt-dlp deno sys-apps/hwloc gl www-client/qutebrowser widevine 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 eb8611c8737..766bc9ca3b8 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 @@ -24,7 +24,9 @@ app-portage/emlop # requiring Rust to install, and their dependencies. dev-python/gherkin-official dev-python/pytest-bdd +dev-python/pytest-describe dev-python/uv-build +sys-auth/ssh-ldap-pubkey # Sebastian Pipping (2025-06-20) # Requires masked packages (bug #958030) @@ -335,6 +337,7 @@ dev-python/orjson dev-python/os-client-config dev-python/osc-lib dev-python/paramiko +dev-python/patiencediff dev-python/pooch dev-python/pydantic dev-python/pydantic-core @@ -364,7 +367,6 @@ dev-python/secretstorage dev-python/selenium dev-python/service-identity dev-python/setuptools-rust -dev-python/spur dev-python/sshpubkeys dev-python/sshtunnel dev-python/tempest 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 34f7d1593aa..d1d536e5781 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 @@ -215,7 +215,6 @@ dev-python/httpx-socks test dev-python/hypercorn test dev-python/keystoneauth1 test dev-python/libtmux test -dev-python/locket test dev-python/pyjwt test dev-python/python-keystoneclient test dev-python/python-socks test @@ -276,16 +275,6 @@ x11-misc/xscreensaver gdm # Rust has no ${arch} keyword dev-vcs/mercurial rust -# Joonas Niilola (2020-10-02) -# Sam James (2021-03-11) -# Michael Orlitzky (2024-07-09) -# Dependency only keyworded on specific ${arch} profiles. ->=dev-lang/php-8.3.9 avif -dev-libs/efl avif -kde-frameworks/kimageformats avif -media-libs/gd avif -net-libs/webkit-gtk avif - # Mart Raudsepp (2020-08-02) # ${arch} has no Rust support, needed by newer gnome-base/librsvg, et al >=media-gfx/eog-3.33.1 svg 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 fc2a51e4250..983b2ae79fc 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/license_groups +++ b/sdk_container/src/third_party/portage-stable/profiles/license_groups @@ -25,7 +25,7 @@ FSF-APPROVED @GPL-COMPATIBLE AFL-2.1 AFL-3.0 Apache-1.0 Apache-1.1 APSL-2 BSD-4 # Note that the FSF lists these as nonfree: Artistic NOSA Watcom-1.0 # We exclude NOSA and Watcom-1.0, but we keep Artistic because Debian # considers it DFSG-free. -OSI-APPROVED-FREE 0BSD AFL-3.0 AGPL-3 AGPL-3+ Apache-1.1 Apache-2.0 APL-1.0 APSL-2 Artistic Artistic-2 BlueOak-1.0.0 Boost-1.0 BSD BSD-2 CDDL CNRI CPAL-1.0 CPL-1.0 ECL-2.0 EPL-1.0 EPL-2.0 EUPL-1.1 EUPL-1.2 GPL-1 GPL-1+ GPL-2 GPL-2+ GPL-3 GPL-3+ HPND IBM IPAfont ISC LBNLBSD LGPL-2 LGPL-2+ LGPL-2.1 LGPL-2.1+ LGPL-3 LGPL-3+ LPL-1.02 LPPL-1.3c MirOS MIT MIT-0 MPL-1.0 MPL-1.1 MPL-2.0 Ms-PL Ms-RL nethack OFL-1.1 OSL-2.1 PHP-3 PHP-3.01 POSTGRESQL PSF-2 QPL-1.0 Sleepycat Unicode-3.0 Unicode-DFS-2015 Unicode-DFS-2016 Unlicense UPL-1.0 UoI-NCSA W3C wxWinLL-3 ZLIB ZPL +OSI-APPROVED-FREE 0BSD AFL-3.0 AGPL-3 AGPL-3+ Apache-1.1 Apache-2.0 APL-1.0 APSL-2 Artistic Artistic-2 BlueOak-1.0.0 Boost-1.0 BSD BSD-1 BSD-2 CDDL CNRI CPAL-1.0 CPL-1.0 ECL-2.0 EPL-1.0 EPL-2.0 EUPL-1.1 EUPL-1.2 GPL-1 GPL-1+ GPL-2 GPL-2+ GPL-3 GPL-3+ HPND IBM IPAfont ISC LBNLBSD LGPL-2 LGPL-2+ LGPL-2.1 LGPL-2.1+ LGPL-3 LGPL-3+ LPL-1.02 LPPL-1.3c MirOS MIT MIT-0 MPL-1.0 MPL-1.1 MPL-2.0 Ms-PL Ms-RL nethack OFL-1.1 OSL-2.1 PHP-3 PHP-3.01 POSTGRESQL PSF-2 QPL-1.0 Sleepycat Unicode-3.0 Unicode-DFS-2015 Unicode-DFS-2016 Unlicense UPL-1.0 UoI-NCSA W3C wxWinLL-3 ZLIB ZPL # Misc licenses that are probably free software, i.e. follow the # Free Software Definition at https://www.gnu.org/philosophy/free-sw.html @@ -34,7 +34,7 @@ OSI-APPROVED-FREE 0BSD AFL-3.0 AGPL-3 AGPL-3+ Apache-1.1 Apache-2.0 APL-1.0 APSL # Licenses in this list should NOT appear directly or indirectly in # @FSF-APPROVED or @OSI-APPROVED. # Note: Licenses for fonts should be included in @MISC-FREE-DOCS. -MISC-FREE AIFFWriter.m Allegro alternate AMPAS Base64 BEER-WARE boehm-gc BSD-1 BSD-2-with-patent BSD-with-attribution BSD-with-disclosure buddy bufexplorer.vim BZIP2 CAOSL CDDL-1.1 CDDL-Schily coldspringharbor CPL-0.5 Crypt-IDEA curl DES docbook dom4j DUMB-0.9.3 ElementTree Emacs ErlPL-1.1 FastCGI feh FFT2D File-MMagic Flashpix FLEX flexmock FLTK freetts FVWM gd gsm HTML-Tidy iASL icu IDPL imagemagick Info-ZIP inner-net ipadic Ispell JasPer2.0 JDOM JOVE Khronos-CLHPP LambdaMOO LIBGLOSS libmng libpng libpng2 libtiff LLGPL-2.1 LPPL-1.0 LPPL-1.3 lsof matplotlib Mini-XML minpack MIT-with-advertising mm mpich2 NCSA-AMD NCSA-HDF netcat NEWLIB ngrep NPSL-0.95 Old-MIT openafs-krb5-a Openwall otter par PCRE perforce photopc PHP-2.02 pngcrush pngnq Princeton psutils rc rdisc regexp-UofT repoze RSA RtMidi rwpng sash scanlogd sdlsasteroids Sendmail Sendmail-Open-Source SMAIL Snd Spencer-99 SSLeay SunSoft symlinks Sympow-BSD tablelist tcltk tcp_wrappers_license TeX TeX-other-free TextMate-bundle the-Click-license Time-Format Time-modules tm-align torque-2.5 Toyoda trio UCAR-Unidata unicode VTK w3m wm2 X11-Lucent xbatt xboing XC Xdebug xtrs ZSH +MISC-FREE AIFFWriter.m Allegro alternate AMPAS Base64 BEER-WARE boehm-gc BSD-2-with-patent BSD-with-attribution BSD-with-disclosure buddy bufexplorer.vim BZIP2 CAOSL CDDL-1.1 CDDL-Schily coldspringharbor CPL-0.5 Crypt-IDEA curl DES docbook dom4j DUMB-0.9.3 ElementTree Emacs ErlPL-1.1 FastCGI feh FFT2D File-MMagic Flashpix FLEX flexmock FLTK freetts FVWM gd gsm HTML-Tidy iASL icu IDPL imagemagick Info-ZIP inner-net ipadic Ispell JasPer2.0 JDOM JOVE Khronos-CLHPP LambdaMOO LIBGLOSS libmng libpng libpng2 libtiff LLGPL-2.1 LPPL-1.0 LPPL-1.3 lsof matplotlib Mini-XML minpack MIT-with-advertising mm mpich2 NCSA-AMD NCSA-HDF netcat NEWLIB ngrep NPSL-0.95 Old-MIT openafs-krb5-a Openwall otter par PCRE perforce photopc PHP-2.02 pngcrush pngnq Princeton psutils rc rdisc regexp-UofT repoze RSA RtMidi rwpng sash scanlogd sdlsasteroids Sendmail Sendmail-Open-Source SMAIL Snd Spencer-99 SSLeay SunSoft symlinks Sympow-BSD tablelist tcltk tcp_wrappers_license TeX TeX-other-free TextMate-bundle the-Click-license Time-Format Time-modules tm-align torque-2.5 Toyoda trio UCAR-Unidata unicode VTK w3m wm2 X11-Lucent xbatt xboing XC Xdebug xtrs ZSH # Metaset for all free software FREE-SOFTWARE @FSF-APPROVED @OSI-APPROVED-FREE @MISC-FREE diff --git a/sdk_container/src/third_party/portage-stable/profiles/package.deprecated b/sdk_container/src/third_party/portage-stable/profiles/package.deprecated index a43f1664a16..f6f355d97f8 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/package.deprecated +++ b/sdk_container/src/third_party/portage-stable/profiles/package.deprecated @@ -17,6 +17,22 @@ #--- END OF EXAMPLES --- +# Michał Górny (2025-10-26) +# No activity since 2022. Already requires extensive patching, +# broken with Python 3.14. +dev-python/httpretty + +# Michał Górny (2025-10-26) +# Upstream discontinued the PyPI package, expects people to vendor it +# instead. They also made random changes that make backporting fixes +# hard. +dev-python/click-plugins + +# Alfred Wingate (2025-10-18) +# Only exists temporarily to facilitate upgrades for exaile. +# Bug 892854 +dev-python/berkeleydb + # Michał Górny (2025-10-01) # dev-python/passlib is unmaintained upstream (last release in 2020), # and we keep having to patch breakage out. Packages really need 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 59e72640743..d0677c1d685 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,32 @@ #--- END OF EXAMPLES --- +# Mike Gilbert (2025-10-29) +# No longer used by sys-boot/grub. +# Removal on 2025-11-28. +sec-keys/openpgp-keys-danielkiper + +# Arthur Zamarin (2025-10-25) +# EAPI=7, maintainer-needed, no rev deps, source digest mismatch. +# Removal on 2025-11-24. Bugs #965097, #927089. +dev-libs/eventlog + +# Michał Górny (2025-10-21) +# Old backport with no revdeps left. +# Removal on 2025-11-20. Bug #964780. +dev-python/backports-ssl-match-hostname + +# Thomas Beierlein (2025-10-14) +# Depends on Qt5. +# Superseded by media-radio/wsjtx_improved. While both are based on the same +# base code wsjtx_improved will be more actual AND provides Qt6 support. +# Removal on 2025-11-13. Bug #955965. +media-radio/wsjtx + +# Sam James (2025-10-13) +# Crashes in memtodest when handling PATH. Not yet reported upstream. +=app-shells/dash-0.5.13.1 + # Andreas Sturmlechner (2025-10-12) # Dead upstream, depends on Qt5. # Bug #949899, #953384. Removal on 2025-11-11. @@ -91,6 +117,8 @@ net-libs/NativeThread # # A common issue with 6.10 is builds failing to find Qt private headers # as it (now) requires searching for e.g. GuiPrivate in CMakeLists.txt. +=dev-python/pyqt6-6.10* +=dev-python/pyqt6-webengine-6.10* =dev-python/pyside-6.10.0* =dev-qt/qt-docs-6.10.0* =dev-qt/qt3d-6.10.0* @@ -139,25 +167,6 @@ net-libs/NativeThread # Removal on 2025-11-04. Bug #957460. media-sound/lmms -# Andreas Sturmlechner (2025-10-05) -# Dead upstream, replaced by sci-libs/pdal in most places. -# Many bugs: #725938, #742668, #944868, #957235, #961718 -# Removal on 2025-11-01. -sci-geosciences/liblas - -# Andreas Sturmlechner (2025-10-05) -# Last release 8 years ago, broken by CMake 4, unclear purpose without any -# revdeps. Bugs #800608, #866377, #955465. Removal on 2025-11-01. -dev-build/cmake-fedora - -# Sam James (2025-10-04) -# Has some regressions: -# * autoconf (https://lore.kernel.org/dash/ba3014e6-b1f6-4b6b-99ac-524dafd22f33@SystematicSW.ab.ca/) -# (https://savannah.gnu.org/support/?111321) -# * expansion (https://lore.kernel.org/dash/d3a79537-be6a-4e5d-afe6-8b8d9dd57955@reillybrogan.com/) -# * parsing (https://lore.kernel.org/dash/105f1d0e-f7c4-431b-b95d-efad442aaa34@reillybrogan.com/) -=app-shells/dash-0.5.13 - # Lukas Schmelting (2025-10-03) # Breaks e.g. in combination with gnome-shell-48.4 >=dev-libs/glib-2.86.0 @@ -166,140 +175,12 @@ dev-build/cmake-fedora >=dev-util/gdbus-codegen-2.86.0 >=dev-util/glib-utils-2.86.0 -# Andreas Sturmlechner (2025-10-01) -# Remaining old EAPI-7 based cmake.eclass consumers after 4 years of -# tracking EAPI-7 removal. Port to EAPI-8 if you can. -# Bugs #957246, #957403, #957788, #957819, #957869, #957918, #958068, -# #958255, #958317, #958353, #958596, #958651, #960286 -# Removal on 2025-11-01. -dev-games/newton -games-action/lugaru -games-action/supermariowar -games-arcade/ninvaders -games-arcade/slimevolley -games-engines/frobtads -games-fps/avp -games-kids/memonix -games-puzzle/meandmyshadow -games-server/pvpgn -games-strategy/freesynd -games-strategy/maxr -games-util/antimicro -games-util/qjoypad - -# Andreas Sturmlechner (2025-09-30) -# Unmaintained in ::gentoo, EAPI-7 based, a *lot* of ancient unsolved bugs -# #576768, #594846, #601126, #724848, #770802, #770994, #832774, #925000, -# #925001, #926243, #926244, #944452. Removal on 2025-10-29. -media-libs/raspberrypi-userland -media-libs/raspberrypi-userland-bin - -# Andreas Sturmlechner (2025-09-30) -# EAPI-7 based, depends on dead media-libs/raspberrypi-userland, broken -# by current available version anyway. -# Several bugs #770802, #881797, #926326, #928521. Removal on 2025-10-29. -media-plugins/vdr-rpihddevice - -# Andreas Sturmlechner (2025-09-30) -# Dead upstream, EAPI-7 based, no one else is left packaging this. -# Bug #957218. Removal on 2025-10-29. -net-firewall/itval - -# Andreas Sturmlechner (2025-09-30) -# Unmaintained in ::gentoo, EAPI-7 based, broken by CMake-4, boost-1.89 -# but most importantly Google according to upstream user reports. -# Bugs #907861, #957553, #957554, #963466. Removal on 2025-10-29. -net-misc/grive - -# Andreas Sturmlechner (2025-09-30) -# Dead upstream, EAPI-7 based, no one else is left packaging this. -# Bugs #952796, #957240. Removal on 2025-10-29. -sys-auth/google-authenticator-wrappers - -# Jason A. Donenfeld (2025-09-30) -# Upstream is dead, package is broken. Removal on 2025-10-29. -net-analyzer/speedtest++ - -# Andreas Sturmlechner (2025-09-30) -# Unmaintained in ::gentoo, EAPI-7 based, almost no one else is left -# packaging this. Removal on 2025-10-29. -sys-fs/reiserfs-defrag - -# Andreas Sturmlechner (2025-09-30) -# Unmaintained in ::gentoo, EAPI-7 based, broken by CMake 4. -# If you want to keep it, maintain it. -# Bugs #789756, #951884, #956413, #957572. Removal on 2025-10-29. -x11-wm/ctwm - -# Andreas Sturmlechner (2025-09-30) -# Unmaintained in ::gentoo, EAPI-7 based, almost no one else is left -# packaging this. Removal on 2025-10-29. -sys-auth/pam_abl - -# Andreas Sturmlechner (2025-09-30) -# No stable revdeps, destabilising package together with cleanup -# of EAPI-7 based -r2. media-libs/aften-0.0.8-r3 is available -# for ~amd64, ~ppc and ~x86. - (2025-09-29) -# Unmaintained in ::gentoo, EAPI-7 based, broken by CMake 4 and modern C++ -# Package in search of a dedicated maintainer. -# Bugs #931705, #949793, #957249. Removal on 2025-10-29. -net-p2p/fms - -# Andreas Sturmlechner (2025-09-29) -# Abandoned upstream for many years, no one else is packaging this. -# Bugs #851885, #951509, #955877. Removal on 2025-10-29. -sys-apps/thunderbolt-software-user-space - -# Andreas Sturmlechner (2025-09-29) -# Effectively unmaintained in Gentoo for 5 years, EAPI-7 based, 3.17.2 -# version bump pending in bug #962079. Removal on 2025-10-29. -x11-terms/roxterm - -# Andreas Sturmlechner (2025-09-29) -# No stable revdeps, destabilising package together with cleanup of -# really outdated version 3.17.0. sci-libs/alglib-3.20.0 is available -# for ~amd64 and ~x86. - (2025-09-28) -# Unmaintained for ages, thus not deserving of stable keywords. -# media-video/ccextractor-0.89 is available for ~amd64 and ~x86. - (2025-09-23) -# Abandoned and barely functional, and will just keep getting worse if -# it does not keep up with website changes. net-misc/youtube-viewer -# can be used as an alternative albeit it requires a YouTube API key. -# Removal on 2025-10-23. -net-misc/ytfzf - # Sam James (2025-09-21) # Breaks (common) mt7921e WiFi driver with a hang in many cases, affecting # not just network. See bug #963106. =sys-kernel/linux-firmware-20250917 =sys-kernel/linux-firmware-20251011 -# Andreas Sturmlechner (2025-09-16) -# Appears dead upstream w/ last release from 2016, no reponse to Qt5 EOL -# notice, only sporadic code changes for a long time w/ last commit from -# 7 months ago. Removal on 2025-10-16. Bug #955964 -net-p2p/classified-ads - -# Andreas Sturmlechner (2025-09-16) -# Abandoned upstream, based on Qt5, "must be run as root", then fails to -# start w/ current kde-plasma/kdesu-gui[X] within Wayland sessions too. -# Removal on 2025-10-16. Bug #957179 -sys-boot/unetbootin - -# Viorel Munteanu (2025-09-16) -# Masked for testing. This package is supposed to be installed in the livecd, -# not on user's system. We need a few more reports of it working before -# unmasking. -app-misc/calamares-gentoo-livecd - # Viorel Munteanu (2025-09-16) # Unmaintained upstream, last release more than 7 years old. # Old data is getting harder to read. @@ -312,36 +193,6 @@ sys-fs/encfs # https://github.com/pyparsing/pyparsing/issues/618 =dev-python/pyparsing-3.2.4 -# Conrad Kostecki (2025-09-14) -# Replaced by >=media-libs/libv4l-1.30.1[utils], as merged by upstream. -# Bugs #953534 and #962841. -# Removal on 2025-09-29. -sys-apps/edid-decode - -# Rick Farina (2025-09-11) -# Dead upstream, fails to compile on modern gcc. Bug #919250 -# Removal on 2025-10-12 -net-wireless/mdk - -# Michał Górny (2025-09-06) -# Abandoned. Incompatible with py3.14. Last release in 2020. -# No revdeps left. -# Removal on 2025-10-06. Bug #962431. -dev-python/timeout-decorator - -# Michał Górny (2025-09-06) -# dev-python/partd is a dep of dask which we removed in 2024. It -# test-depends on dev-python/locket which was last updated in 2022. -# That one in turn test-depends on dev-python/spur which was last -# updated in 2023 and is pinned to old dev-python/paramiko version. -# Its SSH part is not tested by us at all, and the "spur.local" -# alternative without SSH was last released in 2016. -# These packages have no revdeps outside themselves left. -# Removal on 2025-10-06. Bug #962404. -dev-python/locket -dev-python/partd -dev-python/spur - # Eli Schwartz (2025-09-01) # Effectively unmaintained in Gentoo. Upstream dead for 8 years. Stuck # on py3.11, but no testsuite and still has py2-specific source code so @@ -469,6 +320,7 @@ dev-db/mysql:8.4 >=xfce-base/exo-4.21 >=xfce-base/garcon-4.21 >=xfce-base/libxfce4ui-4.21 +>=xfce-base/orage-4.21 >=xfce-base/thunar-4.21 >=xfce-base/tumbler-4.21 >=xfce-base/xfce4-appfinder-4.21 diff --git a/sdk_container/src/third_party/portage-stable/profiles/targets/desktop/gnome/package.use b/sdk_container/src/third_party/portage-stable/profiles/targets/desktop/gnome/package.use index 0750f01a2a4..117d7493837 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/targets/desktop/gnome/package.use +++ b/sdk_container/src/third_party/portage-stable/profiles/targets/desktop/gnome/package.use @@ -1,6 +1,11 @@ # Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# Sam James (2025-10-18) +# Needed by net-misc/gnome-remote-desktop. Default +rdp needs freerdp[server]. +net-misc/freerdp server +x11-wm/mutter screencast + # Mart Raudsepp (2022-01-05) # gnome-boxes requires spice-gtk[vala] net-misc/spice-gtk vala diff --git a/sdk_container/src/third_party/portage-stable/profiles/targets/desktop/make.defaults b/sdk_container/src/third_party/portage-stable/profiles/targets/desktop/make.defaults index 080cdbda9bc..21b8865ee03 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/targets/desktop/make.defaults +++ b/sdk_container/src/third_party/portage-stable/profiles/targets/desktop/make.defaults @@ -1,4 +1,4 @@ # Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -USE="a52 aac acpi alsa bluetooth branding cairo cdda cdr cups dbus dri dts dvd dvdr elogind encode exif flac gif gpm gtk gui icu jpeg lcms libnotify mad mng mp3 mp4 mpeg ogg opengl pango pdf png policykit ppds qml qt6 qt5 sdl sound spell startup-notification svg tiff truetype vorbis udev udisks unicode upower usb vulkan wayland wxwidgets X xcb xft x264 xml xv xvid" +USE="a52 aac acpi alsa avif bluetooth branding cairo cdda cdr cups dbus dri dts dvd dvdr elogind encode exif flac gif gpm gtk gui icu jpeg jpegxl lcms libnotify mad mng mp3 mp4 mpeg ogg opengl pango pdf png policykit ppds qml qt6 qt5 sdl sound spell startup-notification svg tiff truetype vorbis udev udisks unicode upower usb vulkan wayland webp wxwidgets X xcb xft x264 xml xv xvid" diff --git a/sdk_container/src/third_party/portage-stable/profiles/targets/desktop/package.use b/sdk_container/src/third_party/portage-stable/profiles/targets/desktop/package.use index 1821cd69d53..99ff316ec9c 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/targets/desktop/package.use +++ b/sdk_container/src/third_party/portage-stable/profiles/targets/desktop/package.use @@ -1,6 +1,14 @@ # Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# Andreas Sturmlechner (2025-10-23) +# Required by kde-plasma/kscreen +kde-frameworks/kimageformats avif + +# Sam James (2025-10-18) +# media-libs/freetype works better with media-libs/harfbuzz support. +media-libs/freetype harfbuzz + # Matt Whitlock (2025-04-03) # Desktop users will probably want QR code scanning in Bitcoin-Qt, but # enabling USE=qrcode by default in the ebuild requires also enabling diff --git a/sdk_container/src/third_party/portage-stable/profiles/updates/1Q-2024 b/sdk_container/src/third_party/portage-stable/profiles/updates/1Q-2024 index fc07b339020..98097d4124b 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/updates/1Q-2024 +++ b/sdk_container/src/third_party/portage-stable/profiles/updates/1Q-2024 @@ -18,7 +18,6 @@ move sys-devel/remake dev-build/remake move dev-util/valgrind dev-debug/valgrind move dev-util/meson-format-array dev-build/meson-format-array move dev-util/meson dev-build/meson -move dev-util/cmake-fedora dev-build/cmake-fedora move dev-util/rocm-cmake dev-build/rocm-cmake move dev-util/tinycmmc dev-build/tinycmmc move dev-util/cmake dev-build/cmake diff --git a/sdk_container/src/third_party/portage-stable/profiles/updates/3Q-2025 b/sdk_container/src/third_party/portage-stable/profiles/updates/3Q-2025 index 524d584de47..8c30e5bbf00 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/updates/3Q-2025 +++ b/sdk_container/src/third_party/portage-stable/profiles/updates/3Q-2025 @@ -4,3 +4,4 @@ move llvm-core/clang-runtime llvm-runtimes/clang-runtime slotmove media-libs/glycin-loaders 0 1 move sys-apps/moar sys-apps/moor slotmove kde-frameworks/ksecretd-services 0 6 +move sci-libs/HighFive sci-libs/highfive diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/checkpolicy/Manifest b/sdk_container/src/third_party/portage-stable/sys-apps/checkpolicy/Manifest index f431c93cde7..db09f8de074 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/checkpolicy/Manifest +++ b/sdk_container/src/third_party/portage-stable/sys-apps/checkpolicy/Manifest @@ -1,3 +1 @@ -DIST checkpolicy-3.6.tar.gz 70684 BLAKE2B d32a8b86897bd4a08caf61a096a691c8d049fa7b5b4561f4847e0dfbb62a82fc6c3ddb5be163c7cd6163491c50513aec14e4c67842f256f48688b26178c2887a SHA512 0d48fb385b4d1e66d562e40b6e794406f46d8803cc504705b26547130cb13b65fab5fdb4fc032b1c95d4f91862ff134a89fffde854c5ce466c2dd2657e416070 -DIST checkpolicy-3.7.tar.gz 74992 BLAKE2B 78f419fa89981ad16364b3d6406e313fda5230588063c9a9dbb70535f0421c5b402b9c86d2f63d4ab7b8119c38044b6dc556fb2dd40240428c914cb25a2facbe SHA512 f428edcbe17bd5b5f22dd827cf21c89c2cf645bae6c0342c6663743cafd9f8a8d7c8b5a1b48c04569fdb0cce11ffcb6c0b6d7fa76075a1a274948ba418bcc5b4 DIST checkpolicy-3.8.1.tar.gz 76246 BLAKE2B 19933bc46dfa9cdca6996ac49da2054aec5a4a565d0f71d69c2f05be725b73c7b355019c083bb7624b574d091cb61a123d55b0a904d561a59336059d0d2216c1 SHA512 279f4ebcaf8a62dca5c09c46989c76c34c83f3925b49e64c4a055f1b60795d7c732fbae272975eef654ec02a352b35a2eb8390d55c99789dffdf982ded7b210f diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/checkpolicy/checkpolicy-3.6.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/checkpolicy/checkpolicy-3.6.ebuild deleted file mode 100644 index 8f27d558168..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-apps/checkpolicy/checkpolicy-3.6.ebuild +++ /dev/null @@ -1,53 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI="7" - -inherit toolchain-funcs - -MY_PV="${PV//_/-}" -MY_P="${PN}-${MY_PV}" - -DESCRIPTION="SELinux policy compiler" -HOMEPAGE="http://userspace.selinuxproject.org" - -if [[ ${PV} == 9999 ]] ; then - inherit git-r3 - EGIT_REPO_URI="https://github.com/SELinuxProject/selinux.git" - S="${WORKDIR}/${P}/${PN}" -else - SRC_URI="https://github.com/SELinuxProject/selinux/releases/download/${MY_PV}/${MY_P}.tar.gz" - KEYWORDS="amd64 arm arm64 ~mips ~riscv x86" - S="${WORKDIR}/${MY_P}" -fi - -LICENSE="GPL-2" -SLOT="0" -IUSE="debug" - -RDEPEND="~sys-libs/libsepol-${PV}" -DEPEND="${RDEPEND}" -BDEPEND="sys-devel/flex - sys-devel/bison" - -src_compile() { - emake \ - CC="$(tc-getCC)" \ - YACC="bison -y" \ - LIBDIR="\$(PREFIX)/$(get_libdir)" -} - -src_install() { - default - - if use debug; then - dobin "${S}/test/dismod" - dobin "${S}/test/dispol" - fi -} - -pkg_postinst() { - if ! tc-is-cross-compiler; then - einfo "This checkpolicy can compile version `checkpolicy -V | cut -f 1 -d ' '` policy." - fi -} diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/checkpolicy/checkpolicy-3.7-r1.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/checkpolicy/checkpolicy-3.7-r1.ebuild deleted file mode 100644 index 302c1642e08..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-apps/checkpolicy/checkpolicy-3.7-r1.ebuild +++ /dev/null @@ -1,53 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI="8" - -inherit toolchain-funcs - -MY_PV="${PV//_/-}" -MY_P="${PN}-${MY_PV}" - -DESCRIPTION="SELinux policy compiler" -HOMEPAGE="http://userspace.selinuxproject.org" - -if [[ ${PV} == 9999 ]] ; then - inherit git-r3 - EGIT_REPO_URI="https://github.com/SELinuxProject/selinux.git" - S="${WORKDIR}/${P}/${PN}" -else - SRC_URI="https://github.com/SELinuxProject/selinux/releases/download/${MY_PV}/${MY_P}.tar.gz" - KEYWORDS="amd64 arm arm64 ~mips ~riscv x86" - S="${WORKDIR}/${MY_P}" -fi - -LICENSE="GPL-2" -SLOT="0" -IUSE="debug" - -RDEPEND=">=sys-libs/libsepol-${PV}:=[static-libs(+)]" -DEPEND="${RDEPEND}" -BDEPEND="sys-devel/flex - sys-devel/bison" - -src_compile() { - emake \ - CC="$(tc-getCC)" \ - YACC="bison -y" \ - LIBDIR="\$(PREFIX)/$(get_libdir)" -} - -src_install() { - default - - if use debug; then - dobin "${S}/test/dismod" - dobin "${S}/test/dispol" - fi -} - -pkg_postinst() { - if ! tc-is-cross-compiler; then - einfo "This checkpolicy can compile version `checkpolicy -V | cut -f 1 -d ' '` policy." - fi -} diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/coreutils/coreutils-9.8-r1.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/coreutils/coreutils-9.8-r1.ebuild index d11b2b572f2..88cde277e8f 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/coreutils/coreutils-9.8-r1.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-apps/coreutils/coreutils-9.8-r1.ebuild @@ -33,7 +33,7 @@ else verify-sig? ( mirror://gnu/${PN}/${P}.tar.xz.sig ) " - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x86-linux" + KEYWORDS="~alpha ~amd64 ~arm arm64 ~hppa ~loong ~m68k ~mips ~ppc ppc64 ~riscv ~s390 ~sparc ~x86 ~x86-linux" fi SRC_URI+=" !vanilla? ( https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${MY_PATCH}.tar.xz )" diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/gawk/metadata.xml b/sdk_container/src/third_party/portage-stable/sys-apps/gawk/metadata.xml index 66b0edfce4a..5c4c3e87dfb 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/gawk/metadata.xml +++ b/sdk_container/src/third_party/portage-stable/sys-apps/gawk/metadata.xml @@ -15,6 +15,7 @@ + cpe:/a:fossies:gawk gawk diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/gentoo-functions/metadata.xml b/sdk_container/src/third_party/portage-stable/sys-apps/gentoo-functions/metadata.xml index 8107c73dd79..35acac20e83 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/gentoo-functions/metadata.xml +++ b/sdk_container/src/third_party/portage-stable/sys-apps/gentoo-functions/metadata.xml @@ -8,6 +8,10 @@ base-system@gentoo.org Gentoo Base System + + kfm@plushkava.net + Kerin Millar + proj/gentoo-functions gentoo/gentoo-functions diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/groff/files/groff-1.23.0-musl-getopt.patch b/sdk_container/src/third_party/portage-stable/sys-apps/groff/files/groff-1.23.0-musl-getopt.patch new file mode 100644 index 00000000000..d603ed98dc4 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-apps/groff/files/groff-1.23.0-musl-getopt.patch @@ -0,0 +1,11 @@ +--- a/src/libs/libgroff/getopt.c ++++ b/src/libs/libgroff/getopt.c +@@ -122,7 +122,7 @@ + whose names are inconsistent. */ + + #ifndef getenv +-extern char *getenv (); ++extern char *getenv (const char *); + #endif + + #endif /* not __GNU_LIBRARY__ */ diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/groff/groff-1.23.0-r1.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/groff/groff-1.23.0-r1.ebuild new file mode 100644 index 00000000000..20116f97fcb --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-apps/groff/groff-1.23.0-r1.ebuild @@ -0,0 +1,115 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit toolchain-funcs + +MY_P="${P/_/.}" +DESCRIPTION="Text formatter used for man pages" +HOMEPAGE="https://www.gnu.org/software/groff/groff.html" + +if [[ ${PV} == *_rc* ]] ; then + SRC_URI="https://alpha.gnu.org/gnu/groff/${MY_P}.tar.gz" +else + SRC_URI="mirror://gnu/groff/${MY_P}.tar.gz" + KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" +fi + +S="${WORKDIR}/${MY_P}" + +LICENSE="GPL-2" +SLOT="0" +IUSE="examples uchardet X" + +RDEPEND=" + uchardet? ( app-i18n/uchardet ) + X? ( + x11-libs/libICE + x11-libs/libSM + x11-libs/libX11 + x11-libs/libXaw + x11-libs/libXmu + x11-libs/libXt + ) +" +DEPEND="${RDEPEND}" +BDEPEND=" + dev-lang/perl + sys-apps/texinfo +" + +DOCS=( BUG-REPORT ChangeLog MORE.STUFF NEWS PROBLEMS PROJECTS README TODO ) + +QA_CONFIG_IMPL_DECL_SKIP=( + # False positive with older autoconf, will be fixed w/ autoconf-2.72 + static_assert +) + +PATCHES=( + # bug #16108, bug #17580, bug #121502 + "${FILESDIR}"/${PN}-1.19.2-man-unicode-dashes.patch + "${FILESDIR}"/${PN}-1.23.0-musl-getopt.patch +) + +src_prepare() { + default + + # Honor Gentoo's docdir + sed -i -e "s|^docdir =.*|docdir = \"${EPREFIX}/usr/share/doc/${PF}\"|g" \ + Makefile.in \ + || die "failed to modify Makefile.in" + + local pfx=$(usex prefix ' Prefix' '') + cat <<-EOF >> tmac/mdoc.local || die + .ds volume-operating-system Gentoo${pfx} + .ds operating-system Gentoo${pfx}/${KERNEL} + .ds default-operating-system Gentoo${pfx}/${KERNEL} + EOF + + # make sure we don't get a crappy `g' nameprefix on UNIX systems with real + # troff (GROFF_G macro runs some test to see, its own troff doesn't satisfy) + sed -i -e 's/^[ \t]\+g=g$/g=/' configure || die +} + +src_configure() { + local myeconfargs=( + --with-appdefdir="${EPREFIX}"/usr/share/X11/app-defaults + --without-compatibility-wrappers # for Prefix + $(use_with uchardet) + $(use_with X x) + ) + + econf "${myeconfargs[@]}" +} + +src_compile() { + local -a CROSS_ARGS + tc-is-cross-compiler && CROSS_ARGS+=( + GROFFBIN="$(type -P groff)" + TROFFBIN="$(type -P troff)" + GROFF_BIN_DIR= + GROFF_BIN_PATH= + ) + + emake AR="$(tc-getAR)" "${CROSS_ARGS[@]}" +} + +src_install() { + default + + # The following links are required for man, bug #123674 + dosym eqn /usr/bin/geqn + dosym tbl /usr/bin/gtbl + + if ! use examples ; then + # The pdf files might not be generated if ghostscript is unavailable, bug #602020 + local pdf="${ED}/usr/share/doc/${PF}/examples/mom/mom-pdf.pdf" + if [[ -e ${pdf} ]] ; then + # Keep mom-pdf.pdf since it's more of a manual than an example + # bug #454196 and bug #516732 + mv "${pdf}" "${ED}/usr/share/doc/${PF}/pdf/" || die + fi + rm -rf "${ED}/usr/share/doc/${PF}/examples" + fi +} diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/hwdata/hwdata-0.399.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/hwdata/hwdata-0.399.ebuild index 145dcd2debb..76a36430c9d 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/hwdata/hwdata-0.399.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-apps/hwdata/hwdata-0.399.ebuild @@ -11,7 +11,7 @@ SRC_URI="https://github.com/vcrhonek/hwdata/archive/refs/tags/v${PV}.tar.gz -> $ LICENSE="GPL-2+" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux" RESTRICT="test" diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/iproute2/files/iproute2-6.17.0-musl.patch b/sdk_container/src/third_party/portage-stable/sys-apps/iproute2/files/iproute2-6.17.0-musl.patch new file mode 100644 index 00000000000..a207f350d20 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-apps/iproute2/files/iproute2-6.17.0-musl.patch @@ -0,0 +1,32 @@ +From 7119f3736f689ab396ca4193ac593938affd55fa Mon Sep 17 00:00:00 2001 +From: Yureka +Date: Sun, 12 Oct 2025 14:39:47 +0200 +Subject: lib: bridge: avoid redefinition of in6_addr + +On musl libc, which does not use the kernel definitions of in6_addr, including +the libc headers after the kernel (UAPI) headers would cause a redefinition +error. The opposite order avoids the redefinition. + +Fixes: 9e89d5b94d749f37525cd8778311e1c9f28f172a +Signed-off-by: Yureka +--- + lib/bridge.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/lib/bridge.c b/lib/bridge.c +index 5386aa017..104f5858b 100644 +--- a/lib/bridge.c ++++ b/lib/bridge.c +@@ -2,8 +2,8 @@ + + #include + +-#include "bridge.h" + #include "utils.h" ++#include "bridge.h" + + void bridge_print_vlan_flags(__u16 flags) + { +-- +cgit 1.2.3-korg + diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/iproute2/iproute2-6.17.0.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/iproute2/iproute2-6.17.0.ebuild index 24b326f4fb3..adc5d096bcf 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/iproute2/iproute2-6.17.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-apps/iproute2/iproute2-6.17.0.ebuild @@ -10,7 +10,7 @@ if [[ ${PV} == 9999 ]] ; then inherit git-r3 else SRC_URI="https://www.kernel.org/pub/linux/utils/net/${PN}/${P}.tar.xz" - 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 DESCRIPTION="kernel routing and traffic control utilities" @@ -47,6 +47,7 @@ BDEPEND=" " PATCHES=( + "${FILESDIR}"/${PN}-6.17.0-musl.patch # bug #963708 "${FILESDIR}"/${PN}-6.10.0-musl-2.patch # bug #926341 "${FILESDIR}"/${PN}-6.9.0-mtu.patch # bug #291907 "${FILESDIR}"/${PN}-6.8.0-configure-nomagic-nolibbsd.patch # bug #643722 & #911727 diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/kbd/kbd-2.9.0.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/kbd/kbd-2.9.0.ebuild index 4ca67213eb6..9d6e849503e 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/kbd/kbd-2.9.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-apps/kbd/kbd-2.9.0.ebuild @@ -12,7 +12,7 @@ if [[ ${PV} == 9999 ]] ; then else if [[ $(ver_cut 3) -lt 90 ]] ; then SRC_URI="https://www.kernel.org/pub/linux/utils/kbd/${P}.tar.xz" - 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" else inherit autotools SRC_URI="https://github.com/legionus/kbd/archive/v${PV}.tar.gz -> ${P}.tar.gz" diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/kbd/metadata.xml b/sdk_container/src/third_party/portage-stable/sys-apps/kbd/metadata.xml index 9ef7f5ef4a9..fcc8accaf75 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/kbd/metadata.xml +++ b/sdk_container/src/third_party/portage-stable/sys-apps/kbd/metadata.xml @@ -8,4 +8,7 @@ legionus/kbd + + Enable 'vlock' program (requires sys-libs/pam) + diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/kexec-tools/Manifest b/sdk_container/src/third_party/portage-stable/sys-apps/kexec-tools/Manifest index f131ccce225..f04b250d205 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/kexec-tools/Manifest +++ b/sdk_container/src/third_party/portage-stable/sys-apps/kexec-tools/Manifest @@ -1,2 +1,2 @@ -DIST kexec-tools-2.0.30.tar.xz 316548 BLAKE2B 06789dda9526e0d507f50861468baf674dc702eef015dee00b72946c72e78e8d11636db164c2f41c6dd8e5bd647b33a64d079ac624e0d45938b466a61f972e43 SHA512 4550607ad7eb51d169c2565cfee9195441634624d1c8859e21bca6bd7f15031713c39ba475301c1ef5fc67c009bc6599d254da184be25e68b226155e515e3852 DIST kexec-tools-2.0.31.tar.xz 318468 BLAKE2B 075f1457dce9d4d6f0a3fa3cb9ed4cebfc51324fe0f3859b0cb009e1ebdb10d5df83c17d35ec55c479f1416f0836bf263d6ed814732037af6189565685f81afe SHA512 95cb7e7b33685497d72fab74fed2191e476c0574d6ad2333d9e22b95a94543b5fdafe0663282cfaebb8747cf696b7d34c308941ec1074b2b9f1ed440b32d7309 +DIST kexec-tools-2.0.32.tar.xz 325392 BLAKE2B 9cbd0ac706600ddaceabbffdde262d739394ede16572190ed467c8290495a6ba4921973ed332d26f776580191066f3361ce7c39d8e4af5184eec3f3b7b805be0 SHA512 60f120f8e46b9fb5dcf5a5b344ee8b303878ba9f71d58a3eefa1c9f044a6a2192b285154b738970263384c6e7281a854cd48a185334c08141aa4e6cf08230654 diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/kexec-tools/kexec-tools-2.0.30.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/kexec-tools/kexec-tools-2.0.32.ebuild similarity index 94% rename from sdk_container/src/third_party/portage-stable/sys-apps/kexec-tools/kexec-tools-2.0.30.ebuild rename to sdk_container/src/third_party/portage-stable/sys-apps/kexec-tools/kexec-tools-2.0.32.ebuild index 01ccb6c2cfe..66a6a76a66f 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/kexec-tools/kexec-tools-2.0.30.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-apps/kexec-tools/kexec-tools-2.0.32.ebuild @@ -11,7 +11,7 @@ if [[ ${PV} == "9999" ]] ; then else SRC_URI="https://www.kernel.org/pub/linux/utils/kernel/kexec/${P/_/-}.tar.xz" [[ "${PV}" == *_rc* ]] || \ - KEYWORDS="amd64 arm64 ~ppc64 x86" + KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86" fi DESCRIPTION="Load another kernel from the currently executing Linux kernel" @@ -21,13 +21,14 @@ S="${WORKDIR}/${P/_/-}" LICENSE="GPL-2" SLOT="0" -IUSE="booke lzma selinux xen zlib" +IUSE="booke lzma selinux xen zlib zstd" REQUIRED_USE="lzma? ( zlib )" DEPEND=" lzma? ( app-arch/xz-utils ) zlib? ( sys-libs/zlib ) + zstd? ( app-arch/zstd:= ) " RDEPEND=" ${DEPEND} @@ -60,6 +61,7 @@ src_configure() { $(use_with lzma) $(use_with xen) $(use_with zlib) + $(use_with zstd) ) econf "${myeconfargs[@]}" } diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/less/Manifest b/sdk_container/src/third_party/portage-stable/sys-apps/less/Manifest index dc458eae81a..ef81adbda9b 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/less/Manifest +++ b/sdk_container/src/third_party/portage-stable/sys-apps/less/Manifest @@ -1,3 +1,4 @@ DIST less-643.tar.gz 592291 BLAKE2B 6dc60dc2e8db05afdae466877a1d26a3008ff5378bbbf2fbdf9efc4f87c0fcfde5703d44a24d4355c98d3a5f438bdb51173150f2a69f801d9c8e4a7401d71b53 SHA512 6a324ac54e22429ac652dc303bc1fe48933555d1cbf8ad7ecf345940910c014fef9551a3219743cfb7115e356b5841ae97d6ce62e7a1ba1e3300d243efca34d9 DIST less-668.tar.gz 649770 BLAKE2B 0f6a85a1c66577dd2a28682a6f8399e42fdbe9fc1498b2e89c6bb7c47109e8d3ab934abe5dd998b2c8dfacfb174ad9daeb79b3d4c13df22fa035ea792b2eaf5e SHA512 6527741a609849ec27b6ab35de46f2c5c2b2771391e3efe263207bee28915946f44331a42f832a7cb42231a19b135cbadc15ae02cd997b83a13cdfbc7213fc27 DIST less-679.tar.gz 877094 BLAKE2B 024cd7f4014958e9be52a89aefd9404298850c56f0f8d2403e8648b06ce37bcca6742ebd8a3a4900acb78a3884c4f17270919feb3ca76c6978c34ec79043f154 SHA512 f04e37dc4b2839b416a195e107d21328800e75080054788002c109b3b113a6a898b953391912e7538fb9843ef530b1991efc76dbf6fb5960e5530f3ff83421f6 +DIST less-685.tar.gz 882560 BLAKE2B 771ba2fb1f593e80d9e5e203bfe9b7a8a33833fcd3464a0c64c4056359e9ecc723eff87b783c9ab4c3090d7dac1973c1875eb7d926601c512dc0494e7e8adb5c SHA512 aff745f1816e0f996fbdbc33ecae0726cf0d842efc227937ff8c32e734c8b5be4c611ffbb27e5e038b4d95280c95ca60c53af1a47cf419cb06e5fab543c231f3 diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/less/less-685.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/less/less-685.ebuild new file mode 100644 index 00000000000..e56db4c2fe2 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-apps/less/less-685.ebuild @@ -0,0 +1,91 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Releases are usually first a beta then promoted to stable if no +# issues were found. Upstream explicitly ask "to not generally distribute" +# the beta versions. It's okay to keyword beta versions if they fix +# a serious bug, but otherwise try to avoid it. + +WANT_AUTOMAKE=none +WANT_LIBTOOL=none +inherit autotools flag-o-matic optfeature toolchain-funcs + +DESCRIPTION="Excellent text file viewer" +HOMEPAGE="https://www.greenwoodsoftware.com/less/" + +MY_PV=${PV/_beta/-beta} +MY_P=${PN}-${MY_PV} + +if [[ ${PV} == 9999 ]]; then + EGIT_REPO_URI="https://github.com/gwsw/less" + inherit git-r3 +else + SRC_URI="https://www.greenwoodsoftware.com/less/${MY_P}.tar.gz" + + if [[ ${PV} != *_beta* ]] ; then + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" + fi +fi + +S="${WORKDIR}"/${MY_P/?beta} + +LICENSE="|| ( GPL-3 BSD-2 )" +SLOT="0" +IUSE="pcre test" +RESTRICT="!test? ( test )" + +DEPEND=" + >=app-misc/editor-wrapper-3 + >=sys-libs/ncurses-5.2:= + pcre? ( dev-libs/libpcre2 ) +" +RDEPEND="${DEPEND}" +BDEPEND="test? ( virtual/pkgconfig )" + +src_prepare() { + default + # Per upstream README to prepare live build + [[ ${PV} == 9999 ]] && emake -f Makefile.aut distfiles + # Upstream uses unpatched autoconf-2.69, which breaks with clang-16. + # https://bugs.gentoo.org/870412 + eautoreconf +} + +src_configure() { + append-lfs-flags # bug #896316 + + local myeconfargs=( + --with-regex=$(usex pcre pcre2 posix) + --with-editor="${EPREFIX}"/usr/libexec/editor + ) + econf "${myeconfargs[@]}" +} + +src_test() { + emake check VERBOSE=1 CC="$(tc-getCC)" PKG_CONFIG="$(tc-getPKG_CONFIG)" +} + +src_install() { + default + + keepdir /usr/lib/lessfilter.d + keepdir /etc/lessfilter.d + + newbin "${FILESDIR}"/lesspipe-r4.sh lesspipe + newenvd "${FILESDIR}"/less.envd 70less +} + +pkg_preinst() { + optfeature "Colorized output support" dev-python/pygments + + if has_version "<${CATEGORY}/${PN}-483-r1" ; then + elog "The lesspipe.sh symlink has been dropped. If you are still setting" + elog "LESSOPEN to that, you will need to update it to '|lesspipe %s'." + fi + + if has_version "<${CATEGORY}/${PN}-643" ; then + elog "less now colorizes by default. To disable this, set LESSCOLOR=no." + fi +} diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/less/less-9999.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/less/less-9999.ebuild index d0f19d686a2..e56db4c2fe2 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/less/less-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-apps/less/less-9999.ebuild @@ -44,10 +44,6 @@ DEPEND=" RDEPEND="${DEPEND}" BDEPEND="test? ( virtual/pkgconfig )" -PATCHES=( - "${FILESDIR}"/${PN}-643-lesstest-pkg-config.patch -) - src_prepare() { default # Per upstream README to prepare live build diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/locale-gen/Manifest b/sdk_container/src/third_party/portage-stable/sys-apps/locale-gen/Manifest index eba1c29c097..2c6083bb469 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/locale-gen/Manifest +++ b/sdk_container/src/third_party/portage-stable/sys-apps/locale-gen/Manifest @@ -1,2 +1,3 @@ DIST locale-gen-2.23.tar.bz2 7664 BLAKE2B a529b62fbb840c9352f06e8f5c80fc764425a2619dc69cc820f550a026d391788d5e2cfeeb46a8b5b9716da63340b4fce57a5b523edd4196ee1219c1200cb752 SHA512 c1245caadb04403c535a836f19bc410d0f04b5c0e297ea5be9852e6d71e08e528071ae769d63d31a677dda8fdd618b4c4d581ed525cf8786b82d8f37636db754 DIST locale-gen-3.8.tar.bz2 17593 BLAKE2B 0197096021286f47f4e289ee5c4cbf0220264b5784c101df567c0a5dc81a0a83999e8306e8ab72e47f4f35f92d0f7e7e40589ff3c74936e22c56e3b5a172fb15 SHA512 6e802283bce6a927ed020d3011a9bc4a81ef017d728a698fa6a8c74887895a87d225cdbe23cf18798a12f2e58beacfdd6ba5e3990d74ebafb4b2ba5986d35720 +DIST locale-gen-3.9.tar.bz2 17793 BLAKE2B 982c6460a40ac29b9aa3f2bab42cfa7862510c715e13bb68b0b6c7f7910fd728862ed4cc2ce7a07bfe1888566a469c1264174a4f41306506d77edc7189957a7c SHA512 8bdb5e7cb19d62284291d092b03e04f2c40b52cac542192afe5e3c28776a88f4452efdd6dd76a6719fe7b73edf37b916322db4d048c08fd7d03d6d3474fdd6fe diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/locale-gen/files/3.9-suppress-bash-setlocale-warnings.patch b/sdk_container/src/third_party/portage-stable/sys-apps/locale-gen/files/3.9-suppress-bash-setlocale-warnings.patch new file mode 100644 index 00000000000..dadbd55d9bb --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-apps/locale-gen/files/3.9-suppress-bash-setlocale-warnings.patch @@ -0,0 +1,104 @@ +From a4dbd5aa801fbe5510a7bc10af1027b6ce19061b Mon Sep 17 00:00:00 2001 +From: Kerin Millar +Date: Fri, 31 Oct 2025 19:44:55 +0000 +Subject: [PATCH] Suppress bash warnings regarding setlocale(3) failures + +Presently, there are five instances in which sh(1) will be executed by +locale-gen(8). Consequently, irritating warnings will be raised where +both of the following conditions hold true. + +- bash(1) is the effective /bin/sh implementation +- the LC_ALL environment variable is set as an unavailable locale + +For example: + +$ LC_ALL=unavailable bash -c '' +bash: warning: setlocale: LC_ALL: cannot change locale (unavailable): No +such file or directory + +This occurs because bash chooses to report setlocale(3) failures. While +there is nothing wrong in doing so, to encounter such warnings while +executing locale-gen(8) is tantamount to noise. Address this annoyance +by having Perl ensure that the execve(2) call responsible for launching +sh(1) specifies LC_ALL as 'C'. + +See-also: 04c08067b15933d195d8500eefdc363cb46c1b32 +Signed-off-by: Kerin Millar +--- + locale-gen | 32 +++++++++++++++++++++++--------- + 1 file changed, 23 insertions(+), 9 deletions(-) + +diff --git a/locale-gen b/locale-gen +index 3f825b4..a65b99a 100644 +--- a/locale-gen ++++ b/locale-gen +@@ -138,7 +138,10 @@ umask 0022; + } + + sub get_locale_dir () { +- my $stdout = qx{ LC_ALL=C localedef --help 2>/dev/null }; ++ my $stdout = do { ++ local $ENV{'LC_ALL'} = 'C'; ++ qx{ localedef --help 2>/dev/null }; ++ }; + if ($? == 0 && $stdout =~ m/\hlocale path\h*:\s+(\/[^:]+)/) { + return canonpath($1); + } elsif (($? & 0x7F) == 0) { +@@ -415,7 +418,10 @@ sub check_archive_dir ($prefix, $locale_dir) { + my $archive_dir = local $ENV{'DIR'} = catdir($prefix, $locale_dir); + + # Quietly attempt to create the directory if it does not already exist. +- system q{ mkdir -p -- "$DIR" 2>/dev/null }; ++ { ++ local $ENV{'LC_ALL'} = 'C'; ++ system q{ mkdir -p -- "$DIR" 2>/dev/null }; ++ } + + # Check whether the directory exists and can be modified by the EUID. + if (! utime undef, undef, $archive_dir) { +@@ -609,8 +615,10 @@ sub check_effective_locale ($supported_by) { + } + + sub copy_security_context ($src_path, $dst_path) { +- local @ENV{'SRC_PATH', 'DST_PATH'} = ($src_path, $dst_path); +- my $stderr = qx{ LC_ALL=C chcon --reference="\$SRC_PATH" -- "\$DST_PATH" 2>&1 >/dev/null }; ++ my $stderr = do { ++ local @ENV{'LC_ALL', 'SRC_PATH', 'DST_PATH'} = ('C', $src_path, $dst_path); ++ qx{ chcon --reference="\$SRC_PATH" -- "\$DST_PATH" 2>&1 >/dev/null }; ++ }; + # Throw exceptions for any errors that are not a consequence of ENOTSUP. + if ($? != 0 && $stderr !~ m/: Operation not supported$/m) { + if (length $stderr) { +@@ -631,7 +639,11 @@ sub fopen ($path) { + } + + sub get_nprocs () { +- chomp(my $nproc = qx{ { nproc || getconf _NPROCESSORS_CONF; } 2>/dev/null }); ++ my $nproc = do { ++ local $ENV{'LC_ALL'} = 'C'; ++ qx{ { nproc || getconf _NPROCESSORS_CONF; } 2>/dev/null }; ++ }; ++ chomp $nproc; + return $nproc; + } + +@@ -693,10 +705,12 @@ sub dirname ($path) { + sub has_mount_option ($target, $option) { + # Per bug 962817, / may not necessarily exist as a mountpoint. Assuming + # it does not, ignore the case that findmnt(8) exits with a status of 1. +- local $ENV{'TARGET'} = $target; +- my $stdout = qx{ +- findmnt -no options -T "\$TARGET" +- case \$? in 1) ! mountpoint -q / ;; *) exit "\$?" ;; esac ++ my $stdout = do { ++ local @ENV{'LC_ALL', 'TARGET'} = ('C', $target); ++ qx{ ++ findmnt -no options -T "\$TARGET" ++ case \$? in 1) ! mountpoint -q / ;; *) exit "\$?" ;; esac ++ }; + }; + throw_child_error('findmnt'); + chomp $stdout; +-- +2.51.2 + diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/locale-gen/locale-gen-3.8.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/locale-gen/locale-gen-3.8.ebuild index 5c7fc7a3b93..c13cdde9797 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/locale-gen/locale-gen-3.8.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-apps/locale-gen/locale-gen-3.8.ebuild @@ -47,8 +47,12 @@ src_install() { # See the locale.gen(5) and locale-gen(8) man pages for more details. EOF - # Run the interpreter by name so as not to have to prefixify mkconfig. - perl mkconfig "${EROOT}" + if [[ -e ${EROOT}/usr/share/i18n/SUPPORTED ]]; then + # Run the interpreter by name so as not to have to prefixify. + perl mkconfig "${EROOT}" + else + ewarn "Skipping the incorporation of locale.gen examples because the SUPPORTED file is absent" + fi } | newins - locale.gen if (( PIPESTATUS[0] || PIPESTATUS[1] )); then die "Failed to generate and/or install locale.gen" diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/locale-gen/locale-gen-3.9-r1.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/locale-gen/locale-gen-3.9-r1.ebuild new file mode 100644 index 00000000000..147b5a7ed0a --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-apps/locale-gen/locale-gen-3.9-r1.ebuild @@ -0,0 +1,72 @@ +# Copyright 2023-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DESCRIPTION="Generate locales based upon the config file /etc/locale.gen" +HOMEPAGE="https://gitweb.gentoo.org/proj/locale-gen.git/" + +if [[ ${PV} == 9999 ]] ; then + EGIT_REPO_URI="https://anongit.gentoo.org/git/proj/locale-gen.git" + inherit git-r3 +else + SRC_URI="https://gitweb.gentoo.org/proj/locale-gen.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" + +BDEPEND=" + >=dev-lang/perl-5.36 + dev-perl/File-Slurper +" +RDEPEND=" + >=dev-lang/perl-5.36 + !toolchain@gentoo.org Gentoo Toolchain Project + + kfm@plushkava.net + Kerin Millar + proj/locale-gen gentoo/locale-gen 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 fcf164964c3..7c9875e35c0 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,3 +1,4 @@ DIST portage-3.0.67.tar.bz2 1196776 BLAKE2B 4a9056d388b012a0fa343d6fc50c9c3b455cb3a4d356210accf86c4ff4434a2d8cb4d23c3f58f3e23ab8bb4a4e9ee244bd1ec1203d5f72fa6f0e0a2caa92e757 SHA512 e725a471dcadaac771aa7f910524232e237efbb944d3e175825ad659b5190d631a91d4c188089c278a79b4709d4a8d6a6e53c55524c4b1c8d1c43580506e0d1c DIST portage-3.0.68.tar.bz2 1198758 BLAKE2B fbe3a14babbe5687d075c7e691027d04e7a34a35c3199c981e176bae365242e1dc7d4122f2d7a385444798b9413c415ca40801825a9dd9c99c3590efca8087e6 SHA512 4ed6d0945ad94ee19260996dd2ba9fa5e013560a50de887eb7e8df87a3649552316cbc62ee8ef9b4a025d9d98fb74e85ee7734b7a8fe7416450b8d6818fdcfab DIST portage-3.0.69.3.tar.bz2 1207066 BLAKE2B 81786a02052cc8dac2e0dc1875c3e1dba37e84e32ad6620cddb5b4a2595ae4c924b9c222cfced9dbc0c7efdcac2efb2459f5b16cfa9d5df226aef7e27041e03b SHA512 7a71e98c6a2b76dfe6e38b96d34107e5fd26193b3116cc585ecb333129dc6995bde1db0fd7435435e737cd81b019b76e104b1e02b0dda93efd22f37b7defebe0 +DIST portage-3.0.70.tar.bz2 1208010 BLAKE2B f927de1c536cdae2a63061e124d95919d08a8f0bce06d91290750caa0be5d8bf04314240e6e2a38968f4c6adb33e85a9716c314e806c3f2b7ac197763dae225c SHA512 182e6d4651487d6320ca767c0177b323e98a0a464d10e3b4ef13e10eea16006f5303cb2289144a9f076741a759ba7de648950e4be1d0d266ca9995fa2a36af1b diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/portage/files/0001-emerge-webrsync-restore-the-missing-option-arg-for-c.patch b/sdk_container/src/third_party/portage-stable/sys-apps/portage/files/0001-emerge-webrsync-restore-the-missing-option-arg-for-c.patch new file mode 100644 index 00000000000..3dfe086566b --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-apps/portage/files/0001-emerge-webrsync-restore-the-missing-option-arg-for-c.patch @@ -0,0 +1,40 @@ +From b876d9b1c9ce58b8ba2440cf61bca7555a0dfb9b Mon Sep 17 00:00:00 2001 +Message-ID: +From: Kerin Millar +Date: Sun, 26 Oct 2025 02:46:02 +0000 +Subject: [PATCH] emerge-webrsync: restore the missing option-arg for curl + --continue-at + +The curl(1) user-agent supports a --continue-at option, which requires +an option-argument. Where the option-argument is , curl +will automatically try to determine how to resume a transfer. Further, +emerge-webrsync forcibly injects the option if it detects that the value +of FETCHCOMMAND specifies a curl command. + +However, the option-argument was unintentionally removed during a bout +of re-factoring and (otherwise unrelated) bug fixing. This went +unnoticed until now because wget is more commonly used. Restore it. + +Fixes: f3af8263ce544750a9e9a155b1264d07a86677d4 +Signed-off-by: Kerin Millar +Signed-off-by: Sam James +--- + bin/emerge-webrsync | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/bin/emerge-webrsync b/bin/emerge-webrsync +index 53a3a12715..cca63ebb35 100755 +--- a/bin/emerge-webrsync ++++ b/bin/emerge-webrsync +@@ -217,7 +217,7 @@ get_fetchcommand() { + fi + ;; + curl) +- opts="--continue-at -f -S" ++ opts="--continue-at - -f -S" + if (( opt[quiet] )); then + opts+=" -s" + fi +-- +2.51.1 + diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/portage/portage-3.0.69.3-r2.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/portage/portage-3.0.69.3-r2.ebuild new file mode 100644 index 00000000000..cf164aa81b2 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-apps/portage/portage-3.0.69.3-r2.ebuild @@ -0,0 +1,236 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# py3.14: bug #957070 +PYTHON_COMPAT=( pypy3_11 python3_{11..13} ) +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-cdn-origin.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 + >=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.0:0 + >=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}] + ) + ) + elibc_glibc? ( >=sys-apps/sandbox-2.2 ) + elibc_musl? ( >=sys-apps/sandbox-2.2 ) + kernel_linux? ( sys-apps/util-linux ) + 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 + ) +" + +PATCHES=( + "${FILESDIR}"/0001-emerge-webrsync-restore-the-missing-option-arg-for-c.patch +) + +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.69.3.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/portage/portage-3.0.70.ebuild similarity index 97% rename from sdk_container/src/third_party/portage-stable/sys-apps/portage/portage-3.0.69.3.ebuild rename to sdk_container/src/third_party/portage-stable/sys-apps/portage/portage-3.0.70.ebuild index b6b8f7f4eab..a02dd2c2cfc 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/portage/portage-3.0.69.3.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-apps/portage/portage-3.0.70.ebuild @@ -3,8 +3,7 @@ EAPI=8 -# py3.14: bug #957070 -PYTHON_COMPAT=( pypy3_11 python3_{11..13} ) +PYTHON_COMPAT=( pypy3_11 python3_{11..14} ) PYTHON_REQ_USE='bzip2(+),threads(+)' TMPFILES_OPTIONAL=1 @@ -20,7 +19,7 @@ if [[ ${PV} == 9999 ]] ; then " inherit git-r3 else - SRC_URI="https://gitweb-cdn-origin.gentoo.org/proj/portage.git/snapshot/${P}.tar.bz2" + 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 @@ -68,7 +67,7 @@ RDEPEND=" >=sec-keys/openpgp-keys-gentoo-release-20240703 >=sys-apps/sed-4.0.5 rsync-verify? ( - >=app-crypt/gnupg-2.2.4-r2[ssl(-)] + app-alternatives/gpg[ssl(-)] >=app-portage/gemato-14.5[${PYTHON_USEDEP}] ) ) diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/portage/portage-9999.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/portage/portage-9999.ebuild index db7ae0d527e..f0520bf06d2 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/portage/portage-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-apps/portage/portage-9999.ebuild @@ -4,7 +4,7 @@ EAPI=8 # py3.14: bug #957070 -PYTHON_COMPAT=( pypy3_11 python3_{11..13} ) +PYTHON_COMPAT=( pypy3_11 python3_{11..14} ) PYTHON_REQ_USE='bzip2(+),threads(+)' TMPFILES_OPTIONAL=1 @@ -68,7 +68,7 @@ RDEPEND=" >=sec-keys/openpgp-keys-gentoo-release-20240703 >=sys-apps/sed-4.0.5 rsync-verify? ( - >=app-crypt/gnupg-2.2.4-r2[ssl(-)] + app-alternatives/gpg[ssl(-)] >=app-portage/gemato-14.5[${PYTHON_USEDEP}] ) ) diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/pv/Manifest b/sdk_container/src/third_party/portage-stable/sys-apps/pv/Manifest index 955617938e5..20fc6a9e1bb 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/pv/Manifest +++ b/sdk_container/src/third_party/portage-stable/sys-apps/pv/Manifest @@ -4,3 +4,5 @@ DIST pv-1.9.34.tar.gz 416551 BLAKE2B aa2d56408a96de9b472a3ef5215a270c3c993543dc7 DIST pv-1.9.34.tar.gz.asc 691 BLAKE2B 0bb824f3f8352ab3c32d9df273780039eb81b8bf40f4f90cede5a121cccdd5370a1769da0bfe09735b80a59a75bb4ac3cbd5008bc0fa99c40077cae2dd64cf14 SHA512 8f0b7989b3e8d00b5147fa5ad37e3823b99edd9586210f73fcf553b95c7d2114843ff1c7445ac757689c1eca4cc5920fb86417733fba722bc287c66885e98a33 DIST pv-1.9.42.tar.gz 425511 BLAKE2B f523605491faca77591d84c092663edcf5c3f7a3717676fb1ad282d0768553a444dc97a8adadd8ca32c264978471c3c60c44667679e733251bf7f9b59779de30 SHA512 be21370c7cb18cb68f5a63db6f0a4c5c36efd007675df29af06017f9dfd1e416270cbe733792015a3d3ae0f5165a27e1a6dfce6abebbf0581c50cbb66ef2d9c7 DIST pv-1.9.42.tar.gz.asc 691 BLAKE2B 2f107e4520554629ee6be60e6145f3219a34db7b0b73081d3c86080834458eae3f9a90d4cc364dab5f9218c403f65a7d42a419b1520269a7bb5cc0884f5affbb SHA512 a0ca0dcb383036c433c202dd7c9dbd24d60e00e7bbfe6945a5868f629bf856cebfb5564b51532d67e8c241646243354be9cc7e5a313714b9d9ea478ee5853719 +DIST pv-1.9.44.tar.gz 428337 BLAKE2B a628c80b837cfcb8e83ddb9107e881ea0dd7434f2d99c3051515896a68f900b967ca40ccca28c884cb2501b5829d79d05ed91c4bf632dea5b86e121a16cb4bf0 SHA512 dbd4ea362547419ede9035146e6d8dc890a605a991cf25509d73d7a67e2597a112d196298021e5923d0050735fdf743c7c99467914ec1a7af537f9ab1215e2df +DIST pv-1.9.44.tar.gz.asc 691 BLAKE2B f31cc7557527cc163efaa0b4df71e4163919551489e870a1618616eeee033cb5755053427547cefe6ad3477a079b8de6a83ea94af8220948ffca634ce85cfb2c SHA512 d5a9f44598f576c87fdc1ed6947a2b0c247f4b18961d673d045a28f214b6a8a2d6f5c17fd46d2e292b36d3acc0ff5e724d8473a90b494b9f8ad042d97d1f1aa1 diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/pv/pv-1.9.44.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/pv/pv-1.9.44.ebuild new file mode 100644 index 00000000000..718c9249a22 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-apps/pv/pv-1.9.44.ebuild @@ -0,0 +1,59 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/pv.asc +inherit linux-info toolchain-funcs verify-sig + +DESCRIPTION="Pipe Viewer: a tool for monitoring the progress of data through a pipe" +HOMEPAGE="https://ivarch.com/p/pv https://codeberg.org/ivarch/pv" + +if [[ ${PV} == 9999 ]] ; then + EGIT_REPO_URI="https://codeberg.org/ivarch/pv" + inherit autotools git-r3 +else + SRC_URI=" + https://ivarch.com/s/${P}.tar.gz + verify-sig? ( https://ivarch.com/s/${P}.tar.gz.txt -> ${P}.tar.gz.asc ) + " + + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos" +fi + +LICENSE="GPL-3+" +SLOT="0" +IUSE="debug ncurses nls" + +RDEPEND="ncurses? ( sys-libs/ncurses:= )" +DEPEND="${RDEPEND}" +BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-pv-20251012 )" + +pkg_setup() { + if use kernel_linux; then + CONFIG_CHECK="~SYSVIPC" + ERROR_SYSVIPC="You will need to enable CONFIG_SYSVIPC in your kernel to use the --remote option." + linux-info_pkg_setup + fi +} + +src_prepare() { + default + + [[ ${PV} == 9999 ]] && eautoreconf +} + +src_configure() { + tc-export AR + + econf \ + $(use_enable debug debugging) \ + $(use_with ncurses) \ + $(use_enable nls) +} + +src_test() { + # Valgrind is unreliable within sandbox + local -x SKIP_VALGRIND_TESTS=1 + emake -Onone check +} diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/smartmontools/smartmontools-7.5.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/smartmontools/smartmontools-7.5-r1.ebuild similarity index 99% rename from sdk_container/src/third_party/portage-stable/sys-apps/smartmontools/smartmontools-7.5.ebuild rename to sdk_container/src/third_party/portage-stable/sys-apps/smartmontools/smartmontools-7.5-r1.ebuild index 4690f627b7d..1355249222b 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/smartmontools/smartmontools-7.5.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-apps/smartmontools/smartmontools-7.5-r1.ebuild @@ -35,7 +35,7 @@ RDEPEND=" selinux? ( sec-policy/selinux-smartmon ) systemd? ( sys-apps/systemd ) update-drivedb? ( - app-crypt/gnupg + app-alternatives/gpg || ( net-misc/curl net-misc/wget diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/usbutils/Manifest b/sdk_container/src/third_party/portage-stable/sys-apps/usbutils/Manifest index 6a2785cfee6..054e65b85ef 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/usbutils/Manifest +++ b/sdk_container/src/third_party/portage-stable/sys-apps/usbutils/Manifest @@ -1,3 +1,4 @@ DIST usbutils-016.tar.xz 169000 BLAKE2B 2f3af61e5a7abf48cdf0a4aebc901ca1570007b54d11ae74572e16bdeb2d8e73844d76af54bd812d6d4b84ddaf6e956132ecc9a8a2849a7bffc0643e29115a49 SHA512 4483038bf91c056cd2977f5e7f449c0a62d9152d6f5d64ab7bde438ab9c1c56fe524ba10b35781c2828edd0fe89379dbaed78fa7ffe78903cae0c4e3c460f9a0 DIST usbutils-017.tar.xz 168820 BLAKE2B 868c646ed6d38a38b9bd3ab85ba3a5e9362a97e476aeed6576c1b175caaf4ee688cb2c33756f02c9bf0aef9e7d58657331fc1c3b3314d86145b3d4f37124537e SHA512 eaebbc82eee4d940898f7a8de95ca49846c7c964e65c3d866b38735f8f3c8ccfed2b3a536bf2ef39a835a40a34c2273ac4d82b1012d0c693d4863cff14870d95 DIST usbutils-018.tar.xz 120168 BLAKE2B 030f45afd5867ee38c8284a0741d1de63653a98746bfef42281390c5bdefbbb99c318d708e88ea2e28810d519d735da3103fe438befa889fc9b5ae9e21200992 SHA512 4f76c7a328746e17892c31d69cbd9a560c4384877e18d80076cef344a25b71b33387d803c98a9c6867b357a61e1a8a1a630884afe32128c3b6393dc186f216c8 +DIST usbutils-019.tar.xz 121652 BLAKE2B 8267a36ec9670e83a0df5d5d34aee70d37e773ca25a20978cd6c99df29426e926af4308f97bb38463f50abdea2a764e98752bc4a5ca703bfcfdf9fcc361a7638 SHA512 fb4acc570c2b71f90c51c2717dc80e844727c8fcfebb5d92c57145eb9d09cbd1f63cf405e07db76c3afaaf3fac87b90f3f512d0a7c4d50cb9e6f26438eca9390 diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/usbutils/usbutils-019.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/usbutils/usbutils-019.ebuild new file mode 100644 index 00000000000..89ef40d39c9 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-apps/usbutils/usbutils-019.ebuild @@ -0,0 +1,68 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{10..13} ) +inherit meson python-single-r1 + +DESCRIPTION="USB enumeration utilities" +HOMEPAGE=" + https://www.kernel.org/pub/linux/utils/usb/usbutils/ + https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usbutils.git/ +" +SRC_URI="https://www.kernel.org/pub/linux/utils/usb/${PN}/${P}.tar.xz" + +LICENSE="GPL-2+" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux" +IUSE="python usbreset" +REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" + +DEPEND=" + virtual/libusb:1= + virtual/libudev:= +" +RDEPEND=" + ${DEPEND} + python? ( + ${PYTHON_DEPS} + sys-apps/hwdata + ) +" +BDEPEND=" + virtual/pkgconfig + python? ( ${PYTHON_DEPS} ) +" + +pkg_setup() { + use python && python-single-r1_pkg_setup +} + +src_prepare() { + default + + use python && python_fix_shebang lsusb.py +} + +src_install() { + meson_src_install + + if use usbreset ; then + # https://github.com/gregkh/usbutils/issues/214 + dobin "${BUILD_DIR}"/usbreset + doman man/usbreset.1 + fi + + if ! use python ; then + rm -f "${ED}"/usr/bin/lsusb.py || die + fi +} + +pkg_postinst() { + if use usbreset ; then + ewarn "Please be warned that 'usbreset' has been built and installed, but it could" + ewarn "damage your hardware, see upstream issue:" + ewarn " https://github.com/gregkh/usbutils/issues/214" + fi +} diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/util-linux/util-linux-2.41.1-r1.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/util-linux/util-linux-2.41.1-r1.ebuild index c7179e1223d..2cd2fa99211 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/util-linux/util-linux-2.41.1-r1.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-apps/util-linux/util-linux-2.41.1-r1.ebuild @@ -23,7 +23,7 @@ else inherit verify-sig if [[ ${PV} != *_rc* ]] ; then - KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos" + KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos" fi SRC_URI="https://www.kernel.org/pub/linux/utils/util-linux/v${PV:0:4}/${MY_P}.tar.xz" diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/util-linux/util-linux-2.41.2.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/util-linux/util-linux-2.41.2.ebuild index 269b1dff4bf..7bb7784672f 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/util-linux/util-linux-2.41.2.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-apps/util-linux/util-linux-2.41.2.ebuild @@ -23,7 +23,7 @@ else inherit verify-sig if [[ ${PV} != *_rc* ]] ; then - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos" + KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos" fi SRC_URI="https://www.kernel.org/pub/linux/utils/util-linux/v${PV:0:4}/${MY_P}.tar.xz" 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 553bc5923ab..aa989811b94 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 @@ -3,5 +3,8 @@ DIST dejavu-sans-ttf-2.37.zip 417746 BLAKE2B c8904f3cd5a49370a7dc10e456684c88aea DIST grub-2.12-bash-completion.patch.gz 3627 BLAKE2B 6ba80fd4fb4b28ae2e5a2387133d815da126a4eaa4b5cb24b13f4ba5a2499ab4099d10ada366ed39f84be2c38774122f48e1a1894768c5bee29149528610d095 SHA512 a9ee6d2253ae48d7f90907a9e975a3a1d01346bc621d8b8cddf7cc815cd91e078f6c61392724d13556ee64f099fa15c94fcb88a49ff02d4a90ebd376252cea5c DIST grub-2.12.tar.xz 6675608 BLAKE2B a678f7fafb945d325c8cf47aa086f48357a8f6335b762f77038c30a3896b3b05491598d9931d5335841d224fffcbe4a9a43ca1479057c1f1ce52b8d2a952c431 SHA512 761c060a4c3da9c0e810b0ea967e3ebc66baa4ddd682a503ae3d30a83707626bccaf49359304a16b3a26fc4435fe6bea1ee90be910c84de3c2b5485a31a15be3 DIST grub-2.12.tar.xz.sig 566 BLAKE2B 9b77fe53041b99f1196743aa6d9fc9c727b17c6512129bab2b35005f2c70f371e30521ddd804bf0c666e36cf2667247980f385ca1ac911fa9b8e0311427dc01c SHA512 fbe971d8c382578b49d33902234edd9cbd084b70820a1a56a59df4ec30874c0dd4fe27f8dc44bb380716bb7480ca68a87d120a25b92a6a10ff6c8ec1b60548d3 +DIST grub-2.14~rc1.tar.xz 7652220 BLAKE2B dededd47b4c29f1d8c6e92de78d8d90dd9fa661b5964af7033100fbd15c15e89e810db9c9127f84363425f586c3283ae4511c27f8bb69015b39582a10261a4a8 SHA512 d96e4c749caaa51393f037fd2e9d1837bef8b7b1c44655d86cdfc6447adf27bb4451fbb9e78b4846f3ee39102548b560b639f97dcf6f74563ee9afac60056c2e +DIST grub-2.14~rc1.tar.xz.sig 566 BLAKE2B eac34a1a513a818809162a4f827191902e933e95cf3775930a8bccb18b0eb052a8bc4175fd1ba89a8dda802951b3b758f18443c65be3f8268201fa07d93ed6ce SHA512 a67766234f8d075d50381c9b94513a41d9c4a5214e5f000f182069d3318695d13c10072030f74cdfc3dc72f98f4d90fc9133b005e0af11314c754072c12299ef DIST unifont-15.0.06.pcf.gz 1358322 BLAKE2B 81811e3de390ca35d1a2dc1f1dee73464e97f44907ba522c218ba9c5e39ca3c9d767552780a257a97c156eb623c17786d9c0d2b67786d61df5ca33a1e10db7ca SHA512 0a28a406629c604f5cbf51f501528239a7ed50d19f93ea505bc5bdc72639e4b926b03f4b8782a5733041f7cdb4aebb9948ac7cfd5a8ad9a0fe309944e595517b -DIST unifont-16.0.02.pcf.gz 1356741 BLAKE2B 1c6409e622fd7e3331bd4afc1d81b2663dd7eb98e586c73d5c85a6828b6a972a08fbe8ba4804c2daee43ddc89ece23fc1f6e9c48b16330d7e11b080b1d8aed61 SHA512 9691db982a6e808ff95ec3cf13b2f7b24d6103b4cce6e24eae7855ad74b063f0f745d2eac3909cda524e94df6cc2112f591b700c571106f0f3056e0a2580fac6 +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 diff --git a/sdk_container/src/third_party/portage-stable/sys-boot/grub/files/grub-2.14_rc1-configure.ac-avoid-bashisms.patch b/sdk_container/src/third_party/portage-stable/sys-boot/grub/files/grub-2.14_rc1-configure.ac-avoid-bashisms.patch new file mode 100644 index 00000000000..f25b94c99ed --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-boot/grub/files/grub-2.14_rc1-configure.ac-avoid-bashisms.patch @@ -0,0 +1,46 @@ +https://bugs.gentoo.org/965315 + +From 5196d40b6ec6ad75e84ab98e9f4a3d71211f0d56 Mon Sep 17 00:00:00 2001 +From: Lars Wendler +Date: Thu, 30 Oct 2025 07:31:59 +0100 +Subject: [PATCH] configure.ac: avoid bashisms +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +or else configure check doesn't succeed with non-bash shell (e.g. dash): + + checking whether to enable AMD64 as(1) feature detection... /var/tmp/portage/sys-boot/grub-2.14_rc1/work/grub-2.14~rc1/configure: 39176: test: xx86_64: unexpected operator + no + +and later build fails with + + /var/tmp/portage/sys-boot/grub-2.14_rc1/work/grub-2.14~rc1/grub-core/lib/libgcrypt-grub/src/hwf-x86.c: In function ‘detect_x86_gnuc’: + /var/tmp/portage/sys-boot/grub-2.14_rc1/work/grub-2.14~rc1/grub-core/lib/libgcrypt-grub/src/hwf-x86.c:252:17: error: ‘HWF_INTEL_CPU’ undeclared (first use in this function) + 252 | result |= HWF_INTEL_CPU; + | ^~~~~~~~~~~~~ + +and other corresponding HWF_INTEL_* definitions because HAVE_CPU_ARCH_X86 was +erroneously not defined by configure script. + +Signed-off-by: Lars Wendler +--- + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index 8a72c078e..17937baf4 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1150,7 +1150,7 @@ fi + + # Implementation of the --disable-amd64-as-feature-detection switch. + AC_MSG_CHECKING([whether to enable AMD64 as(1) feature detection]) +-if test x$target_cpu == xx86_64 -a x$platform == xefi; then ++if test x$target_cpu = xx86_64 -a x$platform = xefi; then + CPPFLAGS_GCRY_ASM="-D__x86_64 -DHAVE_CPU_ARCH_X86" + AC_ARG_ENABLE(amd64-as-feature-detection, + AS_HELP_STRING([--disable-amd64-as-feature-detection], +-- +2.51.1 + diff --git a/sdk_container/src/third_party/portage-stable/sys-boot/grub/grub-2.12-r7.ebuild b/sdk_container/src/third_party/portage-stable/sys-boot/grub/grub-2.12-r7.ebuild index 960c9f57edb..c5797ed8846 100644 --- a/sdk_container/src/third_party/portage-stable/sys-boot/grub/grub-2.12-r7.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-boot/grub/grub-2.12-r7.ebuild @@ -20,7 +20,7 @@ GRUB_AUTOGEN=1 GRUB_AUTORECONF=1 PYTHON_COMPAT=( python3_{10..13} ) WANT_LIBTOOL=none -VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/dkiper.gpg +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/grub.asc if [[ -n ${GRUB_AUTORECONF} ]]; then inherit autotools @@ -52,7 +52,7 @@ if [[ ${PV} != 9999 ]]; then " S=${WORKDIR}/${P%_*} fi - BDEPEND="verify-sig? ( sec-keys/openpgp-keys-danielkiper )" + BDEPEND="verify-sig? ( sec-keys/openpgp-keys-grub )" KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv ~sparc x86" else inherit git-r3 diff --git a/sdk_container/src/third_party/portage-stable/sys-boot/grub/grub-2.14_rc1.ebuild b/sdk_container/src/third_party/portage-stable/sys-boot/grub/grub-2.14_rc1.ebuild new file mode 100644 index 00000000000..0ba443e62ba --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-boot/grub/grub-2.14_rc1.ebuild @@ -0,0 +1,439 @@ +# Copyright 1999-2025 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. + +GRUB_AUTORECONF=1 +if [[ ${PV} == 9999 ]]; then + GRUB_BOOTSTRAP=1 +fi + +PYTHON_COMPAT=( python3_{11..14} ) +WANT_LIBTOOL=none + +if [[ -n ${GRUB_AUTORECONF} ]]; then + inherit autotools +fi + +inherit bash-completion-r1 eapi9-ver flag-o-matic multibuild optfeature +inherit python-any-r1 secureboot toolchain-funcs verify-sig + +DESCRIPTION="GNU GRUB boot loader" +HOMEPAGE="https://www.gnu.org/software/grub/" + +MY_P=${P} +if [[ ${PV} != 9999 ]]; then + 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 + BDEPEND=" + verify-sig? ( + sec-keys/openpgp-keys-grub + sec-keys/openpgp-keys-unifont + ) + " + KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86" +else + inherit git-r3 + EGIT_REPO_URI="https://git.savannah.gnu.org/git/grub.git" +fi + +PATCHES=( + "${FILESDIR}"/gfxpayload.patch + "${FILESDIR}"/grub-2.02_beta2-KERNEL_GLOBS.patch + "${FILESDIR}"/grub-2.06-test-words.patch + "${FILESDIR}"/grub-2.14_rc1-configure.ac-avoid-bashisms.patch +) + +DEJAVU_VER=2.37 +DEJAVU=dejavu-fonts-ttf-${DEJAVU_VER} +UNIFONT=unifont-17.0.02 +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="+device-mapper doc efiemu +fonts mount nls 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 ) +" +RDEPEND="${DEPEND} + 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() { + : +} + +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 + 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 + 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 || 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 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 + + 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. + use libzfs && { addpredict /etc/dfs; addpredict /dev/zfs; } + + 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}" bashcompletiondir="$(get_bashcompdir)" + use doc && grub_do_once emake -C docs install-html DESTDIR="${D}" + + einstalldocs + + insinto /etc/default + newins "${FILESDIR}"/grub.default-4 grub + + # https://bugs.gentoo.org/231935 + dostrip -x /usr/lib/grub + + sed -e "s/%PV%/${PV}/" "${FILESDIR}/sbat.csv" > "${T}/sbat.csv" || die + insinto /usr/share/grub + doins "${T}/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/grub:0'; then + elog "A migration guide for GRUB Legacy users is available:" + elog " https://wiki.gentoo.org/wiki/GRUB2_Migration" + 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 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 0cc833ac5a3..4ff9024e472 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,24 +21,21 @@ if [[ ${PV} == 9999 ]]; then GRUB_BOOTSTRAP=1 fi -PYTHON_COMPAT=( python3_{10..13} ) +PYTHON_COMPAT=( python3_{11..14} ) WANT_LIBTOOL=none -VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/dkiper.gpg if [[ -n ${GRUB_AUTORECONF} ]]; then inherit autotools fi inherit bash-completion-r1 eapi9-ver flag-o-matic multibuild optfeature -inherit python-any-r1 secureboot toolchain-funcs +inherit python-any-r1 secureboot toolchain-funcs verify-sig DESCRIPTION="GNU GRUB boot loader" HOMEPAGE="https://www.gnu.org/software/grub/" MY_P=${P} if [[ ${PV} != 9999 ]]; then - inherit verify-sig - 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/_/'~'} @@ -54,7 +51,12 @@ if [[ ${PV} != 9999 ]]; then " S=${WORKDIR}/${P%_*} fi - BDEPEND="verify-sig? ( sec-keys/openpgp-keys-danielkiper )" + BDEPEND=" + verify-sig? ( + sec-keys/openpgp-keys-grub + sec-keys/openpgp-keys-unifont + ) + " KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86" else inherit git-r3 @@ -69,9 +71,12 @@ PATCHES=( DEJAVU_VER=2.37 DEJAVU=dejavu-fonts-ttf-${DEJAVU_VER} -UNIFONT=unifont-16.0.02 +UNIFONT=unifont-17.0.02 SRC_URI+=" - fonts? ( mirror://gnu/unifont/${UNIFONT}/${UNIFONT}.pcf.gz ) + 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 ) " @@ -160,7 +165,12 @@ src_unpack() { git-r3_checkout "${GNULIB_URI}" gnulib popd >/dev/null || die elif use verify-sig; then - verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.sig} + verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.sig} \ + "${BROOT}"/usr/share/openpgp-keys/grub.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 } diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/binutils-config/Manifest b/sdk_container/src/third_party/portage-stable/sys-devel/binutils-config/Manifest index 5f9445018f1..fcacec7394f 100644 --- a/sdk_container/src/third_party/portage-stable/sys-devel/binutils-config/Manifest +++ b/sdk_container/src/third_party/portage-stable/sys-devel/binutils-config/Manifest @@ -1 +1,3 @@ DIST binutils-config-5.5.2.tar.xz 7548 BLAKE2B a4fe6f2039c4963ba09fb63b52bf3707b91eed36b514132c0c23da2474b9af6d2fd5b8eaef2dd8f44827f5d38095c936685765d3c4cc7404d06c4ac069cf1102 SHA512 c53118c1ce4b87c0446b1b9993fadabe2bd7447dafc9a2bf795a5e3b802348b4fa8aede06284a0c86f80f23b221b037a0404d5424f2f5aa796e8a3ea6945328c +DIST binutils-config-5.5.3.tar.xz 7588 BLAKE2B dba41de46b379188fe11ec9cf82c71ec372d16294c14011cc19458bcea06c71f27ead2ebd0021eb1edfb3f2bf3a604ab58cea25667579f538043a7ad4e98b4ad SHA512 b12c3b708946d120c351a6e5d4f315f8cfceb7eaf59ea27b06acbb11216e92ee680089760d1df672401ac977a3bed7758e3a0463c59909b7e4df1107f416fdfb +DIST binutils-config-5.6.tar.xz 7552 BLAKE2B fdfd4ae4d964fc3cf5c9c6a0accd7c7db36a0e81483a4e39eb27533ff2e0d32f9bacfb541e6ca28fd70bcb204b23175b1fc1be4b67475fa628cf6bd37efba6e4 SHA512 11f36e83bdbb1ee98b866215ba3c480079dba7d00cbadf3d618e446b87bc3bfa2381cb30099463575a8cd2bf3352a5032610691f7e115b961240b48dec9b1cfa diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/binutils-config/binutils-config-5.5.3.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/binutils-config/binutils-config-5.5.3.ebuild new file mode 100644 index 00000000000..a6c0d3c1643 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-devel/binutils-config/binutils-config-5.5.3.ebuild @@ -0,0 +1,39 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +if [[ ${PV} == 9999 ]]; then + EGIT_REPO_URI="https://anongit.gentoo.org/git/proj/binutils-config.git" + inherit git-r3 +else + SRC_URI="https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${P}.tar.xz" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +fi + +DESCRIPTION="Utility to change the binutils version being used" +HOMEPAGE="https://wiki.gentoo.org/wiki/Project:Toolchain" + +LICENSE="GPL-2 GPL-2+" +SLOT="0" +IUSE="+native-symlinks" + +# We also RDEPEND on sys-apps/findutils which is in base @system +RDEPEND="sys-apps/gentoo-functions" + +src_compile() { + emake PV="${PV}" USE_NATIVE_LINKS="$(usex native-symlinks)" +} + +src_install() { + emake DESTDIR="${D}" PV="${PV}" install +} + +pkg_postinst() { + # Re-register all targets. USE flags or new versions can change + # installed symlinks. + local x + for x in $(binutils-config -C -l 2>/dev/null | awk '$NF == "*" { print $2 }') ; do + binutils-config ${x} + done +} diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/binutils-config/binutils-config-5.6.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/binutils-config/binutils-config-5.6.ebuild new file mode 100644 index 00000000000..a6c0d3c1643 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-devel/binutils-config/binutils-config-5.6.ebuild @@ -0,0 +1,39 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +if [[ ${PV} == 9999 ]]; then + EGIT_REPO_URI="https://anongit.gentoo.org/git/proj/binutils-config.git" + inherit git-r3 +else + SRC_URI="https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${P}.tar.xz" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +fi + +DESCRIPTION="Utility to change the binutils version being used" +HOMEPAGE="https://wiki.gentoo.org/wiki/Project:Toolchain" + +LICENSE="GPL-2 GPL-2+" +SLOT="0" +IUSE="+native-symlinks" + +# We also RDEPEND on sys-apps/findutils which is in base @system +RDEPEND="sys-apps/gentoo-functions" + +src_compile() { + emake PV="${PV}" USE_NATIVE_LINKS="$(usex native-symlinks)" +} + +src_install() { + emake DESTDIR="${D}" PV="${PV}" install +} + +pkg_postinst() { + # Re-register all targets. USE flags or new versions can change + # installed symlinks. + local x + for x in $(binutils-config -C -l 2>/dev/null | awk '$NF == "*" { print $2 }') ; do + binutils-config ${x} + done +} diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/binutils/binutils-2.45-r1.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/binutils/binutils-2.45-r1.ebuild index b5a6f6cc959..592088c132d 100644 --- a/sdk_container/src/third_party/portage-stable/sys-devel/binutils/binutils-2.45-r1.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-devel/binutils/binutils-2.45-r1.ebuild @@ -35,7 +35,7 @@ else [[ -z ${PATCH_VER} ]] || SRC_URI="${SRC_URI} https://dev.gentoo.org/~${PATCH_DEV}/distfiles/binutils-${PATCH_BINUTILS_VER}-patches-${PATCH_VER}.tar.xz" SLOT=$(ver_cut 1-2) - 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 # diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc-config/Manifest b/sdk_container/src/third_party/portage-stable/sys-devel/gcc-config/Manifest index eb182465584..75033200284 100644 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc-config/Manifest +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc-config/Manifest @@ -1 +1,2 @@ DIST gcc-config-2.12.1.tar.xz 18328 BLAKE2B 349c4614ea349d03f445cdda5d87ccb5e54b4faa802c8997f3bc088a78bf4ff92ec75c91d986ff3e26ab7f098e3af70dd9f85efda77ed64315d2e59b4b11a925 SHA512 abd7fe4ee79269b1003ffe2fb24884751e94e7777814ac123e51db0c059d105b312aed08726fbda2342504738f7055ca803f0ddd006e57110f49d7f3db574183 +DIST gcc-config-2.12.2.tar.xz 18320 BLAKE2B c3ed9a56f130c7787db44bc756c22e81007ec699a079e4e20cfb1f340967be34454f23b0377a59ee4ab3e10a3e87d173a1898d9ce24136bec0f20ed7900b4ec4 SHA512 266ea91e1613f5c969628d49ff513b554b9219f0ff12af86c10cbc857deac140e13daf0296109c7740292f10e7e26f0a5e492dd22bec4e952ee8a5f115a22041 diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc-config/gcc-config-2.12.2.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc-config/gcc-config-2.12.2.ebuild new file mode 100644 index 00000000000..b26e560d302 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc-config/gcc-config-2.12.2.ebuild @@ -0,0 +1,60 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +if [[ ${PV} == 9999 ]]; then + EGIT_REPO_URI="https://anongit.gentoo.org/git/proj/gcc-config.git" + inherit git-r3 +else + SRC_URI="https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${P}.tar.xz" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +fi + +DESCRIPTION="Utility to manage compilers" +HOMEPAGE="https://gitweb.gentoo.org/proj/gcc-config.git/" + +LICENSE="GPL-2 GPL-2+" +SLOT="0" +IUSE="+cc-wrappers +native-symlinks" + +RDEPEND=">=sys-apps/gentoo-functions-0.10" + +_emake() { + emake \ + PV="${PVR}" \ + SUBLIBDIR="$(get_libdir)" \ + USE_CC_WRAPPERS="$(usex cc-wrappers)" \ + USE_NATIVE_LINKS="$(usex native-symlinks)" \ + TOOLCHAIN_PREFIX="${CHOST}-" \ + "$@" +} + +src_compile() { + _emake +} + +src_install() { + _emake DESTDIR="${D}" install +} + +pkg_postinst() { + # Do we have a valid multi ver setup ? + local x + for x in $(gcc-config -C -l 2>/dev/null | awk '$NF == "*" { print $2 }') ; do + gcc-config ${x} + done + + # USE flag change can add or delete files in /usr/bin worth recaching + if [[ ! ${ROOT} && -f ${EPREFIX}/usr/share/eselect/modules/compiler-shadow.eselect ]] ; then + eselect compiler-shadow update all + fi + + if ! has_version "sys-devel/gcc[gcj(-)]" && [[ -x "${EROOT}"/usr/bin/gcj ]] ; then + # Warn about obsolete /usr/bin/gcj for bug #804178 + ewarn "Obsolete GCJ wrapper found: ${EROOT}/usr/bin/gcj!" + ewarn "Please delete this file unless you know it is needed (e.g. custom gcj install)." + ewarn "If you have no idea what this means, please delete the file:" + ewarn " rm ${EROOT}/usr/bin/gcj" + fi +} 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 09200522b94..7a303aeafcf 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 @@ -15,6 +15,9 @@ DIST gcc-13-20250807.tar.xz 84575936 BLAKE2B cac8022c6c6d31fa1d741589b9a7c7fd60e DIST gcc-13-20250925.tar.xz 84597944 BLAKE2B 374e8665bffb68d2618dc81626fe64c6c189e897c58415634d12f731ead8ed2528623ce9c817fb3577ce25c7bab0c89bb62b85a6380eb083f1bf0f1d9d83312b SHA512 aecf0e5bb472f06b106b81d8ca18858ec1000696669e092686775717166aae3f36652baa57db84e9482eb0cf7dda94ac67ba4cf57a69a9b06e37ee687d5fa8ac DIST gcc-13-20251002.tar.xz 84599604 BLAKE2B 0d4ef5e54e5f2c998bdbaaa0b41e4d979bee4896baedae9408d9bf5f85200cefef69e4499ea5a9bd7c4793bf8578b2f8e88ca607bf81112a1ada7f8a6ca94454 SHA512 5717b9d5c516d7ee9615c842c131541296eb10bce92a50f3849bcb8f28a4ae373c586d60a696710703abc0c73950d55b2fad6acb85387abb5e8fec90335b580c DIST gcc-13-20251009.tar.xz 84593904 BLAKE2B 5b8602b1eaa6b81e414ef9a0c18d248a824bf185ac8853cbe41c1831ad009a39f8fcc38ccadaa1bfca23c0b9c98b47efd05859b11a499a49f658090f6395dc6d SHA512 7322110114e1cc5fa6c15cdee7d9f26cde1ab953006c6ab1e16223499bdf403b0bc868d2a2065fcf8c5c6ba4488dafb1e0b896ae70a10eb2e527ce60a06e9551 +DIST gcc-13-20251016.tar.xz 84569872 BLAKE2B 39d1031bc18809098365cda39402ab6d5fa9b513cb2429e1a5f636f6aaaa1e51c515dda5d2842756fdfa03076f0b00089e929dd21bf1fb9a4ba03a4d31d1488f SHA512 bd8e121441bf448b8faf4f0adea93ee218a67a54646bce18638eec5c51974bda4b3226907e5ed7877f973a5a998cbd083dc27c12a64dfa07aec693da1cb2af55 +DIST gcc-13-20251023.tar.xz 84603332 BLAKE2B 2c696360ed6a051cd061797309098c184ce1ca0783966e6b96a44dc3e601061cfcdf7f91743175d117d0599011ad7d7953b092d578095899665495615a51c09f SHA512 d04769d9c50b37f06ba21ef75b38a8a6d4798b0c4f3f27ca033a15722100b29729ec5bb1b8596d45c28c0d6b9bbe4304ef0eca4a12ca83796b2c14ce05c6dded +DIST gcc-13-20251030.tar.xz 84596948 BLAKE2B 92cacccdd61d3d632bf881d6c153ca891eb39a2d8d116b886ac60027defc17450fe922f7f1d5ac82f84333a1340717a4e999f6b8b05f51838911a9f93336feda SHA512 c16b26699cba3504d13f4f00cff99084d953abc00856b3102cdceb630a5993356dbd5d7b0cc64cdc5c0d015dc2b08fd45d9ef41d6f881177eb4fd54bd5b8a173 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 @@ -28,6 +31,9 @@ DIST gcc-14-20250801.tar.xz 88323948 BLAKE2B 1d47af7340faeed133a1d55bed8a788e4a7 DIST gcc-14-20250926.tar.xz 88365628 BLAKE2B 7aff8f4868b34073628f204978e2835014095fd69c49691758543a6ed94a30a3b42afb53c786a86f77e3db0eb1f43a58eafd7ccc7c12d6f60ea0c85a958c0bf5 SHA512 04c500a3e0edc5c88706b190bcea5a1c4639682929319227aed579d3e5f757910339cc86f4a1cca3000701c77489552cac6fd46bff6ba40a9d216b32e0920b62 DIST gcc-14-20251003.tar.xz 88346112 BLAKE2B 0788eee71db7259d284ffba2bce8593c684355ac7cf3579c6317e22c8124b6e468d1ef493eb6ef8e31e0cb3802349cc47d629c918c11f3cd5a4f36c9bf6a69d3 SHA512 196e58a1989b675d49c6b04c1e53bba0f0235036efac61606615b985360874894efaa79b2b1e85bd05aed2766fd753e1015c07ce42e1a97e00d7a2a9695bb38a DIST gcc-14-20251010.tar.xz 88327164 BLAKE2B 148149cf2f10382b11e03e41700b56674248561330c51982f2e3e340be093bed942f0e34d3caeb32d8079e433cdddd3dff87331ab3d4edfdab7afa477a0a5bb8 SHA512 a0ac28ff96d74cf063f18a92530db73259691969ac931bac0862e676ca4067269013c40ea4a692439bc12e16c816f6fc1fe7a5de526719813faa96b90a0a1dde +DIST gcc-14-20251017.tar.xz 88341316 BLAKE2B cbf51aa6784652c90c58766a5f1baadb3395632b708988d7bc6043e2b943536acc5446d0463cee6192aaf026c5f93de09d9366bb3fe6d8134ab098c08b660552 SHA512 7b3385a7143003386df9c4794f2e1b0c79c8a5bccbc29a0e6a897d7028f51ac1e5c71796c0f0caaa3555acf427c8e6e0eccbd68d51512c4d6b5f6eafdc14a02b +DIST gcc-14-20251024.tar.xz 88363084 BLAKE2B 470e3f342cae5e99fd762e69d4ba1c6bc5bc571bf416239258c34c3dcda7cf48e83206d596b73ad1ab49b67a7b82ab66b7235f1aee7deff1ca2e2a675d2f9a06 SHA512 0ecb1c7b178bb41a64c7bddb4d0bcd8927435c0188a29b7eca4177580836c7f53d9f6128c0fc57c7c95d8c2281385e46aae45fdad296e935e31813fd0e791034 +DIST gcc-14-20251031.tar.xz 88351788 BLAKE2B 158c77def6e7b42478529281afc267b7746c22e315f86d0480db3bc8d471c52eb7ff9e8e589a479d4f058e5712222c0fc7fc00a21dbdc3ab2fc474640d948ff9 SHA512 52cf23fc74341746a36a1d1d12b15fad81124bf437fe7429734f368865411aab168bbf81cc918c0e39fb6c29eebef6bd4846911ede8a2f1885ca723febcdc2e6 DIST gcc-14.1.0-musl-patches-1.tar.xz 3600 BLAKE2B 4cd920b7ca1f122cae806707564d8e45bfd48e78c88788a12a301f6068b5a5f335d8885e67479ac536c66aeaa81f2ecb7240ae56e9fc821a7246ab66b453711f SHA512 61c48d90a55dfc2129d96aee69d939d6a89f6407f69f7bd12c1a619f28989f471fd219d731958f8e62b0fd650c32300f0ad8dc06d5df23d9fc8c1a77fe210c25 DIST gcc-14.2.0-patches-8.tar.xz 14540 BLAKE2B 09f66035343d4cab694b8ab382170f8e2d546ddffedf3477f26edbd6a798ddf94294f569c2661729d40088d590bc17a4eb651710d8d9f66f33703734a1a82b67 SHA512 7a9a2724ef8db3c57b033d90751192969c16e5eaa8f4777b7f16470222ff3a18771b461bd89feaad701e7f0d573b883b487981588129933c732fb76117728b86 DIST gcc-14.3.0-musl-patches-2.tar.xz 6888 BLAKE2B e2f9ce6d445b7ced8f78c18585887422ffdd32356368a456a7cfde5a1854515b32546c1d25a2ab8637ee62d04a2c0bda1afc8d53c44e5c80c12499918c3c18fc SHA512 0b59d228213024cd93d9ffbd4ae5947021db2dc71bd320cc0e4ccf523d39f72e61be25c1a49a343729fe7b9abf7181503de3e650b255d80ab6d969d0de317d19 @@ -36,16 +42,23 @@ DIST gcc-14.3.0.tar.xz 95212220 BLAKE2B 11c0e549b2e9b4bbbe4cd64782032d2ec783b3db DIST gcc-15-20250927.tar.xz 92319628 BLAKE2B 1bca8818739d16c7f137650b94a6bafcf031727b7a75ed1bb5698c4044e6d174bd8f65557dfb716ba9e0f97d4f3babee148b34cc932abbca114a38f698d40741 SHA512 88951225f4ac8492ba5cfffbbbcf951ebf88fa4b7cc44f95cab2f18c2b789c5d327252984da1a68a965838ab697b33ec58f285c5fa996437444913d91099a43e DIST gcc-15-20251004.tar.xz 92342084 BLAKE2B 6b8e3c7c3fa12f504c9d4e008cd445d44c4b1062e12a66495f20661e4d24b26c94e2388a024a9e45f27fa50ccfbac0077067fc6331b2cdb80741525be5996af2 SHA512 64c1aeb4639f86a37c14501bd4b384de4bef21e393fce7b728b4841eef0471bcb4bd4c68c14f51b3b455770029b5df4896fdf17899cf318c8dc4db5356a45a39 DIST gcc-15-20251011.tar.xz 92333560 BLAKE2B a9142134d202ef2974297b97dbd2f48cf490fab664a293f2ba87d50a135d5942348e8a9dd89013893a5f1a509740f6e4f285887ccfc9328ded5dd5f48c6f0d44 SHA512 6d0e60c782a504f1c0c293d2bcd9d38d82d3baac13a83d879c7810c4344e30ebf838ead9cce09800c81afa3ec88b03d38d512c613ea95d6f7d9076cfb9403a82 +DIST gcc-15-20251018.tar.xz 92324856 BLAKE2B 46e5a26bb0b03f00691e83f018b1fa3a599a4f6c0f574a061f468bbfd4d45fea6ea80ac2e0b1aede6b8da2c5e5de26868d7e89d710e0f8d40d9e4eb092ee0b25 SHA512 4cbb06f653ef3c55119d7fc0646110eb294a20ea10b26e02bea3def856569b5d3579d98882e6f3257d4069658fa4812fb6caf238923034e07e6ad6540be2078d +DIST gcc-15-20251025.tar.xz 92340172 BLAKE2B 87f92ab8caf766272f6d28fa456a43bd72bfaec8f6cf1bcd26789513f252743ee7b7c70993ba3e8aac63f65740db93e6259ab0e46f898f69d7d32f85807379ec SHA512 e5be8590e246c4994171771bb78b43db382522c9d3ec7b216fecdb86e6b00297859c34f884be5a495d27d460cace0f06e7955d9794b647535bf8313750db58f1 +DIST gcc-15-20251101.tar.xz 92347192 BLAKE2B d2096037e3ea21fefd7f812cc683952bad6d0fe631a0e6207cc39692d8551495911e951a23dd201ed57a931157fae2c8641c43e0ebf60be577b2b457070f093b SHA512 acd609edf0c77717ff41f4be4f00e162f683d3102f953d4f5f2d91c964e92a0950f1ed6900271b7db663f98bfa6be468e446079558439b36a7a345d22ba772a2 DIST gcc-15.2.0-musl-patches-1.tar.xz 7168 BLAKE2B 6b7cfb123c3a691693240db815e6852a1e6c3820baa499368c463e0a0c1490c701053cfea10bf1d33f89dd2ba7bbddf63c4e6e0976590e3aaf1fee78b9282079 SHA512 ab80ffd69b9ead1fe06a9433faaa97ae53947d214999e77ea363fa6435de080d031a1aa6869e1dc088e800317952f2dc249a9e872113db56fb76f0a432240871 DIST gcc-15.2.0-patches-1.tar.xz 17412 BLAKE2B b761d5c75e084724a80287adb0659286fa208d40b731fc562e9c555d178f2531ecd1e3ca85b674d83f7aabe774d12b382c0b12d0cd024d45e8b915d185f7e229 SHA512 15442890b5b077e3bb392b9cab5dc7a2379c6da7820dc54d25ae337cc5238f662d834ea531882a273f3aba36672f14600baca40a2f4580fceb0e396f56b15594 DIST gcc-15.2.0.tar.xz 101056276 BLAKE2B e270320978ca690e6e8f5ef06414dc13caf561f16403a3783c76fbf3dcee57e755a2d5bba922bf7fcae0bb6120443755d819b003791ae823d54589dd799804de SHA512 89047a2e07bd9da265b507b516ed3635adb17491c7f4f67cf090f0bd5b3fc7f2ee6e4cc4008beef7ca884b6b71dffe2bb652b21f01a702e17b468cca2d10b2de DIST gcc-16-20250928.tar.xz 95726148 BLAKE2B e64e8914de05f4b811477a009b67c10ff9f47dc2735a24c6ab47449d14ae37970da6a084802dd19479b3b0878e260ee889e5d7bb3a37f47443487fef74ee8682 SHA512 bf3f948a34e30e28eafb226e3d676024c22b3f9d890a9e4ab09083f7ef9dddc404937edd05704bb8527b14ad5965bf1090ca358e5907db29f64d816fbb11be58 DIST gcc-16-20251005.tar.xz 95768580 BLAKE2B 7caee206865414a84e01686ce905562bfd0498eb2087802bc1de2329fa3246545b0c42d9acae4f91b119b68a768cac69e03e4769a8c3fb69a22ff9d129165134 SHA512 7e5a731f789c0c502d62630ce4331976406561f69416ba9b741557a8a0d60cbcec251cac66258db23fa2f07359cfd477ed45393893272bf2291b0c02b8d1c271 DIST gcc-16-20251012.tar.xz 95852732 BLAKE2B 4caf310961af93fd9af3ba8d85c864c43a56d43b3d621efc5114e067a2a2dcef1510448455770359be9e9fc490ff8d08765ad7b06cce85cf87c67098629903e4 SHA512 9a89a4b0154896e517498e923a0e8d9352d54be8b2cee8e7f7ddd187babd36281526e844645271bdc5024ed7a2030c8a9f7ccb7d3b4aa577bce43bccb1f6fb0b +DIST gcc-16-20251019.tar.xz 95775296 BLAKE2B 4a272b53441bf49aecf2232dc6b196a13b6572234199434dfa8f5f42d679563833e879236cc1f5ec968e6d6944c0f6c91f40b1679a3f64abd9d26c035bab0e20 SHA512 d42305e0ea369d5c83dd52c1ae8724b51144504e2956202b24d22a19d346e8f93a4651fb7037a9fe8240568181e3031405584bb89bac5834d04e4ab42ce40d17 +DIST gcc-16-20251026.tar.xz 95827392 BLAKE2B e883420c16b33035f529dc07696614a850dac590e14bb461106e97da85a0c3808dc3d4235af507bf4c9584435e10085a43962b4f5af42d02da2ee94237d7a621 SHA512 ee1449820ef81066c2ef92ac18d3e88b1e72156058346ecc3e051a6d38628a605d65425cd7e1a11cccf40cedad234b746da97eb7bc13d4349839fd15322b52dc DIST gcc-16.0.0-musl-patches-1.tar.xz 3040 BLAKE2B 18b16357699780eb470cf44a10710281955140103198e0bd55b75e1efe3dbec233689edb11e1b9a62f782f3d97293af4906c18c2c41613b422eda085ee819467 SHA512 5ba580c7c7bb9e62935a5162d44d357cc31185a113acff7498ed7b1ac43fd0a35de7c3de0c87f02fe0be46b5e55b49bb35d1f5cd470058d21a9ea4096a37e13d DIST gcc-16.0.0-patches-14.tar.xz 21676 BLAKE2B 6bd29ef5bb6993d846e7071a83c902354bc3c10b5576c345f60bc69e4d9725ed71086efa7cddcff2d20d0d4a8e2dec93719efd943263a6e684c543c42345c0fd SHA512 6f9080f4736d42d49b4c10b65da4f4c893be8034714b30f2ec6838a15fc2c201cde07d18cf752e0df0c689cf543a4303182e522b1d9054a8081d56e37eede6a0 DIST gcc-16.0.0-patches-16.tar.xz 28672 BLAKE2B f2319a3364606fa3eb5557edae173c3defa3201731acc210ed9659500e0977b04214605d2004c5df44950d7687fc755ef750287ec2d1f7c1637ccb4c8d3c830a SHA512 69bc54b73c5e1663963361cf898a98b93458e490cc87143b59ff73265d8a1a2ec64e766d2ca5c4e9d01026d6008dac05e9eb6ace84e48cdbd6238f9fb60c0042 DIST gcc-16.0.0-patches-17.tar.xz 21716 BLAKE2B c79bc8bb5620867807c2deab1cd965bee71ad97f8521bd8b716c5f71eaf81743a2fef6964a8183967f380e8f9e2ed20d998ed066417bbd1f8676f1ead19cd5d9 SHA512 f718cb9f107623d18bb5f783718e38b2dd4b8c6ebdd687d50d06d9b47c4cb4b6724539abbee7480daa25dc90c247c455af4f5ee5a330ad20f19598a201312c52 +DIST gcc-16.0.0-patches-18.tar.xz 22516 BLAKE2B 762ab67e7cef43cd2f1fff0e499ab128cff6db7b699d9c64d3cdc5c91bb2c92d71f514f914b25b977f3cec6b5be4bd1819e0340eefbb32c84383ce83d46aef6a SHA512 6fd46c9ee35bb83d434b495e2897272477e60888b507e3c4c601f93dd429aa200e574803505eb9df7c47c66314e0516a35ce40c109232c350179603729e05a30 +DIST gcc-16.0.0-patches-19.tar.xz 22492 BLAKE2B e2ef628b2ebb283b4ff109d168c3a0319cd5b1ffa5c3741bf9843386207d89aaf03328b0a2f75b17fc7c36fc74485465eec32124702c300044b69eddc77cc435 SHA512 1bd76904028cd31880c831a96562488a7a10d1e7fac8190efe931fbbc6669ff0dfeee30a0efc1dc036fad86daba8c33be8f958e05c387099f9e2e848e2fdf174 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_p20251016.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.4.1_p20251016.ebuild new file mode 100644 index 00000000000..dca8cbfa667 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.4.1_p20251016.ebuild @@ -0,0 +1,69 @@ +# Copyright 1999-2025 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_PATCH_DEV="sam" +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_p20251023.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.4.1_p20251023.ebuild new file mode 100644 index 00000000000..d85d2cf0d42 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.4.1_p20251023.ebuild @@ -0,0 +1,69 @@ +# Copyright 1999-2025 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_PATCH_DEV="sam" +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_p20251030.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.4.1_p20251030.ebuild new file mode 100644 index 00000000000..d85d2cf0d42 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.4.1_p20251030.ebuild @@ -0,0 +1,69 @@ +# Copyright 1999-2025 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_PATCH_DEV="sam" +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.3.1_p20251017.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.3.1_p20251017.ebuild new file mode 100644 index 00000000000..d99f5eced9f --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.3.1_p20251017.ebuild @@ -0,0 +1,57 @@ +# Copyright 1999-2025 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_PATCH_DEV="sam" +TOOLCHAIN_HAS_TESTS=1 +PATCH_GCC_VER="14.3.0" +PATCH_VER="4" +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.3.1_p20251024.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.3.1_p20251024.ebuild new file mode 100644 index 00000000000..bce5cafa90e --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.3.1_p20251024.ebuild @@ -0,0 +1,57 @@ +# Copyright 1999-2025 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_PATCH_DEV="sam" +TOOLCHAIN_HAS_TESTS=1 +PATCH_GCC_VER="14.3.0" +PATCH_VER="4" +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.3.1_p20251031.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.3.1_p20251031.ebuild new file mode 100644 index 00000000000..bce5cafa90e --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.3.1_p20251031.ebuild @@ -0,0 +1,57 @@ +# Copyright 1999-2025 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_PATCH_DEV="sam" +TOOLCHAIN_HAS_TESTS=1 +PATCH_GCC_VER="14.3.0" +PATCH_VER="4" +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.2.1_p20251018.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.2.1_p20251018.ebuild new file mode 100644 index 00000000000..7248be0fc29 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.2.1_p20251018.ebuild @@ -0,0 +1,56 @@ +# Copyright 1999-2025 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_PATCH_DEV="sam" +TOOLCHAIN_HAS_TESTS=1 +PATCH_GCC_VER="15.2.0" +PATCH_VER="1" +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 ~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.2.1_p20251025.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.2.1_p20251025.ebuild new file mode 100644 index 00000000000..b893bba5845 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.2.1_p20251025.ebuild @@ -0,0 +1,56 @@ +# Copyright 1999-2025 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_PATCH_DEV="sam" +TOOLCHAIN_HAS_TESTS=1 +PATCH_GCC_VER="15.2.0" +PATCH_VER="1" +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 ~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.2.1_p20251101.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.2.1_p20251101.ebuild new file mode 100644 index 00000000000..b893bba5845 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.2.1_p20251101.ebuild @@ -0,0 +1,56 @@ +# Copyright 1999-2025 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_PATCH_DEV="sam" +TOOLCHAIN_HAS_TESTS=1 +PATCH_GCC_VER="15.2.0" +PATCH_VER="1" +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 ~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-16.0.0_p20251019.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-16.0.0_p20251019.ebuild new file mode 100644 index 00000000000..418fc2a772b --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-16.0.0_p20251019.ebuild @@ -0,0 +1,56 @@ +# Copyright 1999-2025 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_PATCH_DEV="sam" +TOOLCHAIN_HAS_TESTS=1 +PATCH_GCC_VER="16.0.0" +PATCH_VER="18" +MUSL_VER="1" +MUSL_GCC_VER="16.0.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 + eapply_user +} diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-16.0.0_p20251026.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-16.0.0_p20251026.ebuild new file mode 100644 index 00000000000..931b66b71f5 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-16.0.0_p20251026.ebuild @@ -0,0 +1,56 @@ +# Copyright 1999-2025 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_PATCH_DEV="sam" +TOOLCHAIN_HAS_TESTS=1 +PATCH_GCC_VER="16.0.0" +PATCH_VER="19" +MUSL_VER="1" +MUSL_GCC_VER="16.0.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 + eapply_user +} diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/btrfs-progs/btrfs-progs-6.16.1.ebuild b/sdk_container/src/third_party/portage-stable/sys-fs/btrfs-progs/btrfs-progs-6.16.1.ebuild index c1ddced8f5b..d7bfa6e297d 100644 --- a/sdk_container/src/third_party/portage-stable/sys-fs/btrfs-progs/btrfs-progs-6.16.1.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-fs/btrfs-progs/btrfs-progs-6.16.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 ~sparc x86" + KEYWORDS="~alpha amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~sparc x86" fi fi diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/btrfs-progs/btrfs-progs-6.17.ebuild b/sdk_container/src/third_party/portage-stable/sys-fs/btrfs-progs/btrfs-progs-6.17.ebuild index 45d288067d0..c857626f760 100644 --- a/sdk_container/src/third_party/portage-stable/sys-fs/btrfs-progs/btrfs-progs-6.17.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-fs/btrfs-progs/btrfs-progs-6.17.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 ~sparc ~x86" + KEYWORDS="~alpha amd64 ~arm arm64 ~loong ~mips ppc ppc64 ~riscv ~sparc x86" fi fi diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/xfsprogs/Manifest b/sdk_container/src/third_party/portage-stable/sys-fs/xfsprogs/Manifest index db2dda0a19f..3beb02e8b1e 100644 --- a/sdk_container/src/third_party/portage-stable/sys-fs/xfsprogs/Manifest +++ b/sdk_container/src/third_party/portage-stable/sys-fs/xfsprogs/Manifest @@ -3,3 +3,4 @@ DIST xfsprogs-6.13.0.tar.xz 1506676 BLAKE2B 98a8b51ba7fb7f58ea292e9c4624ca3c2337 DIST xfsprogs-6.14.0.tar.xz 1543640 BLAKE2B 5ef446b2055356627cd91ebfe9bb07388f9b5a12fd8c530b83980261b2dc3ddfa47f809114f0f238ef787ed687d324abe82427fdc2b3ecc3171d4d06615dd0c4 SHA512 249a64fb5a92ceb9e58b75a270a90773cfe2c90e863d3f9853c14b3eb0f414bf55b8b67c220a1d7386894ef9295622e224977bd3c6600c9dcba826cb4a634f49 DIST xfsprogs-6.15.0.tar.xz 1550568 BLAKE2B fe6806ac8235c0984055f7b969b11bc0c49ee8bb8f49f7a4c3bf03f1ebf839cccb86cdb6c4946723a1b8007422e057fb7b865cc60081037920e8208cfcab16e9 SHA512 975c9c7fe476b02da50da74eb599f804f2b27a638a74b807e1f69d93d0d150d19bf6d5036601b96febe557a6c51065d8cf22eef5fda92a6d7f084ac1d7647496 DIST xfsprogs-6.16.0.tar.xz 1557452 BLAKE2B ae4087c887b4c9d2fcc4b5341ca3c7d0333cf2132111179feee4b765ba9a1cc94143723b2bc4bcd8658bd7902871266af69293c77d715de1d0e878dc76b42e8e SHA512 333ef39f38d0fa46742b7fd28ebc6482e90abb32e58634b3a93aa24f0202c55f4dc32f1b00a9859c6e64efada4d844c3a995a913520cb00d5e1a4f1a83da848d +DIST xfsprogs-6.17.0.tar.xz 1563092 BLAKE2B e841526add6c17d036a709c1fafe879a50ba7d568008865eac8d166182be5514d8abc94b8facbe113aa6106ac394ea01049b6a555ebd280ee1cd5d64fff1b5da SHA512 bcdd5a632ac1eae4ad68ac1b18a0289820fcef997da2b3b132e97f035f21e951f20f19de9d09e0babd7d7feb8ad14c0782aa81c698b39c19e4349e603892287e diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/xfsprogs/xfsprogs-6.17.0.ebuild b/sdk_container/src/third_party/portage-stable/sys-fs/xfsprogs/xfsprogs-6.17.0.ebuild new file mode 100644 index 00000000000..c85bd45aae8 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-fs/xfsprogs/xfsprogs-6.17.0.ebuild @@ -0,0 +1,110 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit flag-o-matic systemd udev + +DESCRIPTION="XFS filesystem utilities" +HOMEPAGE="https://xfs.wiki.kernel.org/ https://git.kernel.org/pub/scm/fs/xfs/xfsprogs-dev.git/" +SRC_URI="https://www.kernel.org/pub/linux/utils/fs/xfs/${PN}/${P}.tar.xz" + +LICENSE="LGPL-2.1" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +IUSE="icu libedit nls selinux static-libs" + +RDEPEND=" + dev-libs/inih + dev-libs/userspace-rcu:= + >=sys-apps/util-linux-2.17.2 + icu? ( dev-libs/icu:= ) + libedit? ( dev-libs/libedit ) +" +DEPEND=" + ${RDEPEND} + >=sys-kernel/linux-headers-6.11 +" +BDEPEND="nls? ( sys-devel/gettext )" +RDEPEND+=" selinux? ( sec-policy/selinux-xfs )" + +src_prepare() { + default + + # Fix doc dir + sed -i \ + -e "/^PKG_DOC_DIR/s:@pkg_name@:${PF}:" \ + include/builddefs.in || die + + # Don't install compressed docs + sed 's@\(CHANGES\)\.gz[[:space:]]@\1 @' -i doc/Makefile || die +} + +src_configure() { + # include/builddefs.in will add FCFLAGS to CFLAGS which will + # unnecessarily clutter CFLAGS (and fortran isn't used) + unset FCFLAGS + + # If set in user env, this breaks configure + unset PLATFORM + + export DEBUG=-DNDEBUG + + # Package is honoring CFLAGS; No need to use OPTIMIZER anymore. + # However, we have to provide an empty value to avoid default + # flags. + export OPTIMIZER=" " + + # Avoid automagic on libdevmapper (bug #709694) + export ac_cv_search_dm_task_create=no + + # bug 903611 + use elibc_musl && append-flags -D_LARGEFILE64_SOURCE + + # Upstream does NOT support --disable-static anymore, + # https://www.spinics.net/lists/linux-xfs/msg30185.html + # https://www.spinics.net/lists/linux-xfs/msg30272.html + local myconf=( + --enable-static + # Doesn't do anything beyond adding -flto (bug #930947). + --disable-lto + # The default value causes double 'lib' + --localstatedir="${EPREFIX}/var" + --with-crond-dir="${EPREFIX}/etc/cron.d" + --with-systemd-unit-dir="$(systemd_get_systemunitdir)" + --with-udev-rule-dir="$(get_udevdir)/rules.d" + $(use_enable icu libicu) + $(use_enable nls gettext) + $(use_enable libedit editline) + ) + + econf "${myconf[@]}" +} + +src_compile() { + emake V=1 +} + +src_install() { + # XXX: There's a missing dep in the install-dev target, so split it + emake DIST_ROOT="${ED}" HAVE_ZIPPED_MANPAGES=false install + emake DIST_ROOT="${ED}" HAVE_ZIPPED_MANPAGES=false install-dev + + # Not actually used but --localstatedir causes this empty dir + # to be installed. + rmdir "${ED}"/var/lib/xfsprogs "${ED}"/var/lib || die + + if ! use static-libs; then + rm "${ED}/usr/$(get_libdir)/libhandle.a" || die + fi + + find "${ED}" -name '*.la' -delete || die +} + +pkg_postrm() { + udev_reload +} + +pkg_postinst() { + udev_reload +} diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/zfs-kmod/zfs-kmod-2.4.0_rc2-r1.ebuild b/sdk_container/src/third_party/portage-stable/sys-fs/zfs-kmod/zfs-kmod-2.4.0_rc2-r1.ebuild new file mode 100644 index 00000000000..462591298f3 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-fs/zfs-kmod/zfs-kmod-2.4.0_rc2-r1.ebuild @@ -0,0 +1,12 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DESCRIPTION="Linux ZFS kernel module for sys-fs/zfs" +HOMEPAGE="https://github.com/openzfs/zfs" + +LICENSE="CDDL MIT" +SLOT="0/${PVR}" + +RDEPEND=">=sys-fs/zfs-2.4.0_rc2-r1" diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/zfs/Manifest b/sdk_container/src/third_party/portage-stable/sys-fs/zfs/Manifest index afe0a2c2a7a..d9a56361ec9 100644 --- a/sdk_container/src/third_party/portage-stable/sys-fs/zfs/Manifest +++ b/sdk_container/src/third_party/portage-stable/sys-fs/zfs/Manifest @@ -14,3 +14,5 @@ DIST zfs-2.4.0-rc1.tar.gz 34294259 BLAKE2B 262a510a356c515692d03ce2f5bdb61bb051d DIST zfs-2.4.0-rc1.tar.gz.asc 858 BLAKE2B 5fb794647fe89bc0b4030c273d50a2a8fcefb7e53a088f16fcdfba8d90aa3a011eb6c779e83c9a2bde2c6247a10bdca4245832c89886af8f5a1e7732b8a0fc3a SHA512 0083069492028f188ae015f99939cdde9458e29fee1e3fc848049488ed534fa7f2c557ddb7f83b7155bb29f8b98530c13b64f177fb40a741c3251a68890fa9ce DIST zfs-2.4.0-rc2.tar.gz 34315284 BLAKE2B 6c72d5e86e93d28fd5204ac4c38175d97b564b671cf71045c94f4b9b19ae36a439000fd55761220a0a17adf9fd9b6df6b367831442c079b0bff1e01a3299baab SHA512 7fa6caecc6818af17bdc104624eb7638a6c41bfca03a5b45ce996e7bbf8bfd1b06a54714ca7cb59ac70b061cb0eb11bc68868f786a502f427775f1bcfe1a5de0 DIST zfs-2.4.0-rc2.tar.gz.asc 858 BLAKE2B 1bdad0ca1fcccae5e74187a88b3352ab8834c15c0933ddedc5562866dc3657ea575db5f788243fe7decc2f58b5470193ae422dec377447e9ffe75c5773378cda SHA512 e0de554bb62b2ee840a3cac2022b91ed83d2572d0ea73d2b5941308e94abf8d2c4d0f50b1bcc309880e0b415963bb6511664fa31601f0290ce9bb9ed79671a65 +DIST zfs-2.4.0-rc3.tar.gz 34322200 BLAKE2B f96baf36010422d75da0563363715cbebf21cc80cbd27681051fb8d38959bf176a52f36eb3d04c84613fa95b567011b3ae2e0f601dcdaee8536c63821fef0817 SHA512 7c82dba4e8318dfc62fe22d74ad46c96ce36fe217f5f94c7112450260d203826f0e282e03b316ae082bddf1e99f0c5ec815d624f774c4e8e77dd2464831994ca +DIST zfs-2.4.0-rc3.tar.gz.asc 858 BLAKE2B dde4cbec02020e59674bc0aed7da8a504a404f96b316f2c8d05b6d5659cdeed1ac08ba74477011f05c88ef307638c47422911bb53b73be4009552a5355e7a906 SHA512 4b0c095938462f3d0532aa413bd93ea75a2591052b244ac473ed86b8e46664bd83ddec69a4a7e6d62b625a565c558c4122fe0923e7cc6e1994b2f7fa8cb00caa diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/zfs/metadata.xml b/sdk_container/src/third_party/portage-stable/sys-fs/zfs/metadata.xml index 51fb5208f9d..a59aaf89ae1 100644 --- a/sdk_container/src/third_party/portage-stable/sys-fs/zfs/metadata.xml +++ b/sdk_container/src/third_party/portage-stable/sys-fs/zfs/metadata.xml @@ -1,7 +1,11 @@ - + + gentoo@alexmoch.com + Alexander Moch + + mschiff@gentoo.org Marc Schiffbauer diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/zfs/zfs-2.4.0_rc2-r1.ebuild b/sdk_container/src/third_party/portage-stable/sys-fs/zfs/zfs-2.4.0_rc2-r1.ebuild new file mode 100644 index 00000000000..fcf52d0e893 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-fs/zfs/zfs-2.4.0_rc2-r1.ebuild @@ -0,0 +1,436 @@ +# Copyright 1999-2025 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..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.17 +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/6" +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 + sys-libs/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}] + ) + ) +" + +if [[ ${PV} != "9999" ]] ; then + BDEPEND+=" verify-sig? ( sec-keys/openpgp-keys-openzfs )" + + IUSE+=" +dist-kernel-cap" + RDEPEND=" + dist-kernel-cap? ( dist-kernel? ( + " + 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.0_rc3.ebuild b/sdk_container/src/third_party/portage-stable/sys-fs/zfs/zfs-2.4.0_rc3.ebuild new file mode 100644 index 00000000000..e19842dc053 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-fs/zfs/zfs-2.4.0_rc3.ebuild @@ -0,0 +1,437 @@ +# Copyright 1999-2025 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.17 +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/6" +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 + sys-libs/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}] + ) + ) +" + +if [[ ${PV} != "9999" ]] ; then + BDEPEND+=" verify-sig? ( sec-keys/openpgp-keys-openzfs )" + + IUSE+=" +dist-kernel-cap" + RDEPEND=" + dist-kernel-cap? ( dist-kernel? ( + " + 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-9999.ebuild b/sdk_container/src/third_party/portage-stable/sys-fs/zfs/zfs-9999.ebuild index 97c08351ca1..fcf52d0e893 100644 --- a/sdk_container/src/third_party/portage-stable/sys-fs/zfs/zfs-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-fs/zfs/zfs-9999.ebuild @@ -114,7 +114,7 @@ RDEPEND=" sys-fs/mdadm sys-process/procps ) - !sys-fs/zfs-kmod + !/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 - 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 - 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=*'; 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 - ;; - 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 - - # #492892 - filter-flags -frecord-gcc-switches - - # #898098 - filter-flags -fno-builtin - - # #798774 - filter-flags -fno-semantic-interposition - - # #829583 - filter-lfs-flags - - 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 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=custom-cflags, that's always - # a good start into that direction. - # Also, if you're 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 - - export CC="$(tc-getCC ${CTARGET})" - export CXX="$(tc-getCXX ${CTARGET})" - export CPP="$(tc-getCPP ${CTARGET})" - - # Always use tuple-prefixed toolchain. For non-native ABI glibc's configure - # can't detect them automatically due to ${CHOST} mismatch and fallbacks - # to unprefixed tools. Similar to multilib.eclass:multilib_toolchain_setup(). - export NM="$(tc-getNM ${CTARGET})" - export READELF="$(tc-getREADELF ${CTARGET})" - - fi - - # We need to export CFLAGS with abi information in them because glibc's - # configure script checks CFLAGS for some targets (like mips). Keep - # around the original clean value to avoid appending multiple ABIs on - # top of each other. (Why does the comment talk about CFLAGS if the code - # acts on CC?) - export glibc__GLIBC_CC=${CC} - export glibc__GLIBC_CXX=${CXX} - export glibc__GLIBC_CPP=${CPP} - - export glibc__abi_CFLAGS="$(get_abi_CFLAGS)" - - # 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} -} - -eend_KV() { - [[ $(g_KV_to_int $1) -ge $(g_KV_to_int $2) ]] - eend $? -} - -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 ! 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." - 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 [[ ${CTARGET} == *-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 ! eend_KV ${run_kv} ${want_kv} ; then - echo - eerror "You need a kernel of at least ${want_kv}!" - die "Kernel version too low!" - fi - 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 ! eend_KV ${build_kv} ${want_kv} ; then - echo - eerror "You need linux-headers of at least ${want_kv}!" - die "linux-headers version too low!" - fi - 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} - git-r3_src_unpack - else - unpack ${P}.tar.xz - - cd "${WORKDIR}" || die - unpack glibc-${PV}-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." - 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 - - [[ $(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 systemtap) - $(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) ) - - # 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 - - # 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 emake ${myxfailparams} check -} - -src_test() { - if just_headers ; then - return - fi - - 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 "$(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 - 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 - 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 - - # 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 - - # 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.42-r1.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.42-r1.ebuild index 59381ce7180..cacf6b987fb 100644 --- a/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.42-r1.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.42-r1.ebuild @@ -32,8 +32,10 @@ MIN_PAX_UTILS_VER="1.3.3" # 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 + multilib systemd multiprocessing tmpfiles eapi9-ver verify-sig DESCRIPTION="GNU libc C library" HOMEPAGE="https://www.gnu.org/software/libc/" @@ -43,6 +45,7 @@ if [[ ${PV} == *9999 ]]; then 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+=" verify-sig? ( mirror://gnu/glibc/${P}.tar.xz.sig )" SRC_URI+=" https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${P}-patches-${PATCH_VER}.tar.xz" fi @@ -121,6 +124,7 @@ BDEPEND=" >=net-dns/libidn2-2.3.0 sys-apps/gawk[mpfr] ) + verify-sig? ( sec-keys/openpgp-keys-glibc ) " COMMON_DEPEND=" gd? ( media-libs/gd:2= ) @@ -948,6 +952,9 @@ src_unpack() { [[ ${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 diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.42.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.42-r2.ebuild similarity index 99% rename from sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.42.ebuild rename to sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.42-r2.ebuild index 93330136fc3..cb76363880e 100644 --- a/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.42.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-2.42-r2.ebuild @@ -12,7 +12,7 @@ TMPFILES_OPTIONAL=1 EMULTILIB_PKG="true" # Gentoo patchset (ignored for live ebuilds) -PATCH_VER=2 +PATCH_VER=4 PATCH_DEV=dilfridge # gcc mulitilib bootstrap files version @@ -32,8 +32,10 @@ MIN_PAX_UTILS_VER="1.3.3" # 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 + multilib systemd multiprocessing tmpfiles eapi9-ver verify-sig DESCRIPTION="GNU libc C library" HOMEPAGE="https://www.gnu.org/software/libc/" @@ -43,6 +45,7 @@ if [[ ${PV} == *9999 ]]; then 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+=" verify-sig? ( mirror://gnu/glibc/${P}.tar.xz.sig )" SRC_URI+=" https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${P}-patches-${PATCH_VER}.tar.xz" fi @@ -121,6 +124,7 @@ BDEPEND=" >=net-dns/libidn2-2.3.0 sys-apps/gawk[mpfr] ) + verify-sig? ( sec-keys/openpgp-keys-glibc ) " COMMON_DEPEND=" gd? ( media-libs/gd:2= ) @@ -948,6 +952,9 @@ src_unpack() { [[ ${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 diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-9999.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-9999.ebuild index 053c0a1a247..2b3ba3c1208 100644 --- a/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-libs/glibc/glibc-9999.ebuild @@ -32,8 +32,10 @@ MIN_PAX_UTILS_VER="1.3.3" # 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 + multilib systemd multiprocessing tmpfiles eapi9-ver verify-sig DESCRIPTION="GNU libc C library" HOMEPAGE="https://www.gnu.org/software/libc/" @@ -43,6 +45,7 @@ if [[ ${PV} == *9999 ]]; then 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+=" verify-sig? ( mirror://gnu/glibc/${P}.tar.xz.sig )" SRC_URI+=" https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${P}-patches-${PATCH_VER}.tar.xz" fi @@ -121,6 +124,7 @@ BDEPEND=" >=net-dns/libidn2-2.3.0 sys-apps/gawk[mpfr] ) + verify-sig? ( sec-keys/openpgp-keys-glibc ) " COMMON_DEPEND=" gd? ( media-libs/gd:2= ) @@ -948,6 +952,9 @@ src_unpack() { [[ ${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 diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/libcap-ng/libcap-ng-0.8.5.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/libcap-ng/libcap-ng-0.8.5.ebuild index 7e7a5951993..77dd380001f 100644 --- a/sdk_container/src/third_party/portage-stable/sys-libs/libcap-ng/libcap-ng-0.8.5.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-libs/libcap-ng/libcap-ng-0.8.5.ebuild @@ -5,7 +5,7 @@ EAPI=8 # Keep an eye on Fedora's packaging (https://src.fedoraproject.org/rpms/libcap-ng/tree/rawhide) for patches # Same maintainer in Fedora as upstream -PYTHON_COMPAT=( python3_{10..13} ) +PYTHON_COMPAT=( python3_{11..14} ) inherit autotools flag-o-matic out-of-source-utils python-r1 DESCRIPTION="POSIX 1003.1e capabilities" diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/libcap/Manifest b/sdk_container/src/third_party/portage-stable/sys-libs/libcap/Manifest index 245a9e741b1..e066cb64c3d 100644 --- a/sdk_container/src/third_party/portage-stable/sys-libs/libcap/Manifest +++ b/sdk_container/src/third_party/portage-stable/sys-libs/libcap/Manifest @@ -1,2 +1,3 @@ DIST libcap-2.71.tar.xz 193512 BLAKE2B a4bc55d8b58db5d75b4615f287a15614c075f8f7e690e7a833c453658c80d6f99e633132bc8a3b8cc7d1393e513763d924bf2cbe6bc29c7a40e2a5f19755e662 SHA512 59bb6781d96776595ad3df890f4e5188380634eabbb6128f3a5307946b01cf3bd19dee8a29d3e501de1d9e1c6ed0092c4cd5adc91da227a1260c1f4356cc0bf3 DIST libcap-2.76.tar.xz 199200 BLAKE2B 301c74ceae00e915f70ff8f0a32c86a5ddf405a00522f4299390e4e0b6bc4270fc7e3c4ba5c53db2ddc5f7de6a97b43e310097a4ecc1d678f721f9dfa53cef53 SHA512 f9448628ce036a10ce71958b25e5dd31032c4d86d8d34d905d2dfa32890ad443804169d4c6b825fd4bfe260b5de20f046cee958e40268bcadbbe7f7731ae40ad +DIST libcap-2.77.tar.xz 199688 BLAKE2B 9725a5f886907f718a7149841003ac04aced8d322ae190b7035873dc823098c58311f15b9fe7e2a3fec683de6e2eeea108cd008f5f79e8dba24bb20595351812 SHA512 c783cb43ffb40eb005fb880efe18e72667c743af79d647f67ee3201d5ff1e64446f9c850cced935a04b63a8ee3380bbf28dd91e2dfbcbddb561c8d096da610d0 diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/libcap/libcap-2.77.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/libcap/libcap-2.77.ebuild new file mode 100644 index 00000000000..aeb560184a5 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-libs/libcap/libcap-2.77.ebuild @@ -0,0 +1,96 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit dot-a multilib-minimal toolchain-funcs pam + +if [[ ${PV} == *9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://git.kernel.org/pub/scm/libs/libcap/libcap.git" +else + SRC_URI="https://www.kernel.org/pub/linux/libs/security/linux-privs/libcap2/${P}.tar.xz" + + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux" +fi + +DESCRIPTION="POSIX 1003.1e capabilities" +HOMEPAGE="https://sites.google.com/site/fullycapable/" + +LICENSE="|| ( GPL-2 BSD ) pam? ( || ( LGPL-2+ BSD ) )" +SLOT="0" +IUSE="pam static-libs tools" + +# While the build system optionally uses gperf, we don't DEPEND on it because +# the build automatically falls back when it's unavailable. #604802 +PDEPEND="pam? ( sys-libs/pam[${MULTILIB_USEDEP}] )" +DEPEND="${PDEPEND} + sys-kernel/linux-headers" +BDEPEND=" + sys-apps/diffutils + tools? ( dev-lang/go )" + +QA_FLAGS_IGNORED="sbin/captree" # go binaries don't use LDFLAGS + +PATCHES=( + "${FILESDIR}"/${PN}-2.62-ignore-RAISE_SETFCAP-install-failures.patch +) + +src_prepare() { + default + multilib_copy_sources +} + +run_emake() { + local args=( + AR="$(tc-getAR)" + CC="$(tc-getCC)" + OBJCOPY="$(tc-getOBJCOPY)" + RANLIB="$(tc-getRANLIB)" + exec_prefix="${EPREFIX}" + lib_prefix="${EPREFIX}/usr" + lib="$(get_libdir)" + prefix="${EPREFIX}/usr" + PAM_CAP="$(usex pam yes no)" + DYNAMIC=yes + GOLANG="$(multilib_native_usex tools yes no)" + ) + emake "${args[@]}" "$@" +} + +src_configure() { + use static-libs && lto-guarantee-fat + tc-export_build_env BUILD_CC + multilib-minimal_src_configure +} + +multilib_src_compile() { + run_emake +} + +multilib_src_test() { + run_emake test +} + +multilib_src_install() { + # no configure, needs explicit install line #444724#c3 + run_emake DESTDIR="${D}" install + + if use static-libs ; then + strip-lto-bytecode + else + rm "${ED}"/usr/$(get_libdir)/lib{cap,psx}.a || die + fi + + # install pam plugins ourselves + rm -rf "${ED}"/usr/$(get_libdir)/security || die + + if use pam ; then + dopammod pam_cap/pam_cap.so + dopamsecurity '' pam_cap/capability.conf + fi +} + +multilib_src_install_all() { + dodoc CHANGELOG README doc/capability.md +} diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/libselinux/Manifest b/sdk_container/src/third_party/portage-stable/sys-libs/libselinux/Manifest index 09385d8f5aa..0e9339f38b2 100644 --- a/sdk_container/src/third_party/portage-stable/sys-libs/libselinux/Manifest +++ b/sdk_container/src/third_party/portage-stable/sys-libs/libselinux/Manifest @@ -1,3 +1 @@ -DIST libselinux-3.6.tar.gz 194210 BLAKE2B 615198d47ecfb4b6274810cbe32cce5953dd44d1d04e8ce244213dc4ddbd61cde3515f4650046b805cf98f341aba718af8d7a9e1d66773172031ac19599f6032 SHA512 182dcdf3510083ff4b9376a4a6d6a7b33905ac3c5e974c188bf3965686c54b663162c543ecf15eab75102f3c91a2502d33d0f1104dec01dd9b14737ef3f2b544 -DIST libselinux-3.7.tar.gz 194834 BLAKE2B 07d87c37608b480d17355334459ecb006573d61a7d3fbf622033838559397abcf343e6399f3a49b6cf24e106d03fd997397d061491d2129c15a378960dacc350 SHA512 e949c20b606c50ad521b9592ce55ad6658e8c4b24d9838028f5aba0a4fc762b6d0d0d0d207f5bef7a2e41485e12d91382fa6090df27152dbb40071b273419352 DIST libselinux-3.8.1.tar.gz 204411 BLAKE2B f0508b3cf9c0fa2c315cab7b8048980a5a40188411ffd7790c5272e643742de073f0a8da44086e558c1b65ccb55e65cd559aad95e8da3cbfefd6adc9a5e09214 SHA512 646a31dff3b670a530adb9fc2fdc3ca9fe34a58e67e0fac52cc33bc7a01fa63c175987ef254c6c3bc7299cef137bc6f258dc378f4d70ae5c0fa0ece3bef42ab4 diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/libselinux/libselinux-3.6-r1.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/libselinux/libselinux-3.6-r1.ebuild deleted file mode 100644 index a9ea7f7d1ee..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-libs/libselinux/libselinux-3.6-r1.ebuild +++ /dev/null @@ -1,160 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI="7" -PYTHON_COMPAT=( python3_{10..12} ) -USE_RUBY="ruby32 ruby33" - -# No, I am not calling ruby-ng -inherit flag-o-matic python-r1 toolchain-funcs multilib-minimal - -MY_PV="${PV//_/-}" -MY_P="${PN}-${MY_PV}" - -DESCRIPTION="SELinux userland library" -HOMEPAGE="https://github.com/SELinuxProject/selinux/wiki" - -if [[ ${PV} == 9999 ]]; then - inherit git-r3 - EGIT_REPO_URI="https://github.com/SELinuxProject/selinux.git" - S="${WORKDIR}/${P}/${PN}" -else - SRC_URI="https://github.com/SELinuxProject/selinux/releases/download/${MY_PV}/${MY_P}.tar.gz" - KEYWORDS="amd64 arm arm64 ~mips ~riscv x86" - S="${WORKDIR}/${MY_P}" -fi - -LICENSE="public-domain" -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}] - >=sys-libs/libsepol-${PV}:=[${MULTILIB_USEDEP},static-libs(+)] - 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 )" -DEPEND="${RDEPEND}" -BDEPEND="virtual/pkgconfig - python? ( - >=dev-lang/swig-2.0.9 - dev-python/pip[${PYTHON_USEDEP}] -) - ruby? ( >=dev-lang/swig-2.0.9 )" - -src_prepare() { - eapply_user - - multilib_copy_sources -} - -multilib_src_compile() { - tc-export AR CC PKG_CONFIG RANLIB - - # bug 905711 - use elibc_musl && append-cppflags -D_LARGEFILE64_SOURCE - - local -x CFLAGS="${CFLAGS} -fno-semantic-interposition" - - emake \ - LIBDIR="\$(PREFIX)/$(get_libdir)" \ - SHLIBDIR="/$(get_libdir)" \ - LDFLAGS="-fPIC ${LDFLAGS} -pthread" \ - USE_PCRE2=y \ - FTS_LDLIBS="$(usex elibc_musl '-lfts' '')" \ - all - - if multilib_is_native_abi && use python; then - building() { - emake \ - LDFLAGS="-fPIC ${LDFLAGS} -lpthread" \ - LIBDIR="\$(PREFIX)/$(get_libdir)" \ - SHLIBDIR="/$(get_libdir)" \ - USE_PCRE2=y \ - FTS_LDLIBS="$(usex elibc_musl '-lfts' '')" \ - pywrap - } - python_foreach_impl building - fi - - if multilib_is_native_abi && use ruby; then - building() { - einfo "Calling rubywrap for ${1}" - # Clean up .lo file to force rebuild - rm -f src/selinuxswig_ruby_wrap.lo || die - emake \ - RUBY=${1} \ - LDFLAGS="-fPIC ${LDFLAGS} -lpthread" \ - LIBDIR="\$(PREFIX)/$(get_libdir)" \ - SHLIBDIR="/$(get_libdir)" \ - USE_PCRE2=y \ - FTS_LDLIBS="$(usex elibc_musl '-lfts' '')" \ - rubywrap - } - for RUBYTARGET in ${USE_RUBY}; do - use ruby_targets_${RUBYTARGET} || continue - - building ${RUBYTARGET} - done - fi -} - -multilib_src_install() { - emake DESTDIR="${D}" \ - LIBDIR="\$(PREFIX)/$(get_libdir)" \ - SHLIBDIR="/$(get_libdir)" \ - USE_PCRE2=y \ - install - - if multilib_is_native_abi && use python; then - installation() { - emake DESTDIR="${D}" \ - LIBDIR="\$(PREFIX)/$(get_libdir)" \ - SHLIBDIR="/$(get_libdir)" \ - USE_PCRE2=y \ - install-pywrap - python_optimize # bug 531638 - } - python_foreach_impl installation - fi - - if multilib_is_native_abi && use ruby; then - installation() { - einfo "Calling install-rubywrap for ${1}" - # Forcing (re)build here as otherwise the resulting SO file is used for all ruby versions - rm src/selinuxswig_ruby_wrap.lo - emake DESTDIR="${D}" \ - LIBDIR="\$(PREFIX)/$(get_libdir)" \ - SHLIBDIR="/$(get_libdir)" \ - RUBY=${1} \ - USE_PCRE2=y \ - install-rubywrap - } - for RUBYTARGET in ${USE_RUBY}; do - use ruby_targets_${RUBYTARGET} || continue - - installation ${RUBYTARGET} - done - fi - - use static-libs || rm "${D}"/usr/lib*/*.a || die -} - -pkg_postinst() { - # Fix bug 473502 - for POLTYPE in ${POLICY_TYPES}; - do - mkdir -p "${ROOT}/etc/selinux/${POLTYPE}/contexts/files" || die - touch "${ROOT}/etc/selinux/${POLTYPE}/contexts/files/file_contexts.local" || die - # Fix bug 516608 - for EXPRFILE in file_contexts file_contexts.homedirs file_contexts.local ; do - if [[ -f "${ROOT}/etc/selinux/${POLTYPE}/contexts/files/${EXPRFILE}" ]]; then - sefcontext_compile "${ROOT}/etc/selinux/${POLTYPE}/contexts/files/${EXPRFILE}" \ - || die "Failed to recompile contexts" - fi - done - done -} diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/libselinux/libselinux-3.7-r1.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/libselinux/libselinux-3.7-r1.ebuild deleted file mode 100644 index c6472ee878b..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-libs/libselinux/libselinux-3.7-r1.ebuild +++ /dev/null @@ -1,160 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI="8" -PYTHON_COMPAT=( python3_{10..13} ) -USE_RUBY="ruby32 ruby33" - -# No, I am not calling ruby-ng -inherit flag-o-matic python-r1 toolchain-funcs multilib-minimal - -MY_PV="${PV//_/-}" -MY_P="${PN}-${MY_PV}" - -DESCRIPTION="SELinux userland library" -HOMEPAGE="https://github.com/SELinuxProject/selinux/wiki" - -if [[ ${PV} == 9999 ]]; then - inherit git-r3 - EGIT_REPO_URI="https://github.com/SELinuxProject/selinux.git" - S="${WORKDIR}/${P}/${PN}" -else - SRC_URI="https://github.com/SELinuxProject/selinux/releases/download/${MY_PV}/${MY_P}.tar.gz" - KEYWORDS="amd64 arm arm64 ~mips ~riscv x86" - S="${WORKDIR}/${MY_P}" -fi - -LICENSE="public-domain" -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}] - >=sys-libs/libsepol-${PV}:=[${MULTILIB_USEDEP},static-libs(+)] - 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 )" -DEPEND="${RDEPEND}" -BDEPEND="virtual/pkgconfig - python? ( - >=dev-lang/swig-2.0.9 - dev-python/pip[${PYTHON_USEDEP}] -) - ruby? ( >=dev-lang/swig-2.0.9 )" - -src_prepare() { - eapply_user - - multilib_copy_sources -} - -multilib_src_compile() { - tc-export AR CC PKG_CONFIG RANLIB - - # bug 905711 - use elibc_musl && append-cppflags -D_LARGEFILE64_SOURCE - - local -x CFLAGS="${CFLAGS} -fno-semantic-interposition" - - emake \ - LIBDIR="\$(PREFIX)/$(get_libdir)" \ - SHLIBDIR="/$(get_libdir)" \ - LDFLAGS="-fPIC ${LDFLAGS} -pthread" \ - USE_PCRE2=y \ - FTS_LDLIBS="$(usex elibc_musl '-lfts' '')" \ - all - - if multilib_is_native_abi && use python; then - building() { - emake \ - LDFLAGS="-fPIC ${LDFLAGS} -lpthread" \ - LIBDIR="\$(PREFIX)/$(get_libdir)" \ - SHLIBDIR="/$(get_libdir)" \ - USE_PCRE2=y \ - FTS_LDLIBS="$(usex elibc_musl '-lfts' '')" \ - pywrap - } - python_foreach_impl building - fi - - if multilib_is_native_abi && use ruby; then - building() { - einfo "Calling rubywrap for ${1}" - # Clean up .lo file to force rebuild - rm -f src/selinuxswig_ruby_wrap.lo || die - emake \ - RUBY=${1} \ - LDFLAGS="-fPIC ${LDFLAGS} -lpthread" \ - LIBDIR="\$(PREFIX)/$(get_libdir)" \ - SHLIBDIR="/$(get_libdir)" \ - USE_PCRE2=y \ - FTS_LDLIBS="$(usex elibc_musl '-lfts' '')" \ - rubywrap - } - for RUBYTARGET in ${USE_RUBY}; do - use ruby_targets_${RUBYTARGET} || continue - - building ${RUBYTARGET} - done - fi -} - -multilib_src_install() { - emake DESTDIR="${D}" \ - LIBDIR="\$(PREFIX)/$(get_libdir)" \ - SHLIBDIR="/$(get_libdir)" \ - USE_PCRE2=y \ - install - - if multilib_is_native_abi && use python; then - installation() { - emake DESTDIR="${D}" \ - LIBDIR="\$(PREFIX)/$(get_libdir)" \ - SHLIBDIR="/$(get_libdir)" \ - USE_PCRE2=y \ - install-pywrap - python_optimize # bug 531638 - } - python_foreach_impl installation - fi - - if multilib_is_native_abi && use ruby; then - installation() { - einfo "Calling install-rubywrap for ${1}" - # Forcing (re)build here as otherwise the resulting SO file is used for all ruby versions - rm src/selinuxswig_ruby_wrap.lo - emake DESTDIR="${D}" \ - LIBDIR="\$(PREFIX)/$(get_libdir)" \ - SHLIBDIR="/$(get_libdir)" \ - RUBY=${1} \ - USE_PCRE2=y \ - install-rubywrap - } - for RUBYTARGET in ${USE_RUBY}; do - use ruby_targets_${RUBYTARGET} || continue - - installation ${RUBYTARGET} - done - fi - - use static-libs || rm "${ED}"/usr/$(get_libdir)/*.a || die -} - -pkg_postinst() { - # Fix bug 473502 - for POLTYPE in ${POLICY_TYPES}; - do - mkdir -p "${ROOT}/etc/selinux/${POLTYPE}/contexts/files" || die - touch "${ROOT}/etc/selinux/${POLTYPE}/contexts/files/file_contexts.local" || die - # Fix bug 516608 - for EXPRFILE in file_contexts file_contexts.homedirs file_contexts.local ; do - if [[ -f "${ROOT}/etc/selinux/${POLTYPE}/contexts/files/${EXPRFILE}" ]]; then - sefcontext_compile "${ROOT}/etc/selinux/${POLTYPE}/contexts/files/${EXPRFILE}" \ - || die "Failed to recompile contexts" - fi - done - done -} diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/libselinux/libselinux-3.8.1.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/libselinux/libselinux-3.8.1.ebuild index 1fce91e47d9..a940e1af6f7 100644 --- a/sdk_container/src/third_party/portage-stable/sys-libs/libselinux/libselinux-3.8.1.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-libs/libselinux/libselinux-3.8.1.ebuild @@ -1,12 +1,13 @@ # Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI="8" -PYTHON_COMPAT=( python3_{10..13} ) +EAPI=8 + +PYTHON_COMPAT=( python3_{11..14} ) USE_RUBY="ruby32 ruby33" # No, I am not calling ruby-ng -inherit flag-o-matic python-r1 toolchain-funcs multilib-minimal +inherit python-r1 toolchain-funcs multilib-minimal MY_PV="${PV//_/-}" MY_P="${PN}-${MY_PV}" 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 2902fd245a1..da394c50dfd 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 @@ -1,12 +1,13 @@ # Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI="8" -PYTHON_COMPAT=( python3_{10..13} ) +EAPI=8 + +PYTHON_COMPAT=( python3_{11..14} ) USE_RUBY="ruby32 ruby33" # No, I am not calling ruby-ng -inherit flag-o-matic python-r1 toolchain-funcs multilib-minimal +inherit python-r1 toolchain-funcs multilib-minimal MY_PV="${PV//_/-}" MY_P="${PN}-${MY_PV}" diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/libsepol/Manifest b/sdk_container/src/third_party/portage-stable/sys-libs/libsepol/Manifest index d4accded521..e86d0df4221 100644 --- a/sdk_container/src/third_party/portage-stable/sys-libs/libsepol/Manifest +++ b/sdk_container/src/third_party/portage-stable/sys-libs/libsepol/Manifest @@ -1,3 +1 @@ -DIST libsepol-3.6.tar.gz 509100 BLAKE2B c073c9437004df0c723125971ed26354dc6b8a78b069c593977062527342061303bcc48917fcd9623d17998748254f63408b233173f3c62e92ee0ea2f3c4a430 SHA512 35a42d2749fc4f71bc6b7488380714f56975564007128566f1c73e5c50bf81c17535b2cfda4583aacb4870aa2cd5885321c01523e415bda8b3326bfefb13d58e -DIST libsepol-3.7.tar.gz 511487 BLAKE2B 8e4a0b2b3731f49d8bc8ea03bd5269672428119578046bc7f38230e3c77459e6b9d4ab39285ea33c89d8e807499ef89faa606e4b4e1ecfac2c3d445454b16420 SHA512 85d12d0ba5a7a3225f08d041a18fd59641608db5e0a78a1e9649754e45be54a807cd422d4889b88da6e806b4af546336c7a0913448f08ac33dc6ffb983890ef8 DIST libsepol-3.8.1.tar.gz 513830 BLAKE2B f1877499a31289af941e36b80c1c25ca2b32205684d958c4a8b04e05006346138046e3f263e73db3889f918e2ff93818f4d6176de5d17669b863c853d04928e0 SHA512 6a66fbbc25f4ca5f58b07d19a70f3f6c233594ea5bc5a9f5d9f008eb03a83cea84ae0f03329f340b95e4f7135981d06cb9e66a7b3ca2f1494a71bbdcb5a01665 diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/libsepol/libsepol-3.6.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/libsepol/libsepol-3.6.ebuild deleted file mode 100644 index 27b0f0542d4..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-libs/libsepol/libsepol-3.6.ebuild +++ /dev/null @@ -1,50 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI="7" - -inherit toolchain-funcs multilib-minimal - -MY_PV="${PV//_/-}" -MY_P="${PN}-${MY_PV}" - -DESCRIPTION="SELinux binary policy representation library" -HOMEPAGE="https://github.com/SELinuxProject/selinux/wiki" - -if [[ ${PV} == 9999 ]]; then - inherit git-r3 - EGIT_REPO_URI="https://github.com/SELinuxProject/selinux.git" - S="${WORKDIR}/${P}/${PN}" -else - SRC_URI="https://github.com/SELinuxProject/selinux/releases/download/${MY_PV}/${MY_P}.tar.gz" - KEYWORDS="amd64 arm arm64 ~mips ~riscv x86" - S="${WORKDIR}/${MY_P}" -fi - -LICENSE="GPL-2" -SLOT="0/2" - -# tests are not meant to be run outside of the full SELinux userland repo -RESTRICT="test" - -src_prepare() { - eapply_user - multilib_copy_sources -} - -multilib_src_compile() { - tc-export CC AR RANLIB - - local -x CFLAGS="${CFLAGS} -fno-semantic-interposition" - - emake \ - LIBDIR="\$(PREFIX)/$(get_libdir)" \ - SHLIBDIR="/$(get_libdir)" -} - -multilib_src_install() { - emake DESTDIR="${D}" \ - LIBDIR="\$(PREFIX)/$(get_libdir)" \ - SHLIBDIR="/$(get_libdir)" \ - install -} diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/libsepol/libsepol-3.7.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/libsepol/libsepol-3.7.ebuild deleted file mode 100644 index b4695c7d1f8..00000000000 --- a/sdk_container/src/third_party/portage-stable/sys-libs/libsepol/libsepol-3.7.ebuild +++ /dev/null @@ -1,55 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI="8" - -inherit toolchain-funcs multilib-minimal - -MY_PV="${PV//_/-}" -MY_P="${PN}-${MY_PV}" - -DESCRIPTION="SELinux binary policy representation library" -HOMEPAGE="https://github.com/SELinuxProject/selinux/wiki" - -if [[ ${PV} == 9999 ]]; then - inherit git-r3 - EGIT_REPO_URI="https://github.com/SELinuxProject/selinux.git" - S="${WORKDIR}/${P}/${PN}" -else - SRC_URI="https://github.com/SELinuxProject/selinux/releases/download/${MY_PV}/${MY_P}.tar.gz" - KEYWORDS="amd64 arm arm64 ~mips ~riscv x86" - S="${WORKDIR}/${MY_P}" -fi - -LICENSE="GPL-2" -SLOT="0/2" -IUSE="+static-libs" - -# tests are not meant to be run outside of the full SELinux userland repo -RESTRICT="test" - -src_prepare() { - eapply_user - multilib_copy_sources -} - -my_make() { - emake \ - PREFIX="${EPREFIX}/usr" \ - LIBDIR="\$(PREFIX)/$(get_libdir)" \ - SHLIBDIR="${EPREFIX}/$(get_libdir)" \ - "${@}" -} - -multilib_src_compile() { - tc-export CC AR RANLIB - - local -x CFLAGS="${CFLAGS} -fno-semantic-interposition" - - my_make -} - -multilib_src_install() { - my_make DESTDIR="${D}" install - use static-libs || rm "${ED}"/usr/$(get_libdir)/*.a || die -} diff --git a/sdk_container/src/third_party/portage-stable/sys-process/tini/files/tini-0.19.0-cmake4.patch b/sdk_container/src/third_party/portage-stable/sys-process/tini/files/tini-0.19.0-cmake4.patch index f5f5f37b3d4..7014dc56ea1 100644 --- a/sdk_container/src/third_party/portage-stable/sys-process/tini/files/tini-0.19.0-cmake4.patch +++ b/sdk_container/src/third_party/portage-stable/sys-process/tini/files/tini-0.19.0-cmake4.patch @@ -1,10 +1,11 @@ Version bump for compatibility with CMake 4 https://bugs.gentoo.org/951903 +https://bugs.gentoo.org/964441 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 2.8.0) -+cmake_minimum_required (VERSION 3.5.0) ++cmake_minimum_required (VERSION 2.8.12...3.10) project (tini C) # Config 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 d1c8f0d44de..a98e707e36d 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 @@ -6,7 +6,7 @@ DIST NVIDIA-Linux-x86_64-390.157.run 85835541 BLAKE2B 44b855cd11f3b2f231f9fb9049 DIST NVIDIA-Linux-x86_64-470.256.02.run 272850014 BLAKE2B 0fdc867f92b82b2a60810c3b43751cad7ac2c39928c92c6c343c0c6044f4d7d923d93b8599db3f7c999c0ee7d16940e65d991a61cbb30e1d9e49c5639ac6bdc8 SHA512 a837946dd24d7945c1962a695f1f31965f3ceb6927f52cd08fd51b8db138b7a888bbeab69243f5c8468a7bd7ccd47f5dbdb48a1ca81264866c1ebb7d88628f88 DIST NVIDIA-Linux-x86_64-535.274.02.run 341804470 BLAKE2B 0d848295d8f0f8fe3b4ab6c0204bfc3ac26f75df253b6595137e99177e4ccd490e0c8d4330f6789137d906fdec317033e59b5f22213a38ef3c9daae2968f71b8 SHA512 cc89f84c4f8d76d8d1532e67630426b3988e778bc7474059231971333cd81d6a552d8f5ca329f9e3c540229bbc247b665d2276298e3c302975ab0f0562ddaafb DIST NVIDIA-Linux-x86_64-570.195.03.run 376136266 BLAKE2B 1bf90b173a389aaf5542631f1f6dcefe955e98a650917246f14a3e3a5b96fb6e88a2232712c8f0db97131e43761008679e063a01fce34f11081555d72ebc1fb7 SHA512 77041ef60bd4c637a53750b6ef5c5121e3eb299c5b2859d65fd0a3683c4fb32b5fd34ae419cfdb982588992706264c839338d1ff02850cae2c88fd67f7cda27d -DIST NVIDIA-Linux-x86_64-580.94.03.run 397928121 BLAKE2B f717fa07107da9c65f237197a91e11756097b6208adab3a50375dddb72655b300a4b1f5eead43d70671042fa7f97571f416833cbfa4ca91363f617005074cc55 SHA512 de81ab8a299c30aadf96dd14f3bf321e52fe8a4a975e07ddf27dbc83dec91c658bc441eb3aba2f23b43da3ebf3d3a1d150cfd3645103b1ac427201f1c8a7b64f +DIST NVIDIA-Linux-x86_64-580.94.06.run 396851170 BLAKE2B 398e55a3c867f8d15ea7acca0ac1bba701fe75cef76899f18beac0574daa293d57eea99c0976eac6f8c8b823709eb0bdf5187ad111954ac784aa4897516e961f SHA512 c3fb6558bf0b9340294b7eeac163781d564b607ab6113af12dd4fdcf387e4998477084b425f9c53a6758f52adb4ab0f1739e2046ace71095a25504177919cea5 DIST NVIDIA-Linux-x86_64-580.95.05.run 396658958 BLAKE2B 7e23e5243023de357329f8f57b65a386306fd898a78c68b01d67a9572ac0d64b2d87c0cf3265c23fc4c13192d92060196ee173c34cb485a693035478cb3fc82e SHA512 21e8076f593ce255c8e96dd456524f700e76b230130659ed73a279432dd9f2aa60735411c6fc906e9f60882e905cc1c5b91aaf80d5d5e64d317b1dd27f6e4c13 DIST NVIDIA-kernel-module-source-535.274.02.tar.xz 12513068 BLAKE2B e9f9fbdc70ee634dd26d626b0d5252e01c748fa8fc5b50af02a18f0dc75e2a40ced2fbaf24c4389dd207936849f6d614f18ef06ed35111ed26f3f6fce9017592 SHA512 4a660e08c03840de0b8d5bee079ff203a864131ed3eb4805e80da6c071b6953a6acee6d81788c4ea076399db6270e34844d5ac3898914195f530d2e0ef1c96ab DIST NVIDIA-kernel-module-source-570.195.03.tar.xz 17937740 BLAKE2B b6610c713740b55da783f5954ed537b74c8e42152a24f4063288f04c00d863e06d524b5eded1c13fe561138f46248824fbab3c631829a476061026e70484f55d SHA512 09fe04c6746f2cf942f5d861153dfbf4aa83640e60dfb8911b90ba6d9ccdbe2214be010c67b674b04da731e2e8847c56fa17ba8fa9ad91a0d95d64b9b54d566d @@ -36,4 +36,4 @@ DIST nvidia-xconfig-470.256.02.tar.bz2 108698 BLAKE2B e468574e4bc57e7279d4120e2b DIST nvidia-xconfig-535.274.02.tar.bz2 111008 BLAKE2B 4311cf01a7224a0fdf2d8730b2a88931d53916cd627740e6e8e73dbbd29641dfc32721c9886094799953464a69b80aa1fae1d6cf4b203c512ad65d2ae7f5356a SHA512 6c2d5e068f1e6d1c37041b179203608144797893e31c99133e1189a31e219176b3e032222d935679f4c30a79cb960741cecdaca0b552feb75eb10366aa9d66fa DIST nvidia-xconfig-570.195.03.tar.bz2 111245 BLAKE2B 2718b5d16804bfbbddf54e100404b16691d56596c365db401a0e6168114b423e826a1ab13e6fff7d3efbc0ea3922340c8b13951c36dac5e767b2c753aebdcf9e SHA512 f51e61d4647d0bc8892fec90863d602bce5edf8857d4fbf24fa2f2a1fce4f608d7b37928e021600cebd37a130f1f354d8a14f80356d8d60585756f544f5f6666 DIST nvidia-xconfig-580.95.05.tar.bz2 111488 BLAKE2B abaf3fa63c19129df539a1e0eb4466ff7b8ccf81527c69b6bcfb16df2abf0950541791ecca130ff59ec0028a5a92c1a0912bc1d35a48efbd331a58f224699db6 SHA512 4fa0d411e8c41ee5f24443ef9f88a261c006b5b487f6745d54eac27805a8a810ef5ffba1da3952a39978e1ccfe39114399722e392d282791a648c69a88b7777e -DIST open-gpu-kernel-modules-580.94.03.tar.gz 23273185 BLAKE2B 9f472d29cdfd7c95713710e1a20ee3fe562ebe4df4e7f3794de593de23047a322e48233a02c8a5a9730c92b60b6610808ecad9b8e2c146909d7944cb730d82ed SHA512 e403274b5fae00ced61a48b0c2dc631bfbb5d29e6e70311024bef91e12279c879d322762469279080c2917b5a79ca60973a28dd902f2d7ae697c6e5009241d91 +DIST open-gpu-kernel-modules-580.94.06.tar.gz 23276802 BLAKE2B cb55df4ab5bd5a444060bad6ada21dd9306743e1fa6e1f878daaf41c5827a5099f62c0a863f4b090fa0978470f68a309399971a044f6e95ef28d9277fe8c82c8 SHA512 2795a51b30937a0988bcc1076321a9fc5edd512f0bec4f4883c534aaa2e8fcc471d520b0d518e7903282f70e3ee42252779c93955f6e9d7d37f8b4b4f8c9f537 diff --git a/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-580.94.03.ebuild b/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-580.94.06.ebuild similarity index 100% rename from sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-580.94.03.ebuild rename to sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-580.94.06.ebuild diff --git a/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-580.95.05.ebuild b/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-580.95.05.ebuild index 42d5d38cc7c..ab92b709740 100644 --- a/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-580.95.05.ebuild +++ b/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-580.95.05.ebuild @@ -27,7 +27,7 @@ LICENSE=" curl openssl public-domain " SLOT="0/${PV%%.*}" -KEYWORDS="-* ~amd64 ~arm64" +KEYWORDS="-* amd64 ~arm64" IUSE="+X abi_x86_32 abi_x86_64 kernel-open persistenced powerd +static-libs +tools wayland" REQUIRED_USE="kernel-open? ( modules )"