diff --git a/changelog/security/2025-10-14-weekly-updates.md b/changelog/security/2025-10-14-weekly-updates.md new file mode 100644 index 0000000000..7d67af27ba --- /dev/null +++ b/changelog/security/2025-10-14-weekly-updates.md @@ -0,0 +1,5 @@ +- expat ([CVE-2025-59375](https://www.cve.org/CVERecord?id=CVE-2025-59375)) +- intel-microcode ([CVE-2024-28956](https://www.cve.org/CVERecord?id=CVE-2024-28956), [CVE-2024-43420](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2024-43420), [CVE-2024-45332](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2024-45332), [CVE-2025-20012](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2025-20012), [CVE-2025-20054](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2025-20054), [CVE-2025-20103](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2025-20103), [CVE-2025-20623](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2025-20623), [CVE-2025-24495](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2025-24495), [CVE-2025-20053](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2025-20053), [CVE-2025-20109](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2025-20109), [CVE-2025-22839](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2025-22839), [CVE-2025-22840](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2025-22840), [CVE-2025-22889](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2025-22889), [CVE-2025-26403](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2025-26403)) +- nvidia-drivers ([CVE-2025-23280](https://www.cve.org/CVERecord?id=CVE-2025-23280), [CVE-2025-23282](https://www.cve.org/CVERecord?id=CVE-2025-23282), [CVE-2025-23300](https://www.cve.org/CVERecord?id=CVE-2025-23300), [CVE-2025-23330](https://www.cve.org/CVERecord?id=CVE-2025-23330), [CVE-2025-23332](https://www.cve.org/CVERecord?id=CVE-2025-23332), [CVE-2025-23345](https://www.cve.org/CVERecord?id=CVE-2025-23345)) +- openssh ([CVE-2025-61984](https://www.cve.org/CVERecord?id=CVE-2025-61984), [CVE-2025-61985](https://www.cve.org/CVERecord?id=CVE-2025-61985)) +- openssl ([CVE-2025-9230](https://www.cve.org/CVERecord?id=CVE-2025-9230), [CVE-2025-9231](https://www.cve.org/CVERecord?id=CVE-2025-9231), [CVE-2025-9232](https://www.cve.org/CVERecord?id=CVE-2025-9232)) diff --git a/changelog/updates/2025-10-14-weekly-updates.md b/changelog/updates/2025-10-14-weekly-updates.md new file mode 100644 index 0000000000..994cccbee4 --- /dev/null +++ b/changelog/updates/2025-10-14-weekly-updates.md @@ -0,0 +1,26 @@ +- SDK: cmake ([3.31.9](https://cmake.org/cmake/help/v3.31/release/3.31.html#id1)) +- SDK: go ([1.25.1](https://go.dev/doc/devel/release#go1.25.minor) (includes [1.25](https://go.dev/doc/go1.25))) +- SDK: qemu ([10.0.5](https://wiki.qemu.org/ChangeLog/10.0)) +- azure, dev: inotify-tools ([4.25.9.0](https://github.com/inotify-tools/inotify-tools/releases/tag/4.25.9.0)) +- azure, stackit: chrony ([4.8](https://gitlab.com/chrony/chrony/-/raw/4.8/NEWS)) +- base, dev: bind ([9.18.38](https://bind9.readthedocs.io/en/v9.18.38/notes.html#notes-for-bind-9-18-38)) +- base, dev: bpftool ([7.6.0](https://github.com/libbpf/bpftool/releases/tag/v7.6.0)) +- base, dev: btrfs-progs ([6.16.1](https://github.com/kdave/btrfs-progs/releases/tag/v6.16.1)) +- base, dev: expat ([2.7.3](https://raw.githubusercontent.com/libexpat/libexpat/refs/tags/R_2_7_3/expat/Changes)) +- base, dev: gettext ([0.23.2](https://gitweb.git.savannah.gnu.org/gitweb/?p=gettext.git;a=blob_plain;f=NEWS;h=a5cc8a63eb4f06e4a1171afda862812feb67d693;hb=e8e6cb71aec0de1f5758ac21327bb8cd69e33731) (includes [0.23.1](https://gitweb.git.savannah.gnu.org/gitweb/?p=gettext.git;a=blob_plain;f=NEWS;h=4aafedf9b10a66891838e1f35c7af020c6124ee0;hb=d9b0432a825bfe3fc72f9a081d295a9528cd8aac), [0.23.0](https://gitweb.git.savannah.gnu.org/gitweb/?p=gettext.git;a=blob_plain;f=NEWS;h=9d87d45408f510d15856a1dda8a9376573f0a9c5;hb=c12b25dc82104691ca80c4da1cbc538fcab42bf5))) +- base, dev: git ([2.51.0](https://github.com/git/git/blob/v2.51.0/Documentation/RelNotes/2.51.0.adoc) (includes [2.50.0](https://github.com/git/git/blob/v2.50.0/Documentation/RelNotes/2.50.0.adoc))) +- base, dev: intel-microcode ([20250812](https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files/releases/tag/microcode-20250812) (includes [20250512](https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files/releases/tag/microcode-20250512))) +- base, dev: libxml2 ([2.14.6](https://gitlab.gnome.org/GNOME/libxml2/-/releases/v2.14.6) (includes [2.14.5](https://gitlab.gnome.org/GNOME/libxml2/-/releases/v2.14.5), [2.14.4](https://gitlab.gnome.org/GNOME/libxml2/-/releases/v2.14.4), [2.14.3](https://gitlab.gnome.org/GNOME/libxml2/-/releases/v2.14.3), [2.14.2](https://gitlab.gnome.org/GNOME/libxml2/-/releases/v2.14.2), [2.14.1](https://gitlab.gnome.org/GNOME/libxml2/-/releases/v2.14.1), [2.14.0](https://gitlab.gnome.org/GNOME/libxml2/-/releases/v2.14.0))) +- base, dev: nftables ([1.1.5](https://www.netfilter.org/projects/nftables/files/changes-nftables-1.1.5.txt)) +- base, dev: nvidia-drivers-service (amd64) ([535.274.02](https://docs.nvidia.com/datacenter/tesla/tesla-release-notes-535-274-02/index.html)) +- base, dev: nvidia-drivers-service (arm64) ([570.195.03](https://docs.nvidia.com/datacenter/tesla/tesla-release-notes-570-195-03/index.html)) +- base, dev: openssh ([10.2_p1](https://www.openssh.com/txt/release-10.2) (includes [10.1](https://www.openssh.com/txt/release-10.1))) +- base, dev: openssl ([3.4.3](https://github.com/openssl/openssl/releases/tag/openssl-3.4.3)) +- base, dev: xfsprogs ([6.16.0](https://web.git.kernel.org/pub/scm/fs/xfs/xfsprogs-dev.git/tree/doc/CHANGES?h=v6.16.0) (includes [6.15.0](https://web.git.kernel.org/pub/scm/fs/xfs/xfsprogs-dev.git/tree/doc/CHANGES?h=v6.15.0))) +- sysext-nvidia-drivers-535, sysext-nvidia-drivers-535-open: nvidia-drivers ([535.274.02](https://docs.nvidia.com/datacenter/tesla/tesla-release-notes-535-274-02/index.html)) +- sysext-nvidia-drivers-570, sysext-nvidia-drivers-570-open: nvidia-drivers ([570.195.03](https://docs.nvidia.com/datacenter/tesla/tesla-release-notes-570-195-03/index.html)) +- sysext-podman: crun ([1.21](https://github.com/containers/crun/releases/tag/1.21)) +- sysext-podman: netavark ([1.15.2](https://github.com/containers/netavark/releases/tag/v1.15.2) (includes [1.15.1](https://github.com/containers/netavark/releases/tag/v1.15.1), [1.15.0](https://github.com/containers/netavark/releases/tag/v1.15.0))) +- sysext-podman: passt ([2025.06.11](https://archives.passt.top/passt-user/20250611175947.7d540ddc@elisabeth/T/#u)) +- sysext-python: platformdirs ([4.4.0](https://github.com/tox-dev/platformdirs/releases/tag/4.4.0)) +- sysext-python: typing-extensions ([4.15.0](https://raw.githubusercontent.com/python/typing_extensions/refs/tags/4.15.0/CHANGELOG.md)) diff --git a/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/dev-util/catalyst/0001-Support-locale-gen-3-the-perl-version.patch b/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/dev-util/catalyst/0001-Support-locale-gen-3-the-perl-version.patch new file mode 100644 index 0000000000..ed392d74e0 --- /dev/null +++ b/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/dev-util/catalyst/0001-Support-locale-gen-3-the-perl-version.patch @@ -0,0 +1,47 @@ +From 2478055bf48a54c0fcb518bbd48a30b307db0009 Mon Sep 17 00:00:00 2001 +From: Kerin Millar +Date: Mon, 18 Aug 2025 14:25:20 +0200 +Subject: [PATCH 1/2] Support locale-gen-3 (the perl version) +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Signed-off-by: Andreas K. Hüttel +--- + targets/stage1/chroot.sh | 6 +++++- + targets/support/chroot-functions.sh | 2 +- + 2 files changed, 6 insertions(+), 2 deletions(-) + +diff --git a/targets/stage1/chroot.sh b/targets/stage1/chroot.sh +index e0587b59..541c060f 100755 +--- a/targets/stage1/chroot.sh ++++ b/targets/stage1/chroot.sh +@@ -91,7 +91,11 @@ run_merge --implicit-system-deps=n --oneshot "${buildpkgs[@]}" + # not run locale-gen when ROOT is set. Since we've set LANG, we need to run + # locale-gen explicitly. + if [ -x "$(command -v locale-gen)" ]; then +- locale-gen --destdir "$ROOT"/ || die "locale-gen failed" ++ if ! locale-gen -V | grep -q '^locale-gen-2\.'; then ++ locale-gen --config /etc/locale.gen --prefix "$ROOT"/ ++ else ++ locale-gen --destdir "$ROOT"/ ++ fi || die "locale-gen failed" + fi + + # Why are we removing these? Don't we need them for final make.conf? +diff --git a/targets/support/chroot-functions.sh b/targets/support/chroot-functions.sh +index d8472d46..08738d0a 100755 +--- a/targets/support/chroot-functions.sh ++++ b/targets/support/chroot-functions.sh +@@ -284,7 +284,7 @@ show_debug() { + } + + readonly locales=" +-C.UTF8 UTF-8 ++C.UTF-8 UTF-8 + " + + if [[ ${RUN_DEFAULT_FUNCS} != no ]] +-- +2.51.0 + diff --git a/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/dev-util/catalyst/0002-Fix-UTF-8-spelling.patch b/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/dev-util/catalyst/0002-Fix-UTF-8-spelling.patch new file mode 100644 index 0000000000..79f65d2180 --- /dev/null +++ b/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/dev-util/catalyst/0002-Fix-UTF-8-spelling.patch @@ -0,0 +1,41 @@ +From 8f3dad52ef6b7360f69f93554172d76aa5d59d8a Mon Sep 17 00:00:00 2001 +From: Sam James +Date: Mon, 15 Sep 2025 12:35:43 +0100 +Subject: [PATCH 2/2] Fix UTF-8 spelling + +Bug: https://bugs.gentoo.org/962878 +Signed-off-by: Sam James +--- + catalyst/base/stagebase.py | 2 +- + targets/stage1/chroot.sh | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/catalyst/base/stagebase.py b/catalyst/base/stagebase.py +index 8a3d2af6..d09b3aad 100644 +--- a/catalyst/base/stagebase.py ++++ b/catalyst/base/stagebase.py +@@ -1252,7 +1252,7 @@ class StageBase(TargetBase, ClearBase, GenBase): + '\n' + '# This sets the language of build output to English.\n' + '# Please keep this setting intact when reporting bugs.\n' +- 'LC_MESSAGES=C.utf8\n') ++ 'LC_MESSAGES=C.UTF-8\n') + + def write_binrepos_conf(self): + # only if catalyst.conf defines the host and the spec defines the path... +diff --git a/targets/stage1/chroot.sh b/targets/stage1/chroot.sh +index 541c060f..dc8571bd 100755 +--- a/targets/stage1/chroot.sh ++++ b/targets/stage1/chroot.sh +@@ -67,7 +67,7 @@ sed -i "/USE=\"${USE} build\"/d" ${clst_make_conf} + + echo "$locales" > /etc/locale.gen + for etc in /etc "$ROOT"/etc; do +- echo "LANG=C.UTF8" > ${etc}/env.d/02locale ++ echo "LANG=C.UTF-8" > ${etc}/env.d/02locale + done + update_env_settings + +-- +2.51.0 + diff --git a/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/dev-util/catalyst/README.md b/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/dev-util/catalyst/README.md new file mode 100644 index 0000000000..e404416d8e --- /dev/null +++ b/sdk_container/src/third_party/coreos-overlay/coreos/user-patches/dev-util/catalyst/README.md @@ -0,0 +1,3 @@ +The patches fix some locale generation issues in catalyst - they are +currently a part of the master branch, so there is no release that +contain those fixes yet. 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 0719fae200..df8b8390dc 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 @@ -40,6 +40,7 @@ app-crypt/azure-keyvault-pkcs11 =app-emulation/open-vmdk-1.0 * # Keep versions on both arches in sync. +=app-emulation/qemu-10.0.5 ~arm64 =app-emulation/qemu-guest-agent-9.2.0 ~arm64 # Packages are in Gentoo but not expected to be used outside Flatcar, so they @@ -50,26 +51,17 @@ dev-cpp/azure-identity dev-cpp/azure-security-keyvault-certificates dev-cpp/azure-security-keyvault-keys -# CVE-2025-47910 -=dev-lang/go-1.24.7 ~amd64 ~arm64 - # Keep versions on both arches in sync. =dev-lang/yasm-1.3.0-r1 ~arm64 =dev-libs/cowsql-1.15.9 ~arm64 =dev-libs/ding-libs-0.6.2-r1 ~arm64 -# CVE-2025-59375 -=dev-libs/expat-2.7.2 ~amd64 ~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 ** -# CVE-2025-58050 -=dev-libs/libpcre2-10.46 ~amd64 ~arm64 - # The only available ebuild (from GURU) has ~amd64 and no keyword for arm64 yet. =dev-libs/luksmeta-9-r1 ** @@ -97,7 +89,10 @@ dev-cpp/azure-security-keyvault-keys =net-libs/libnetfilter_cttimeout-1.0.1 ~arm64 # CVE-2025-9086, CVE-2025-10148 -=net-misc/curl-8.16.0-r1 ~amd64 ~arm64 +=net-misc/curl-8.16.0-r1 ~arm64 + +# CVE-2025-61984, CVE-2025-61985 +=net-misc/openssh-10.2_p1 ~amd64 ~arm64 # Packages are in Gentoo but not expected to be used outside Flatcar, so they # are generally never stabilised. Thus an unusual form is used to pick up the diff --git a/sdk_container/src/third_party/coreos-overlay/profiles/coreos/base/package.mask b/sdk_container/src/third_party/coreos-overlay/profiles/coreos/base/package.mask index 7cc46d5f00..d09537a81b 100644 --- a/sdk_container/src/third_party/coreos-overlay/profiles/coreos/base/package.mask +++ b/sdk_container/src/third_party/coreos-overlay/profiles/coreos/base/package.mask @@ -20,9 +20,3 @@ # Pulls in LLVM and clang. >=sys-block/thin-provisioning-tools-1.0.14 - -# Too large to fit into our /boot partition - the size grew by 3MB. We -# mask a specific version in hope that the future update may be smaller, -# who knows. -=sys-firmware/intel-microcode-20250512_p20250513 -=sys-firmware/intel-microcode-20250812_p20250813 diff --git a/sdk_container/src/third_party/coreos-overlay/x11-drivers/nvidia-drivers-service/nvidia-drivers-service-535.261.03.ebuild b/sdk_container/src/third_party/coreos-overlay/x11-drivers/nvidia-drivers-service/nvidia-drivers-service-535.274.02.ebuild similarity index 100% rename from sdk_container/src/third_party/coreos-overlay/x11-drivers/nvidia-drivers-service/nvidia-drivers-service-535.261.03.ebuild rename to sdk_container/src/third_party/coreos-overlay/x11-drivers/nvidia-drivers-service/nvidia-drivers-service-535.274.02.ebuild diff --git a/sdk_container/src/third_party/coreos-overlay/x11-drivers/nvidia-drivers-service/nvidia-drivers-service-570.181.ebuild b/sdk_container/src/third_party/coreos-overlay/x11-drivers/nvidia-drivers-service/nvidia-drivers-service-570.195.03.ebuild similarity index 100% rename from sdk_container/src/third_party/coreos-overlay/x11-drivers/nvidia-drivers-service/nvidia-drivers-service-570.181.ebuild rename to sdk_container/src/third_party/coreos-overlay/x11-drivers/nvidia-drivers-service/nvidia-drivers-service-570.195.03.ebuild diff --git a/sdk_container/src/third_party/portage-stable/app-containers/containerd/Manifest b/sdk_container/src/third_party/portage-stable/app-containers/containerd/Manifest index 58d5877458..58c47eae9d 100644 --- a/sdk_container/src/third_party/portage-stable/app-containers/containerd/Manifest +++ b/sdk_container/src/third_party/portage-stable/app-containers/containerd/Manifest @@ -4,3 +4,4 @@ DIST containerd-2.0.4.tar.gz 10450939 BLAKE2B f82ed40eab0f1d186f4fb04217b8f75a9d DIST containerd-2.0.5.tar.gz 10452563 BLAKE2B bf03316c9211eaa17a3b40b1fc9f9aca42fe3e621e086e612eb07c286c6b62bc7a0a2426ce7b6742dce2924d570ab599aefb43463c4fa6be277e562bad79668f SHA512 af89a5c9ad5f931c5fee33c75c13c296fc9ec966f2c64ec244897695eebb365bcb542f6b431e60d4ef7213f0ea11d3a8896d1b7f033ed445e6b521b7ddbffe6f DIST containerd-2.1.0.tar.gz 10610618 BLAKE2B 147c21b4650543af9b0e533e381a0505ba927d6e9270b9b03a09016eb3ccf29875db7fa274944fea2ff7b029b6a05a17d14c61e24b5f3426b31f320831eeb46a SHA512 e9bb128917bb6b2e21a8e05344af3fdcdda8620be20e54407bc2c73046278a88a77bcbed6ef7a59099c9ee3303283db46b90b71afdd45236d3c534749ba844e0 DIST containerd-2.1.1.tar.gz 10610787 BLAKE2B acc2d769752c783643795d228c0d267b0802e09166dc783e84087da0029a822a64688f5e59c047c47b25f50ca2a1ccb7f5b6216ad6beeb4489df308e525e9716 SHA512 542f7cae61e1ef2e1b529b0bea66d7ad9016d4605de73de9c9c8a738e50ec6f470b939d1546482320515b77424bffe1cf24b721173ac0c0ecd0100c92817cfb1 +DIST containerd-2.1.4.tar.gz 10614131 BLAKE2B b8f4007b4bb368a1fa04c913d606f65d2ea4a17a6419ce12f2b6112eee2574d7a09fb8e2500d1c2f21bef8792dc047df4d63446211ae006662e616facda91f24 SHA512 a9f84784e917621ee5ea38ad20b8106e642fbf463a00d319b73a1a8e4d1fdd5be2fba0789b6a5d31107ef239d3713eced99ce979d4b2764714271a63c0936c15 diff --git a/sdk_container/src/third_party/portage-stable/app-containers/containerd/containerd-2.1.4.ebuild b/sdk_container/src/third_party/portage-stable/app-containers/containerd/containerd-2.1.4.ebuild new file mode 100644 index 0000000000..005dcab596 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/app-containers/containerd/containerd-2.1.4.ebuild @@ -0,0 +1,94 @@ +# Copyright 2022-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 +inherit go-env go-module systemd toolchain-funcs +GIT_REVISION=75cb2b7193e4e490e9fbdc236c0e811ccaba3376 + +DESCRIPTION="A daemon to control runC" +HOMEPAGE="https://containerd.io/" +SRC_URI="https://github.com/containerd/containerd/archive/v${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86" +IUSE="apparmor btrfs device-mapper +cri hardened +seccomp selinux test" + +COMMON_DEPEND=" + btrfs? ( sys-fs/btrfs-progs ) + seccomp? ( sys-libs/libseccomp ) +" + +DEPEND=" +${COMMON_DEPEND} +" + +# recommended minimum version of runc is found in script/setup/runc-version +RDEPEND=" + ${COMMON_DEPEND} + >=app-containers/runc-1.3.0[apparmor?,seccomp?] +" + +BDEPEND=" + dev-go/go-md2man + virtual/pkgconfig +" + +# tests require root or docker +RESTRICT+="test" + +src_prepare() { + default + sed -i \ + -e "s/-s -w//" \ + Makefile || die + sed -i \ + -e "s:/usr/local:/usr:" \ + containerd.service || die +} + +src_compile() { + local options=( + $(usev apparmor) + $(usex btrfs "" "no_btrfs") + $(usex cri "" "no_cri") + $(usex device-mapper "" "no_devmapper") + $(usev seccomp) + $(usev selinux) + ) + + myemakeargs=( + BUILDTAGS="${options[*]}" + LDFLAGS="$(usex hardened '-extldflags -fno-PIC' '')" + REVISION="${GIT_REVISION}" + VERSION=v${PV} + ) + + # The Go env is already set, but reset it for CBUILD in a subshell to allow + # building the man pages when cross-compiling. + ( + CHOST="${CBUILD}" go-env_set_compile_environment + # race condition in man target https://bugs.gentoo.org/765100 + tc-env_build emake "${myemakeargs[@]}" man -j1 #nowarn + ) + + emake "${myemakeargs[@]}" all + +} + +src_install() { + rm bin/gen-manpages || die + dobin bin/* + doman man/* + newconfd "${FILESDIR}"/${PN}.confd "${PN}" + newinitd "${FILESDIR}"/${PN}.initd "${PN}" + systemd_dounit containerd.service + keepdir /var/lib/containerd + + # we already installed manpages, remove markdown source + # before installing docs directory + rm -r docs/man || die + + local DOCS=( ADOPTERS.md README.md RELEASES.md ROADMAP.md SCOPE.md docs/. ) + einstalldocs +} diff --git a/sdk_container/src/third_party/portage-stable/app-containers/crun/crun-1.21.ebuild b/sdk_container/src/third_party/portage-stable/app-containers/crun/crun-1.21.ebuild index 5960de0a26..16f0b68211 100644 --- a/sdk_container/src/third_party/portage-stable/app-containers/crun/crun-1.21.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-containers/crun/crun-1.21.ebuild @@ -15,7 +15,7 @@ if [[ "${PV}" == *9999* ]]; then EGIT_REPO_URI="https://github.com/containers/${PN}.git" else SRC_URI="https://github.com/containers/${PN}/releases/download/${PV}/${P}.tar.gz" - KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv" + KEYWORDS="amd64 ~arm arm64 ~loong ppc64 ~riscv" fi LICENSE="GPL-2+ LGPL-2.1+" diff --git a/sdk_container/src/third_party/portage-stable/app-containers/docker-cli/Manifest b/sdk_container/src/third_party/portage-stable/app-containers/docker-cli/Manifest index 71e8b876b7..7e9d611d82 100644 --- a/sdk_container/src/third_party/portage-stable/app-containers/docker-cli/Manifest +++ b/sdk_container/src/third_party/portage-stable/app-containers/docker-cli/Manifest @@ -6,3 +6,4 @@ DIST docker-cli-28.1.1-man.tar.xz 69976 BLAKE2B 497c0874a5ed72c3d2dff6c77b687f01 DIST docker-cli-28.1.1.tar.gz 7518124 BLAKE2B 2d9a1b620d4cffa718571cef9aa1825b57600630624715ccdae50a1bbcc44821d599ea2f6e6c66628434740904d53218e101f69b4fd0865b4197ef19d9c2d4fe SHA512 39ff5f982779b70311d4fce5f829e52199b058cedf92c0e650786a52004edbf3935f8673db98527affc57f0e33be435f8a8af624c2e06f28c7f8f405ed570746 DIST docker-cli-28.2.2-man.tar.xz 69888 BLAKE2B bee8b296ee94c57c34cfa268fde015aff15b6b269905275d47cce73ab94c7bed7edc9ba4d5b9d730dea78d149306736e14186c8a9c782047094511771ec8d105 SHA512 ce608b60915a0b7b15302260ec500b433ba6c9174fa82b34a4ae8ad7bb9d2f6abe45d4e43c0e3978b2f5bb440425e08d416ab9f613cdf64eb6294254765aa37b DIST docker-cli-28.2.2.tar.gz 7531638 BLAKE2B cb7d2766e4a6c444169f8462379b8524e0433a29541837c1acbefa62f4b303b6ce1dd629fbb2ed6e154ea51b72ac17c8452284a5e26c9716217e8cbf169374bb SHA512 1ba62398322c65e6994c0c6821b912c9a9b215083593d63557c5255064c407bd25f72044336ebb19977fe6d03215ec47174c6617890a817b9e34ed010535fb6b +DIST docker-cli-28.4.0.tar.gz 7612765 BLAKE2B acfa0ee4cdeb6eec31ae92eb8c0a41357aa0ff3cb34bd497307ce5f136a6f1dd4d78cbbea27b1c48b0d5995262f1e039548a725c106bcc91f48f01932354e8dc SHA512 ab35867bdcaa07909cfd24e9bc4f5cde10b6930fa42e87d61d4544bb20b365fff146713239483169ef989cacfae7d7493d7f42d269b0f37f86c0c14a9373b445 diff --git a/sdk_container/src/third_party/portage-stable/app-containers/docker-cli/docker-cli-28.4.0.ebuild b/sdk_container/src/third_party/portage-stable/app-containers/docker-cli/docker-cli-28.4.0.ebuild new file mode 100644 index 0000000000..8878c4ed79 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/app-containers/docker-cli/docker-cli-28.4.0.ebuild @@ -0,0 +1,71 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit shell-completion go-module +MY_PV=${PV/_/-} + +# update this on every bump +GIT_COMMIT=d8eb465f86cfceeb57f8582e373d41a558d35503 + +# To create the man pages tarball, run the following in the git source +# directory: +#git checkout ${PV} +# make manpages +# tar -acf ${P}-man.tar.xz man/man? + +DESCRIPTION="the command line binary for docker" +HOMEPAGE="https://www.docker.com/" +SRC_URI="https://github.com/docker/cli/archive/v${MY_PV}.tar.gz -> ${P}.tar.gz" +S="${WORKDIR}/cli-${PV}" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86" +IUSE="hardened selinux" + +RDEPEND="selinux? ( sec-policy/selinux-docker )" + +RESTRICT="installsources strip test" + +src_unpack() { + default + cd "${S}" + ln -s vendor.mod go.mod + ln -s vendor.sum go.sum +} + +src_prepare() { + default + sed -i 's@dockerd\?\.exe@@g' contrib/completion/bash/docker || die +} + +src_compile() { + export DISABLE_WARN_OUTSIDE_CONTAINER=1 + # setup CFLAGS and LDFLAGS for separate build target + # see https://github.com/tianon/docker-overlay/pull/10 + CGO_CFLAGS+=" -I${ESYSROOT}/usr/include" + CGO_LDFLAGS+=" -L${ESYSROOT}/usr/$(get_libdir)" + emake \ + LDFLAGS="$(usex hardened '-extldflags -fno-PIC' '')" \ + VERSION="${PV}" \ + GITCOMMIT="${GIT_COMMIT}" \ + dynbinary manpages +} + +src_install() { + dobin build/docker + doman man/man?/* + dobashcomp contrib/completion/bash/docker + bashcomp_alias docker dockerd + dofishcomp contrib/completion/fish/docker.fish + dozshcomp contrib/completion/zsh/_* +} + +pkg_postinst() { + has_version "app-containers/docker-buildx" && return + ewarn "the 'docker build' command is deprecated and will be removed in a" + ewarn "future release. If you need this functionality, install" + ewarn "app-containers/docker-buildx." +} diff --git a/sdk_container/src/third_party/portage-stable/app-containers/docker/Manifest b/sdk_container/src/third_party/portage-stable/app-containers/docker/Manifest index 65c744bf53..54555369d3 100644 --- a/sdk_container/src/third_party/portage-stable/app-containers/docker/Manifest +++ b/sdk_container/src/third_party/portage-stable/app-containers/docker/Manifest @@ -2,3 +2,4 @@ DIST docker-28.0.1.tar.gz 17553228 BLAKE2B 8c172d58fb75d307983ace06b509e86ed5337 DIST docker-28.0.4.tar.gz 17579330 BLAKE2B 3b1ecb6ddceea0fe772bd597bf6b3c4b5867b691e35bbb0b05ad6ab0c4dc79193dbde02cdcb45c607c0dd704aeaa9629deffb098a0d1533dd3f5e9fb882ef34f SHA512 dfa6bc18c7cecf82c80e45c6a615e0cccb866a993ad2b6c3134e0f0d5d069b5abb0b8201029019a5396353f666252b5fd36b6a34080723af46291d3fda1c2608 DIST docker-28.1.1.tar.gz 17719438 BLAKE2B 95307e9c03e4c1ad436fffe321f69c269c0fba9fea22c56963b503a051360b9a38170c865e42674ca17adde6690ed14da5039539e7f8d082e1304191d25c9ddb SHA512 15de0a10dc9d60be5c6047a30be5065ee69b9cde938654363cd27d71103057cc78510f546f7b161ba5f0b8b764dc6167e4ffebbcc9e69b171fe49ee1e09e97b2 DIST docker-28.2.2.tar.gz 17861904 BLAKE2B 6f55e96d653579b749908080550ebee0635549fafd25c775fd59126018820a30f5234c680834a7ece897cb0f38f92f5afe3684d5dbc43694837516528c79f19b SHA512 e63ce38bb7badb01de918f678ad9fb216b279170177fe7d7c4120c8a1196add485cc974f9dff239a274220ebab60a2dc6852f07dc2ddafe8cec07c65dbd19a49 +DIST docker-28.4.0.tar.gz 18066393 BLAKE2B 70c9910bec169994ddd39f46e4a7042e5f38a3b76e8a43389ee934fb7f3c75ae686f32ad7f3cbc0dcff210b5c0eeed24674db0fdf4e845e78c330cf6c2b75918 SHA512 a98f8012547dc1e61e6a4f420355d29fbd6f6ddb5642601d8762099768e0b284fcf129ee31af155049731f61f43ff4efe42313467055dae32337dc5cc8c8cf78 diff --git a/sdk_container/src/third_party/portage-stable/app-containers/docker/docker-28.4.0.ebuild b/sdk_container/src/third_party/portage-stable/app-containers/docker/docker-28.4.0.ebuild new file mode 100644 index 0000000000..2b623e3dda --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/app-containers/docker/docker-28.4.0.ebuild @@ -0,0 +1,333 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 +MY_PV=${PV/_/-} + +inherit go-module linux-info optfeature systemd toolchain-funcs udev + +GIT_COMMIT=249d679a6baf8a32bb6d72d6ac5cc7ab9c90b4ea + +DESCRIPTION="The core functions you need to create Docker images and run Docker containers" +HOMEPAGE="https://www.docker.com/" +SRC_URI="https://github.com/moby/moby/archive/v${MY_PV}.tar.gz -> ${P}.tar.gz" +S="${WORKDIR}/moby-${PV}" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86" +IUSE="apparmor btrfs +container-init cuda +overlay2 seccomp selinux systemd" + +DEPEND=" + acct-group/docker + >=dev-db/sqlite-3.7.9:3 + apparmor? ( sys-libs/libapparmor ) + btrfs? ( >=sys-fs/btrfs-progs-3.16.1 ) + seccomp? ( >=sys-libs/libseccomp-2.2.1 ) + systemd? ( sys-apps/systemd ) +" + +# https://github.com/moby/moby/blob/master/project/PACKAGERS.md#runtime-dependencies +# https://github.com/moby/moby/blob/master/project/PACKAGERS.md#optional-dependencies +RDEPEND=" + ${DEPEND} + >=net-firewall/iptables-1.4 + sys-process/procps + >=dev-vcs/git-1.7 + >=app-arch/xz-utils-4.9 + >=app-containers/containerd-2.1.4[apparmor?,btrfs?,seccomp?] + >=app-containers/runc-1.2.6[apparmor?,seccomp?] + !app-containers/docker-proxy + !=sys-process/tini-0.19.0[static] ) + cuda? ( app-containers/nvidia-container-toolkit ) + selinux? ( sec-policy/selinux-docker ) +" + +# https://github.com/docker/docker/blob/master/project/PACKAGERS.md#build-dependencies +BDEPEND=" + dev-go/go-md2man + virtual/pkgconfig +" +# tests require running dockerd as root and downloading containers +RESTRICT="installsources strip test" + +# https://bugs.gentoo.org/748984 https://github.com/etcd-io/etcd/pull/12552 +pkg_setup() { + # this is based on "contrib/check-config.sh" from upstream's sources + # required features. + CONFIG_CHECK=" + ~NAMESPACES ~NET_NS ~PID_NS ~IPC_NS ~UTS_NS + ~CGROUPS ~CGROUP_CPUACCT ~CGROUP_DEVICE ~CGROUP_FREEZER ~CGROUP_SCHED ~CPUSETS ~MEMCG + ~KEYS + ~VETH ~BRIDGE ~BRIDGE_NETFILTER + ~IP_NF_FILTER ~IP_NF_RAW ~IP_NF_TARGET_MASQUERADE + ~NETFILTER_XT_MATCH_ADDRTYPE + ~NETFILTER_XT_MATCH_CONNTRACK + ~NETFILTER_XT_MATCH_IPVS + ~NETFILTER_XT_MARK + ~IP_NF_NAT ~NF_NAT + ~POSIX_MQUEUE + " + WARNING_POSIX_MQUEUE="CONFIG_POSIX_MQUEUE: is required for bind-mounting /dev/mqueue into containers" + + if kernel_is lt 4 8; then + CONFIG_CHECK+=" + ~DEVPTS_MULTIPLE_INSTANCES + " + fi + + if kernel_is le 5 1; then + CONFIG_CHECK+=" + ~NF_NAT_IPV4 + " + fi + + if kernel_is le 5 2; then + CONFIG_CHECK+=" + ~NF_NAT_NEEDED + " + fi + + if kernel_is ge 4 15; then + CONFIG_CHECK+=" + ~CGROUP_BPF + " + fi + + # optional features + CONFIG_CHECK+=" + ~USER_NS + " + + if use seccomp; then + CONFIG_CHECK+=" + ~SECCOMP ~SECCOMP_FILTER + " + fi + + CONFIG_CHECK+=" + ~CGROUP_PIDS + " + + if kernel_is lt 6 1; then + CONFIG_CHECK+=" + ~MEMCG_SWAP + " + fi + + if kernel_is le 5 8; then + CONFIG_CHECK+=" + ~MEMCG_SWAP_ENABLED + " + fi + + CONFIG_CHECK+=" + ~!LEGACY_VSYSCALL_NATIVE + " + if kernel_is lt 5 19; then + CONFIG_CHECK+=" + ~LEGACY_VSYSCALL_EMULATE + " + fi + CONFIG_CHECK+=" + ~!LEGACY_VSYSCALL_NONE + " + WARNING_LEGACY_VSYSCALL_NONE="CONFIG_LEGACY_VSYSCALL_NONE enabled: \ + Containers with <=glibc-2.13 will not work" + + if kernel_is le 4 5; then + CONFIG_CHECK+=" + ~MEMCG_KMEM + " + fi + + if kernel_is lt 5; then + CONFIG_CHECK+=" + ~IOSCHED_CFQ ~CFQ_GROUP_IOSCHED + " + fi + + CONFIG_CHECK+=" + ~BLK_CGROUP ~BLK_DEV_THROTTLING + ~CGROUP_PERF + ~CGROUP_HUGETLB + ~NET_CLS_CGROUP ~CGROUP_NET_PRIO + ~CFS_BANDWIDTH ~FAIR_GROUP_SCHED + ~IP_NF_TARGET_REDIRECT + ~IP_VS + ~IP_VS_NFCT + ~IP_VS_PROTO_TCP + ~IP_VS_PROTO_UDP + ~IP_VS_RR + " + + if use selinux; then + CONFIG_CHECK+=" + ~SECURITY_SELINUX + " + fi + + if use apparmor; then + CONFIG_CHECK+=" + ~SECURITY_APPARMOR + " + fi + + # if ! is_set EXT4_USE_FOR_EXT2; then + # check_flags EXT3_FS EXT3_FS_XATTR EXT3_FS_POSIX_ACL EXT3_FS_SECURITY + # if ! is_set EXT3_FS || ! is_set EXT3_FS_XATTR || ! is_set EXT3_FS_POSIX_ACL || ! is_set EXT3_FS_SECURITY; then + # echo " $(wrap_color '(enable these ext3 configs if you are using ext3 as backing filesystem)' bold black)" + # fi + # fi + + CONFIG_CHECK+=" + ~EXT4_FS ~EXT4_FS_POSIX_ACL ~EXT4_FS_SECURITY + " + + # if ! is_set EXT4_FS || ! is_set EXT4_FS_POSIX_ACL || ! is_set EXT4_FS_SECURITY; then + # if is_set EXT4_USE_FOR_EXT2; then + # echo " $(wrap_color 'enable these ext4 configs if you are using ext3 or ext4 as backing filesystem' bold black)" + # else + # echo " $(wrap_color 'enable these ext4 configs if you are using ext4 as backing filesystem' bold black)" + # fi + # fi + + # network drivers + CONFIG_CHECK+=" + ~VXLAN ~BRIDGE_VLAN_FILTERING + ~CRYPTO ~CRYPTO_AEAD ~CRYPTO_GCM ~CRYPTO_SEQIV ~CRYPTO_GHASH + ~XFRM ~XFRM_USER ~XFRM_ALGO ~INET_ESP + " + if kernel_is le 5 3; then + CONFIG_CHECK+=" + ~INET_XFRM_MODE_TRANSPORT + " + fi + + CONFIG_CHECK+=" + ~IPVLAN + " + CONFIG_CHECK+=" + ~MACVLAN ~DUMMY + " + CONFIG_CHECK+=" + ~NF_NAT_FTP ~NF_CONNTRACK_FTP ~NF_NAT_TFTP ~NF_CONNTRACK_TFTP + " + + # storage drivers + if use btrfs; then + CONFIG_CHECK+=" + ~BTRFS_FS + ~BTRFS_FS_POSIX_ACL + " + fi + + CONFIG_CHECK+=" + ~OVERLAY_FS + " + + linux-info_pkg_setup +} + +src_unpack() { + default + cd "${S}" + [[ -f go.mod ]] || ln -s vendor.mod go.mod || die + [[ -f go.sum ]] || ln -s vendor.sum go.sum || die +} + +src_compile() { + export DOCKER_GITCOMMIT="${GIT_COMMIT}" + export VERSION=${PV} + tc-export PKG_CONFIG + + # setup CFLAGS and LDFLAGS for separate build target + # see https://github.com/tianon/docker-overlay/pull/10 + CGO_CFLAGS+=" -I${ESYSROOT}/usr/include" + CGO_LDFLAGS+=" -L${ESYSROOT}/usr/$(get_libdir)" + + # let's set up some optional features :) + export DOCKER_BUILDTAGS='' + for gd in btrfs overlay2; do + if ! use $gd; then + DOCKER_BUILDTAGS+=" exclude_graphdriver_${gd//-/}" + fi + done + + for tag in apparmor seccomp; do + if use $tag; then + DOCKER_BUILDTAGS+=" $tag" + fi + done + + export AUTO_GOPATH=1 + export EXCLUDE_AUTO_BUILDTAG_JOURNALD=$(usex systemd '' 'y') + export GO_MD2MAN=/usr/bin/go-md2man + + # build binaries + ./hack/make.sh dynbinary || die 'dynbinary failed' + + # build man page + cd man || die + emake || die +} + +src_install() { + dosym containerd /usr/bin/docker-containerd + dosym containerd-shim-runc-v2 /usr/bin/docker-containerd-shim + dosym runc /usr/bin/docker-runc + use container-init && dosym tini /usr/bin/docker-init + dobin bundles/dynbinary-daemon/dockerd + dobin bundles/dynbinary-daemon/docker-proxy + for f in dockerd-rootless-setuptool.sh dockerd-rootless.sh; do + dosym ../share/docker/contrib/${f} /usr/bin/${f} + done + + newinitd contrib/init/openrc/docker.initd docker + newconfd contrib/init/openrc/docker.confd docker + + systemd_dounit contrib/init/systemd/docker.{service,socket} + + udev_dorules contrib/udev/*.rules + + dodoc AUTHORS CONTRIBUTING.md NOTICE README.md + dodoc -r docs/* + doman man/man8/dockerd.8 + + # note: intentionally not using "doins" so that we preserve +x bits + dodir /usr/share/${PN}/contrib + cp -R contrib/* "${ED}/usr/share/${PN}/contrib" +} + +pkg_postinst() { + udev_reload + + elog + elog "To use Docker, the Docker daemon must be running as root. To automatically" + elog "start the Docker daemon at boot:" + if systemd_is_booted || has_version sys-apps/systemd; then + elog " systemctl enable docker.service" + else + elog " rc-update add docker default" + fi + elog + elog "To use Docker as a non-root user, add yourself to the 'docker' group:" + elog ' usermod -aG docker ' + elog + + if has_version sys-fs/zfs; then + elog " ZFS storage driver is available" + elog " Check https://docs.docker.com/storage/storagedriver/zfs-driver for more info" + elog + fi + + optfeature "rootless mode support" sys-apps/shadow + optfeature "rootless mode support" sys-apps/rootlesskit + optfeature_header "for rootless mode you also need a network stack" + optfeature "rootless mode network stack" app-containers/slirp4netns +} + +pkg_postrm() { + udev_reload +} diff --git a/sdk_container/src/third_party/portage-stable/app-containers/incus/Manifest b/sdk_container/src/third_party/portage-stable/app-containers/incus/Manifest index 9419b545f9..cfac32c1b1 100644 --- a/sdk_container/src/third_party/portage-stable/app-containers/incus/Manifest +++ b/sdk_container/src/third_party/portage-stable/app-containers/incus/Manifest @@ -8,3 +8,5 @@ DIST incus-6.14.tar.xz 12509468 BLAKE2B ec3bb614088d82e07c13169a6b26d8c83214fddb DIST incus-6.14.tar.xz.asc 833 BLAKE2B c9cfa631bb316234a6958f2aa3e708e32ea2fca34357700e7d1e38723be539f5b6b1484597c18baca1f22d922c7aca148463dfc0b818f7809126e6873e4826b5 SHA512 6a2f4ceeab44462cca74799a1c135eeb17cbece3d270c5195c3eacda8ea24419fc34cab6d157dbfed803bb269df42a02abc417b98887cec5f10b0ec70b430644 DIST incus-6.15.tar.xz 12716184 BLAKE2B bc821575f7f24b42054028ce628a29f38ef41b8a31a94f34381019306681f9279ae6c36cb00b7f84d62f5ddc89d27216d753e5c0f5ec1d327bbd283ab5fe1e15 SHA512 7561abce8eb9c01764aca9bb5477028439c05f6c1c20637f288028be93f4bc0d74a36af76f7ad0e35028dfe40e2a0bb2d7b4a363d1da35fe657072f5d847c78e DIST incus-6.15.tar.xz.asc 833 BLAKE2B ccab84a2fd3f9d6971ff0fd7cba9afc23dbe0fc0bcb8738656f9071db7c773840566009d5014dc15d37be26bff018e3faf8af59dd5d50b629aebd2e79cf3dc5e SHA512 b1bf43ffff719a3f1c6be7a8d32e44f418efb8e926914dea5479ba1175768910fa38b4e5b83c51e90ec34d2d345629597beb286215b9658a611cf568b8e43122 +DIST incus-6.17.tar.xz 12809024 BLAKE2B 5d6cb615b547430641faa716df5ce7c4d03aad436a4161c9d9dab99bd4fff7b8f93c8250d5b65237047c2baeeeac6f42a21b9a6970a41e79e7e6af9ceca2cf62 SHA512 ae744784ed676dcdcad3a284a0e16a816786cb87d78fae7f317baa4c75b193edb56ab2ec38b916c84930df5385e7b239c1cb9dc869672502be1e4d660a8d6113 +DIST incus-6.17.tar.xz.asc 833 BLAKE2B a0fc3eaa51df6b77988cc331cf03fad982d0a735a2e751564d05bd6f929b422b8682b56ec9101b17000978ec7f919189b3721779ca299f7df0c46fa56275aaf6 SHA512 23cc6ed65bf99899bd3ed4dd7f79a1eada375e32ad0f9b91be1e3fcc0d2af5abeffe05b7c02f0b63a7eca7dfaeee030dbc27fce67e8952f42f18638ebfc9a2e2 diff --git a/sdk_container/src/third_party/portage-stable/app-containers/incus/incus-6.17.ebuild b/sdk_container/src/third_party/portage-stable/app-containers/incus/incus-6.17.ebuild new file mode 100644 index 0000000000..2e839535a1 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/app-containers/incus/incus-6.17.ebuild @@ -0,0 +1,259 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit go-env go-module linux-info optfeature systemd toolchain-funcs verify-sig + +DESCRIPTION="Modern, secure and powerful system container and virtual machine manager" +HOMEPAGE="https://linuxcontainers.org/incus/introduction/ https://github.com/lxc/incus" +SRC_URI="https://linuxcontainers.org/downloads/incus/${P}.tar.xz + verify-sig? ( https://linuxcontainers.org/downloads/incus/${P}.tar.xz.asc )" + +LICENSE="Apache-2.0 BSD LGPL-3 MIT" +SLOT="0/stable" +KEYWORDS="~amd64 ~arm64" +IUSE="apparmor fuidshift nls qemu" + +DEPEND="acct-group/incus + acct-group/incus-admin + app-arch/xz-utils + >=app-containers/lxc-5.0.0:=[apparmor?,seccomp(+)] + dev-db/sqlite:3 + >=dev-libs/cowsql-1.15.7 + dev-libs/lzo + >=dev-libs/raft-0.22.1:=[lz4] + >=dev-util/xdelta-3.0[lzma(+)] + net-dns/dnsmasq[dhcp] + sys-libs/libcap + virtual/udev" +RDEPEND="${DEPEND} + || ( + net-firewall/iptables + net-firewall/nftables[json] + ) + fuidshift? ( !app-containers/lxd ) + net-firewall/ebtables + sys-apps/iproute2 + sys-fs/fuse:* + >=sys-fs/lxcfs-5.0.0 + sys-fs/squashfs-tools[lzma] + virtual/acl + apparmor? ( sec-policy/apparmor-profiles ) + qemu? ( + app-cdr/cdrtools + app-emulation/qemu[spice,usbredir,virtfs] + sys-apps/gptfdisk + )" +BDEPEND=">=dev-lang/go-1.24.7 + nls? ( sys-devel/gettext ) + verify-sig? ( sec-keys/openpgp-keys-linuxcontainers )" + +CONFIG_CHECK=" + ~AIO + ~CGROUPS + ~IPC_NS + ~NET_NS + ~PID_NS + + ~SECCOMP + ~USER_NS + ~UTS_NS + + ~KVM + ~MACVTAP + ~VHOST_VSOCK +" + +ERROR_AIO="CONFIG_AIO is required." +ERROR_IPC_NS="CONFIG_IPC_NS is required." +ERROR_NET_NS="CONFIG_NET_NS is required." +ERROR_PID_NS="CONFIG_PID_NS is required." +ERROR_SECCOMP="CONFIG_SECCOMP is required." +ERROR_UTS_NS="CONFIG_UTS_NS is required." + +WARNING_KVM="CONFIG_KVM and CONFIG_KVM_AMD/-INTEL is required for virtual machines." +WARNING_MACVTAP="CONFIG_MACVTAP is required for virtual machines." +WARNING_VHOST_VSOCK="CONFIG_VHOST_VSOCK is required for virtual machines." + +# Go magic. +QA_PREBUILT="/usr/bin/incus + /usr/bin/incus-agent + /usr/bin/incus-benchmark + /usr/bin/incus-migrate + /usr/bin/lxc-to-incus + /usr/sbin/fuidshift + /usr/sbin/incusd + /usr/sbin/lxd-to-incus" + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/linuxcontainers.asc + +# The testsuite must be run as root. +# make: *** [Makefile:156: check] Error 1 +RESTRICT="test" + +GOPATH="${S}/_dist" + +src_unpack() { + verify-sig_src_unpack + go-module_src_unpack +} + +src_prepare() { + export GOPATH="${S}/_dist" + + default + + sed -i \ + -e "s:\./configure:./configure --prefix=/usr --libdir=${EPREFIX}/usr/lib/incus:g" \ + -e "s:make:make ${MAKEOPTS}:g" \ + Makefile || die + + sed -i \ + -e "s:/usr/share/OVMF:/usr/share/edk2/OvmfX64:g" \ + -e "s:OVMF_VARS.ms.fd:OVMF_VARS.fd:g" \ + internal/server/instance/drivers/edk2/driver_edk2.go || die "Failed to fix hardcoded ovmf paths." + + cp "${FILESDIR}"/incus-6.14-r1.service "${T}"/incus.service || die + if use apparmor; then + sed -i \ + '/^EnvironmentFile=.*/a ExecStartPre=\/usr\/libexec\/lxc\/lxc-apparmor-load' \ + "${T}"/incus.service || die + fi + + # Disable -Werror's from go modules. + find "${S}" -name "cgo.go" -exec sed -i "s/ -Werror / /g" {} + || die +} + +src_configure() { :; } + +src_compile() { + export GOPATH="${S}/_dist" + export CGO_LDFLAGS_ALLOW="-Wl,-z,now" + + for k in incus-benchmark incus-simplestreams incus-user incus lxc-to-incus lxd-to-incus ; do + ego install -v -x "${S}/cmd/${k}" + done + + if use fuidshift ; then + ego install -v -x "${S}/cmd/fuidshift" + fi + + ego install -v -x -tags libsqlite3 "${S}"/cmd/incusd + + # Needs to be built statically + CGO_ENABLED=0 go install -v -tags agent,netgo,static -buildmode default "${S}"/cmd/incus-migrate + + # Build the VM agents, statically too + if use amd64 ; then + GOARCH=amd64 CGO_ENABLED=0 ego build -o "${S}"/_dist/bin/incus-agent.linux.x86_64 -v \ + -tags agent,netgo,static -buildmode default "${S}"/cmd/incus-agent + GOARCH=386 CGO_ENABLED=0 ego build -o "${S}"/_dist/bin/incus-agent.linux.i686 -v \ + -tags agent,netgo,static -buildmode default "${S}"/cmd/incus-agent + GOARCH=amd64 GOOS=windows CGO_ENABLED=0 ego build -o "${S}"/_dist/bin/incus-agent.windows.x86_64 -v \ + -tags agent,netgo,static -buildmode default "${S}"/cmd/incus-agent + GOARCH=386 GOOS=windows CGO_ENABLED=0 ego build -o "${S}"/_dist/bin/incus-agent.windows.i686 -v \ + -tags agent,netgo,static -buildmode default "${S}"/cmd/incus-agent + elif use arm64 ; then + GOARCH=arm64 CGO_ENABLED=0 ego build -o "${S}"/_dist/bin/incus-agent.linux.aarch64 -v \ + -tags agent,netgo,static -buildmode default "${S}"/cmd/incus-agent + GOARCH=arm64 GOOS=windows CGO_ENABLED=0 ego build -o "${S}"/_dist/bin/incus-agent.windows.aarch64 -v \ + -tags agent,netgo,static -buildmode default "${S}"/cmd/incus-agent + else + echo "No VM support for this arch." + return + fi + + use nls && emake build-mo +} + +src_test() { + emake check +} + +src_install() { + export GOPATH="${S}/_dist" + + export GOHOSTARCH=$(go-env_goarch "${CBUILD}") + if [[ "${GOARCH}" != "${GOHOSTARCH}" ]]; then + local bindir="_dist/bin/linux_${GOARCH}" + else + local bindir="_dist/bin" + fi + + newsbin "${FILESDIR}"/incus-startup-0.4.sh incus-startup + + # Admin tools + for l in incusd incus-user lxd-to-incus ; do + dosbin "${bindir}/${l}" + done + + # User tools + for m in incus-benchmark incus-migrate incus-simplestreams incus lxc-to-incus ; do + dobin "${bindir}/${m}" + done + + # VM Agents + if use amd64 ; then + exeinto /usr/libexec/incus/agents + doexe ${bindir}/incus-agent.linux.x86_64 + doexe ${bindir}/incus-agent.linux.i686 + doexe ${bindir}/incus-agent.windows.x86_64 + doexe ${bindir}/incus-agent.windows.i686 + elif use arm64 ; then + exeinto /usr/libexec/incus + doexe ${bindir}/incus-agent.linux.aarch64 + doexe ${bindir}/incus-agent.windows.aarch64 + fi + + # fuidshift, should be moved under admin tools at some point + if use fuidshift ; then + dosbin ${bindir}/fuidshift + fi + + newconfd "${FILESDIR}"/incus-6.0.confd incus + newinitd "${FILESDIR}"/incus-6.0.initd incus + newinitd "${FILESDIR}"/incus-user-0.4.initd incus-user + + systemd_dounit "${T}"/incus.service + systemd_newunit "${FILESDIR}"/incus-0.4.socket incus.socket + systemd_newunit "${FILESDIR}"/incus-startup-0.4.service incus-startup.service + systemd_newunit "${FILESDIR}"/incus-user-0.4.service incus-user.service + systemd_newunit "${FILESDIR}"/incus-user-0.4.socket incus-user.socket + + if ! tc-is-cross-compiler; then + # Generate and install shell completion files. + mkdir -p "${D}"/usr/share/{bash-completion/completions/,fish/vendor_completions.d/,zsh/site-functions/} || die + "${bindir}"/incus completion bash > "${D}"/usr/share/bash-completion/completions/incus || die + "${bindir}"/incus completion fish > "${D}"/usr/share/fish/vendor_completions.d/incus.fish || die + "${bindir}"/incus completion zsh > "${D}"/usr/share/zsh/site-functions/_incus || die + else + ewarn "Shell completion files not installed! Install them manually with incus completion --help" + fi + + dodoc AUTHORS + dodoc -r doc/* + use nls && domo po/*.mo + + # Incus needs INCUS_EDK2_PATH in env to find OVMF files for virtual machines, #946184, + # and INCUS_AGENT_PATH to find multi-setup agents for VMs, #959878. + newenvd "${FILESDIR}"/90incus.envd 90incus +} + +pkg_postinst() { + elog + elog "Please see" + elog " https://wiki.gentoo.org/wiki/Incus" + elog " https://wiki.gentoo.org/wiki/Incus#Migrating_from_LXD" + elog + optfeature "OCI container images support" app-containers/skopeo app-containers/umoci + optfeature "support for ACME certificate issuance" app-crypt/lego + optfeature "btrfs storage backend" sys-fs/btrfs-progs + optfeature "ipv6 support" net-dns/dnsmasq[ipv6] + optfeature "full incus-migrate support" net-misc/rsync + optfeature "lvm2 storage backend" sys-fs/lvm2 + optfeature "zfs storage backend" sys-fs/zfs + elog + elog "Be sure to add your local user to the incus group." + elog +} diff --git a/sdk_container/src/third_party/portage-stable/app-containers/incus/metadata.xml b/sdk_container/src/third_party/portage-stable/app-containers/incus/metadata.xml index 550a6f36da..186d0e5dda 100644 --- a/sdk_container/src/third_party/portage-stable/app-containers/incus/metadata.xml +++ b/sdk_container/src/third_party/portage-stable/app-containers/incus/metadata.xml @@ -5,6 +5,10 @@ juippis@gentoo.org Joonas Niilola + + mschiff@gentoo.org + Marc Schiffbauer + virtualization@gentoo.org Gentoo Virtualization Project diff --git a/sdk_container/src/third_party/portage-stable/app-containers/netavark/netavark-1.15.2.ebuild b/sdk_container/src/third_party/portage-stable/app-containers/netavark/netavark-1.15.2.ebuild index 6cfed97bbf..a3660b4bd9 100644 --- a/sdk_container/src/third_party/portage-stable/app-containers/netavark/netavark-1.15.2.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-containers/netavark/netavark-1.15.2.ebuild @@ -15,7 +15,7 @@ if [[ ${PV} == 9999* ]]; then 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" + KEYWORDS="amd64 arm64 ~loong ~ppc64 ~riscv" fi # main diff --git a/sdk_container/src/third_party/portage-stable/app-containers/runc/Manifest b/sdk_container/src/third_party/portage-stable/app-containers/runc/Manifest index 9788fc59b6..961099596c 100644 --- a/sdk_container/src/third_party/portage-stable/app-containers/runc/Manifest +++ b/sdk_container/src/third_party/portage-stable/app-containers/runc/Manifest @@ -2,3 +2,4 @@ DIST runc-1.2.4.tar.gz 2759394 BLAKE2B 02b282c9fbe7f82ad1d4297b9d2576ee99db7f4db DIST runc-1.2.5.tar.gz 2763738 BLAKE2B 446dd633d94f41957ba205b944320734ddf505e1bdc8f6f9d1002de8ecdd46368af19d788b8812cee87aaab1f8583d01e0c4d6fd0a56590a819588814bfb1841 SHA512 67dd870a24cfe896ead01f156eda6076b14bf287781734c2c4ab0e313d66f49bbf8d51705c5f0c24a604df311439c769a95cbfda12c7fa87ab2e6a31801a6984 DIST runc-1.2.6.tar.gz 2763135 BLAKE2B d5e40e95f8c0069073d0010d120aca1828e585b103ecd671fca072138ef3528a316414cfac5ca725f45cb84f23ab4216d9e6f466beb118fb2813ab4be3a18e92 SHA512 9a89295e001914726dfc1040729301f62ad6b630943c65f7ade6ed460ef4a2f5f35cf40662730a9e8a6c6d0301a3c9959a85973097ceb8db05c043f9c1a86248 DIST runc-1.3.0.tar.gz 2858199 BLAKE2B c9402a074b816b9452763267a7ffdc69af6c0cd4cf54fbdfdc91ccbd8bbc5daa783259176775e90f6266fa6a02bf0bad7fbb8eb879b5764309f7f9cd2f246086 SHA512 63422501f6189d0d47f6b2f59565de572bc68b138a65c7dbcc8b5ad42dbc37245ee66e2683ab61971a84c076a15f54f484c37fde4a30815ee19edc9a0d97e9f4 +DIST runc-1.3.1.tar.gz 2860795 BLAKE2B 5711881488dc3d52182377dc09690436aff142552d35728b10c221874a1dafc3b1fe78972891ebfc53e232465aec97eacc78318a453b030c052ca2218c61438d SHA512 0a3007d046fe9711541e29ca07fd72515f19b220c8c79b9df9164f7b88a6b9077ba7a11607593b641823b9e99c0f2e96500a57e2a16e11501bbb7c4690870183 diff --git a/sdk_container/src/third_party/portage-stable/app-containers/runc/runc-1.3.1.ebuild b/sdk_container/src/third_party/portage-stable/app-containers/runc/runc-1.3.1.ebuild new file mode 100644 index 0000000000..dae88b4ee6 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/app-containers/runc/runc-1.3.1.ebuild @@ -0,0 +1,71 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit go-module linux-info + +# update on bump, look for commit ID on release tag. +# https://github.com/opencontainers/runc +RUNC_COMMIT=e6457afc48eff1ce22dece664932395026a7105e + +CONFIG_CHECK="~USER_NS" + +DESCRIPTION="runc container cli tools" +HOMEPAGE="https://github.com/opencontainers/runc/" +MY_PV="${PV/_/-}" +SRC_URI="https://github.com/opencontainers/${PN}/archive/v${MY_PV}.tar.gz -> ${P}.tar.gz" +S="${WORKDIR}/${PN}-${MY_PV}" + +LICENSE="Apache-2.0 BSD-2 BSD MIT" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86" +IUSE="apparmor hardened +kmem +seccomp selinux test" + +COMMON_DEPEND=" + apparmor? ( sys-libs/libapparmor ) + seccomp? ( sys-libs/libseccomp )" +DEPEND="${COMMON_DEPEND}" +RDEPEND="${COMMON_DEPEND} + !app-emulation/docker-runc + selinux? ( sec-policy/selinux-container )" +BDEPEND=" + dev-go/go-md2man + test? ( "${RDEPEND}" )" + +# tests need busybox binary, and portage namespace +# sandboxing disabled: mount-sandbox pid-sandbox ipc-sandbox +# majority of tests pass +RESTRICT+=" test" + +src_compile() { + # build up optional flags + local options=( + $(usev apparmor) + $(usev seccomp) + $(usex kmem '' 'nokmem') + ) + + myemakeargs=( + BUILDTAGS="${options[*]}" + COMMIT="${RUNC_COMMIT}" + ) + + emake "${myemakeargs[@]}" runc man +} + +src_install() { + myemakeargs+=( + PREFIX="${ED}/usr" + BINDIR="${ED}/usr/bin" + MANDIR="${ED}/usr/share/man" + ) + emake "${myemakeargs[@]}" install install-man install-bash + + local DOCS=( README.md PRINCIPLES.md docs/. ) + einstalldocs +} + +src_test() { + emake "${myemakeargs[@]}" localunittest +} 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 21587b4c1e..1cba8df950 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 @@ -1,8 +1,6 @@ DIST gnupg-2.2.45.tar.bz2 7447141 BLAKE2B 8fe2036325e31332166c0477ce9514152c8417a9f61b3edc43487340d5b52e6a4d4c2b104ca9fe7ce6893e6d2977e2cd9c9ccfb52c0b1ea18dae3304ec6ec7f3 SHA512 086bb2a96ff4a681451b357495c8b435229e6526e1121d8faee3cb2ecc9c14965c92c9b1ccbbf3a03f6c59c215cca85a5c4f740f2df7c008a9fa672b370bf33c DIST gnupg-2.2.45.tar.bz2.sig 119 BLAKE2B 6656747b2d640a95c4172a221952fa75f7d03c231b7c6d40ea57b43a5bcfbceb800023ca2f352ca09325aaf186a7bf31fcfe7104129c5d6628f0e1256994df76 SHA512 181195a76eede8113bd8f2a7f5bc20674226f6327cf8263389e3d178c205ed2d817b28f2d3b504dd9f852f22fc283d2c14e809ba1c05cfe88b66103845ff114c -DIST gnupg-2.4.7.tar.bz2 8010244 BLAKE2B 4cdc6be4330b0c8f150d9d1a9ce9c7d34232ecf9b980b15fbd20e96ff6fcd8665688456d66f1c862b816472034eaa0796444357b1f36e75e8520a603a0e6b298 SHA512 3e84f1679904bf0efb789df6466e468bd2be9149d52561f35e2380038133479bebf1c61ee7adf6d3564b370915f32111098c052be6e6acaf3083a807f9f36019 -DIST gnupg-2.4.7.tar.bz2.sig 119 BLAKE2B e97012f433c2818dda953ccaa2f5e8e94492b306a7815b16d7a9f8bf165f11972114d94a1aaba6156baed0ee3566ad998ed74a9521c71464268f4c6f8f14306c SHA512 d944a57b21fa7a4058fb4f00e3c164220be038037010a07a43e48c881dd66d901f8ea249f5df183a1c7de811ecc3aa9ed1591c18baf201e338129eb7e28bddc4 DIST gnupg-2.4.8.tar.bz2 8017685 BLAKE2B ab7126aac6c7bf323075c68084c963f75d93c729d8918b6ca10ef0a4466879636433c682a5437776d2ce9f5d432e1f66995dd94a4f44d7f184542f030087dbb2 SHA512 d7f07a258141a583bc8be18c0984d7dfe8508f12c624c053881ee63dfee11adcda8de216bcaaef9f5d24a1e217de70bf69ee2e3cc43b0da66a0e571ce9c4b436 DIST gnupg-2.4.8.tar.bz2.sig 119 BLAKE2B 4f94b2abc40b17cfab44f28fc2a2ae5246f8356141a3932a92b5adb78002c7064bb132a6529079bc14900036f90d9d318d7d01818999150e2c875b88a3fca265 SHA512 9fb54be4e99ecee6c7b649d6f0ef24a25e81c0af57e07ccdd512a1ea2ebf7558dd25518b7b78347e4a216167849e6285bb91ec23d0968966aba0784d45f02a06 -DIST gnupg-2.5.1.tar.bz2 8126739 BLAKE2B 46955d2eebe14395adc0fdf81e89a32f3f9baaabfe1eee78f256a1fab25ce6fdb96b873678cfeb5e4abf4894c7ab4908359ed04cc6571ff442dcc5325b3ccd66 SHA512 733a11ff24145e23dd7d34d954a70c25bf70ecb1d517b8e15cc34bf690786c9f7007e4e99cde573500ac012852e91b29568fed00491f8c8254b3fb63ca5777cd -DIST gnupg-2.5.1.tar.bz2.sig 238 BLAKE2B cd024a63ecb82a12e92444cbff8dbc9bef6a4e436d59957aae77927cce0baf9e282e63df7a5159a521c7c8694a0dbe96d6537ad3ec5f779c7c0dea8d02b5e70d SHA512 8ffd5cc72a2907972bf1854e804f6c215ff66ba2d6e91952700f49b2b5ba8bab035d0f42efdb0d3c3166301cda6e716394928bdd9c0d0d1e1789a02c7aa1a926 +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 diff --git a/sdk_container/src/third_party/portage-stable/app-crypt/gnupg/gnupg-2.4.7-r1.ebuild b/sdk_container/src/third_party/portage-stable/app-crypt/gnupg/gnupg-2.4.7-r1.ebuild deleted file mode 100644 index b85b1a74a1..0000000000 --- a/sdk_container/src/third_party/portage-stable/app-crypt/gnupg/gnupg-2.4.7-r1.ebuild +++ /dev/null @@ -1,197 +0,0 @@ -# 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="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 -" -BDEPEND=" - virtual/pkgconfig - doc? ( sys-apps/texinfo ) - nls? ( sys-devel/gettext ) - verify-sig? ( sec-keys/openpgp-keys-gnupg ) -" - -DOCS=( - ChangeLog NEWS README THANKS TODO VERSION - doc/FAQ doc/DETAILS doc/HACKING doc/TRANSLATE doc/OpenPGP doc/KEYSERVER -) - -PATCHES=( - "${FILESDIR}"/${PN}-2.1.20-gpgscm-Use-shorter-socket-path-lengts-to-improve-tes.patch - "${FILESDIR}"/${PN}-2.4.5-revert-rfc4880bis.patch # bug #926186 -) - -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 - - 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 - - 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}/}" -} diff --git a/sdk_container/src/third_party/portage-stable/app-crypt/gnupg/gnupg-2.5.1-r1.ebuild b/sdk_container/src/third_party/portage-stable/app-crypt/gnupg/gnupg-2.5.12-r1.ebuild similarity index 91% rename from sdk_container/src/third_party/portage-stable/app-crypt/gnupg/gnupg-2.5.1-r1.ebuild rename to sdk_container/src/third_party/portage-stable/app-crypt/gnupg/gnupg-2.5.12-r1.ebuild index 167bb5e3c1..c281b4e7c3 100644 --- a/sdk_container/src/third_party/portage-stable/app-crypt/gnupg/gnupg-2.5.1-r1.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-crypt/gnupg/gnupg-2.5.12-r1.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 @@ -23,7 +23,7 @@ S="${WORKDIR}/${MY_P}" LICENSE="GPL-3+" SLOT="0" -#KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" +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" RESTRICT="!test? ( test )" REQUIRED_USE="test? ( tofu )" @@ -31,9 +31,9 @@ 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/libassuan-3.0.0:= + >=dev-libs/libgcrypt-1.11.0:= + >=dev-libs/libgpg-error-1.51 >=dev-libs/libksba-1.6.3 >=dev-libs/npth-1.2 sys-libs/zlib @@ -68,7 +68,6 @@ DOCS=( PATCHES=( "${FILESDIR}"/${PN}-2.1.20-gpgscm-Use-shorter-socket-path-lengts-to-improve-tes.patch - "${FILESDIR}"/${PN}-2.4.5-revert-rfc4880bis.patch # bug #926186 ) src_prepare() { @@ -94,6 +93,10 @@ src_prepare() { # 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() { diff --git a/sdk_container/src/third_party/portage-stable/app-crypt/gpgme/Manifest b/sdk_container/src/third_party/portage-stable/app-crypt/gpgme/Manifest index 1725c92156..b1d77b2bdc 100644 --- a/sdk_container/src/third_party/portage-stable/app-crypt/gpgme/Manifest +++ b/sdk_container/src/third_party/portage-stable/app-crypt/gpgme/Manifest @@ -1,4 +1,4 @@ -DIST gpgme-1.24.3.tar.bz2 1892862 BLAKE2B ace04d4fc803f6ce96f850a46b4b383ebdcbfe51d55fbe2a5ced10451310553c15ee5a603d1e6ffb78a8de75461fafacc296fec3e4f38d4908171a095cab185f SHA512 3b5fc22a2f83576058ac14e744333f46df362b39f742d6c9e54a5a66828194a1312f5f365bdc15683e148821f5d591fa92a2daad83fc116f65dccf14e817ca48 -DIST gpgme-1.24.3.tar.bz2.sig 238 BLAKE2B 5b8402b011899faae26bcba428e45a7bb7baf9b16e4c605cdae3d84dc1cbf52ccd524181ef0726e25075c42f9ccb72cd996707a2f96c04b7054cc9050270b586 SHA512 056b28b041dd83c86984e73c31403ea45d33db30c1b2b05e45b0cfb5bb723b25a0fa21ddee192c135cea5d93d934502085bc0fc94fa3c29858513e260c332948 DIST gpgme-2.0.0.tar.bz2 1383911 BLAKE2B 7053955f80f9a69c62d8b4bb6cc80ea259e6854857b340577c4a68fac1d34c0f2aff1dbbf88b503dd2b021c48d9fff67709593817f3b0e74f72df913d7e3de0d SHA512 ee58dc2a4273c740d5b9ef13cc655d5e600ddddd137fb85a781c31e8854829283b4ce241d7810a963d9a125d603213600f37e7d0c1ce3b3cf1b935e62cf60777 DIST gpgme-2.0.0.tar.bz2.sig 119 BLAKE2B 3fe43a1047f8fba1fe793b5f501b9902067b3eea8d08713c4358d78b7c0c19b82e417251dbe602d04c2f945e46e0c5651bead5a2bf59dfc0861d1e9261893a98 SHA512 fc7b3cafd0e9d830c1709a086185047ecf118997feaa8896707917c420d12386c6e298116b457fea478c2e2f85fc9413ab3fa268a1798793377e4739419fde66 +DIST gpgme-2.0.1.tar.bz2 1392080 BLAKE2B b2dbc41abf6947b335307e5add09ff6104d3666998e2ae0efed518b5a0cfbced8a64b24b7567666fcf392bdb07ba01c1c2e4cb27a7b53569ce92f73661e5e1a4 SHA512 ad19169594b6048b11df9311080e179232ff03def08f377e7d7536a3a91e12f722cbae93e80364b73db013152b327bc3457ec9a9ddea9c660d74f389f6ab8837 +DIST gpgme-2.0.1.tar.bz2.sig 147 BLAKE2B 3d2a6c19d052ba9885298bf90156cf43fda86b837902bf5ec74bb9bf2fdde693a2ef74fc533c0e8921fb6a24eafd5dac8bbfcd930aaf13656358e7db62333783 SHA512 53f45e0d61d3fca5965ecaf32fb8c0d75517d7267901da1f4facb664595d55713378161774415bbd5491f52d934944750478da8de9ddef0fec1d4702fac36100 diff --git a/sdk_container/src/third_party/portage-stable/app-crypt/gpgme/files/gpgme-1.23.1-tests-gnupg-no-tofu.patch b/sdk_container/src/third_party/portage-stable/app-crypt/gpgme/files/gpgme-1.23.1-tests-gnupg-no-tofu.patch deleted file mode 100644 index 831f68c8ea..0000000000 --- a/sdk_container/src/third_party/portage-stable/app-crypt/gpgme/files/gpgme-1.23.1-tests-gnupg-no-tofu.patch +++ /dev/null @@ -1,26 +0,0 @@ -https://dev.gnupg.org/T6778 ---- a/lang/python/tests/support.py -+++ b/lang/python/tests/support.py -@@ -46,13 +46,15 @@ def is_gpg_version(version): - - - def have_tofu_support(ctx, some_uid): -- keys = list( -- ctx.keylist( -- some_uid, -- mode=(gpg.constants.keylist.mode.LOCAL | -- gpg.constants.keylist.mode.WITH_TOFU))) -- return len(keys) > 0 -- -+ try: -+ keys = list( -+ ctx.keylist( -+ some_uid, -+ mode=(gpg.constants.keylist.mode.LOCAL | -+ gpg.constants.keylist.mode.WITH_TOFU))) -+ return len(keys) > 0 -+ except gpg.errors.GPGMEError: -+ return False - - # Skip the Python tests for GnuPG < 2.1.12. Prior versions do not - # understand the command line flags that we assume exist. C.f. issue diff --git a/sdk_container/src/third_party/portage-stable/app-crypt/gpgme/gpgme-1.24.3-r1.ebuild b/sdk_container/src/third_party/portage-stable/app-crypt/gpgme/gpgme-1.24.3-r1.ebuild deleted file mode 100644 index c6374afa61..0000000000 --- a/sdk_container/src/third_party/portage-stable/app-crypt/gpgme/gpgme-1.24.3-r1.ebuild +++ /dev/null @@ -1,180 +0,0 @@ -# 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.) - -DISTUTILS_EXT=1 -DISTUTILS_OPTIONAL=1 -DISTUTILS_USE_PEP517=setuptools -PYTHON_COMPAT=( python3_{11..14} ) -VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/gnupg.asc - -# in-source builds are not supported: -# * https://dev.gnupg.org/T6313#166339 -# * https://dev.gnupg.org/T6673#174545 -inherit distutils-r1 libtool flag-o-matic out-of-source qmake-utils toolchain-funcs verify-sig - -DESCRIPTION="GnuPG Made Easy is a library for making GnuPG easier to use" -HOMEPAGE="https://www.gnupg.org/related_software/gpgme" -SRC_URI=" - mirror://gnupg/gpgme/${P}.tar.bz2 - verify-sig? ( mirror://gnupg/gpgme/${P}.tar.bz2.sig ) -" - -LICENSE="GPL-2 LGPL-2.1" -# Please check ABI on each bump, even if SONAMEs didn't change: bug #833355 -# Use e.g. app-portage/iwdevtools integration with dev-libs/libabigail's abidiff. -# Subslot: SONAME of each: -# Bump FUDGE if a release is made which breaks ABI without changing SONAME. -# (Reset to 0 if FUDGE != 0 if libgpgme/libgpgmepp/libqpggme change.) -SLOT="1/11.6.15.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" -IUSE="common-lisp static-libs +cxx python qt5 qt6 test" -RESTRICT="!test? ( test )" -REQUIRED_USE=" - qt5? ( cxx ) - qt6? ( cxx ) - python? ( ${PYTHON_REQUIRED_USE} ) -" - -# - On each bump, update dep bounds on each version from configure.ac! -COMMON_DEPEND=" - >=app-crypt/gnupg-2 - >=dev-libs/libassuan-2.5.3:= - >=dev-libs/libgpg-error-1.46-r1:= - python? ( ${PYTHON_DEPS} ) - qt5? ( dev-qt/qtcore:5 ) - qt6? ( dev-qt/qtbase:6 ) -" -DEPEND="${COMMON_DEPEND} - test? ( qt5? ( dev-qt/qttest:5 ) ) -" -RDEPEND="${COMMON_DEPEND} - cxx? ( !>=dev-cpp/gpgmepp-2 ) - python? ( !>dev-python/gpgmepy-1.9999 ) - qt6? ( !>=dev-libs/qgpgme-2 ) -" -#doc? ( app-text/doxygen[dot] ) -BDEPEND=" - python? ( - ${PYTHON_DEPS} - ${DISTUTILS_DEPS} - dev-lang/swig - ) - verify-sig? ( sec-keys/openpgp-keys-gnupg ) -" - -PATCHES=( - "${FILESDIR}"/${PN}-1.18.0-tests-start-stop-agent-use-command-v.patch - "${FILESDIR}"/${PN}-1.23.1-tests-gnupg-no-tofu.patch -) - -src_prepare() { - default - - elibtoolize - - # bug #697456 - addpredict /run/user/$(id -u)/gnupg - - local MAX_WORKDIR=66 - if use test && [[ "${#WORKDIR}" -gt "${MAX_WORKDIR}" ]]; then - eerror "Unable to run tests as WORKDIR='${WORKDIR}' is longer than ${MAX_WORKDIR} which causes failure!" - die "Could not run tests as requested with too-long WORKDIR." - fi - - # Make best effort to allow longer PORTAGE_TMPDIR - # as usock limitation fails build/tests - ln -s "${P}" "${WORKDIR}/b" || die - S="${WORKDIR}/b" -} - -my_src_configure() { - # bug #847955 - append-lfs-flags - - cd "${BUILD_DIR}" || die - - local languages=( - $(usev common-lisp 'cl') - $(usev cxx 'cpp') - $(usev qt5 'qt5') - $(usev qt6 'qt6') - ) - - use qt5 && export MOC5="$(qt5_get_bindir)/moc" - use qt6 && export MOC6="$(qt6_get_libdir)/qt6/libexec/moc" - - local myeconfargs=( - $(use test || echo "--disable-gpgconf-test --disable-gpg-test --disable-gpgsm-test --disable-g13-test") - --enable-languages="${languages[*]}" - $(use_enable static-libs static) - GPGRT_CONFIG="${ESYSROOT}/usr/bin/${CHOST}-gpgrt-config" - ) - - ECONF_SOURCE="${S}" econf "${myeconfargs[@]}" - - if use python ; then - emake -C lang/python prepare - - pushd lang/python > /dev/null || die - top_builddir="../.." srcdir="${S}/lang/python" CPP="$(tc-getCPP)" distutils-r1_src_configure - popd > /dev/null || die - fi -} - -my_src_compile() { - cd "${BUILD_DIR}" || die - - emake - - if use python ; then - pushd lang/python > /dev/null || die - top_builddir="../.." srcdir="${S}/lang/python" CPP="$(tc-getCPP)" distutils-r1_src_compile - popd > /dev/null || die - fi -} - -my_src_test() { - cd "${BUILD_DIR}" || die - - emake check - - if use python ; then - distutils-r1_src_test - fi -} - -python_test() { - emake -C lang/python/tests check \ - PYTHON=${EPYTHON} \ - PYTHONS=${EPYTHON} \ - TESTFLAGS="--python-libdir=${BUILD_DIR}/lib" -} - -my_src_install() { - einstalldocs - - cd "${BUILD_DIR}" || die - - emake DESTDIR="${D}" install - - if use python ; then - pushd lang/python > /dev/null || die - top_builddir="../.." srcdir="${S}/lang/python" CPP="$(tc-getCPP)" distutils-r1_src_install - popd > /dev/null || die - fi - - find "${ED}" -type f -name '*.la' -delete || die - - # Backward compatibility for gentoo - # (in the past, we had slots) - dodir /usr/include/gpgme - dosym -r /usr/include/gpgme.h /usr/include/gpgme/gpgme.h -} diff --git a/sdk_container/src/third_party/portage-stable/app-crypt/gpgme/gpgme-2.0.0.ebuild b/sdk_container/src/third_party/portage-stable/app-crypt/gpgme/gpgme-2.0.0.ebuild index 1f2d7a0c40..871ff4cfe2 100644 --- a/sdk_container/src/third_party/portage-stable/app-crypt/gpgme/gpgme-2.0.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-crypt/gpgme/gpgme-2.0.0.ebuild @@ -27,7 +27,7 @@ LICENSE="GPL-2 LGPL-2.1" # Please check ABI on each bump, even if SONAMEs didn't change: bug #833355 # Subslot: SONAME of each: SLOT="1/45.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="common-lisp static-libs test" RESTRICT="!test? ( test )" 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.ebuild new file mode 100644 index 0000000000..f1622679ca --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/app-crypt/gpgme/gpgme-2.0.1.ebuild @@ -0,0 +1,90 @@ +# 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.) + +# out-of-source b/c in-source builds are not supported: +# * https://dev.gnupg.org/T6313#166339 +# * https://dev.gnupg.org/T6673#174545 + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/gnupg.asc +inherit libtool flag-o-matic out-of-source verify-sig + +DESCRIPTION="GnuPG Made Easy is a library for making GnuPG easier to use" +HOMEPAGE="https://www.gnupg.org/related_software/gpgme" +SRC_URI=" + mirror://gnupg/gpgme/${P}.tar.bz2 + verify-sig? ( mirror://gnupg/gpgme/${P}.tar.bz2.sig ) +" + +LICENSE="GPL-2 LGPL-2.1" +# Please check ABI on each bump, even if SONAMEs didn't change: bug #833355 +# Subslot: SONAME of each: +SLOT="1/45.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="common-lisp static-libs test" +RESTRICT="!test? ( test )" + +RDEPEND=" + >=app-crypt/gnupg-2 + >=dev-libs/libassuan-2.5.3:= + >=dev-libs/libgpg-error-1.46-r1:= +" +DEPEND="${RDEPEND}" +#doc? ( app-text/doxygen[dot] ) +BDEPEND=" + verify-sig? ( sec-keys/openpgp-keys-gnupg ) +" + +PATCHES=( + "${FILESDIR}"/${PN}-1.18.0-tests-start-stop-agent-use-command-v.patch +) + +src_prepare() { + default + + elibtoolize + + # bug #697456 + addpredict /run/user/$(id -u)/gnupg + + local MAX_WORKDIR=66 + if use test && [[ "${#WORKDIR}" -gt "${MAX_WORKDIR}" ]]; then + eerror "Unable to run tests as WORKDIR='${WORKDIR}' is longer than ${MAX_WORKDIR} which causes failure!" + die "Could not run tests as requested with too-long WORKDIR." + fi + + # Make best effort to allow longer PORTAGE_TMPDIR as usock limitation + # fails build/tests. + ln -s "${P}" "${WORKDIR}/b" || die + S="${WORKDIR}/b" +} + +my_src_configure() { + # bug #847955 + append-lfs-flags + + local languages=( + $(usev common-lisp 'cl') + ) + + local myeconfargs=( + $(use test || echo "--disable-gpgconf-test --disable-gpg-test --disable-gpgsm-test --disable-g13-test") + --enable-languages="${languages[*]}" + $(use_enable static-libs static) + GPGRT_CONFIG="${ESYSROOT}/usr/bin/${CHOST}-gpgrt-config" + ) + + ECONF_SOURCE="${S}" econf "${myeconfargs[@]}" +} + +my_src_install() { + emake DESTDIR="${D}" install + find "${ED}" -type f -name '*.la' -delete || die +} diff --git a/sdk_container/src/third_party/portage-stable/app-crypt/p11-kit/Manifest b/sdk_container/src/third_party/portage-stable/app-crypt/p11-kit/Manifest index 8c0298f6e0..37e2a35ea5 100644 --- a/sdk_container/src/third_party/portage-stable/app-crypt/p11-kit/Manifest +++ b/sdk_container/src/third_party/portage-stable/app-crypt/p11-kit/Manifest @@ -1,3 +1,2 @@ +DIST p11-kit-0.25.10.tar.xz 1053532 BLAKE2B 9f5a1be36a5b67ac35b294afdacf1b3a5c1c579b04e3407ea7bc6899cfe74330682653da50975a13e443b3a79379fdf6c6ed2a778933cf5dbba4fdf6dc52c99a SHA512 c5a5dfb6bd46e8964a70f2fc601bd5b61bf88f79d1011c70e6f37a62130c4aad692d8bac83aff2fd2728543274e198d2946ded7a53636835aefb13b9a3155527 DIST p11-kit-0.25.5.tar.xz 1002056 BLAKE2B 96d6a9c2807586abafae4da4df89f566672733963997d6a83e00aaf83a7a0c0e2995638f505e98fb87a90c60bde28814f1e8b7d5071bf0af96bb0467105a1ddc SHA512 177ec6ff5eb891901078306dce2bf3f5c1a0e5c2a8c493bdf5a08ae1ff1240fdf6952961e973c373f80ac3d1d5a9927e07f4da49e4ff92269d992e744889fc94 -DIST p11-kit-0.25.8.tar.xz 1060504 BLAKE2B d351b7b015920d7ecf1b9d3b4f1f3fc62c7ef46c1dc9ed3475b9ac7f5dbf5a47b2d2a19049e7eef81e35d0f993a860ee5df1864f0341596dca143140ae14e5c4 SHA512 4a3852459a4a5e4ea71eea5d23ef74deeb51c66b28d095be30a263f10d1f47853341f8628eb0c43c88247503059a4c1f67017965a70cd3c7df31d86e458a8162 -DIST p11-kit-0.25.9.tar.xz 530960 BLAKE2B d9895b1479179b39c9b50878deefc40afbd29a291814e62e345b6758c4fde8023383b2708701ab1f684e7874a8657a5a988ed453d10802f5b3b51267d7a689ab SHA512 8232839f398e058325bc6f3666fcec293a85ed8d655bdf285ee267db4dd71bbdb8c5ab7b225bb6524a2536e4c1b00ac6ceeaf9053638da691a04882fb9b73c42 diff --git a/sdk_container/src/third_party/portage-stable/app-crypt/p11-kit/p11-kit-0.25.8.ebuild b/sdk_container/src/third_party/portage-stable/app-crypt/p11-kit/p11-kit-0.25.10.ebuild similarity index 100% rename from sdk_container/src/third_party/portage-stable/app-crypt/p11-kit/p11-kit-0.25.8.ebuild rename to sdk_container/src/third_party/portage-stable/app-crypt/p11-kit/p11-kit-0.25.10.ebuild diff --git a/sdk_container/src/third_party/portage-stable/app-crypt/p11-kit/p11-kit-0.25.9.ebuild b/sdk_container/src/third_party/portage-stable/app-crypt/p11-kit/p11-kit-0.25.9.ebuild deleted file mode 100644 index 9aeea11aae..0000000000 --- a/sdk_container/src/third_party/portage-stable/app-crypt/p11-kit/p11-kit-0.25.9.ebuild +++ /dev/null @@ -1,76 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -PYTHON_COMPAT=( python3_{11..14} ) -inherit shell-completion meson-multilib python-any-r1 - -DESCRIPTION="Provides a standard configuration setup for installing PKCS#11" -HOMEPAGE="https://p11-glue.github.io/p11-glue/p11-kit.html" -SRC_URI="https://github.com/p11-glue/p11-kit/releases/download/${PV}/${P}.tar.xz" - -LICENSE="MIT" -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 ~x64-solaris" -IUSE="+libffi gtk-doc nls systemd test" -RESTRICT="!test? ( test )" - -RDEPEND=" - app-misc/ca-certificates - >=dev-libs/libtasn1-3.4:=[${MULTILIB_USEDEP}] - libffi? ( dev-libs/libffi:=[${MULTILIB_USEDEP}] ) - systemd? ( sys-apps/systemd ) -" -DEPEND="${RDEPEND}" -BDEPEND=" - ${PYTHON_DEPS} - app-text/docbook-xsl-stylesheets - dev-libs/libxslt - virtual/pkgconfig - gtk-doc? ( dev-util/gtk-doc ) - nls? ( sys-devel/gettext ) -" - -src_prepare() { - default - - # Relies on dlopen which won't work for multilib tests (bug #913971) - cat <<-EOF > "${S}"/p11-kit/test-server.sh || die - #!/bin/sh - exit 77 - EOF -} - -multilib_src_configure() { - # Disable unsafe tests, bug#502088 - export FAKED_MODE=1 - - local native_file="${T}"/meson.${CHOST}.${ABI}.ini.local - - # p11-kit doesn't need this to build and castxml needs Clang. To get - # a deterministic non-automagic build, always disable the search for - # castxml. - cat >> ${native_file} <<-EOF || die - [binaries] - castxml='castxml-falseified' - EOF - - local emesonargs=( - --native-file "${native_file}" - -Dbash_completion=enabled - -Dzsh_completion=enabled - -Dbashcompdir="$(get_bashcompdir)" - -Dzshcompdir="$(get_zshcompdir)" - -Dtrust_module=enabled - -Dtrust_paths="${EPREFIX}"/etc/ssl/certs/ca-certificates.crt - $(meson_feature libffi) - $(meson_use nls) - $(meson_use test) - $(meson_native_use_bool gtk-doc gtk_doc) - $(meson_native_true man) - $(meson_native_use_feature systemd) - ) - - meson_src_configure -} diff --git a/sdk_container/src/third_party/portage-stable/app-editors/nano/nano-8.6.ebuild b/sdk_container/src/third_party/portage-stable/app-editors/nano/nano-8.6.ebuild index 58d0d0629f..bda4a0eadd 100644 --- a/sdk_container/src/third_party/portage-stable/app-editors/nano/nano-8.6.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-editors/nano/nano-8.6.ebuild @@ -9,7 +9,7 @@ if [[ ${PV} == 9999 ]] ; then else MY_P="${PN}-${PV/_}" SRC_URI="https://www.nano-editor.org/dist/v${PV:0:1}/${MY_P}.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" + 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 DESCRIPTION="GNU GPL'd Pico clone with more functionality" 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 645ff8c7a8..453907f292 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 @@ -6,8 +6,10 @@ DIST qemu-10.0.0.tar.xz 135618260 BLAKE2B 3408c7b2a38ace7f0b2e0912411a26cab96cb2 DIST qemu-10.0.2.tar.xz 135678180 BLAKE2B be4ddf050d2102cefded5b4967222df749ee8af92c2427c31a9b29b3800fac8bb328daf2c38d11aa307b51eb7d7243f9b064b3bf24d446a001e5520359ee83c3 SHA512 7fda582c3845ea663aa5eda21bb38ebcfb6c25bccf8944ea6cdf8b5be6946b5a874b36674a7f5db3e325abb9cca0dd9bc0727837fdceb71a8c947d96169a9b20 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.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-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.0.5-hppa1.1.patch b/sdk_container/src/third_party/portage-stable/app-emulation/qemu/files/qemu-10.0.5-hppa1.1.patch new file mode 100644 index 0000000000..3c80ef7cb3 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/app-emulation/qemu/files/qemu-10.0.5-hppa1.1.patch @@ -0,0 +1,44 @@ +target/hppa: correct size bit parity for fmpyadd + +For the fmpyadd instruction on the hppa architecture, there is a bit +used to specify whether the instruction is operating on a 32 bit or 64 +bit floating point register. For most instructions, such a bit is 0 when +operating on the smaller register and 1 when operating on the larger +register. However, according to page 6-57 of the PA-RISC 1.1 Architecture +and Instruction Set Reference Manual, this convention is reversed for the +fmpyadd instruction specifically, meaning the bit is 1 for operations on +32 bit registers and 0 for 64 bit registers. Previously, QEMU decoded +this operation as operating on the other size of register, leading to +bugs when translating the fmpyadd instruction. This patch fixes that +issue. + +Reported-by: Andreas Hüttel +Signed-off-by: Gabriel Brookman +Resolves: https://gitlab.com/qemu-project/qemu/-/issues/3096 +--- + target/hppa/insns.decode | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/target/hppa/insns.decode b/target/hppa/insns.decode +index 4eaac750ea..13c6a55bf2 100644 +--- a/target/hppa/insns.decode ++++ b/target/hppa/insns.decode +@@ -365,10 +365,10 @@ fstd 011100 ..... ..... .. ............1. @ldstim11 + &mpyadd rm1 rm2 ta ra tm + @mpyadd ...... rm1:5 rm2:5 ta:5 ra:5 . tm:5 &mpyadd + +-fmpyadd_f 000110 ..... ..... ..... ..... 0 ..... @mpyadd +-fmpyadd_d 000110 ..... ..... ..... ..... 1 ..... @mpyadd +-fmpysub_f 100110 ..... ..... ..... ..... 0 ..... @mpyadd +-fmpysub_d 100110 ..... ..... ..... ..... 1 ..... @mpyadd ++fmpyadd_f 000110 ..... ..... ..... ..... 1 ..... @mpyadd ++fmpyadd_d 000110 ..... ..... ..... ..... 0 ..... @mpyadd ++fmpysub_f 100110 ..... ..... ..... ..... 1 ..... @mpyadd ++fmpysub_d 100110 ..... ..... ..... ..... 0 ..... @mpyadd + + #### + # Conditional Branches + +--- +base-commit: 94474a7733a57365d5a27efc28c05462e90e8944 +change-id: 20251009-hppa-correct-fmpyadd-size-bit-decoding-059501a0ae49 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 new file mode 100644 index 0000000000..20780960d2 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-10.0.5.ebuild @@ -0,0 +1,1014 @@ +# 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_gen_impl_dep) + 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 + "${FILESDIR}"/${PN}-10.0.5-hppa1.1.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.1.ebuild b/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-10.1.1.ebuild new file mode 100644 index 0000000000..0a641cc685 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/app-emulation/qemu/qemu-10.1.1.ebuild @@ -0,0 +1,1018 @@ +# 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_gen_impl_dep) + 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}-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 + "${FILESDIR}"/${PN}-10.0.5-hppa1.1.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 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-portage/gentoolkit/Manifest b/sdk_container/src/third_party/portage-stable/app-portage/gentoolkit/Manifest index a78f5acf6a..ea1cd272be 100644 --- a/sdk_container/src/third_party/portage-stable/app-portage/gentoolkit/Manifest +++ b/sdk_container/src/third_party/portage-stable/app-portage/gentoolkit/Manifest @@ -1 +1,2 @@ DIST gentoolkit-0.6.8.tar.bz2 3190065 BLAKE2B 2f792d174a25c03e0f1b895fe06282412d383561e5456d5b4d2d918f7648790846fa9390b3bb9c862618ffefe749d9ccc236682be9fecde12ef8fda17c79359d SHA512 91ba97d8000d90350ea63c4d3be69dda919795b62ae84fe264ae8fee24ce6f6250599e03b086a334344df402781372ba9ced4cedb1c2fc66e2a4f6115ee57fc5 +DIST gentoolkit-0.6.9.tar.bz2 3190321 BLAKE2B 6a16b44be07d89865d384249c007597f6e81ee598a8c2f5e5b92f5d37a0be827b03259ba28791b40d885378af95d28b6930a312c1339c73391084a568608038d SHA512 5eaa03ca9f0b81fa0c3e3dcd72cb7b7467e9ec256778b1e36b3d66173c4495e6b5060fb09a0b42057e9acda9e6511d41b0133a38bbd0f98fc1e46d3821776f6c 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 new file mode 100644 index 0000000000..8c5dae661d --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/app-portage/gentoolkit/gentoolkit-0.6.9.ebuild @@ -0,0 +1,130 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{10..13} pypy3 pypy3_11 ) +PYTHON_REQ_USE="xml(+),threads(+)" + +inherit meson python-r1 tmpfiles + +if [[ ${PV} = 9999* ]]; then + EGIT_REPO_URI=" + https://anongit.gentoo.org/git/proj/gentoolkit.git + https://github.com/gentoo/gentoolkit + " + inherit git-r3 +else + SRC_URI="https://gitweb.gentoo.org/proj/gentoolkit.git/snapshot/${P}.tar.bz2" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" +fi + +DESCRIPTION="Collection of administration scripts for Gentoo" +HOMEPAGE="https://wiki.gentoo.org/wiki/Project:Portage-Tools" + +LICENSE="GPL-2" +SLOT="0" +REQUIRED_USE="${PYTHON_REQUIRED_USE}" +IUSE="test" +RESTRICT="!test? ( test )" + +# Need newer Portage for eclean-pkg API, bug #900224 +DEPEND=" + >=sys-apps/portage-3.0.57[${PYTHON_USEDEP}] +" +RDEPEND=" + ${DEPEND} + ${PYTHON_DEPS} + app-alternatives/awk + sys-apps/gentoo-functions +" + +# setuptools is still needed as a workaround for Python 3.12+ for now. +# https://github.com/mesonbuild/meson/issues/7702 +# +# >=meson-1.2.1-r1 for bug #912051 +BDEPEND=" + ${PYTHON_DEPS} + >=dev-build/meson-1.2.1-r1 + $(python_gen_cond_dep ' + dev-python/setuptools[${PYTHON_USEDEP}] + ' python3_12) + test? ( + dev-python/pytest[${PYTHON_USEDEP}] + ) +" + +src_prepare() { + default + if use prefix-guest ; then + # use correct repo name, bug #632223 + sed -i \ + -e "/load_profile_data/s/repo='gentoo'/repo='gentoo_prefix'/" \ + pym/gentoolkit/profile.py || die + fi +} + +src_configure() { + local code_only=false + python_foreach_impl my_src_configure +} + +my_src_configure() { + local emesonargs=( + -Dcode-only=${code_only} + $(meson_use test tests) + -Deprefix="${EPREFIX}" + -Ddocdir="${EPREFIX}/usr/share/doc/${PF}" + ) + + meson_src_configure + code_only=true +} + +src_compile() { + python_foreach_impl meson_src_compile +} + +src_test() { + local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 + python_foreach_impl epytest +} + +src_install() { + python_foreach_impl my_src_install + dotmpfiles data/tmpfiles.d/revdep-rebuild.conf + + local scripts + mapfile -t scripts < <(awk '/^#!.*python/ {print FILENAME} {nextfile}' "${ED}"/usr/bin/* || die) + python_replicate_script "${scripts[@]}" +} + +my_src_install() { + local pydirs=( + "${D}$(python_get_sitedir)" + ) + + meson_src_install + python_optimize "${pydirs[@]}" +} + +pkg_postinst() { + tmpfiles_process revdep-rebuild.conf + + # Only show the elog information on a new install + if [[ ! ${REPLACING_VERSIONS} ]]; then + elog + elog "For further information on gentoolkit, please read the gentoolkit" + elog "guide: https://wiki.gentoo.org/wiki/Gentoolkit" + elog + elog "Another alternative to equery is app-portage/portage-utils" + elog + elog "Additional tools that may be of interest:" + elog + elog " app-admin/eclean-kernel" + elog " app-portage/diffmask" + elog " app-portage/flaggie" + elog " app-portage/portpeek" + elog " app-portage/smart-live-rebuild" + fi +} diff --git a/sdk_container/src/third_party/portage-stable/app-portage/gentoolkit/gentoolkit-9999.ebuild b/sdk_container/src/third_party/portage-stable/app-portage/gentoolkit/gentoolkit-9999.ebuild index e4e8abd6ed..8c5dae661d 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 ) +PYTHON_COMPAT=( python3_{10..13} pypy3 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/Manifest b/sdk_container/src/third_party/portage-stable/app-portage/getuto/Manifest index bc81303868..92617d99bc 100644 --- a/sdk_container/src/third_party/portage-stable/app-portage/getuto/Manifest +++ b/sdk_container/src/third_party/portage-stable/app-portage/getuto/Manifest @@ -1,5 +1,2 @@ -DIST getuto-1.13.tar.gz 10758 BLAKE2B cf7412e6253f883c29a3d89048073d14f982e4bc708ebe11541e4273c69cdc3f1131b6b62484b3b4f1131a11dc541776368f4bfe4500f0ec01e24de9e925a69d SHA512 111c60595dce79b3286afaa8d8485cb852d4d8a4ea5f0659ccde538a9ee8ccdb4d7d7251cce713b30e4f8a769891539bf6fdb52978b5f25df6536afb16dc8f2a -DIST getuto-1.14.tar.gz 10801 BLAKE2B cbcbbdfa42a4dc1d1d0e6a0fe573c14a5937e5573c9332e7adae35931885964ef7e0e3c6c7229a1f27995b22feeb5d49bd80b56db73a242e210f726e35235224 SHA512 a796db7212df9cc723c05e93f9938697f2b593ce694668028c617a48bdf69a358db6687e34ff6a69fb379156b03cc4f06e1f5f7a743102f6ebe219fa468b5c09 DIST getuto-1.15.tar.gz 10749 BLAKE2B 535a400a2ebdf2cee2d00466557863a1d1ab5f409c3fa12e8d0bb08379331d5684ba9f9aed5da67e761b9373aa8d675810ff7b803a993a606982bfc56cbe9195 SHA512 98f6c8900fa4469fb76bae42712e8457a3cf07b8c0ca99aa24ece2691677a06b6952b714d3a04f6f102880c5dd7fe390352b4474cdd39647d88cb7d7b7c776c7 DIST getuto-23.0-libc-1-r1-1.gpkg.tar 20480 BLAKE2B a6f9284131690c39ff63a6046b19478a9f460d4115b1bd306d2996b631026fe9c4c4b2e3be23f30d2668794302d2a1686680738dd052a53e2d4c3ecb2a513070 SHA512 a692817ea63fb69c7cbb5e32fcba21e78bd87dd4e670d4c1ac9105e390ef63ea0f3660464e573adb28320b0a9cb0a78c52fe895ecdfd62a24986b1d79d2c692e -DIST libc-1-r1-1.gpkg.tar 20480 BLAKE2B b2c184e20c1a29ff66240e992f9f81219285f525eb63cea081372685cf03a2e231a2edb528259617e74c655fbe61b6e0d8fc0bbdbd8452b6098de58432f019d7 SHA512 ce52f398ea8979ec16161381803740d49a4294c77303880f54090c379ba5eb8e545a3d3550f229cacc18c7763dc3adf7936561ba1c64b43c87692ec66084e4e6 diff --git a/sdk_container/src/third_party/portage-stable/app-portage/getuto/getuto-1.13.ebuild b/sdk_container/src/third_party/portage-stable/app-portage/getuto/getuto-1.13.ebuild deleted file mode 100644 index 693bb090d5..0000000000 --- a/sdk_container/src/third_party/portage-stable/app-portage/getuto/getuto-1.13.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 - -DESCRIPTION="Standalone Gentoo gpg trust anchor generation tool for binpkgs" -HOMEPAGE="https://github.com/projg2/getuto" - -if [[ ${PV} == 9999 ]] ; then - EGIT_REPO_URI="https://github.com/projg2/getuto" - inherit git-r3 -else - SRC_URI=" - https://github.com/projg2/getuto/archive/refs/tags/${P}.tar.gz - " - S=${WORKDIR}/${PN}-${P} - - KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux" -fi - -SRC_URI+=" test? ( https://mirror.bytemark.co.uk/gentoo/releases/amd64/binpackages/17.1/x86-64/virtual/libc/libc-1-r1-1.gpkg.tar )" - -LICENSE="GPL-2" -SLOT="0" -IUSE="test" -RESTRICT="!test? ( test )" - -RDEPEND=" - app-crypt/gnupg - dev-libs/openssl - sec-keys/openpgp-keys-gentoo-release - sys-apps/gentoo-functions -" - -src_unpack() { - if [[ ${PV} == 9999 ]] ; then - git-r3_src_unpack - else - # Don't mangle test data - unpack ${P}.tar.gz - fi - - if use test ; then - cp "${DISTDIR}"/libc-1-r1-1.gpkg.tar "${S}" || die - fi -} - -src_install() { - dobin getuto -} diff --git a/sdk_container/src/third_party/portage-stable/app-portage/getuto/getuto-1.14.ebuild b/sdk_container/src/third_party/portage-stable/app-portage/getuto/getuto-1.14.ebuild deleted file mode 100644 index 09987c3f6d..0000000000 --- a/sdk_container/src/third_party/portage-stable/app-portage/getuto/getuto-1.14.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 - -DESCRIPTION="Standalone Gentoo gpg trust anchor generation tool for binpkgs" -HOMEPAGE="https://github.com/projg2/getuto" - -if [[ ${PV} == 9999 ]] ; then - EGIT_REPO_URI="https://github.com/projg2/getuto" - inherit git-r3 -else - SRC_URI=" - https://github.com/projg2/getuto/archive/refs/tags/${P}.tar.gz - " - S=${WORKDIR}/${PN}-${P} - - KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux" -fi - -SRC_URI+=" test? ( https://mirror.bytemark.co.uk/gentoo/releases/amd64/binpackages/23.0/x86-64/virtual/libc/libc-1-r1-1.gpkg.tar -> ${PN}-23.0-libc-1-r1-1.gpkg.tar )" - -LICENSE="GPL-2" -SLOT="0" -IUSE="test" -RESTRICT="!test? ( test )" - -RDEPEND=" - app-crypt/gnupg - dev-libs/openssl - sec-keys/openpgp-keys-gentoo-release - sys-apps/gentoo-functions -" - -src_unpack() { - if [[ ${PV} == 9999 ]] ; then - git-r3_src_unpack - else - # Don't mangle test data - unpack ${P}.tar.gz - fi - - if use test ; then - cp "${DISTDIR}"/${PN}-23.0-libc-1-r1-1.gpkg.tar "${S}/libc-1-r1-1.gpkg.tar" || die - fi -} - -src_install() { - dobin getuto -} diff --git a/sdk_container/src/third_party/portage-stable/app-shells/bash-completion/bash-completion-2.16.0-r2.ebuild b/sdk_container/src/third_party/portage-stable/app-shells/bash-completion/bash-completion-2.16.0-r2.ebuild index 5f8487d964..f636c18480 100644 --- a/sdk_container/src/third_party/portage-stable/app-shells/bash-completion/bash-completion-2.16.0-r2.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-shells/bash-completion/bash-completion-2.16.0-r2.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.16.0-r3.ebuild b/sdk_container/src/third_party/portage-stable/app-shells/bash-completion/bash-completion-2.16.0-r3.ebuild new file mode 100644 index 0000000000..360b8dc678 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/app-shells/bash-completion/bash-completion-2.16.0-r3.ebuild @@ -0,0 +1,172 @@ +# 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 @@ -121,6 +131,8 @@ src_unpack() { if [[ ${PV} == 9999 ]]; then git-r3_src_unpack + elif (( PLEVEL < 0 )) && [[ ${BASH_COMMIT} ]]; then + default else if use verify-sig; then verify-sig_verify_detached "${DISTDIR}/${MY_P}.tar.gz"{,.sig} @@ -172,8 +184,10 @@ src_configure() { # Upstream only test with Bison and require GNUisms like YYEOF and # YYERRCODE. The former at least may be in POSIX soon: # https://www.austingroupbugs.net/view.php?id=1269. + # # configure warns on use of non-Bison but doesn't abort. The result - # may misbehave at runtime. + # may misbehave at runtime. Chet also advises against use of byacc: + # https://lists.gnu.org/archive/html/bug-bash/2025-08/msg00115.html unset -v YACC # bash 5.3 drops unprototyped functions, earlier versions are @@ -372,21 +386,41 @@ pkg_preinst() { } pkg_postinst() { - local old_ver + local IFS old_ver ver + local -a versions # If /bin/sh does not exist, provide it. if [[ ! -e ${EROOT}/bin/sh ]]; then ln -sf -- bash "${EROOT}"/bin/sh || die fi - read -r old_ver <<<"${REPLACING_VERSIONS}" - if [[ ! $old_ver ]]; then - : - elif ver_test "$old_ver" -ge "5.2" && ver_test "$old_ver" -ge "5.2_p26-r8"; then + if [[ -e ${EROOT}/etc/bash/bashrc.d/15-gentoo-bashrc-check.bash ]]; then + ewarn "The following file is no longer packaged and can safely be deleted:" + ewarn "${EROOT}/etc/bash/bashrc.d/15-gentoo-bashrc-check.bash" + fi + + read -rd '' -a versions <<<"${REPLACING_VERSIONS}" + for ver in "${versions[@]}"; do + if [[ ! ${old_ver} ]] || ver_test "${ver}" -lt "${old_ver}"; then + old_ver=${ver} + fi + done + + if [[ ! ${old_ver} ]]; then return fi - while read -r; do ewarn "${REPLY}"; done <<'EOF' + { + if ver_test "${old_ver}" -ge "5.2" \ + && ver_test "${old_ver}" -ge "5.2_p26-r8" + then + : + elif ver_test "${old_ver}" -lt "5.2" \ + && ver_test "${old_ver}" -ge "5.1_p16-r8" + then + : + else + cat <<'EOF' Files under /etc/bash/bashrc.d must now have a suffix of .sh or .bash. Gentoo now defaults to defining PROMPT_COMMAND as an array. Depending on the @@ -409,4 +443,14 @@ Those who would prefer for bash never to interfere with the window title may now opt out of the default title setting behaviour, either with the "unset -v PROMPT_COMMAND" command or by re-defining PROMPT_COMMAND as desired. EOF + fi + } \ + | if [[ ${COLUMNS} == [1-9]*([0-9]) ]] && (( COLUMNS > 80 )); then + fmt -w "$(( COLUMNS - 3 ))" + else + cat + fi \ + | while read -r; do + ewarn "${REPLY}" + done } diff --git a/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.2_p37-r3.ebuild b/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.2_p37-r5.ebuild similarity index 79% rename from sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.2_p37-r3.ebuild rename to sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.2_p37-r5.ebuild index 6366db5d2d..1891112ab1 100644 --- a/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.2_p37-r3.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.2_p37-r5.ebuild @@ -17,12 +17,15 @@ MY_PATCHES=() # Determine the patchlevel. See https://ftp.gnu.org/gnu/bash/bash-5.2-patches/. case ${PV} in - *_p*) - PLEVEL=${PV##*_p} - ;; 9999|*_alpha*|*_beta*|*_rc*) # Set a negative patchlevel to indicate that it's a pre-release. PLEVEL=-1 + if [[ ${PV} =~ _pre[0-9]{8}$ ]]; then + BASH_COMMIT= + fi + ;; + *_p*) + PLEVEL=${PV##*_p} ;; *) PLEVEL=0 @@ -39,6 +42,14 @@ if [[ ${PV} == 9999 ]]; then EGIT_REPO_URI="https://git.savannah.gnu.org/git/bash.git" EGIT_BRANCH=devel inherit git-r3 +elif (( PLEVEL < 0 )) && [[ ${BASH_COMMIT} ]]; then + # It can be useful to have snapshots in the pre-release period once + # the first alpha is out, as various bugs get reported and fixed from + # the alpha, and the next pre-release is usually quite far away. + # + # i.e. if it's worth packaging the alpha, it's worth packaging a followup. + SRC_URI="https://git.savannah.gnu.org/cgit/bash.git/snapshot/bash-${BASH_COMMIT}.tar.gz -> ${P}-${BASH_COMMIT}.tar.gz" + S=${WORKDIR}/${PN}-${BASH_COMMIT} else my_urls=( "mirror://gnu/bash/${MY_P}.tar.gz" ) @@ -52,6 +63,7 @@ else done SRC_URI="${my_urls[*]} verify-sig? ( ${my_urls[*]/%/.sig} )" + S=${WORKDIR}/${MY_P} unset -v my_urls my_p my_patch_idx my_patch_ver fi @@ -60,12 +72,10 @@ if [[ ${GENTOO_PATCH_VER} ]]; then SRC_URI+=" https://dev.gentoo.org/~${GENTOO_PATCH_DEV:?}/distfiles/${CATEGORY}/${PN}/${PN}-${GENTOO_PATCH_VER:?}-patches.tar.xz" fi -S=${WORKDIR}/${MY_P} - 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" @@ -121,6 +131,8 @@ src_unpack() { if [[ ${PV} == 9999 ]]; then git-r3_src_unpack + elif (( PLEVEL < 0 )) && [[ ${BASH_COMMIT} ]]; then + default else if use verify-sig; then verify-sig_verify_detached "${DISTDIR}/${MY_P}.tar.gz"{,.sig} @@ -172,8 +184,10 @@ src_configure() { # Upstream only test with Bison and require GNUisms like YYEOF and # YYERRCODE. The former at least may be in POSIX soon: # https://www.austingroupbugs.net/view.php?id=1269. + # # configure warns on use of non-Bison but doesn't abort. The result - # may misbehave at runtime. + # may misbehave at runtime. Chet also advises against use of byacc: + # https://lists.gnu.org/archive/html/bug-bash/2025-08/msg00115.html unset -v YACC # bash 5.3 drops unprototyped functions, earlier versions are @@ -317,14 +331,14 @@ src_install() { insinto /etc/bash doins "${FILESDIR}"/bash_logout - my_prefixify bashrc.d "${FILESDIR}"/bashrc-r1 | newins - bashrc + my_prefixify bashrc.d "${FILESDIR}"/bashrc-r2 | newins - bashrc insinto /etc/bash/bashrc.d my_prefixify DIR_COLORS "${FILESDIR}"/bashrc.d/10-gentoo-color-r2.bash | newins - 10-gentoo-color.bash - newins "${FILESDIR}"/bashrc.d/10-gentoo-title-r2.bash 10-gentoo-title.bash - if [[ ! ${EPREFIX} ]]; then - doins "${FILESDIR}"/bashrc.d/15-gentoo-bashrc-check.bash - fi + newins "${FILESDIR}"/bashrc.d/10-gentoo-title-r3.bash 10-gentoo-title.bash + + insinto /etc/profile.d + doins "${FILESDIR}/profile.d/00-prompt-command.sh" insinto /etc/skel for f in bash{_logout,_profile,rc}; do @@ -372,21 +386,41 @@ pkg_preinst() { } pkg_postinst() { - local old_ver + local IFS old_ver ver + local -a versions # If /bin/sh does not exist, provide it. if [[ ! -e ${EROOT}/bin/sh ]]; then ln -sf -- bash "${EROOT}"/bin/sh || die fi - read -r old_ver <<<"${REPLACING_VERSIONS}" - if [[ ! $old_ver ]]; then - : - elif ver_test "$old_ver" -ge "5.2" && ver_test "$old_ver" -ge "5.2_p26-r8"; then + if [[ -e ${EROOT}/etc/bash/bashrc.d/15-gentoo-bashrc-check.bash ]]; then + ewarn "The following file is no longer packaged and can safely be deleted:" + ewarn "${EROOT}/etc/bash/bashrc.d/15-gentoo-bashrc-check.bash" + fi + + read -rd '' -a versions <<<"${REPLACING_VERSIONS}" + for ver in "${versions[@]}"; do + if [[ ! ${old_ver} ]] || ver_test "${ver}" -lt "${old_ver}"; then + old_ver=${ver} + fi + done + + if [[ ! ${old_ver} ]]; then return fi - while read -r; do ewarn "${REPLY}"; done <<'EOF' + { + if ver_test "${old_ver}" -ge "5.2" \ + && ver_test "${old_ver}" -ge "5.2_p26-r8" + then + : + elif ver_test "${old_ver}" -lt "5.2" \ + && ver_test "${old_ver}" -ge "5.1_p16-r8" + then + : + else + cat <<'EOF' Files under /etc/bash/bashrc.d must now have a suffix of .sh or .bash. Gentoo now defaults to defining PROMPT_COMMAND as an array. Depending on the @@ -409,4 +443,40 @@ Those who would prefer for bash never to interfere with the window title may now opt out of the default title setting behaviour, either with the "unset -v PROMPT_COMMAND" command or by re-defining PROMPT_COMMAND as desired. EOF + fi + + if ver_test "${old_ver}" -ge "5.3" \ + && ver_test "${old_ver}" -ge "5.3_p3-r3" + then + : + elif ver_test "${old_ver}" -lt "5.3" \ + && ver_test "${old_ver}" -ge "5.2_p37-r5" + then + : + else + cat <<'EOF' +The window title setting behaviour has been improved. It is now formatted as +"\u@\h \W", in accordance with the prompting mechanism of bash. For example, +after switching to the home directory, the current working directly will be +shown as the character. + +The value of PROMPT_DIRTRIM is now respected. If this variable is unset, the +use of the \W prompt string escape will prevail, with the current working +directory typically being shown as its basename. If set to 0 or greater, \w +will be used instead, which may be trimmed. This also means that the title +can be made to show the full path by setting PROMPT_DIRTRIM=0. + +For further information, run info '(bash)Bash Variables' or visit +https://www.gnu.org/software/bash/manual/bash.html#index-PROMPT_005fDIRTRIM. +EOF + fi + } \ + | if [[ ${COLUMNS} == [1-9]*([0-9]) ]] && (( COLUMNS > 80 )); then + fmt -w "$(( COLUMNS - 3 ))" + else + cat + fi \ + | while read -r; do + ewarn "${REPLY}" + done } diff --git a/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.3_p3-r2.ebuild b/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.3_p3-r2.ebuild index d01bec626c..7e1f47f548 100644 --- a/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.3_p3-r2.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.3_p3-r2.ebuild @@ -20,13 +20,15 @@ case ${PV} in 9999|*_alpha*|*_beta*|*_rc*) # Set a negative patchlevel to indicate that it's a pre-release. PLEVEL=-1 + if [[ ${PV} =~ _pre[0-9]{8}$ ]]; then + BASH_COMMIT= + fi ;; *_p*) PLEVEL=${PV##*_p} ;; *) PLEVEL=0 - ;; esac # The version of readline this bash normally ships with. Note that we only use @@ -40,13 +42,12 @@ if [[ ${PV} == 9999 ]]; then EGIT_REPO_URI="https://git.savannah.gnu.org/git/bash.git" EGIT_BRANCH=devel inherit git-r3 -elif (( PLEVEL < 0 )) && [[ ${PV} == *_p* ]] ; then +elif (( PLEVEL < 0 )) && [[ ${BASH_COMMIT} ]]; then # It can be useful to have snapshots in the pre-release period once # the first alpha is out, as various bugs get reported and fixed from # the alpha, and the next pre-release is usually quite far away. # # i.e. if it's worth packaging the alpha, it's worth packaging a followup. - BASH_COMMIT="b35866a2891a9b069e37ca5684d4309c0391e261" SRC_URI="https://git.savannah.gnu.org/cgit/bash.git/snapshot/bash-${BASH_COMMIT}.tar.gz -> ${P}-${BASH_COMMIT}.tar.gz" S=${WORKDIR}/${PN}-${BASH_COMMIT} else @@ -124,7 +125,7 @@ src_unpack() { if [[ ${PV} == 9999 ]]; then git-r3_src_unpack - elif (( PLEVEL < 0 )) && [[ ${PV} == *_p* ]] ; then + elif (( PLEVEL < 0 )) && [[ ${BASH_COMMIT} ]]; then default else if use verify-sig; then @@ -168,8 +169,10 @@ src_configure() { # Upstream only test with Bison and require GNUisms like YYEOF and # YYERRCODE. The former at least may be in POSIX soon: # https://www.austingroupbugs.net/view.php?id=1269. + # # configure warns on use of non-Bison but doesn't abort. The result - # may misbehave at runtime. + # may misbehave at runtime. Chet also advises against use of byacc: + # https://lists.gnu.org/archive/html/bug-bash/2025-08/msg00115.html unset -v YACC if tc-is-cross-compiler; then @@ -365,21 +368,41 @@ pkg_preinst() { } pkg_postinst() { - local old_ver + local IFS old_ver ver + local -a versions # If /bin/sh does not exist, provide it. if [[ ! -e ${EROOT}/bin/sh ]]; then ln -sf -- bash "${EROOT}"/bin/sh || die fi - read -r old_ver <<<"${REPLACING_VERSIONS}" - if [[ ! $old_ver ]]; then - : - elif ver_test "$old_ver" -ge "5.2" && ver_test "$old_ver" -ge "5.2_p26-r8"; then + if [[ -e ${EROOT}/etc/bash/bashrc.d/15-gentoo-bashrc-check.bash ]]; then + ewarn "The following file is no longer packaged and can safely be deleted:" + ewarn "${EROOT}/etc/bash/bashrc.d/15-gentoo-bashrc-check.bash" + fi + + read -rd '' -a versions <<<"${REPLACING_VERSIONS}" + for ver in "${versions[@]}"; do + if [[ ! ${old_ver} ]] || ver_test "${ver}" -lt "${old_ver}"; then + old_ver=${ver} + fi + done + + if [[ ! ${old_ver} ]]; then return fi - while read -r; do ewarn "${REPLY}"; done <<'EOF' + { + if ver_test "${old_ver}" -ge "5.2" \ + && ver_test "${old_ver}" -ge "5.2_p26-r8" + then + : + elif ver_test "${old_ver}" -lt "5.2" \ + && ver_test "${old_ver}" -ge "5.1_p16-r8" + then + : + else + cat <<'EOF' Files under /etc/bash/bashrc.d must now have a suffix of .sh or .bash. Gentoo now defaults to defining PROMPT_COMMAND as an array. Depending on the @@ -402,4 +425,14 @@ Those who would prefer for bash never to interfere with the window title may now opt out of the default title setting behaviour, either with the "unset -v PROMPT_COMMAND" command or by re-defining PROMPT_COMMAND as desired. EOF + fi + } \ + | if [[ ${COLUMNS} == [1-9]*([0-9]) ]] && (( COLUMNS > 80 )); then + fmt -w "$(( COLUMNS - 3 ))" + else + cat + fi \ + | while read -r; do + ewarn "${REPLY}" + done } diff --git a/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.3_p3-r1.ebuild b/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.3_p3-r3.ebuild similarity index 82% rename from sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.3_p3-r1.ebuild rename to sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.3_p3-r3.ebuild index f069c5c36b..4218315eeb 100644 --- a/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.3_p3-r1.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.3_p3-r3.ebuild @@ -20,13 +20,15 @@ case ${PV} in 9999|*_alpha*|*_beta*|*_rc*) # Set a negative patchlevel to indicate that it's a pre-release. PLEVEL=-1 + if [[ ${PV} =~ _pre[0-9]{8}$ ]]; then + BASH_COMMIT= + fi ;; *_p*) PLEVEL=${PV##*_p} ;; *) PLEVEL=0 - ;; esac # The version of readline this bash normally ships with. Note that we only use @@ -40,13 +42,12 @@ if [[ ${PV} == 9999 ]]; then EGIT_REPO_URI="https://git.savannah.gnu.org/git/bash.git" EGIT_BRANCH=devel inherit git-r3 -elif (( PLEVEL < 0 )) && [[ ${PV} == *_p* ]] ; then +elif (( PLEVEL < 0 )) && [[ ${BASH_COMMIT} ]]; then # It can be useful to have snapshots in the pre-release period once # the first alpha is out, as various bugs get reported and fixed from # the alpha, and the next pre-release is usually quite far away. # # i.e. if it's worth packaging the alpha, it's worth packaging a followup. - BASH_COMMIT="b35866a2891a9b069e37ca5684d4309c0391e261" SRC_URI="https://git.savannah.gnu.org/cgit/bash.git/snapshot/bash-${BASH_COMMIT}.tar.gz -> ${P}-${BASH_COMMIT}.tar.gz" S=${WORKDIR}/${PN}-${BASH_COMMIT} else @@ -124,7 +125,7 @@ src_unpack() { if [[ ${PV} == 9999 ]]; then git-r3_src_unpack - elif (( PLEVEL < 0 )) && [[ ${PV} == *_p* ]] ; then + elif (( PLEVEL < 0 )) && [[ ${BASH_COMMIT} ]]; then default else if use verify-sig; then @@ -168,8 +169,10 @@ src_configure() { # Upstream only test with Bison and require GNUisms like YYEOF and # YYERRCODE. The former at least may be in POSIX soon: # https://www.austingroupbugs.net/view.php?id=1269. + # # configure warns on use of non-Bison but doesn't abort. The result - # may misbehave at runtime. + # may misbehave at runtime. Chet also advises against use of byacc: + # https://lists.gnu.org/archive/html/bug-bash/2025-08/msg00115.html unset -v YACC if tc-is-cross-compiler; then @@ -199,6 +202,7 @@ src_configure() { append-cppflags \ -DDEFAULT_PATH_VALUE=\'\""${EPREFIX}"/usr/local/sbin:"${EPREFIX}"/usr/local/bin:"${EPREFIX}"/usr/sbin:"${EPREFIX}"/usr/bin:"${EPREFIX}"/sbin:"${EPREFIX}"/bin\"\' \ -DSTANDARD_UTILS_PATH=\'\""${EPREFIX}"/bin:"${EPREFIX}"/usr/bin:"${EPREFIX}"/sbin:"${EPREFIX}"/usr/sbin\"\' \ + -DDEFAULT_LOADABLE_BUILTINS_PATH=\'\""${EPREFIX}"/usr/local/$(get_libdir)/bash:"${EPREFIX}"/usr/$(get_libdir)/bash\"\' \ -DSYS_BASHRC=\'\""${EPREFIX}"/etc/bash/bashrc\"\' \ -DSYS_BASH_LOGOUT=\'\""${EPREFIX}"/etc/bash/bash_logout\"\' \ -DNON_INTERACTIVE_LOGIN_SHELLS \ @@ -313,7 +317,7 @@ src_install() { insinto /etc/bash/bashrc.d my_prefixify DIR_COLORS "${FILESDIR}"/bashrc.d/10-gentoo-color-r2.bash | newins - 10-gentoo-color.bash - newins "${FILESDIR}"/bashrc.d/10-gentoo-title-r2.bash 10-gentoo-title.bash + newins "${FILESDIR}"/bashrc.d/10-gentoo-title-r3.bash 10-gentoo-title.bash insinto /etc/profile.d doins "${FILESDIR}/profile.d/00-prompt-command.sh" @@ -364,21 +368,41 @@ pkg_preinst() { } pkg_postinst() { - local old_ver + local IFS old_ver ver + local -a versions # If /bin/sh does not exist, provide it. if [[ ! -e ${EROOT}/bin/sh ]]; then ln -sf -- bash "${EROOT}"/bin/sh || die fi - read -r old_ver <<<"${REPLACING_VERSIONS}" - if [[ ! $old_ver ]]; then - : - elif ver_test "$old_ver" -ge "5.2" && ver_test "$old_ver" -ge "5.2_p26-r8"; then + if [[ -e ${EROOT}/etc/bash/bashrc.d/15-gentoo-bashrc-check.bash ]]; then + ewarn "The following file is no longer packaged and can safely be deleted:" + ewarn "${EROOT}/etc/bash/bashrc.d/15-gentoo-bashrc-check.bash" + fi + + read -rd '' -a versions <<<"${REPLACING_VERSIONS}" + for ver in "${versions[@]}"; do + if [[ ! ${old_ver} ]] || ver_test "${ver}" -lt "${old_ver}"; then + old_ver=${ver} + fi + done + + if [[ ! ${old_ver} ]]; then return fi - while read -r; do ewarn "${REPLY}"; done <<'EOF' + { + if ver_test "${old_ver}" -ge "5.2" \ + && ver_test "${old_ver}" -ge "5.2_p26-r8" + then + : + elif ver_test "${old_ver}" -lt "5.2" \ + && ver_test "${old_ver}" -ge "5.1_p16-r8" + then + : + else + cat <<'EOF' Files under /etc/bash/bashrc.d must now have a suffix of .sh or .bash. Gentoo now defaults to defining PROMPT_COMMAND as an array. Depending on the @@ -401,4 +425,40 @@ Those who would prefer for bash never to interfere with the window title may now opt out of the default title setting behaviour, either with the "unset -v PROMPT_COMMAND" command or by re-defining PROMPT_COMMAND as desired. EOF + fi + + if ver_test "${old_ver}" -ge "5.3" \ + && ver_test "${old_ver}" -ge "5.3_p3-r3" + then + : + elif ver_test "${old_ver}" -lt "5.3" \ + && ver_test "${old_ver}" -ge "5.2_p37-r5" + then + : + else + cat <<'EOF' +The window title setting behaviour has been improved. It is now formatted as +"\u@\h \W", in accordance with the prompting mechanism of bash. For example, +after switching to the home directory, the current working directly will be +shown as the character. + +The value of PROMPT_DIRTRIM is now respected. If this variable is unset, the +use of the \W prompt string escape will prevail, with the current working +directory typically being shown as its basename. If set to 0 or greater, \w +will be used instead, which may be trimmed. This also means that the title +can be made to show the full path by setting PROMPT_DIRTRIM=0. + +For further information, run info '(bash)Bash Variables' or visit +https://www.gnu.org/software/bash/manual/bash.html#index-PROMPT_005fDIRTRIM. +EOF + fi + } \ + | if [[ ${COLUMNS} == [1-9]*([0-9]) ]] && (( COLUMNS > 80 )); then + fmt -w "$(( COLUMNS - 3 ))" + else + cat + fi \ + | while read -r; do + ewarn "${REPLY}" + done } diff --git a/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.4_alpha_pre20250822.ebuild b/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.4_alpha_pre20250822.ebuild deleted file mode 100644 index 3a50207845..0000000000 --- a/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.4_alpha_pre20250822.ebuild +++ /dev/null @@ -1,403 +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/chetramey.asc -inherit flag-o-matic toolchain-funcs prefix verify-sig - -# Uncomment if we have a patchset. -#GENTOO_PATCH_DEV="sam" -#GENTOO_PATCH_VER="${PV}" - -MY_PV=${PV/_p*} -MY_PV=${MY_PV/_/-} -MY_P=${PN}-${MY_PV} -MY_PATCHES=() - -# Determine the patchlevel. -case ${PV} in - 9999|*_alpha*|*_beta*|*_rc*) - # Set a negative patchlevel to indicate that it's a pre-release. - PLEVEL=-1 - ;; - *_p*) - PLEVEL=${PV##*_p} - ;; - *) - PLEVEL=0 - ;; -esac - -# The version of readline this bash normally ships with. Note that we only use -# the bundled copy of readline for pre-releases. -READLINE_VER="8.3" - -DESCRIPTION="The standard GNU Bourne again shell" -HOMEPAGE="https://tiswww.case.edu/php/chet/bash/bashtop.html https://git.savannah.gnu.org/cgit/bash.git" - -if [[ ${PV} == 9999 ]]; then - EGIT_REPO_URI="https://git.savannah.gnu.org/git/bash.git" - EGIT_BRANCH=devel - inherit git-r3 -elif (( PLEVEL < 0 )) && [[ ${PV} == *_p* ]] ; then - # It can be useful to have snapshots in the pre-release period once - # the first alpha is out, as various bugs get reported and fixed from - # the alpha, and the next pre-release is usually quite far away. - # - # i.e. if it's worth packaging the alpha, it's worth packaging a followup. - BASH_COMMIT="ab17ddb7af948ee6e1a6370aac4ee57b4179cd9c" - SRC_URI="https://git.savannah.gnu.org/cgit/bash.git/snapshot/bash-${BASH_COMMIT}.tar.gz -> ${P}-${BASH_COMMIT}.tar.gz" - S=${WORKDIR}/${PN}-${BASH_COMMIT} -else - my_urls=( "mirror://gnu/bash/${MY_P}.tar.gz" ) - - # bash-5.1 -> bash51 - my_p=${PN}$(ver_cut 1-2) my_p=${my_p/.} - - for (( my_patch_idx = 1; my_patch_idx <= PLEVEL; my_patch_idx++ )); do - printf -v my_patch_ver %s-%03d "${my_p}" "${my_patch_idx}" - my_urls+=( "mirror://gnu/bash/${MY_P}-patches/${my_patch_ver}" ) - MY_PATCHES+=( "${DISTDIR}/${my_patch_ver}" ) - done - - SRC_URI="${my_urls[*]} verify-sig? ( ${my_urls[*]/%/.sig} )" - S=${WORKDIR}/${MY_P} - - unset -v my_urls my_p my_patch_idx my_patch_ver -fi - -if [[ ${GENTOO_PATCH_VER} ]]; then - SRC_URI+=" https://dev.gentoo.org/~${GENTOO_PATCH_DEV:?}/distfiles/${CATEGORY}/${PN}/${PN}-${GENTOO_PATCH_VER:?}-patches.tar.xz" -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" -fi -IUSE="afs bashlogger examples mem-scramble +net nls plugins pgo +readline" - -DEPEND=" - >=sys-libs/ncurses-5.2-r2:= - nls? ( virtual/libintl ) -" -if (( PLEVEL >= 0 )); then - DEPEND+=" readline? ( >=sys-libs/readline-${READLINE_VER}:= )" -fi -RDEPEND=" - ${DEPEND} -" -# We only need bison (yacc) when the .y files get patched (bash42-005, bash51-011). -BDEPEND=" - pgo? ( dev-util/gperf ) - verify-sig? ( sec-keys/openpgp-keys-chetramey ) -" - -# EAPI 8 tries to append it but it doesn't exist here. -QA_CONFIGURE_OPTIONS="--disable-static" - -PATCHES=( - #"${WORKDIR}"/${PN}-${GENTOO_PATCH_VER}/ - - # Patches to or from Chet, posted to the bug-bash mailing list. - "${FILESDIR}/${PN}-5.0-syslog-history-extern.patch" -) - -pkg_setup() { - # bug #7332 - if is-flag -malign-double; then - eerror "Detected bad CFLAGS '-malign-double'. Do not use this" - eerror "as it breaks LFS (struct stat64) on x86." - die "remove -malign-double from your CFLAGS mr ricer" - fi - - if use bashlogger; then - ewarn "The logging patch should ONLY be used in restricted (i.e. honeypot) envs." - ewarn "This will log ALL output you enter into the shell, you have been warned." - fi -} - -src_unpack() { - local patch - - if [[ ${PV} == 9999 ]]; then - git-r3_src_unpack - elif (( PLEVEL < 0 )) && [[ ${PV} == *_p* ]] ; then - default - else - if use verify-sig; then - verify-sig_verify_detached "${DISTDIR}/${MY_P}.tar.gz"{,.sig} - - for patch in "${MY_PATCHES[@]}"; do - verify-sig_verify_detached "${patch}"{,.sig} - done - fi - - unpack "${MY_P}.tar.gz" - - if [[ ${GENTOO_PATCH_VER} ]]; then - unpack "${PN}-${GENTOO_PATCH_VER}-patches.tar.xz" - fi - fi -} - -src_prepare() { - # Include official patches. - (( PLEVEL > 0 )) && eapply -p0 "${MY_PATCHES[@]}" - - # Prefixify hardcoded path names. No-op for non-prefix. - hprefixify pathnames.h.in - - # Avoid regenerating docs after patches, bug #407985. - sed -i -E '/^(HS|RL)USER/s:=.*:=:' doc/Makefile.in \ - && touch -r . doc/* \ - || die - - # Sometimes hangs (more noticeable w/ pgo), bug #907403. - rm tests/run-jobs || die - - eapply -p0 "${PATCHES[@]}" - eapply_user -} - -src_configure() { - local -a myconf - - # Upstream only test with Bison and require GNUisms like YYEOF and - # YYERRCODE. The former at least may be in POSIX soon: - # https://www.austingroupbugs.net/view.php?id=1269. - # configure warns on use of non-Bison but doesn't abort. The result - # may misbehave at runtime. - unset -v YACC - - if tc-is-cross-compiler; then - export CFLAGS_FOR_BUILD="${BUILD_CFLAGS} -std=gnu17" - fi - - myconf=( - --disable-profiling - - # Force linking with system curses ... the bundled termcap lib - # sucks bad compared to ncurses. For the most part, ncurses - # is here because readline needs it. But bash itself calls - # ncurses in one or two small places :(. - --with-curses - - $(use_enable mem-scramble) - $(use_enable net net-redirections) - $(use_enable readline) - $(use_enable readline bang-history) - $(use_enable readline history) - $(use_with afs) - $(use_with mem-scramble bash-malloc) - ) - - # For descriptions of these, see config-top.h. - # bashrc/#26952 bash_logout/#90488 ssh/#24762 mktemp/#574426 - append-cppflags \ - -DDEFAULT_PATH_VALUE=\'\""${EPREFIX}"/usr/local/sbin:"${EPREFIX}"/usr/local/bin:"${EPREFIX}"/usr/sbin:"${EPREFIX}"/usr/bin:"${EPREFIX}"/sbin:"${EPREFIX}"/bin\"\' \ - -DSTANDARD_UTILS_PATH=\'\""${EPREFIX}"/bin:"${EPREFIX}"/usr/bin:"${EPREFIX}"/sbin:"${EPREFIX}"/usr/sbin\"\' \ - -DSYS_BASHRC=\'\""${EPREFIX}"/etc/bash/bashrc\"\' \ - -DSYS_BASH_LOGOUT=\'\""${EPREFIX}"/etc/bash/bash_logout\"\' \ - -DNON_INTERACTIVE_LOGIN_SHELLS \ - -DSSH_SOURCE_BASHRC \ - $(use bashlogger && echo -DSYSLOG_HISTORY) - - use nls || myconf+=( --disable-nls ) - - if (( PLEVEL >= 0 )); then - # Historically, we always used the builtin readline, but since - # our handling of SONAME upgrades has gotten much more stable - # in the PM (and the readline ebuild itself preserves the old - # libs during upgrades), linking against the system copy should - # be safe. - # Exact cached version here doesn't really matter as long as it - # is at least what's in the DEPEND up above. - export ac_cv_rl_version=${READLINE_VER%%_*} - - # Use system readline only with released versions. - myconf+=( --with-installed-readline=. ) - fi - - if use plugins; then - append-ldflags "-Wl,-rpath,${EPREFIX}/usr/$(get_libdir)/bash" - else - # Disable the plugins logic by hand since bash doesn't provide - # a way of doing it. - export ac_cv_func_dl{close,open,sym}=no \ - ac_cv_lib_dl_dlopen=no ac_cv_header_dlfcn_h=no - - sed -i -e '/LOCAL_LDFLAGS=/s:-rdynamic::' configure || die - fi - - # bug #444070 - tc-export AR - - econf "${myconf[@]}" -} - -src_compile() { - local -a pgo_generate_flags pgo_use_flags - local flag - - # -fprofile-partial-training because upstream notes the test suite isn't - # super comprehensive. - # https://documentation.suse.com/sbp/all/html/SBP-GCC-10/index.html#sec-gcc10-pgo - if use pgo; then - pgo_generate_flags=( - -fprofile-update=atomic - -fprofile-dir="${T}"/pgo - -fprofile-generate="${T}"/pgo - ) - pgo_use_flags=( - -fprofile-use="${T}"/pgo - -fprofile-dir="${T}"/pgo - ) - if flag=$(test-flags-CC -fprofile-partial-training); then - pgo_generate_flags+=( "${flag}" ) - pgo_use_flags+=( "${flag}" ) - fi - fi - - emake CFLAGS="${CFLAGS} ${pgo_generate_flags[*]}" - use plugins && emake -C examples/loadables CFLAGS="${CFLAGS} ${pgo_generate_flags[*]}" all others - - # Build Bash and run its tests to generate profiles. - if (( ${#pgo_generate_flags[@]} )); then - # Used in test suite. - unset -v A - - emake CFLAGS="${CFLAGS} ${pgo_generate_flags[*]}" -k check - - if tc-is-clang; then - llvm-profdata merge "${T}"/pgo --output="${T}"/pgo/default.profdata || die - fi - - # Rebuild Bash using the profiling data we just generated. - emake clean - emake CFLAGS="${CFLAGS} ${pgo_use_flags[*]}" - use plugins && emake -C examples/loadables CFLAGS="${CFLAGS} ${pgo_use_flags[*]}" all others - fi -} - -src_test() { - # Used in test suite. - unset -v A - - default -} - -src_install() { - local d f - - default - - my_prefixify() { - while read -r; do - if [[ $REPLY == *$1* ]]; then - REPLY=${REPLY/"/etc/"/"${EPREFIX}/etc/"} - fi - printf '%s\n' "${REPLY}" || ! break - done < "$2" || die - } - - dodir /bin - mv -- "${ED}"/usr/bin/bash "${ED}"/bin/ || die - dosym bash /bin/rbash - - insinto /etc/bash - doins "${FILESDIR}"/bash_logout - my_prefixify bashrc.d "${FILESDIR}"/bashrc-r1 | newins - bashrc - - insinto /etc/bash/bashrc.d - my_prefixify DIR_COLORS "${FILESDIR}"/bashrc.d/10-gentoo-color-r2.bash | newins - 10-gentoo-color.bash - newins "${FILESDIR}"/bashrc.d/10-gentoo-title-r2.bash 10-gentoo-title.bash - if [[ ! ${EPREFIX} ]]; then - doins "${FILESDIR}"/bashrc.d/15-gentoo-bashrc-check.bash - fi - - insinto /etc/skel - for f in bash{_logout,_profile,rc}; do - newins "${FILESDIR}/skel/dot-${f}" ".${f}" - done - - if use plugins; then - exeinto "/usr/$(get_libdir)/bash" - set -- examples/loadables/*.o - doexe "${@%.o}" - - insinto /usr/include/bash-plugins - doins *.h builtins/*.h include/*.h lib/{glob/glob.h,tilde/tilde.h} - fi - - if use examples; then - for d in examples/{functions,misc,scripts,startup-files}; do - exeinto "/usr/share/doc/${PF}/${d}" - docinto "${d}" - for f in "${d}"/*; do - if [[ ${f##*/} != @(PERMISSION|*README) ]]; then - doexe "${f}" - else - dodoc "${f}" - fi - done - done - fi - - # Install bash_builtins.1 and rbash.1. - emake -C doc DESTDIR="${D}" install_builtins - sed 's:bash\.1:man1/&:' doc/rbash.1 > "${T}"/rbash.1 || die - doman "${T}"/rbash.1 - - newdoc CWRU/changelog ChangeLog - dosym bash.info /usr/share/info/bashref.info -} - -pkg_preinst() { - if [[ -e ${EROOT}/etc/bashrc ]] && [[ ! -d ${EROOT}/etc/bash ]]; then - mkdir -p -- "${EROOT}"/etc/bash \ - && mv -f -- "${EROOT}"/etc/bashrc "${EROOT}"/etc/bash/ \ - || die - fi -} - -pkg_postinst() { - local old_ver - - # If /bin/sh does not exist, provide it. - if [[ ! -e ${EROOT}/bin/sh ]]; then - ln -sf -- bash "${EROOT}"/bin/sh || die - fi - - read -r old_ver <<<"${REPLACING_VERSIONS}" - if [[ ! $old_ver ]]; then - : - elif ver_test "$old_ver" -ge "5.2" && ver_test "$old_ver" -ge "5.2_p26-r8"; then - return - fi - - while read -r; do ewarn "${REPLY}"; done <<'EOF' -Files under /etc/bash/bashrc.d must now have a suffix of .sh or .bash. - -Gentoo now defaults to defining PROMPT_COMMAND as an array. Depending on the -characteristics of the operating environment, it may contain a command to set -the terminal's window title. Those who were already choosing to customise the -PROMPT_COMMAND variable are now advised to append their commands like so: - -PROMPT_COMMAND+=('custom command goes here') - -Gentoo no longer defaults to having bash set the window title in the case -that the terminal is controlled by sshd(8), unless screen is launched on the -remote side or the terminal reliably supports saving and restoring the title -(as alacritty, foot and tmux do). Those wanting for the title to be set -regardless may adjust ~/.bashrc - or create a custom /etc/bash/bashrc.d -drop-in - to set PROMPT_COMMMAND like so: - -PROMPT_COMMAND=(genfun_set_win_title) - -Those who would prefer for bash never to interfere with the window title may -now opt out of the default title setting behaviour, either with the "unset -v -PROMPT_COMMAND" command or by re-defining PROMPT_COMMAND as desired. -EOF -} diff --git a/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.4_alpha_pre20250904.ebuild b/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.4_alpha_pre20250918-r2.ebuild similarity index 82% rename from sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.4_alpha_pre20250904.ebuild rename to sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.4_alpha_pre20250918-r2.ebuild index 7fde1dd927..5a30defbc4 100644 --- a/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.4_alpha_pre20250904.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.4_alpha_pre20250918-r2.ebuild @@ -20,13 +20,15 @@ case ${PV} in 9999|*_alpha*|*_beta*|*_rc*) # Set a negative patchlevel to indicate that it's a pre-release. PLEVEL=-1 + if [[ ${PV} =~ _pre[0-9]{8}$ ]]; then + BASH_COMMIT="cf8a2518c8b94f75b330d398f5daa0ee21417e1b" + fi ;; *_p*) PLEVEL=${PV##*_p} ;; *) PLEVEL=0 - ;; esac # The version of readline this bash normally ships with. Note that we only use @@ -40,13 +42,12 @@ if [[ ${PV} == 9999 ]]; then EGIT_REPO_URI="https://git.savannah.gnu.org/git/bash.git" EGIT_BRANCH=devel inherit git-r3 -elif (( PLEVEL < 0 )) && [[ ${PV} == *_p* ]] ; then +elif (( PLEVEL < 0 )) && [[ ${BASH_COMMIT} ]]; then # It can be useful to have snapshots in the pre-release period once # the first alpha is out, as various bugs get reported and fixed from # the alpha, and the next pre-release is usually quite far away. # # i.e. if it's worth packaging the alpha, it's worth packaging a followup. - BASH_COMMIT="a451bfc3f57201bc0933b62c2fb721940a4c33f5" SRC_URI="https://git.savannah.gnu.org/cgit/bash.git/snapshot/bash-${BASH_COMMIT}.tar.gz -> ${P}-${BASH_COMMIT}.tar.gz" S=${WORKDIR}/${PN}-${BASH_COMMIT} else @@ -123,7 +124,7 @@ src_unpack() { if [[ ${PV} == 9999 ]]; then git-r3_src_unpack - elif (( PLEVEL < 0 )) && [[ ${PV} == *_p* ]] ; then + elif (( PLEVEL < 0 )) && [[ ${BASH_COMMIT} ]]; then default else if use verify-sig; then @@ -167,8 +168,10 @@ src_configure() { # Upstream only test with Bison and require GNUisms like YYEOF and # YYERRCODE. The former at least may be in POSIX soon: # https://www.austingroupbugs.net/view.php?id=1269. + # # configure warns on use of non-Bison but doesn't abort. The result - # may misbehave at runtime. + # may misbehave at runtime. Chet also advises against use of byacc: + # https://lists.gnu.org/archive/html/bug-bash/2025-08/msg00115.html unset -v YACC if tc-is-cross-compiler; then @@ -309,14 +312,14 @@ src_install() { insinto /etc/bash doins "${FILESDIR}"/bash_logout - my_prefixify bashrc.d "${FILESDIR}"/bashrc-r1 | newins - bashrc + my_prefixify bashrc.d "${FILESDIR}"/bashrc-r2 | newins - bashrc insinto /etc/bash/bashrc.d my_prefixify DIR_COLORS "${FILESDIR}"/bashrc.d/10-gentoo-color-r2.bash | newins - 10-gentoo-color.bash - newins "${FILESDIR}"/bashrc.d/10-gentoo-title-r2.bash 10-gentoo-title.bash - if [[ ! ${EPREFIX} ]]; then - doins "${FILESDIR}"/bashrc.d/15-gentoo-bashrc-check.bash - fi + newins "${FILESDIR}"/bashrc.d/10-gentoo-title-r3.bash 10-gentoo-title.bash + + insinto /etc/profile.d + doins "${FILESDIR}/profile.d/00-prompt-command.sh" insinto /etc/skel for f in bash{_logout,_profile,rc}; do @@ -364,21 +367,41 @@ pkg_preinst() { } pkg_postinst() { - local old_ver + local IFS old_ver ver + local -a versions # If /bin/sh does not exist, provide it. if [[ ! -e ${EROOT}/bin/sh ]]; then ln -sf -- bash "${EROOT}"/bin/sh || die fi - read -r old_ver <<<"${REPLACING_VERSIONS}" - if [[ ! $old_ver ]]; then - : - elif ver_test "$old_ver" -ge "5.2" && ver_test "$old_ver" -ge "5.2_p26-r8"; then + if [[ -e ${EROOT}/etc/bash/bashrc.d/15-gentoo-bashrc-check.bash ]]; then + ewarn "The following file is no longer packaged and can safely be deleted:" + ewarn "${EROOT}/etc/bash/bashrc.d/15-gentoo-bashrc-check.bash" + fi + + read -rd '' -a versions <<<"${REPLACING_VERSIONS}" + for ver in "${versions[@]}"; do + if [[ ! ${old_ver} ]] || ver_test "${ver}" -lt "${old_ver}"; then + old_ver=${ver} + fi + done + + if [[ ! ${old_ver} ]]; then return fi - while read -r; do ewarn "${REPLY}"; done <<'EOF' + { + if ver_test "${old_ver}" -ge "5.2" \ + && ver_test "${old_ver}" -ge "5.2_p26-r8" + then + : + elif ver_test "${old_ver}" -lt "5.2" \ + && ver_test "${old_ver}" -ge "5.1_p16-r8" + then + : + else + cat <<'EOF' Files under /etc/bash/bashrc.d must now have a suffix of .sh or .bash. Gentoo now defaults to defining PROMPT_COMMAND as an array. Depending on the @@ -401,4 +424,40 @@ Those who would prefer for bash never to interfere with the window title may now opt out of the default title setting behaviour, either with the "unset -v PROMPT_COMMAND" command or by re-defining PROMPT_COMMAND as desired. EOF + fi + + if ver_test "${old_ver}" -ge "5.3" \ + && ver_test "${old_ver}" -ge "5.3_p3-r3" + then + : + elif ver_test "${old_ver}" -lt "5.3" \ + && ver_test "${old_ver}" -ge "5.2_p37-r5" + then + : + else + cat <<'EOF' +The window title setting behaviour has been improved. It is now formatted as +"\u@\h \W", in accordance with the prompting mechanism of bash. For example, +after switching to the home directory, the current working directly will be +shown as the character. + +The value of PROMPT_DIRTRIM is now respected. If this variable is unset, the +use of the \W prompt string escape will prevail, with the current working +directory typically being shown as its basename. If set to 0 or greater, \w +will be used instead, which may be trimmed. This also means that the title +can be made to show the full path by setting PROMPT_DIRTRIM=0. + +For further information, run info '(bash)Bash Variables' or visit +https://www.gnu.org/software/bash/manual/bash.html#index-PROMPT_005fDIRTRIM. +EOF + fi + } \ + | if [[ ${COLUMNS} == [1-9]*([0-9]) ]] && (( COLUMNS > 80 )); then + fmt -w "$(( COLUMNS - 3 ))" + else + cat + fi \ + | while read -r; do + ewarn "${REPLY}" + done } diff --git a/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.4_alpha_pre20250918.ebuild b/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.4_alpha_pre20251001.ebuild similarity index 82% rename from sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.4_alpha_pre20250918.ebuild rename to sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.4_alpha_pre20251001.ebuild index f54b1ecb0d..06c959624b 100644 --- a/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.4_alpha_pre20250918.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.4_alpha_pre20251001.ebuild @@ -20,13 +20,15 @@ case ${PV} in 9999|*_alpha*|*_beta*|*_rc*) # Set a negative patchlevel to indicate that it's a pre-release. PLEVEL=-1 + if [[ ${PV} =~ _pre[0-9]{8}$ ]]; then + BASH_COMMIT="4f536430e45d847d6945133690312a8e94762254" + fi ;; *_p*) PLEVEL=${PV##*_p} ;; *) PLEVEL=0 - ;; esac # The version of readline this bash normally ships with. Note that we only use @@ -40,13 +42,12 @@ if [[ ${PV} == 9999 ]]; then EGIT_REPO_URI="https://git.savannah.gnu.org/git/bash.git" EGIT_BRANCH=devel inherit git-r3 -elif (( PLEVEL < 0 )) && [[ ${PV} == *_p* ]] ; then +elif (( PLEVEL < 0 )) && [[ ${BASH_COMMIT} ]]; then # It can be useful to have snapshots in the pre-release period once # the first alpha is out, as various bugs get reported and fixed from # the alpha, and the next pre-release is usually quite far away. # # i.e. if it's worth packaging the alpha, it's worth packaging a followup. - BASH_COMMIT="cf8a2518c8b94f75b330d398f5daa0ee21417e1b" SRC_URI="https://git.savannah.gnu.org/cgit/bash.git/snapshot/bash-${BASH_COMMIT}.tar.gz -> ${P}-${BASH_COMMIT}.tar.gz" S=${WORKDIR}/${PN}-${BASH_COMMIT} else @@ -123,7 +124,7 @@ src_unpack() { if [[ ${PV} == 9999 ]]; then git-r3_src_unpack - elif (( PLEVEL < 0 )) && [[ ${PV} == *_p* ]] ; then + elif (( PLEVEL < 0 )) && [[ ${BASH_COMMIT} ]]; then default else if use verify-sig; then @@ -167,8 +168,10 @@ src_configure() { # Upstream only test with Bison and require GNUisms like YYEOF and # YYERRCODE. The former at least may be in POSIX soon: # https://www.austingroupbugs.net/view.php?id=1269. + # # configure warns on use of non-Bison but doesn't abort. The result - # may misbehave at runtime. + # may misbehave at runtime. Chet also advises against use of byacc: + # https://lists.gnu.org/archive/html/bug-bash/2025-08/msg00115.html unset -v YACC if tc-is-cross-compiler; then @@ -309,14 +312,14 @@ src_install() { insinto /etc/bash doins "${FILESDIR}"/bash_logout - my_prefixify bashrc.d "${FILESDIR}"/bashrc-r1 | newins - bashrc + my_prefixify bashrc.d "${FILESDIR}"/bashrc-r2 | newins - bashrc insinto /etc/bash/bashrc.d my_prefixify DIR_COLORS "${FILESDIR}"/bashrc.d/10-gentoo-color-r2.bash | newins - 10-gentoo-color.bash - newins "${FILESDIR}"/bashrc.d/10-gentoo-title-r2.bash 10-gentoo-title.bash - if [[ ! ${EPREFIX} ]]; then - doins "${FILESDIR}"/bashrc.d/15-gentoo-bashrc-check.bash - fi + newins "${FILESDIR}"/bashrc.d/10-gentoo-title-r3.bash 10-gentoo-title.bash + + insinto /etc/profile.d + doins "${FILESDIR}/profile.d/00-prompt-command.sh" insinto /etc/skel for f in bash{_logout,_profile,rc}; do @@ -364,21 +367,41 @@ pkg_preinst() { } pkg_postinst() { - local old_ver + local IFS old_ver ver + local -a versions # If /bin/sh does not exist, provide it. if [[ ! -e ${EROOT}/bin/sh ]]; then ln -sf -- bash "${EROOT}"/bin/sh || die fi - read -r old_ver <<<"${REPLACING_VERSIONS}" - if [[ ! $old_ver ]]; then - : - elif ver_test "$old_ver" -ge "5.2" && ver_test "$old_ver" -ge "5.2_p26-r8"; then + if [[ -e ${EROOT}/etc/bash/bashrc.d/15-gentoo-bashrc-check.bash ]]; then + ewarn "The following file is no longer packaged and can safely be deleted:" + ewarn "${EROOT}/etc/bash/bashrc.d/15-gentoo-bashrc-check.bash" + fi + + read -rd '' -a versions <<<"${REPLACING_VERSIONS}" + for ver in "${versions[@]}"; do + if [[ ! ${old_ver} ]] || ver_test "${ver}" -lt "${old_ver}"; then + old_ver=${ver} + fi + done + + if [[ ! ${old_ver} ]]; then return fi - while read -r; do ewarn "${REPLY}"; done <<'EOF' + { + if ver_test "${old_ver}" -ge "5.2" \ + && ver_test "${old_ver}" -ge "5.2_p26-r8" + then + : + elif ver_test "${old_ver}" -lt "5.2" \ + && ver_test "${old_ver}" -ge "5.1_p16-r8" + then + : + else + cat <<'EOF' Files under /etc/bash/bashrc.d must now have a suffix of .sh or .bash. Gentoo now defaults to defining PROMPT_COMMAND as an array. Depending on the @@ -401,4 +424,40 @@ Those who would prefer for bash never to interfere with the window title may now opt out of the default title setting behaviour, either with the "unset -v PROMPT_COMMAND" command or by re-defining PROMPT_COMMAND as desired. EOF + fi + + if ver_test "${old_ver}" -ge "5.3" \ + && ver_test "${old_ver}" -ge "5.3_p3-r3" + then + : + elif ver_test "${old_ver}" -lt "5.3" \ + && ver_test "${old_ver}" -ge "5.2_p37-r5" + then + : + else + cat <<'EOF' +The window title setting behaviour has been improved. It is now formatted as +"\u@\h \W", in accordance with the prompting mechanism of bash. For example, +after switching to the home directory, the current working directly will be +shown as the character. + +The value of PROMPT_DIRTRIM is now respected. If this variable is unset, the +use of the \W prompt string escape will prevail, with the current working +directory typically being shown as its basename. If set to 0 or greater, \w +will be used instead, which may be trimmed. This also means that the title +can be made to show the full path by setting PROMPT_DIRTRIM=0. + +For further information, run info '(bash)Bash Variables' or visit +https://www.gnu.org/software/bash/manual/bash.html#index-PROMPT_005fDIRTRIM. +EOF + fi + } \ + | if [[ ${COLUMNS} == [1-9]*([0-9]) ]] && (( COLUMNS > 80 )); then + fmt -w "$(( COLUMNS - 3 ))" + else + cat + fi \ + | while read -r; do + ewarn "${REPLY}" + done } diff --git a/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.4_alpha_pre20250904-r1.ebuild b/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.4_alpha_pre20251007.ebuild similarity index 82% rename from sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.4_alpha_pre20250904-r1.ebuild rename to sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.4_alpha_pre20251007.ebuild index 7fde1dd927..4dccec9714 100644 --- a/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.4_alpha_pre20250904-r1.ebuild +++ b/sdk_container/src/third_party/portage-stable/app-shells/bash/bash-5.4_alpha_pre20251007.ebuild @@ -20,13 +20,15 @@ case ${PV} in 9999|*_alpha*|*_beta*|*_rc*) # Set a negative patchlevel to indicate that it's a pre-release. PLEVEL=-1 + if [[ ${PV} =~ _pre[0-9]{8}$ ]]; then + BASH_COMMIT="25c6aa5b230167c6471898539c46dd2891d891a5" + fi ;; *_p*) PLEVEL=${PV##*_p} ;; *) PLEVEL=0 - ;; esac # The version of readline this bash normally ships with. Note that we only use @@ -40,13 +42,12 @@ if [[ ${PV} == 9999 ]]; then EGIT_REPO_URI="https://git.savannah.gnu.org/git/bash.git" EGIT_BRANCH=devel inherit git-r3 -elif (( PLEVEL < 0 )) && [[ ${PV} == *_p* ]] ; then +elif (( PLEVEL < 0 )) && [[ ${BASH_COMMIT} ]]; then # It can be useful to have snapshots in the pre-release period once # the first alpha is out, as various bugs get reported and fixed from # the alpha, and the next pre-release is usually quite far away. # # i.e. if it's worth packaging the alpha, it's worth packaging a followup. - BASH_COMMIT="a451bfc3f57201bc0933b62c2fb721940a4c33f5" SRC_URI="https://git.savannah.gnu.org/cgit/bash.git/snapshot/bash-${BASH_COMMIT}.tar.gz -> ${P}-${BASH_COMMIT}.tar.gz" S=${WORKDIR}/${PN}-${BASH_COMMIT} else @@ -123,7 +124,7 @@ src_unpack() { if [[ ${PV} == 9999 ]]; then git-r3_src_unpack - elif (( PLEVEL < 0 )) && [[ ${PV} == *_p* ]] ; then + elif (( PLEVEL < 0 )) && [[ ${BASH_COMMIT} ]]; then default else if use verify-sig; then @@ -167,8 +168,10 @@ src_configure() { # Upstream only test with Bison and require GNUisms like YYEOF and # YYERRCODE. The former at least may be in POSIX soon: # https://www.austingroupbugs.net/view.php?id=1269. + # # configure warns on use of non-Bison but doesn't abort. The result - # may misbehave at runtime. + # may misbehave at runtime. Chet also advises against use of byacc: + # https://lists.gnu.org/archive/html/bug-bash/2025-08/msg00115.html unset -v YACC if tc-is-cross-compiler; then @@ -309,14 +312,14 @@ src_install() { insinto /etc/bash doins "${FILESDIR}"/bash_logout - my_prefixify bashrc.d "${FILESDIR}"/bashrc-r1 | newins - bashrc + my_prefixify bashrc.d "${FILESDIR}"/bashrc-r2 | newins - bashrc insinto /etc/bash/bashrc.d my_prefixify DIR_COLORS "${FILESDIR}"/bashrc.d/10-gentoo-color-r2.bash | newins - 10-gentoo-color.bash - newins "${FILESDIR}"/bashrc.d/10-gentoo-title-r2.bash 10-gentoo-title.bash - if [[ ! ${EPREFIX} ]]; then - doins "${FILESDIR}"/bashrc.d/15-gentoo-bashrc-check.bash - fi + newins "${FILESDIR}"/bashrc.d/10-gentoo-title-r3.bash 10-gentoo-title.bash + + insinto /etc/profile.d + doins "${FILESDIR}/profile.d/00-prompt-command.sh" insinto /etc/skel for f in bash{_logout,_profile,rc}; do @@ -364,21 +367,41 @@ pkg_preinst() { } pkg_postinst() { - local old_ver + local IFS old_ver ver + local -a versions # If /bin/sh does not exist, provide it. if [[ ! -e ${EROOT}/bin/sh ]]; then ln -sf -- bash "${EROOT}"/bin/sh || die fi - read -r old_ver <<<"${REPLACING_VERSIONS}" - if [[ ! $old_ver ]]; then - : - elif ver_test "$old_ver" -ge "5.2" && ver_test "$old_ver" -ge "5.2_p26-r8"; then + if [[ -e ${EROOT}/etc/bash/bashrc.d/15-gentoo-bashrc-check.bash ]]; then + ewarn "The following file is no longer packaged and can safely be deleted:" + ewarn "${EROOT}/etc/bash/bashrc.d/15-gentoo-bashrc-check.bash" + fi + + read -rd '' -a versions <<<"${REPLACING_VERSIONS}" + for ver in "${versions[@]}"; do + if [[ ! ${old_ver} ]] || ver_test "${ver}" -lt "${old_ver}"; then + old_ver=${ver} + fi + done + + if [[ ! ${old_ver} ]]; then return fi - while read -r; do ewarn "${REPLY}"; done <<'EOF' + { + if ver_test "${old_ver}" -ge "5.2" \ + && ver_test "${old_ver}" -ge "5.2_p26-r8" + then + : + elif ver_test "${old_ver}" -lt "5.2" \ + && ver_test "${old_ver}" -ge "5.1_p16-r8" + then + : + else + cat <<'EOF' Files under /etc/bash/bashrc.d must now have a suffix of .sh or .bash. Gentoo now defaults to defining PROMPT_COMMAND as an array. Depending on the @@ -401,4 +424,40 @@ Those who would prefer for bash never to interfere with the window title may now opt out of the default title setting behaviour, either with the "unset -v PROMPT_COMMAND" command or by re-defining PROMPT_COMMAND as desired. EOF + fi + + if ver_test "${old_ver}" -ge "5.3" \ + && ver_test "${old_ver}" -ge "5.3_p3-r3" + then + : + elif ver_test "${old_ver}" -lt "5.3" \ + && ver_test "${old_ver}" -ge "5.2_p37-r5" + then + : + else + cat <<'EOF' +The window title setting behaviour has been improved. It is now formatted as +"\u@\h \W", in accordance with the prompting mechanism of bash. For example, +after switching to the home directory, the current working directly will be +shown as the character. + +The value of PROMPT_DIRTRIM is now respected. If this variable is unset, the +use of the \W prompt string escape will prevail, with the current working +directory typically being shown as its basename. If set to 0 or greater, \w +will be used instead, which may be trimmed. This also means that the title +can be made to show the full path by setting PROMPT_DIRTRIM=0. + +For further information, run info '(bash)Bash Variables' or visit +https://www.gnu.org/software/bash/manual/bash.html#index-PROMPT_005fDIRTRIM. +EOF + fi + } \ + | if [[ ${COLUMNS} == [1-9]*([0-9]) ]] && (( COLUMNS > 80 )); then + fmt -w "$(( COLUMNS - 3 ))" + else + cat + fi \ + | while read -r; do + ewarn "${REPLY}" + done } 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 3d7aff8378..7f5ca499dd 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 @@ -20,13 +20,15 @@ case ${PV} in 9999|*_alpha*|*_beta*|*_rc*) # Set a negative patchlevel to indicate that it's a pre-release. PLEVEL=-1 + if [[ ${PV} =~ _pre[0-9]{8}$ ]]; then + BASH_COMMIT= + fi ;; *_p*) PLEVEL=${PV##*_p} ;; *) PLEVEL=0 - ;; esac # The version of readline this bash normally ships with. Note that we only use @@ -40,13 +42,12 @@ if [[ ${PV} == 9999 ]]; then EGIT_REPO_URI="https://git.savannah.gnu.org/git/bash.git" EGIT_BRANCH=devel inherit git-r3 -elif (( PLEVEL < 0 )) && [[ ${PV} == *_p* ]] ; then +elif (( PLEVEL < 0 )) && [[ ${BASH_COMMIT} ]]; then # It can be useful to have snapshots in the pre-release period once # the first alpha is out, as various bugs get reported and fixed from # the alpha, and the next pre-release is usually quite far away. # # i.e. if it's worth packaging the alpha, it's worth packaging a followup. - BASH_COMMIT="b35866a2891a9b069e37ca5684d4309c0391e261" SRC_URI="https://git.savannah.gnu.org/cgit/bash.git/snapshot/bash-${BASH_COMMIT}.tar.gz -> ${P}-${BASH_COMMIT}.tar.gz" S=${WORKDIR}/${PN}-${BASH_COMMIT} else @@ -123,7 +124,7 @@ src_unpack() { if [[ ${PV} == 9999 ]]; then git-r3_src_unpack - elif (( PLEVEL < 0 )) && [[ ${PV} == *_p* ]] ; then + elif (( PLEVEL < 0 )) && [[ ${BASH_COMMIT} ]]; then default else if use verify-sig; then @@ -315,7 +316,7 @@ src_install() { insinto /etc/bash/bashrc.d my_prefixify DIR_COLORS "${FILESDIR}"/bashrc.d/10-gentoo-color-r2.bash | newins - 10-gentoo-color.bash - newins "${FILESDIR}"/bashrc.d/10-gentoo-title-r2.bash 10-gentoo-title.bash + newins "${FILESDIR}"/bashrc.d/10-gentoo-title-r3.bash 10-gentoo-title.bash insinto /etc/profile.d doins "${FILESDIR}/profile.d/00-prompt-command.sh" @@ -366,21 +367,41 @@ pkg_preinst() { } pkg_postinst() { - local old_ver + local IFS old_ver ver + local -a versions # If /bin/sh does not exist, provide it. if [[ ! -e ${EROOT}/bin/sh ]]; then ln -sf -- bash "${EROOT}"/bin/sh || die fi - read -r old_ver <<<"${REPLACING_VERSIONS}" - if [[ ! $old_ver ]]; then - : - elif ver_test "$old_ver" -ge "5.2" && ver_test "$old_ver" -ge "5.2_p26-r8"; then + if [[ -e ${EROOT}/etc/bash/bashrc.d/15-gentoo-bashrc-check.bash ]]; then + ewarn "The following file is no longer packaged and can safely be deleted:" + ewarn "${EROOT}/etc/bash/bashrc.d/15-gentoo-bashrc-check.bash" + fi + + read -rd '' -a versions <<<"${REPLACING_VERSIONS}" + for ver in "${versions[@]}"; do + if [[ ! ${old_ver} ]] || ver_test "${ver}" -lt "${old_ver}"; then + old_ver=${ver} + fi + done + + if [[ ! ${old_ver} ]]; then return fi - while read -r; do ewarn "${REPLY}"; done <<'EOF' + { + if ver_test "${old_ver}" -ge "5.2" \ + && ver_test "${old_ver}" -ge "5.2_p26-r8" + then + : + elif ver_test "${old_ver}" -lt "5.2" \ + && ver_test "${old_ver}" -ge "5.1_p16-r8" + then + : + else + cat <<'EOF' Files under /etc/bash/bashrc.d must now have a suffix of .sh or .bash. Gentoo now defaults to defining PROMPT_COMMAND as an array. Depending on the @@ -403,4 +424,40 @@ Those who would prefer for bash never to interfere with the window title may now opt out of the default title setting behaviour, either with the "unset -v PROMPT_COMMAND" command or by re-defining PROMPT_COMMAND as desired. EOF + fi + + if ver_test "${old_ver}" -ge "5.3" \ + && ver_test "${old_ver}" -ge "5.3_p3-r3" + then + : + elif ver_test "${old_ver}" -lt "5.3" \ + && ver_test "${old_ver}" -ge "5.2_p37-r5" + then + : + else + cat <<'EOF' +The window title setting behaviour has been improved. It is now formatted as +"\u@\h \W", in accordance with the prompting mechanism of bash. For example, +after switching to the home directory, the current working directly will be +shown as the character. + +The value of PROMPT_DIRTRIM is now respected. If this variable is unset, the +use of the \W prompt string escape will prevail, with the current working +directory typically being shown as its basename. If set to 0 or greater, \w +will be used instead, which may be trimmed. This also means that the title +can be made to show the full path by setting PROMPT_DIRTRIM=0. + +For further information, run info '(bash)Bash Variables' or visit +https://www.gnu.org/software/bash/manual/bash.html#index-PROMPT_005fDIRTRIM. +EOF + fi + } \ + | if [[ ${COLUMNS} == [1-9]*([0-9]) ]] && (( COLUMNS > 80 )); then + fmt -w "$(( COLUMNS - 3 ))" + else + cat + fi \ + | while read -r; do + ewarn "${REPLY}" + done } diff --git a/sdk_container/src/third_party/portage-stable/app-shells/bash/files/bash-5.3-empty-PROMPT_COMMAND.patch b/sdk_container/src/third_party/portage-stable/app-shells/bash/files/bash-5.3-empty-PROMPT_COMMAND.patch deleted file mode 100644 index 848768655e..0000000000 --- a/sdk_container/src/third_party/portage-stable/app-shells/bash/files/bash-5.3-empty-PROMPT_COMMAND.patch +++ /dev/null @@ -1,160 +0,0 @@ -https://lists.gnu.org/archive/html/bug-bash/2025-07/msg00014.html ---- parse.y Thu Jun 12 12:36:06 2025 ---- parse.y Sun Jul 6 16:46:00 2025 -*************** -*** 3009,3023 **** - - void -! execute_variable_command (const char *command, const char *vname) - { - char *last_lastarg; - sh_parser_state_t ps; - -! save_parser_state (&ps); - last_lastarg = save_lastarg (); - - parse_and_execute (savestring (command), vname, SEVAL_NONINT|SEVAL_NOHIST|SEVAL_NOOPTIMIZE|SEVAL_NOTIFY); - -! restore_parser_state (&ps); - bind_lastarg (last_lastarg); - FREE (last_lastarg); ---- 3009,3025 ---- - - void -! execute_variable_command (const char *command, const char *vname, int flags) - { - char *last_lastarg; - sh_parser_state_t ps; - -! if (flags) -! save_parser_state (&ps); - last_lastarg = save_lastarg (); - - parse_and_execute (savestring (command), vname, SEVAL_NONINT|SEVAL_NOHIST|SEVAL_NOOPTIMIZE|SEVAL_NOTIFY); - -! if (flags) -! restore_parser_state (&ps); - bind_lastarg (last_lastarg); - FREE (last_lastarg); ---- eval.c Fri Mar 7 18:50:03 2025 ---- eval.c Sun Jul 6 16:49:18 2025 -*************** -*** 284,288 **** - /* Caller ensures that A has a non-zero number of elements */ - int -! execute_array_command (ARRAY *a, void *v) - { - char *tag; ---- 284,288 ---- - /* Caller ensures that A has a non-zero number of elements */ - int -! execute_array_command (ARRAY *a, void *v, int flags) - { - char *tag; -*************** -*** 296,300 **** - { - if (argv[i] && argv[i][0]) -! execute_variable_command (argv[i], tag); - } - strvec_dispose (argv); ---- 296,300 ---- - { - if (argv[i] && argv[i][0]) -! execute_variable_command (argv[i], tag, flags); - } - strvec_dispose (argv); -*************** -*** 319,323 **** - { - if ((pcmds = array_cell (pcv)) && array_num_elements (pcmds) > 0) -! execute_array_command (pcmds, "PROMPT_COMMAND"); - return; - } ---- 319,323 ---- - { - if ((pcmds = array_cell (pcv)) && array_num_elements (pcmds) > 0) -! execute_array_command (pcmds, "PROMPT_COMMAND", 0); - return; - } -*************** -*** 328,332 **** - command_to_execute = value_cell (pcv); - if (command_to_execute && *command_to_execute) -! execute_variable_command (command_to_execute, "PROMPT_COMMAND"); - } - ---- 328,332 ---- - command_to_execute = value_cell (pcv); - if (command_to_execute && *command_to_execute) -! execute_variable_command (command_to_execute, "PROMPT_COMMAND", 0); - } - ---- input.h Fri Mar 10 16:22:48 2023 ---- input.h Sun Jul 6 16:45:42 2025 -*************** -*** 100,104 **** - extern int find_reserved_word (const char *); - extern void gather_here_documents (void); -! extern void execute_variable_command (const char *, const char *); - - extern int *save_token_state (void); ---- 100,104 ---- - extern int find_reserved_word (const char *); - extern void gather_here_documents (void); -! extern void execute_variable_command (const char *, const char *, int); - - extern int *save_token_state (void); ---- array.h Wed Dec 28 14:00:47 2022 ---- array.h Sun Jul 6 16:47:27 2025 -*************** -*** 178,182 **** - - /* In eval.c, but uses ARRAY * */ -! extern int execute_array_command (ARRAY *, void *); - - #endif /* _ARRAY_H_ */ ---- 178,182 ---- - - /* In eval.c, but uses ARRAY * */ -! extern int execute_array_command (ARRAY *, void *, int); - - #endif /* _ARRAY_H_ */ ---- y.tab.c Mon Jun 30 09:56:25 2025 ---- y.tab.c Sun Jul 6 17:38:06 2025 -*************** -*** 5368,5382 **** - - void -! execute_variable_command (const char *command, const char *vname) - { - char *last_lastarg; - sh_parser_state_t ps; - -! save_parser_state (&ps); - last_lastarg = save_lastarg (); - - parse_and_execute (savestring (command), vname, SEVAL_NONINT|SEVAL_NOHIST|SEVAL_NOOPTIMIZE|SEVAL_NOTIFY); - -! restore_parser_state (&ps); - bind_lastarg (last_lastarg); - FREE (last_lastarg); ---- 5368,5384 ---- - - void -! execute_variable_command (const char *command, const char *vname, int flags) - { - char *last_lastarg; - sh_parser_state_t ps; - -! if (flags) -! save_parser_state (&ps); - last_lastarg = save_lastarg (); - - parse_and_execute (savestring (command), vname, SEVAL_NONINT|SEVAL_NOHIST|SEVAL_NOOPTIMIZE|SEVAL_NOTIFY); - -! if (flags) -! restore_parser_state (&ps); - bind_lastarg (last_lastarg); - FREE (last_lastarg); - diff --git a/sdk_container/src/third_party/portage-stable/app-shells/bash/files/bashrc b/sdk_container/src/third_party/portage-stable/app-shells/bash/files/bashrc deleted file mode 100644 index 4a50bdebb9..0000000000 --- a/sdk_container/src/third_party/portage-stable/app-shells/bash/files/bashrc +++ /dev/null @@ -1,106 +0,0 @@ -# /etc/bash/bashrc -# -# This file is sourced by all *interactive* bash shells on startup, -# including some apparently interactive shells such as scp and rcp -# that can't tolerate any output. So make sure this doesn't display -# anything or bad things will happen! - -# Test for an interactive shell. There is no need to set anything -# past this point for scp and rcp, and it's important to refrain from -# outputting anything in those cases. -if [[ $- != *i* ]] ; then - # Shell is non-interactive. Be done now! - return -fi - -# Bash won't get SIGWINCH if another process is in the foreground. -# Enable checkwinsize so that bash will check the terminal size when -# it regains control. #65623 -# http://cnswww.cns.cwru.edu/~chet/bash/FAQ (E11) -shopt -s checkwinsize - -# Disable completion when the input buffer is empty. i.e. Hitting tab -# and waiting a long time for bash to expand all of $PATH. -shopt -s no_empty_cmd_completion - -# Enable history appending instead of overwriting when exiting. #139609 -shopt -s histappend - -# Save each command to the history file as it's executed. #517342 -# This does mean sessions get interleaved when reading later on, but this -# way the history is always up to date. History is not synced across live -# sessions though; that is what `history -n` does. -# Disabled by default due to concerns related to system recovery when $HOME -# is under duress, or lives somewhere flaky (like NFS). Constantly syncing -# the history will halt the shell prompt until it's finished. -#PROMPT_COMMAND='history -a' - -# Change the window title of X terminals -case ${TERM} in - [aEkx]term*|rxvt*|gnome*|konsole*|interix|tmux*) - PS1='\[\033]0;\u@\h:\w\007\]' - ;; - screen*) - PS1='\[\033_\u@\h:\w\033\\\]' - ;; - *) - unset PS1 - ;; -esac - -# Set colorful PS1 only on colorful terminals. -# dircolors --print-database uses its own built-in database -# instead of using /etc/DIR_COLORS. Try to use the external file -# first to take advantage of user additions. -# We run dircolors directly due to its changes in file syntax and -# terminal name patching. -use_color=false -if type -P dircolors >/dev/null ; then - # Enable colors for ls, etc. Prefer ~/.dir_colors #64489 - LS_COLORS= - if [[ -f ~/.dir_colors ]] ; then - eval "$(dircolors -b ~/.dir_colors)" - elif [[ -f /etc/DIR_COLORS ]] ; then - eval "$(dircolors -b /etc/DIR_COLORS)" - else - eval "$(dircolors -b)" - fi - # Note: We always evaluate the LS_COLORS setting even when it's the - # default. If it isn't set, then `ls` will only colorize by default - # based on file attributes and ignore extensions (even the compiled - # in defaults of dircolors). #583814 - if [[ -n ${LS_COLORS:+set} ]] ; then - use_color=true - else - # Delete it if it's empty as it's useless in that case. - unset LS_COLORS - fi -else - # Some systems (e.g. BSD & embedded) don't typically come with - # dircolors so we need to hardcode some terminals in here. - case ${TERM} in - [aEkx]term*|rxvt*|gnome*|konsole*|screen|tmux|cons25|*color) use_color=true;; - esac -fi - -if ${use_color} ; then - if [[ ${EUID} == 0 ]] ; then - PS1+='\[\033[01;31m\]\h\[\033[01;34m\] \w \$\[\033[00m\] ' - else - PS1+='\[\033[01;32m\]\u@\h\[\033[01;34m\] \w \$\[\033[00m\] ' - fi - - #BSD#@export CLICOLOR=1 - #GNU#@alias ls='ls --color=auto' - alias grep='grep --colour=auto' -else - # show root@ when we don't have colors - PS1+='\u@\h \w \$ ' -fi - -for sh in /etc/bash/bashrc.d/* ; do - [[ -r ${sh} ]] && source "${sh}" -done - -# Try to keep environment pollution down, EPA loves us. -unset use_color sh diff --git a/sdk_container/src/third_party/portage-stable/app-shells/bash/files/bashrc-r1 b/sdk_container/src/third_party/portage-stable/app-shells/bash/files/bashrc-r1 deleted file mode 100644 index deb0ce97d4..0000000000 --- a/sdk_container/src/third_party/portage-stable/app-shells/bash/files/bashrc-r1 +++ /dev/null @@ -1,29 +0,0 @@ -# /etc/bash/bashrc - -# Proceed no further in the case of a non-interactive shell. -if [[ $- != *i* ]]; then - return -fi - -# Disable errexit in case the user enabled it then chose to re-source this file. -shopt -u -o errexit - -# Disable completion when the input buffer is empty. Mute STDERR because this -# option is only present in the case that bash was built with readline support. -shopt -s no_empty_cmd_completion 2>/dev/null && - -# Append to HISTFILE rather than overwrite upon exiting, per bug #139609. This -# option also requires for bash to have been built with readline support. -shopt -s histappend - -# Initialise PROMPT_COMMAND as an array, which is permitted as of bash 5.1. -PROMPT_COMMAND=() - -# Don't let the user influence the order of sourcing for bash 5.3 or greater. -unset -v GLOBSORT - -for _ in /etc/bash/bashrc.d/*; do - if [[ $_ == *.@(bash|sh) && -r $_ ]]; then - source "$_" - fi -done diff --git a/sdk_container/src/third_party/portage-stable/app-shells/bash/files/bashrc.d/10-gentoo-title-r3.bash b/sdk_container/src/third_party/portage-stable/app-shells/bash/files/bashrc.d/10-gentoo-title-r3.bash new file mode 100644 index 0000000000..186763d07d --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/app-shells/bash/files/bashrc.d/10-gentoo-title-r3.bash @@ -0,0 +1,77 @@ +# /etc/bash/bashrc.d/10-gentoo-title.bash + +# For information regarding the control sequences used, please refer to +# https://invisible-island.net/xterm/ctlseqs/ctlseqs.html. + +genfun_set_win_title() { + # Advertise the fact that the presently running interactive shell will + # update the title. Doing so allows for its subprocesses to determine + # whether it is safe to set the title of their own accord. Note that 0 + # refers to the value of Ps within the OSC Ps ; Pt BEL sequence. + export SHELL_SETS_TITLE=0 + + # Sets the window title with the Set Text Parameters control sequence. + # For screen, the sequence defines the hardstatus (%h) and for tmux, the + # pane_title (#T). For graphical terminal emulators, it is normal for + # the title bar to be affected. + genfun_set_win_title() { + local prompt + + if [[ ${PROMPT_DIRTRIM} ]]; then + # Respect the value of PROMPT_DIRTRIM. If set as 0, the + # current working directory shall be shown in full. + prompt='\u@\h \w' + else + # Show the basename of the current working directory. + prompt='\u@\h \W' + fi + printf '\033]0;%s\007' "${prompt@P}" + } + + genfun_set_win_title +} + +unset -v SHELL_SETS_TITLE + +# Determine whether the terminal can handle the Set Text Parameters sequence. +# The only terminals permitted here are those for which there is empirical +# evidence that the sequence is supported and that the UTF-8 character encoding +# is handled correctly. Quite rightly, this precludes many vintage terminals. +case ${TERM} in + alacritty*|contour|foot*|tmux*|xterm-ghostty) + # The terminal emulator also supports XTWINOPS. If the PTY was + # created by sshd(8) then push the current window title to the + # stack and arrange for it to be popped upon exiting. Xterm also + # supports this but there are far too many terminal emulators + # that falsely identify as being xterm-compatible. + if [[ ${SSH_TTY} && ${SSH_TTY} == "$(tty)" ]]; then + trap 'printf "\033[23;0t"' EXIT + printf '\033[22;0t' + fi + ;; + rxvt-unicode*|st-256color|xterm*) + # If the PTY was created by sshd(8) then proceed no further. + # Alas, there exist many operating environments in which the + # title would otherwise not be restored upon ssh(1) exiting. + # Those wanting for the title to be set regardless may adjust + # ~/.bashrc or create a bashrc.d drop-in to set PROMPT_COMMAND. + # For example, PROMPT_COMMAND=(genfun_set_win_title). + if [[ ${SSH_TTY} && ${SSH_TTY} == "$(tty)" ]]; then + return + fi + ;; + screen*) + # If the PTY was created by sshd(8) and screen(1) was launched + # prior to the SSH session beginning, as opposed to afterwards, + # proceed no further. It is another case in which there would be + # no guarantee of the title being restored upon ssh(1) exiting. + if [[ ! ${WINDOW} && ${SSH_TTY} && ${SSH_TTY} == "$(tty)" ]]; then + return + fi + ;; + *) + return +esac + +# Arrange for the title to be updated each time the primary prompt is displayed. +PROMPT_COMMAND+=('genfun_set_win_title') diff --git a/sdk_container/src/third_party/portage-stable/app-shells/bash/files/bashrc.d/15-gentoo-bashrc-check.bash b/sdk_container/src/third_party/portage-stable/app-shells/bash/files/bashrc.d/15-gentoo-bashrc-check.bash deleted file mode 100644 index 8f2b0405c6..0000000000 --- a/sdk_container/src/third_party/portage-stable/app-shells/bash/files/bashrc.d/15-gentoo-bashrc-check.bash +++ /dev/null @@ -1,24 +0,0 @@ -# /etc/bash/bashrc.d/15-gentoo-bashrc-check.bash - -# Some users have ~/.bashrc as a copy of ${FILESDIR}/bashrc which either matches -# exactly or is only trivially modified. Such is an improper state of affairs -# and results in the bashrc.d drop-ins being sourced twice. Warn them that they -# should use the skeleton file instead. This drop-in should be removed no sooner -# than one year from the date of its introduction. - -if [[ -e ${TMPDIR:-/tmp}/.gentoo-bashrc-check-${EUID} || ! -f ~/.bashrc ]]; then - return -fi - -{ - if grep -qxF 'for sh in /etc/bash/bashrc.d/* ; do' -- ~/.bashrc; then - cat >&3 <<'EOF' -WARNING! Your ~/.bashrc file is based on an old copy of /etc/bash/bashrc, which -is not intended for use within a home directory. Please either delete ~/.bashrc -or replace it with a copy of /etc/skel/.bashrc before optionally customizing it -further. Neglecting to do so may result in bash behaving unexpectedly. - -EOF - fi - touch -- "${TMPDIR:-/tmp}/.gentoo-bashrc-check-${EUID}" -} 3>&2 2>/dev/null diff --git a/sdk_container/src/third_party/portage-stable/dev-build/autoconf/autoconf-2.13-r8.ebuild b/sdk_container/src/third_party/portage-stable/dev-build/autoconf/autoconf-2.13-r8.ebuild index 4449670d1a..3313111af3 100644 --- a/sdk_container/src/third_party/portage-stable/dev-build/autoconf/autoconf-2.13-r8.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-build/autoconf/autoconf-2.13-r8.ebuild @@ -58,3 +58,10 @@ src_configure() { --program-suffix="-${PV}" \ --infodir="${TC_AUTOCONF_INFOPATH}" } + +src_install() { + toolchain-autoconf_src_install + + # dissuade Portage from removing our dir file + touch "${ED}"/usr/share/${P}/info/.keepinfodir || die +} diff --git a/sdk_container/src/third_party/portage-stable/dev-build/autoconf/autoconf-2.69-r10.ebuild b/sdk_container/src/third_party/portage-stable/dev-build/autoconf/autoconf-2.69-r10.ebuild index 88787e9a93..c0cf1711a7 100644 --- a/sdk_container/src/third_party/portage-stable/dev-build/autoconf/autoconf-2.69-r10.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-build/autoconf/autoconf-2.69-r10.ebuild @@ -80,3 +80,10 @@ src_prepare() { src_test() { emake check TESTSUITEFLAGS="--jobs=$(get_makeopts_jobs)" } + +src_install() { + toolchain-autoconf_src_install + + # dissuade Portage from removing our dir file + touch "${ED}"/usr/share/${P}/info/.keepinfodir || die +} diff --git a/sdk_container/src/third_party/portage-stable/dev-build/autoconf/autoconf-2.71-r6.ebuild b/sdk_container/src/third_party/portage-stable/dev-build/autoconf/autoconf-2.71-r6.ebuild index 561fc39579..2a98b4303c 100644 --- a/sdk_container/src/third_party/portage-stable/dev-build/autoconf/autoconf-2.71-r6.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-build/autoconf/autoconf-2.71-r6.ebuild @@ -80,6 +80,9 @@ src_test() { src_install() { toolchain-autoconf_src_install + # dissuade Portage from removing our dir file + touch "${ED}"/usr/share/${P}/info/.keepinfodir || die + local f for f in config.{guess,sub} ; do ln -fs ../../gnuconfig/${f} \ diff --git a/sdk_container/src/third_party/portage-stable/dev-build/autoconf/autoconf-2.71-r8.ebuild b/sdk_container/src/third_party/portage-stable/dev-build/autoconf/autoconf-2.71-r8.ebuild index a897fecdca..7838a74a45 100644 --- a/sdk_container/src/third_party/portage-stable/dev-build/autoconf/autoconf-2.71-r8.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-build/autoconf/autoconf-2.71-r8.ebuild @@ -93,6 +93,9 @@ src_test() { src_install() { toolchain-autoconf_src_install + # dissuade Portage from removing our dir file + touch "${ED}"/usr/share/${P}/info/.keepinfodir || die + local f for f in config.{guess,sub} ; do ln -fs ../../gnuconfig/${f} \ diff --git a/sdk_container/src/third_party/portage-stable/dev-build/autoconf/autoconf-2.72-r1.ebuild b/sdk_container/src/third_party/portage-stable/dev-build/autoconf/autoconf-2.72-r1.ebuild index 6f845e5743..7d5211645b 100644 --- a/sdk_container/src/third_party/portage-stable/dev-build/autoconf/autoconf-2.72-r1.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-build/autoconf/autoconf-2.72-r1.ebuild @@ -89,6 +89,9 @@ src_test() { src_install() { toolchain-autoconf_src_install + # dissuade Portage from removing our dir file + touch "${ED}"/usr/share/${P}/info/.keepinfodir || die + local f for f in config.{guess,sub} ; do ln -fs ../../gnuconfig/${f} \ diff --git a/sdk_container/src/third_party/portage-stable/dev-build/autoconf/autoconf-2.72-r3.ebuild b/sdk_container/src/third_party/portage-stable/dev-build/autoconf/autoconf-2.72-r4.ebuild similarity index 90% rename from sdk_container/src/third_party/portage-stable/dev-build/autoconf/autoconf-2.72-r3.ebuild rename to sdk_container/src/third_party/portage-stable/dev-build/autoconf/autoconf-2.72-r4.ebuild index 028dd071eb..db5c610780 100644 --- a/sdk_container/src/third_party/portage-stable/dev-build/autoconf/autoconf-2.72-r3.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-build/autoconf/autoconf-2.72-r4.ebuild @@ -29,7 +29,7 @@ else S="${WORKDIR}"/${MY_P} if [[ ${PV} != *_beta* ]] && ! [[ $(ver_cut 3) =~ [a-z] ]] ; 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-zackweinberg )" @@ -92,6 +92,9 @@ src_test() { src_install() { toolchain-autoconf_src_install + # dissuade Portage from removing our dir file + touch "${ED}"/usr/share/${P}/info/.keepinfodir || die + local f for f in config.{guess,sub} ; do ln -fs ../../gnuconfig/${f} \ diff --git a/sdk_container/src/third_party/portage-stable/dev-build/autoconf/autoconf-9999.ebuild b/sdk_container/src/third_party/portage-stable/dev-build/autoconf/autoconf-9999.ebuild index 161e1ad09e..26e402dba6 100644 --- a/sdk_container/src/third_party/portage-stable/dev-build/autoconf/autoconf-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-build/autoconf/autoconf-9999.ebuild @@ -91,6 +91,9 @@ src_test() { src_install() { toolchain-autoconf_src_install + # dissuade Portage from removing our dir file + touch "${ED}"/usr/share/${P}/info/.keepinfodir || die + local f for f in config.{guess,sub} ; do ln -fs ../../gnuconfig/${f} \ diff --git a/sdk_container/src/third_party/portage-stable/dev-build/autoconf/files/autoconf-2.72-gettext-0.25-autoreconf-Invoke-autopoint-in-more-situations.patch b/sdk_container/src/third_party/portage-stable/dev-build/autoconf/files/autoconf-2.72-gettext-0.25-autoreconf-Invoke-autopoint-in-more-situations.patch index 4d4d8ec49f..33d5cfd0a6 100644 --- a/sdk_container/src/third_party/portage-stable/dev-build/autoconf/files/autoconf-2.72-gettext-0.25-autoreconf-Invoke-autopoint-in-more-situations.patch +++ b/sdk_container/src/third_party/portage-stable/dev-build/autoconf/files/autoconf-2.72-gettext-0.25-autoreconf-Invoke-autopoint-in-more-situations.patch @@ -1,22 +1,23 @@ https://savannah.gnu.org/support/?111272 -https://file.savannah.gnu.org/file/0001-autoreconf-Invoke-autopoint-in-more-situations.patch?file_id=57356 +https://file.savannah.gnu.org/file/0001-autoreconf-Invoke-autopoint-in-more-situations.patch?file_id=57421 -From 797eceb60214565db1f13339708c288c522e34a2 Mon Sep 17 00:00:00 2001 +From e2a4935b45f273410e975ecf56ab26ad72855df0 Mon Sep 17 00:00:00 2001 From: Bruno Haible Date: Wed, 2 Jul 2025 02:43:41 +0200 -Subject: [PATCH] autoreconf: Invoke autopoint in more situations. +Subject: [PATCH 1/2] autoreconf: Invoke autopoint in more situations. Reported in . * bin/autoreconf.in (autoreconf_current_directory): Invoke autopoint also when -the package uses AM_ICONV, AC_LIB_LINKFLAGS, AC_LIB_HAVE_LINKFLAGS, or -GUILE_FLAGS. +the package uses AM_GNU_GETTEXT (without AM_GNU_GETTEXT_VERSION), AM_PO_SUBDIRS, +AM_ICONV, AC_LIB_LINKFLAGS, AC_LIB_HAVE_LINKFLAGS, AC_LIB_LINKFLAGS_FROM_LIBS, +or GUILE_FLAGS. --- - bin/autoreconf.in | 75 +++++++++++++++++++++++++++++++++++++++++++++-- - 1 file changed, 72 insertions(+), 3 deletions(-) + bin/autoreconf.in | 80 ++++++++++++++++++++++++++++++++++++++++++++--- + 1 file changed, 76 insertions(+), 4 deletions(-) diff --git a/bin/autoreconf.in b/bin/autoreconf.in -index a5ffc6fa..3f6a74fe 100644 +index a5ffc6fa..207900df 100644 --- a/bin/autoreconf.in +++ b/bin/autoreconf.in @@ -440,6 +440,8 @@ sub autoreconf_current_directory ($) @@ -28,16 +29,22 @@ index a5ffc6fa..3f6a74fe 100644 my $uses_gettext; if (-f $configure_ac) { -@@ -449,6 +451,8 @@ sub autoreconf_current_directory ($) +@@ -449,8 +451,13 @@ sub autoreconf_current_directory ($) s/#.*//; s/dnl.*//; $uses_autoconf = 1 if /AC_INIT/; -+ $uses_liblink = 1 if /AC_LIB_(?:HAVE_)LINKFLAGS/; ++ $uses_liblink = 1 if /AC_LIB_HAVE_LINKFLAGS/; ++ $uses_liblink = 1 if /AC_LIB_LINKFLAGS/; ++ $uses_liblink = 1 if /AC_LIB_LINKFLAGS_FROM_LIBS/; + $uses_iconv = 1 if /AM_ICONV/; # See below for why we look for gettext here. - $uses_gettext = 1 if /^AM_GNU_GETTEXT_(?:REQUIRE_)?VERSION/; +- $uses_gettext = 1 if /^AM_GNU_GETTEXT_(?:REQUIRE_)?VERSION/; ++ $uses_gettext = 1 if /AM_GNU_GETTEXT/; ++ $uses_gettext = 1 if /AM_PO_SUBDIRS/; } -@@ -485,7 +489,7 @@ sub autoreconf_current_directory ($) + if (!$uses_autoconf) + { +@@ -485,7 +492,7 @@ sub autoreconf_current_directory ($) # Actually, it is even more restrictive, as it greps for # '^AM_GNU_GETTEXT_(REQUIRE_)?VERSION('. We did this above, while # scanning configure.ac. @@ -46,7 +53,7 @@ index a5ffc6fa..3f6a74fe 100644 { verb "$configure_ac: not using Gettext"; } -@@ -495,8 +499,21 @@ sub autoreconf_current_directory ($) +@@ -495,8 +502,21 @@ sub autoreconf_current_directory ($) } else { @@ -70,7 +77,7 @@ index a5ffc6fa..3f6a74fe 100644 } -@@ -576,6 +593,8 @@ sub autoreconf_current_directory ($) +@@ -576,6 +596,8 @@ sub autoreconf_current_directory ($) # from the final autoconf invocation. my $aux_dir; my @aux_files; @@ -79,7 +86,7 @@ index a5ffc6fa..3f6a74fe 100644 my $uses_gettext_via_traces; my $uses_libtool; my $uses_intltool; -@@ -603,6 +622,11 @@ sub autoreconf_current_directory ($) +@@ -603,6 +625,11 @@ sub autoreconf_current_directory ($) 'AM_PROG_LIBTOOL', 'LT_INIT', 'LT_CONFIG_LTDL_DIR', @@ -91,7 +98,7 @@ index a5ffc6fa..3f6a74fe 100644 'AM_GNU_GETTEXT', 'AM_INIT_AUTOMAKE', 'GTK_DOC_CHECK', -@@ -617,6 +641,15 @@ sub autoreconf_current_directory ($) +@@ -617,6 +644,15 @@ sub autoreconf_current_directory ($) $aux_dir = $args[0] if $macro eq "AC_CONFIG_AUX_DIR"; push @aux_files, $args[0] if $macro eq "AC_REQUIRE_AUX_FILE"; $uses_autoconf = 1 if $macro eq "AC_INIT"; @@ -107,7 +114,7 @@ index a5ffc6fa..3f6a74fe 100644 $uses_gettext_via_traces = 1 if $macro eq "AM_GNU_GETTEXT"; $uses_libtool = 1 if $macro eq "AC_PROG_LIBTOOL" || $macro eq "AM_PROG_LIBTOOL" -@@ -741,6 +774,42 @@ sub autoreconf_current_directory ($) +@@ -741,6 +777,42 @@ sub autoreconf_current_directory ($) } diff --git a/sdk_container/src/third_party/portage-stable/dev-build/automake/automake-1.11.6-r4.ebuild b/sdk_container/src/third_party/portage-stable/dev-build/automake/automake-1.11.6-r4.ebuild index 589911530b..56f8239be7 100644 --- a/sdk_container/src/third_party/portage-stable/dev-build/automake/automake-1.11.6-r4.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-build/automake/automake-1.11.6-r4.ebuild @@ -57,6 +57,9 @@ src_compile() { src_install() { default + # dissuade Portage from removing our dir file + touch "${ED}"/usr/share/${P}/info/.keepinfodir || die + rm \ "${ED}"/usr/bin/{aclocal,automake} \ "${ED}"/usr/share/man/man1/{aclocal,automake}.1 || die diff --git a/sdk_container/src/third_party/portage-stable/dev-build/automake/automake-1.17-r2.ebuild b/sdk_container/src/third_party/portage-stable/dev-build/automake/automake-1.17-r2.ebuild index 346bcc2d97..22b6780f1a 100644 --- a/sdk_container/src/third_party/portage-stable/dev-build/automake/automake-1.17-r2.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-build/automake/automake-1.17-r2.ebuild @@ -106,6 +106,9 @@ src_test() { src_install() { default + # dissuade Portage from removing our dir file + touch "${ED}"/usr/share/${P}/info/.keepinfodir || die + rm "${ED}"/usr/share/aclocal/README || die rmdir "${ED}"/usr/share/aclocal || die rm \ diff --git a/sdk_container/src/third_party/portage-stable/dev-build/automake/automake-1.18.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-build/automake/automake-1.18.1.ebuild index 9a93eeab8c..730dd6a935 100644 --- a/sdk_container/src/third_party/portage-stable/dev-build/automake/automake-1.18.1.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-build/automake/automake-1.18.1.ebuild @@ -101,6 +101,9 @@ src_test() { src_install() { default + # dissuade Portage from removing our dir file + touch "${ED}"/usr/share/${P}/info/.keepinfodir || die + rm "${ED}"/usr/share/aclocal/README || die rmdir "${ED}"/usr/share/aclocal || die rm \ diff --git a/sdk_container/src/third_party/portage-stable/dev-build/automake/automake-9999.ebuild b/sdk_container/src/third_party/portage-stable/dev-build/automake/automake-9999.ebuild index a126027842..8d2944b514 100644 --- a/sdk_container/src/third_party/portage-stable/dev-build/automake/automake-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-build/automake/automake-9999.ebuild @@ -101,6 +101,9 @@ src_test() { src_install() { default + # dissuade Portage from removing our dir file + touch "${ED}"/usr/share/${P}/info/.keepinfodir || die + rm "${ED}"/usr/share/aclocal/README || die rmdir "${ED}"/usr/share/aclocal || die rm \ diff --git a/sdk_container/src/third_party/portage-stable/dev-build/cmake/Manifest b/sdk_container/src/third_party/portage-stable/dev-build/cmake/Manifest index 45a263e4fb..75467989d0 100644 --- a/sdk_container/src/third_party/portage-stable/dev-build/cmake/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-build/cmake/Manifest @@ -1,27 +1,8 @@ -DIST cmake-3.28.0-docs.tar.xz 525776 BLAKE2B b643f76012768f0100c51f0dd146230eba25b634ab4f9abd9c739b0b257e4b1d54aa01be8d2dcd27a7b1d9822bf13eb8af16ff3c6984eeefdeb58988a164bc26 SHA512 474dc77e44240de921013219bd7cdc4aee80214fbf38d60dc2ddb53c0fda8a11c466c01bbee2abbd32b711ec7524678515e39a79a5634354a6cb38f9683e229f -DIST cmake-3.28.5-SHA-256.txt 1646 BLAKE2B 763cbec9ede58cc43a7435e3fe97a9a9f28b201712f52d98ecdf8035887232fe6000675c9bab90f275ff6d44406839f04352784a921dcbc9d65c5e2440b53f52 SHA512 0fdeed277d113e4642c11b87b98305da43213bd89566e3aaaf427a11e168d9e6754632c2fd76fae542d29fddfa8b67c3c0df19f741c53fdd3aea8ce7bec73ff3 -DIST cmake-3.28.5-SHA-256.txt.asc 833 BLAKE2B bde735a577b556bc30ae1a5de0df8533243c955cc5d222537b3323e7108900af2f01799a4bfa843d953b141cc76a19aed77bfba15cf4e2c3cc36a0e7e844e853 SHA512 d495afd2ce4e16f8d3ecc0b319d59c3634aae71c26110d14225f9dd628bfe173cdd94818c69c930ef5cfff3b331445e192db0082188e0822155184e3f6f80e7d -DIST cmake-3.28.5.tar.gz 11076017 BLAKE2B 7da653e42fca4848362a97e80320ffcc85ced4951dfe475f48f1619a40dc674d2828a78df2ef09589868f41f1da86970074186f730e675851cd9e7c1b099ba4c SHA512 d8f1c056e94c835c2078a5e68b23a3918f0e2cc40ef9dacaf5df4f2c26106149d85364c01528fcc2d6a4b6c2182ba420d938c519fa98757a5fc375cf152c7f82 DIST cmake-3.31.0-docs.tar.xz 562756 BLAKE2B ef1d145658fd197ea515f05fbbad54b213bf458f3068829634242bc43bdb4f97bd45fcc45c9958919d2a78276ffc1d14d507822831f44fe9be5080ecc62e75fe SHA512 b4025633a0f42003005dfacdaea55c67e08d8f9082c8c6c564540b4d536246acedece41adb76cb00042d2f25f85b3817d23f70e393eb22a0857693d51ca60748 -DIST cmake-3.31.5-SHA-256.txt 1646 BLAKE2B 45b9e829febf185ba9f532c208e6b49bcf56e6ffbdf2fb46fb8e6bc6cc58bb890a4a27cb00eb7acfc12b595aa20dcd1343142ab9e1fd42baee12af941cb786de SHA512 1b5a6f405cdb1cfaf52a5666b67d76261121ee66e6c9b73338da72af5f6eb6a27f87b642f657ab9d64bc491b9d8526cae4699e8f053e44550b2e01c3a0f3aa1a -DIST cmake-3.31.5-SHA-256.txt.asc 833 BLAKE2B 0206a62c7816b4115e56e1f1519b6357610037f18949a3a5ce894bfd364de39918073fa267516ec4071eaf35fd641363cdaeeb0704de5918d2f6aace9e7bdfbe SHA512 016ec25b29b28845c1a2680e0b25f35b7ce89e466493caa99acaad4f8e32f9173a72afcecdddd90e89ea00ac10df3fa0dc37b3edc1de1923198e393f9f54e769 -DIST cmake-3.31.5.tar.gz 11706495 BLAKE2B 16375229d7344b10db40c76fe2fc8a3f90626683b3846a1d0ead22ae6312cc71c58ff4d4314216c0ea34f4c7c4bb8610c5923b875063d08bb247cc1c4ee1ceab SHA512 1981efafa8916371caf58b1fcbf9c9d73d365ec119279860ee2fa11f4ff72d87bb3a4570eb20a45fae95260bb8f565daf2f579a890b2dad588207b3fcc158e43 -DIST cmake-3.31.7-SHA-256.txt 1646 BLAKE2B a3b52506b586ee81cb4192ddbfa52c8f2c4456d99ce3e0f1c2e88c22a756d58905219498e41b726bce6258b5bbe44fb2c58bb0c5972303a6ca8c2dc37de59676 SHA512 eb967dbc6a4c18d1b0b97910b89a5e9392e29bd1a8c169c92899215ee15f5a8a4852c06b3643c5ce420a57ef93c9153380d75f68f23092475032850390d1ab4e -DIST cmake-3.31.7-SHA-256.txt.asc 833 BLAKE2B 9ddb47b9aa26875b294d4e3db27b4c9518c3a01f3a11d1a50afae08ef7871f52367c0d275415cd801613b036ae88f92611d03bb5d576e8bcd324c3ec46d943e1 SHA512 9b7234c8fe122cf458a42c5d5ba71bd7694c2cb610cc989d2ea2a710a5615a0f49f0747b3ab4321d0bb69987321e8256b335a3e5d29de4bc783d683b7dedae93 -DIST cmake-3.31.7.tar.gz 11711975 BLAKE2B 8bf3ea288695f6e1a9f301f8ad471e1007061cb9ed69b8a432d5de7e1779580ffbbd4050a85b1a3df30a85ee971ed0421ce14d9a77b026f7147d73ca8fee7ec9 SHA512 896f29e8e7c897e6e346141496d3f338aeaced8300fb2fd1fedcd0236742bfe4842de1c94253adf54f4847b17c5d9699c92d199cbb4a74c99ee14972c939b09e -DIST cmake-3.31.8-SHA-256.txt 1646 BLAKE2B 6067ab2d89d6be87c83beeb714cac72effe4123280caa1254048cd9ba5d0df357bafe9e958f13466d538cb5648b0c318d22e73deaeff71462ffdc72bb03df5d2 SHA512 466f1eabb7a7b0fbb72d053736ac82ed8b47621b1a57f807ec7d1ef5415ec4da6528b918f198e9625cf70c08c39dd55223df0dabae8c0f11927d368ef392035d -DIST cmake-3.31.8-SHA-256.txt.asc 833 BLAKE2B a980155910975cf401f579c6342dd2ef885fc4c28d8a5593b901749a7520966cc24c20db5499c5a67a3034f5e364c613fce6fc0232263382d44de615a3993e85 SHA512 86a5b5e9f54f5c9a4cd70b5d078adb3849719a191cad209efc191afaecd89c5386a54b9a35880e6af0dbf9d67410d0e11e932710fd9d8e61f5f88bec49a8914b -DIST cmake-3.31.8.tar.gz 11713806 BLAKE2B 387f14e4dd483a033029ad198cb00901c1eea5755462fbaa0ce38a3ffb9a155e27604cfe0d337c74aa3f156f38fb3ef48b0c545b39a4cb0becf4b552b511bf9d SHA512 07dbb5af1d449760ef92a921e43c0a0a091989ac51ce3f8b7607bf617b8b56e47c675486d3c620c04f1105b7dfa3852b926915e0888ff46ea473cd01e572f461 +DIST cmake-3.31.9-SHA-256.txt 1646 BLAKE2B 0806782ad7afaafa600e185a8e84ccb9cd4456d65eb8686be4f71f10fffc16996b3dfecc3f5620036b534040d0abf6253a3ae0b7a2e4ad7350b6f7df2bfe75be SHA512 cfe75c647578ed4a60267d08d3794c35ba738ee7f358e969fea067b56f688946dfe2c737ca06fb175f524a7f6af7ffd5b391d48ab9516a280fee41a2c0d8aa2a +DIST cmake-3.31.9-SHA-256.txt.asc 833 BLAKE2B d168612ca7bf09b4ee1c12342c147a5fd129719c48c4ca785f0ccb81df61ef61d61cec517d7a0ed6cf408efb2194ff23d7ddbb1f0553ef3e598c92505ba0c7ca SHA512 6dfc53cf097bb3d0563623e6f1170fe31c337049dbb82b3fc3d1f2a7598738a096b5653fd839ff6ad33dbd37eb847f7677ff58a049557c488d6ef47bbddf2a61 +DIST cmake-3.31.9.tar.gz 11714375 BLAKE2B cfbc9aeff695b99134234171fd515c49eaac8c875b2a84b305da08392d7b886bef756c60ca00ba57b427127fc0a2307b4e9b00cfb1382995466cc0092b549b1f SHA512 4fff8d02d3d1d938184f6a62b7b436404bdbb97a13e697bb10e325a0559e214a6010120f309fd1ed363a6e23b3042bc52a21d5da5b39732537af8bb37f4d4591 DIST cmake-4.0.0_rc1-docs.tar.xz 577536 BLAKE2B 74a742ffef8e1af1652746e1c177d4198155145a039635e6a0ea40af463f3a2d45b6c6ce7d3a9b1fee24f0c1cfd1c3aa95c27669ca3c6281d54e701fc0ece202 SHA512 74c20067d3b82493024b2f2711b55b93998ce3b5f35ab5a154f33a8268a35a29d01127c55ce6b85b80ff252d15284ed1065e1338422124f6722a4190a984637c -DIST cmake-4.0.3-SHA-256.txt 2015 BLAKE2B a346da6aa064c5b390459ab265680e0835f4a66fae6c957cedce302da13daa31e8387b1113b049d5518a2b0431d6ee9ad8fd10abec9e6b35502f954cc02a15ee SHA512 f1ce0d1d9ca3286d311611de2da19de543105dfedda5f0449648a79d0c4ecb2a221aad540915bdc3f1904966c79c60b828cb8a7e6198a718f6f6906bd07697eb -DIST cmake-4.0.3-SHA-256.txt.asc 833 BLAKE2B 0e82305e93eedfe888e2c54590e509aad58f5d634d3112c66ff5eff622619aef53e4d97f67921b5998082117430d541220df6e2e58656749ae8620aad4928a8a SHA512 d502d87bbf5bb24bdd2d6a0a1d97b854dcc09e17b00e6fa9af4610eb5984b46fd2d7a2a01c15e89bbeed25882738fa764d4b7746c4e25c197d9017277c6f95b8 -DIST cmake-4.0.3.tar.gz 11830216 BLAKE2B 4dc2705baf2404b64da88a5b8838850b782849a4dcdfb0eaefa819ba00a018885a8bd0b42f17f92c8e24b9e76c66e60880377017d8e2d584cb75b2978018e214 SHA512 d3fb9ef408a1b13cd6ef1c294b2515733d1c7220c2c639426bd8037d023ebb439f02e412dd8dd42e385b8e3553547d785eeedc47f2b0843e413b88bd5a7eab18 -DIST cmake-4.0.4-SHA-256.txt 2015 BLAKE2B 4e7c7e2ef9d4fff4cda2b85f266cc7b1de2dfd0ada2c44ae20d8efc877c9e6ab9bd9a3ae877b103572bad93cbf10b3dcec28c5ba90c712e65aa77469c1e1c40c SHA512 84554190345bfccaa53f97c8c5d852178ed1351ddec61f77c05259a1a5e94d61d87c09398a46e095731fa9c859fa94485d7243cf30ade148adabcf00f0ec6ed8 -DIST cmake-4.0.4-SHA-256.txt.asc 833 BLAKE2B 890b0f05b5fe949110c6a4343c1d307960127e85a1c8b81ecb6a8fc8bf8f82d34f21d9b5967b661ddf53f173641188a245c12b6a3723d17790c23a8abcb0ac0c SHA512 ca9acb330168d6a027fe6243d2ddbf4256ce084b11a17fd54def3610e065cb8318b97ab1fddf37c087ce87e9edd58a1ec7720fb477e63d681d9f7ee82ac7143b -DIST cmake-4.0.4.tar.gz 11830071 BLAKE2B 9ecf401fca4a16944d4499daff6995baa1c37fdac4d75bc3c4f228585612b58786ccff5273c72dae801427897b1da05f71b4ae58835f939c4bc533b4cefed5c5 SHA512 d40959be0c685e7e579557feb0c7682a19139a7d50b7d94f01b4d8d2ce083c1a806891e9f7e10b5bdde436e43a7bed91bea8318214dd6a14237b689bfe5d0041 -DIST cmake-4.1.0-SHA-256.txt 2015 BLAKE2B cbbe940911a0bfb18a0fb0dcc714ad750f348c1a7f7e176816cc6d9e32e0ae4b3f0c1ace3779e17cb443f2cce2b41bf53d756a20b665a3bdcb95d4acd0b6638f SHA512 e81e07abae94588a5ed9cb62396dba04885ed8ddda98751c991af970509e07e6899896d998b52c04c67e58e81e1af243fc64bf7a127e37027385539c5cf6a050 -DIST cmake-4.1.0-SHA-256.txt.asc 833 BLAKE2B 28b6415e1e60f81cf3295573ad43e732fbd53b8d8c76b589a56ea9a8abb02bc7de1d0875fe55ffde8588368a1555f8010769b6ffa92ef860a085b15d0b7f5917 SHA512 beb141dbb66c302a6aff1667afa56898f266e9f8d630e75b806bc2e59178ba56f5a84022b5c9d2e24fb8e762168644ba49fe059812750132c2b11b5821ee456a -DIST cmake-4.1.0.tar.gz 12042798 BLAKE2B 57e086b18f24d97e386a391151b09fe228feb22fbf0af31f26859069cf269de32b763d1545cdd18f5f73ede1980a83cb21a2b9a8a04a5aa0b08f2525def4c134 SHA512 644b6b13539ba0e7f35a7496e4240b1d3361606163f35b69006e47d03ffd9759d35c62a73826253ed168af4196df29983ec10c0f561ea74d7ed6ffee0c2cd8e4 -DIST cmake-4.1.1-SHA-256.txt 2015 BLAKE2B 6e8f947ae9bcf0ffbbd379a58c131999ecb1a8030cac646eb50991e22870ec3f5500e4551d6a7d2bfda59470ca0a86c22cb0acfde8b73f07cd7f537aa4b9cb4f SHA512 68d801a10733d8c2580cee08314a4de96eec31b11c046249c0633f5691fdb2cc3f96525ea6fd3d3ec9b21ecd186658e692392d11d40e80927320b545c2e1833c -DIST cmake-4.1.1-SHA-256.txt.asc 833 BLAKE2B 25b644d353c54a132b2b7721e92a0ab6ee4b807a3b05f58665925ebdc0a19b1200e46028827a38a97ee61b652ed3f9df37c12cddd19448118bce572401836858 SHA512 cc292de8cc118e795f8de23c07312f8530452ec266b42f2a9c6bbdb05ff4951cdb96fa62472a5df8ec0044eed542ebd0df773f0dbace1aa9826a6056b48c7ca5 -DIST cmake-4.1.1.tar.gz 12042807 BLAKE2B 8e0806d2d2342c646ca3379dd9481dd27705d84d9720dc572beadd9e8eac48dd27398df6bdade34eb5294416aa62bb075eaa622c28679a82bacafc66f1b165c2 SHA512 40f16fbe66562aec574e08758c7b8a09536b8c7086fe7f6f9123e5255a9fc1aa638b0f88b3812ed5c8e6bc4550d0ee0be304dc71be6c980dbc44d1899d238e30 +DIST cmake-4.1.2-SHA-256.txt 2015 BLAKE2B f627a8089da03f59bf257d79751f2f46ce48a95eebe79e597faf7f541eef5cb17dde4bb01db3d269efa18167a0c177e808085d813dde72f5d85aa73216ecb81c SHA512 47d8530ec08caaef28f949e0b23dc4a155898b9e72e9f8d038785f74284df0dfc7fb22ffbad3f7d0d17ceeafdc1784090d7c1fca8177dcd9f88d15916d5beeb4 +DIST cmake-4.1.2-SHA-256.txt.asc 833 BLAKE2B e14f3140aeddc3a63dc2c2a86f6188631a26740d24529508ea363942d12da0565c428da13148108a4fcc6ef79938f14f48e04eade66ec0e3a8c7073242e77023 SHA512 3344bed89dd64533bb74b805af9044af27d490449d2d4eb8491b9c3591e04c86d06bd10955753fd0ad14eef83e26428bb221c88b1eff341dee0d1ba4b2652e1c +DIST cmake-4.1.2.tar.gz 12048810 BLAKE2B a15dcfa25d22373bcd0a92109fe9e4a42b37ee4d9bcc1a635cadd13d18f9bafe3a7b08db2cdd0fa0a5269655b873159fffac617ecd7a610f1516c9545691e9a3 SHA512 169b8ebfbd2c880a1f3ed8c3da8d4b8e9252a5a1ff9f0011e39bb3bb84d183f0379eea880b80e2e052c333db91e49b80e5a65131f71fc8582709b604e94bf280 diff --git a/sdk_container/src/third_party/portage-stable/dev-build/cmake/cmake-3.28.5.ebuild b/sdk_container/src/third_party/portage-stable/dev-build/cmake/cmake-3.28.5.ebuild deleted file mode 100644 index c5a78f307f..0000000000 --- a/sdk_container/src/third_party/portage-stable/dev-build/cmake/cmake-3.28.5.ebuild +++ /dev/null @@ -1,277 +0,0 @@ -# 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-cmake-docs -# Set to 1 if prebuilt, 0 if not -# (the construct below is to allow overriding from env for script) -: ${CMAKE_DOCS_PREBUILT:=1} - -CMAKE_DOCS_PREBUILT_DEV=sam -CMAKE_DOCS_VERSION=$(ver_cut 1-2).0 -# Default to generating docs (inc. man pages) if no prebuilt; overridden later -# See bug #784815 -CMAKE_DOCS_USEFLAG="+doc" - -# TODO RunCMake.LinkWhatYouUse fails consistently w/ ninja -# ... but seems fine as of 3.22.3? -# TODO ... but bootstrap sometimes(?) fails with ninja now. bug #834759. -CMAKE_MAKEFILE_GENERATOR="emake" -CMAKE_REMOVE_MODULES_LIST=( none ) -inherit bash-completion-r1 cmake flag-o-matic multiprocessing \ - toolchain-funcs xdg-utils - -MY_P="${P/_/-}" - -DESCRIPTION="Cross platform Make" -HOMEPAGE="https://cmake.org/" -if [[ ${PV} == *9999* ]] ; then - CMAKE_DOCS_PREBUILT=0 - - EGIT_REPO_URI="https://gitlab.kitware.com/cmake/cmake.git" - inherit git-r3 -else - SRC_URI="https://cmake.org/files/v$(ver_cut 1-2)/${MY_P}.tar.gz" - - if [[ ${CMAKE_DOCS_PREBUILT} == 1 ]] ; then - SRC_URI+=" !doc? ( https://dev.gentoo.org/~${CMAKE_DOCS_PREBUILT_DEV}/distfiles/${CATEGORY}/${PN}/${PN}-${CMAKE_DOCS_VERSION}-docs.tar.xz )" - fi - - if [[ ${PV} != *_rc* ]] ; then - VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/bradking.asc - inherit verify-sig - - SRC_URI+=" verify-sig? ( - https://github.com/Kitware/CMake/releases/download/v$(ver_cut 1-3)/${MY_P}-SHA-256.txt - https://github.com/Kitware/CMake/releases/download/v$(ver_cut 1-3)/${MY_P}-SHA-256.txt.asc - )" - - KEYWORDS="ppc" - - BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-bradking-20230817 )" - fi -fi - -[[ ${CMAKE_DOCS_PREBUILT} == 1 ]] && CMAKE_DOCS_USEFLAG="doc" - -S="${WORKDIR}/${MY_P}" - -LICENSE="BSD" -SLOT="0" -IUSE="${CMAKE_DOCS_USEFLAG} dap gui ncurses test" -RESTRICT="!test? ( test )" - -RDEPEND=" - >=app-arch/libarchive-3.3.3:= - app-crypt/rhash:0= - >=dev-libs/expat-2.0.1 - >=dev-libs/jsoncpp-1.9.2-r2:0= - >=dev-libs/libuv-1.10.0:= - >=net-misc/curl-7.21.5[ssl] - sys-libs/zlib - virtual/pkgconfig - dap? ( dev-cpp/cppdap ) - gui? ( dev-qt/qtbase:6[gui,widgets] ) - ncurses? ( sys-libs/ncurses:= ) -" -DEPEND="${RDEPEND}" -BDEPEND+=" - doc? ( - dev-python/requests - dev-python/sphinx - ) - test? ( app-arch/libarchive[zstd] ) -" - -SITEFILE="50${PN}-gentoo.el" - -PATCHES=( - # Prefix - "${FILESDIR}"/${PN}-3.27.0_rc1-0001-Don-t-use-.so-for-modules-on-darwin-macos.-Use-.bund.patch - "${FILESDIR}"/${PN}-3.27.0_rc1-0002-Set-some-proper-paths-to-make-cmake-find-our-tools.patch - # Misc - "${FILESDIR}"/${PN}-3.27.0_rc1-0003-Prefer-pkgconfig-in-FindBLAS.patch - "${FILESDIR}"/${PN}-3.27.0_rc1-0004-Ensure-that-the-correct-version-of-Qt-is-always-used.patch - "${FILESDIR}"/${PN}-3.27.0_rc1-0005-Respect-Gentoo-s-Python-eclasses.patch - "${FILESDIR}"/${PN}-3.27.0_rc1-0006-Filter-out-distcc-warnings-to-avoid-confusing-CMake.patch - - # Upstream fixes (can usually be removed with a version bump) - "${FILESDIR}"/${PN}-3.31.6-curl-8.13.0.patch - "${FILESDIR}"/${PN}-3.28.5-curl-8.16.0.patch -) - -cmake_src_bootstrap() { - # disable running of cmake in bootstrap command - sed -i \ - -e '/"${cmake_bootstrap_dir}\/cmake"/s/^/#DONOTRUN /' \ - bootstrap || die "sed failed" - - # execinfo.h on Solaris isn't quite what it is on Darwin - if [[ ${CHOST} == *-solaris* ]] ; then - sed -i -e 's/execinfo\.h/blablabla.h/' \ - Source/kwsys/CMakeLists.txt || die - fi - - # bootstrap script isn't exactly /bin/sh compatible - tc-env_build ${CONFIG_SHELL:-sh} ./bootstrap \ - --prefix="${T}/cmakestrap/" \ - --parallel=$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)") \ - || die "Bootstrap failed" -} - -src_unpack() { - if [[ ${PV} == 9999 ]] ; then - git-r3_src_unpack - elif [[ ${PV} == *_rc* ]] || ! use verify-sig ; then - default - else - cd "${DISTDIR}" || die - - # See https://mgorny.pl/articles/verify-sig-by-example.html#verifying-using-a-checksum-file-with-a-detached-signature - verify-sig_verify_detached ${MY_P}-SHA-256.txt{,.asc} - verify-sig_verify_unsigned_checksums ${MY_P}-SHA-256.txt sha256 ${MY_P}.tar.gz - - cd "${WORKDIR}" || die - - default - fi -} - -src_prepare() { - cmake_src_prepare - - if [[ ${CHOST} == *-darwin* ]] ; then - # Disable Xcode hooks, bug #652134 - sed -i -e 's/cm\(\|Global\|Local\)XCode[^.]\+\.\(cxx\|h\)//' \ - Source/CMakeLists.txt || die - sed -i -e '/define CMAKE_USE_XCODE/s/XCODE/NO_XCODE/' \ - -e '/cmGlobalXCodeGenerator.h/d' \ - Source/cmake.cxx || die - - # Disable isysroot usage with GCC, we've properly instructed - # where things are via GCC configuration and ldwrapper - sed -i -e '/cmake_gnu_set_sysroot_flag/d' \ - Modules/Platform/Apple-GNU-*.cmake || die - # Disable isysroot usage with clang as well - sed -i -e '/_SYSROOT_FLAG/d' \ - Modules/Platform/Apple-Clang.cmake || die - # Don't set a POSIX standard, system headers don't like that, #757426 - sed -i -e 's/^#if !defined(_WIN32) && !defined(__sun)/& \&\& !defined(__APPLE__)/' \ - Source/cmLoadCommandCommand.cxx \ - Source/cmStandardLexer.h \ - Source/cmSystemTools.cxx \ - Source/cmTimestamp.cxx - sed -i -e 's/^#if !defined(_POSIX_C_SOURCE) && !defined(_WIN32) && !defined(__sun)/& \&\& !defined(__APPLE__)/' \ - Source/cmStandardLexer.h - fi - - # Add gcc libs to the default link paths - sed -i \ - -e "s|@GENTOO_PORTAGE_GCCLIBDIR@|${EPREFIX}/usr/${CHOST}/lib/|g" \ - -e "$(usex prefix-guest "s|@GENTOO_HOST@||" "/@GENTOO_HOST@/d")" \ - -e "s|@GENTOO_PORTAGE_EPREFIX@|${EPREFIX}/|g" \ - Modules/Platform/{UnixPaths,Darwin}.cmake || die "sed failed" - - ## in theory we could handle these flags in src_configure, as we do in many other packages. But we *must* - ## handle them as part of bootstrapping, sadly. - - # Fix linking on Solaris - [[ ${CHOST} == *-solaris* ]] && append-ldflags -lsocket -lnsl - - # ODR warnings, bug #858335 - # https://gitlab.kitware.com/cmake/cmake/-/issues/20740 - filter-lto - - if ! has_version -b \>=${CATEGORY}/${PN}-3.13 || ! cmake --version &>/dev/null ; then - CMAKE_BINARY="${S}/Bootstrap.cmk/cmake" - cmake_src_bootstrap - fi -} - -src_configure() { - local mycmakeargs=( - -DCMAKE_USE_SYSTEM_LIBRARIES=ON - -DCMake_ENABLE_DEBUGGER=$(usex dap) - -DCMAKE_DOC_DIR=/share/doc/${PF} - -DCMAKE_MAN_DIR=/share/man - -DCMAKE_DATA_DIR=/share/${PN} - -DSPHINX_MAN=$(usex doc) - -DSPHINX_HTML=$(usex doc) - -DBUILD_CursesDialog="$(usex ncurses)" - -DBUILD_TESTING=$(usex test) - -DBUILD_QtDialog=$(usex gui) - ) - - use gui && mycmakeargs+=( -DCMake_QT_MAJOR_VERSION=6 ) - - cmake_src_configure -} - -src_test() { - # Fix OutDir and SelectLibraryConfigurations tests - # these are altered thanks to our eclass - sed -i -e 's:^#_cmake_modify_IGNORE ::g' \ - "${S}"/Tests/{OutDir,CMakeOnly/SelectLibraryConfigurations}/CMakeLists.txt \ - || die - - pushd "${BUILD_DIR}" > /dev/null || die - - # Excluded tests: - # BootstrapTest: we actually bootstrap it every time so why test it. - # BundleUtilities: bundle creation broken - # CMakeOnly.AllFindModules: pthread issues - # CTest.updatecvs: which fails to commit as root - # Fortran: requires fortran - # RunCMake.CompilerLauncher: also requires fortran - # RunCMake.CPack_RPM: breaks if app-arch/rpm is installed because - # debugedit binary is not in the expected location - # RunCMake.CPack_DEB: breaks if app-arch/dpkg is installed because - # it can't find a deb package that owns libc - # TestUpload, which requires network access - # RunCMake.CMP0125, known failure reported upstream (bug #829414) - local myctestargs=( - --output-on-failure - -E "(BootstrapTest|BundleUtilities|CMakeOnly.AllFindModules|CompileOptions|CTest.UpdateCVS|Fortran|RunCMake.CompilerLauncher|RunCMake.CPack_(DEB|RPM)|TestUpload|RunCMake.CMP0125)" \ - ) - - local -x QT_QPA_PLATFORM=offscreen - - cmake_src_test -} - -src_install() { - cmake_src_install - - # If USE=doc, there'll be newly generated docs which we install instead. - if ! use doc && [[ ${CMAKE_DOCS_PREBUILT} == 1 ]] ; then - doman "${WORKDIR}"/${PN}-${CMAKE_DOCS_VERSION}-docs/man*/*.[0-8] - fi - - insinto /usr/share/vim/vimfiles/syntax - doins Auxiliary/vim/syntax/cmake.vim - - insinto /usr/share/vim/vimfiles/indent - doins Auxiliary/vim/indent/cmake.vim - - insinto /usr/share/vim/vimfiles/ftdetect - doins "${FILESDIR}/${PN}.vim" - - dobashcomp Auxiliary/bash-completion/{${PN},ctest,cpack} -} - -pkg_postinst() { - if use gui; then - xdg_icon_cache_update - xdg_desktop_database_update - xdg_mimeinfo_database_update - fi -} - -pkg_postrm() { - if use gui; then - xdg_icon_cache_update - xdg_desktop_database_update - xdg_mimeinfo_database_update - fi -} diff --git a/sdk_container/src/third_party/portage-stable/dev-build/cmake/cmake-3.31.5.ebuild b/sdk_container/src/third_party/portage-stable/dev-build/cmake/cmake-3.31.5.ebuild deleted file mode 100644 index edaa056964..0000000000 --- a/sdk_container/src/third_party/portage-stable/dev-build/cmake/cmake-3.31.5.ebuild +++ /dev/null @@ -1,315 +0,0 @@ -# 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-cmake-docs -# Set to 1 if prebuilt, 0 if not -# (the construct below is to allow overriding from env for script) -: ${CMAKE_DOCS_PREBUILT:=1} - -CMAKE_DOCS_PREBUILT_DEV=sam -CMAKE_DOCS_VERSION=$(ver_cut 1-2).0 -# Default to generating docs (inc. man pages) if no prebuilt; overridden later -# See bug #784815 -CMAKE_DOCS_USEFLAG="+doc" - -# TODO RunCMake.LinkWhatYouUse fails consistently w/ ninja -# ... but seems fine as of 3.22.3? -# TODO ... but bootstrap sometimes(?) fails with ninja now. bug #834759. -CMAKE_MAKEFILE_GENERATOR="emake" -CMAKE_REMOVE_MODULES_LIST=( none ) -inherit bash-completion-r1 cmake flag-o-matic multiprocessing \ - toolchain-funcs xdg-utils - -MY_P="${P/_/-}" - -DESCRIPTION="Cross platform Make" -HOMEPAGE="https://cmake.org/" -if [[ ${PV} == *9999* ]] ; then - CMAKE_DOCS_PREBUILT=0 - - EGIT_REPO_URI="https://gitlab.kitware.com/cmake/cmake.git" - inherit git-r3 -else - SRC_URI="https://cmake.org/files/v$(ver_cut 1-2)/${MY_P}.tar.gz" - - if [[ ${CMAKE_DOCS_PREBUILT} == 1 ]] ; then - SRC_URI+=" !doc? ( https://dev.gentoo.org/~${CMAKE_DOCS_PREBUILT_DEV}/distfiles/${CATEGORY}/${PN}/${PN}-${CMAKE_DOCS_VERSION}-docs.tar.xz )" - fi - - if [[ ${PV} != *_rc* ]] ; then - VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/bradking.asc - inherit verify-sig - - SRC_URI+=" verify-sig? ( - https://github.com/Kitware/CMake/releases/download/v$(ver_cut 1-3)/${MY_P}-SHA-256.txt - https://github.com/Kitware/CMake/releases/download/v$(ver_cut 1-3)/${MY_P}-SHA-256.txt.asc - )" - - 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" - - BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-bradking-20240902 )" - fi -fi - -[[ ${CMAKE_DOCS_PREBUILT} == 1 ]] && CMAKE_DOCS_USEFLAG="doc" - -S="${WORKDIR}/${MY_P}" - -LICENSE="BSD" -SLOT="0" -IUSE="${CMAKE_DOCS_USEFLAG} dap gui ncurses test" -RESTRICT="!test? ( test )" - -RDEPEND=" - >=app-arch/libarchive-3.3.3:= - app-crypt/rhash:0= - >=dev-libs/expat-2.0.1 - >=dev-libs/jsoncpp-1.9.2-r2:0= - >=dev-libs/libuv-1.10.0:= - >=net-misc/curl-7.21.5[ssl] - sys-libs/zlib - virtual/pkgconfig - dap? ( dev-cpp/cppdap ) - gui? ( dev-qt/qtbase:6[gui,widgets] ) - ncurses? ( sys-libs/ncurses:= ) -" -DEPEND="${RDEPEND}" -BDEPEND+=" - doc? ( - dev-python/requests - dev-python/sphinx - ) - test? ( app-arch/libarchive[zstd] ) -" - -SITEFILE="50${PN}-gentoo.el" - -PATCHES=( - # Prefix - "${FILESDIR}"/${PN}-3.27.0_rc1-0001-Don-t-use-.so-for-modules-on-darwin-macos.-Use-.bund.patch - "${FILESDIR}"/${PN}-3.27.0_rc1-0002-Set-some-proper-paths-to-make-cmake-find-our-tools.patch - # Misc - "${FILESDIR}"/${PN}-3.27.0_rc1-0003-Prefer-pkgconfig-in-FindBLAS.patch - "${FILESDIR}"/${PN}-3.27.0_rc1-0004-Ensure-that-the-correct-version-of-Qt-is-always-used.patch - "${FILESDIR}"/${PN}-3.27.0_rc1-0005-Respect-Gentoo-s-Python-eclasses.patch - # Cuda - "${FILESDIR}/${PN}-3.30.3-cudahostld.patch" - - # Upstream fixes (can usually be removed with a version bump) - "${FILESDIR}"/${PN}-3.31.6-curl-8.13.0.patch - "${FILESDIR}/${PN}-4.1.1-curl-8.16.0.patch" -) - -cmake_src_bootstrap() { - # disable running of cmake in bootstrap command - sed -i \ - -e '/"${cmake_bootstrap_dir}\/cmake"/s/^/#DONOTRUN /' \ - bootstrap || die "sed failed" - - # execinfo.h on Solaris isn't quite what it is on Darwin - if [[ ${CHOST} == *-solaris* ]] ; then - sed -i -e 's/execinfo\.h/blablabla.h/' \ - Source/kwsys/CMakeLists.txt || die - fi - - # bootstrap script isn't exactly /bin/sh compatible - tc-env_build ${CONFIG_SHELL:-sh} ./bootstrap \ - --prefix="${T}/cmakestrap/" \ - --parallel=$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)") \ - || die "Bootstrap failed" -} - -pkg_pretend() { - if [[ -z ${EPREFIX} ]] ; then - local file - local errant_files=() - - # See bug #599684 and bug #753581 (at least) - for file in /etc/arch-release /etc/redhat-release /etc/debian_version ; do - if [[ -e ${file} ]]; then - errant_files+=( "${file}" ) - fi - done - - # If errant files exist - if [[ ${#errant_files[@]} -gt 0 ]]; then - eerror "Errant files found!" - eerror "The presence of these files is known to confuse CMake's" - eerror "library path logic. Please (re)move these files:" - - for file in "${errant_files[@]}"; do - eerror " mv ${file} ${file}.bak" - done - - die "Stray files found in /etc/, see above message" - fi - fi -} - -src_unpack() { - if [[ ${PV} == 9999 ]] ; then - git-r3_src_unpack - elif [[ ${PV} == *_rc* ]] || ! use verify-sig ; then - default - else - cd "${DISTDIR}" || die - - # See https://mgorny.pl/articles/verify-sig-by-example.html#verifying-using-a-checksum-file-with-a-detached-signature - verify-sig_verify_detached ${MY_P}-SHA-256.txt{,.asc} - verify-sig_verify_unsigned_checksums ${MY_P}-SHA-256.txt sha256 ${MY_P}.tar.gz - - cd "${WORKDIR}" || die - - default - fi -} - -src_prepare() { - cmake_src_prepare - - if [[ ${CHOST} == *-darwin* ]] ; then - # Disable Xcode hooks, bug #652134 - sed -i -e 's/cm\(\|Global\|Local\)XCode[^.]\+\.\(cxx\|h\)//' \ - Source/CMakeLists.txt || die - sed -i -e '/define CMAKE_USE_XCODE/s/XCODE/NO_XCODE/' \ - -e '/cmGlobalXCodeGenerator.h/d' \ - Source/cmake.cxx || die - # Disable system integration, bug #933744 - sed -i -e 's/__APPLE__/__DISABLED__/' \ - Source/cmFindProgramCommand.cxx \ - Source/CPack/cmCPackGeneratorFactory.cxx || die - sed -i -e 's/__MAC_OS_X_VERSION_MIN_REQUIRED/__DISABLED__/' \ - Source/cmMachO.cxx || die - sed -i -e 's:CPack/cmCPack\(Bundle\|DragNDrop\|PKG\|ProductBuild\)Generator.cxx::' \ - Source/CMakeLists.txt || die - - # Disable isysroot usage with GCC, we've properly instructed - # where things are via GCC configuration and ldwrapper - sed -i -e '/cmake_gnu_set_sysroot_flag/d' \ - Modules/Platform/Apple-GNU-*.cmake || die - # Disable isysroot usage with clang as well - sed -i -e '/_SYSROOT_FLAG/d' \ - Modules/Platform/Apple-Clang.cmake || die - # Don't set a POSIX standard, system headers don't like that, #757426 - sed -i -e 's/^#if !defined(_WIN32) && !defined(__sun)/& \&\& !defined(__APPLE__)/' \ - Source/cmLoadCommandCommand.cxx \ - Source/cmStandardLexer.h \ - Source/cmSystemTools.cxx \ - Source/cmTimestamp.cxx - sed -i -e 's/^#if !defined(_POSIX_C_SOURCE) && !defined(_WIN32) && !defined(__sun)/& \&\& !defined(__APPLE__)/' \ - Source/cmStandardLexer.h - fi - - # Add gcc libs to the default link paths - sed -i \ - -e "s|@GENTOO_PORTAGE_GCCLIBDIR@|${EPREFIX}/usr/${CHOST}/lib/|g" \ - -e "$(usex prefix-guest "s|@GENTOO_HOST@||" "/@GENTOO_HOST@/d")" \ - -e "s|@GENTOO_PORTAGE_EPREFIX@|${EPREFIX}/|g" \ - Modules/Platform/{UnixPaths,Darwin}.cmake || die "sed failed" - - ## in theory we could handle these flags in src_configure, as we do in many other packages. But we *must* - ## handle them as part of bootstrapping, sadly. - - # Fix linking on Solaris - [[ ${CHOST} == *-solaris* ]] && append-ldflags -lsocket -lnsl - - # ODR warnings, bug #858335 - # https://gitlab.kitware.com/cmake/cmake/-/issues/20740 - filter-lto - - if ! has_version -b \>=${CATEGORY}/${PN}-3.13 || ! cmake --version &>/dev/null ; then - CMAKE_BINARY="${S}/Bootstrap.cmk/cmake" - cmake_src_bootstrap - fi -} - -src_configure() { - local mycmakeargs=( - -DCMAKE_USE_SYSTEM_LIBRARIES=ON - -DCMake_ENABLE_DEBUGGER=$(usex dap) - -DCMAKE_DOC_DIR=/share/doc/${PF} - -DCMAKE_MAN_DIR=/share/man - -DCMAKE_DATA_DIR=/share/${PN} - -DSPHINX_MAN=$(usex doc) - -DSPHINX_HTML=$(usex doc) - -DBUILD_CursesDialog="$(usex ncurses)" - -DBUILD_TESTING=$(usex test) - -DBUILD_QtDialog=$(usex gui) - ) - - use gui && mycmakeargs+=( -DCMake_QT_MAJOR_VERSION=6 ) - - cmake_src_configure -} - -src_test() { - # Fix OutDir and SelectLibraryConfigurations tests - # these are altered thanks to our eclass - sed -i -e 's:^#_cmake_modify_IGNORE ::g' \ - "${S}"/Tests/{OutDir,CMakeOnly/SelectLibraryConfigurations}/CMakeLists.txt \ - || die - - unset CLICOLOR CLICOLOR_FORCE CMAKE_COMPILER_COLOR_DIAGNOSTICS CMAKE_COLOR_DIAGNOSTICS - - pushd "${BUILD_DIR}" > /dev/null || die - - # Excluded tests: - # BootstrapTest: we actually bootstrap it every time so why test it? - # BundleUtilities: bundle creation broken - # CMakeOnly.AllFindModules: pthread issues - # CTest.updatecvs: which fails to commit as root - # Fortran: requires fortran - # RunCMake.CompilerLauncher: also requires fortran - # RunCMake.CPack_RPM: breaks if app-arch/rpm is installed because - # debugedit binary is not in the expected location - # RunCMake.CPack_DEB: breaks if app-arch/dpkg is installed because - # it can't find a deb package that owns libc - # TestUpload, which requires network access - # RunCMake.CMP0125, known failure reported upstream (bug #829414) - local myctestargs=( - --output-on-failure - -E "(BootstrapTest|BundleUtilities|CMakeOnly.AllFindModules|CompileOptions|CTest.UpdateCVS|Fortran|RunCMake.CompilerLauncher|RunCMake.CPack_(DEB|RPM)|TestUpload|RunCMake.CMP0125)" \ - ) - - local -x QT_QPA_PLATFORM=offscreen - - cmake_src_test -} - -src_install() { - cmake_src_install - - # If USE=doc, there'll be newly generated docs which we install instead. - if ! use doc && [[ ${CMAKE_DOCS_PREBUILT} == 1 ]] ; then - doman "${WORKDIR}"/${PN}-${CMAKE_DOCS_VERSION}-docs/man*/*.[0-8] - fi - - insinto /usr/share/vim/vimfiles/syntax - doins Auxiliary/vim/syntax/cmake.vim - - insinto /usr/share/vim/vimfiles/indent - doins Auxiliary/vim/indent/cmake.vim - - insinto /usr/share/vim/vimfiles/ftdetect - doins "${FILESDIR}/${PN}.vim" - - dobashcomp Auxiliary/bash-completion/{${PN},ctest,cpack} -} - -pkg_postinst() { - if use gui; then - xdg_icon_cache_update - xdg_desktop_database_update - xdg_mimeinfo_database_update - fi -} - -pkg_postrm() { - if use gui; then - xdg_icon_cache_update - xdg_desktop_database_update - xdg_mimeinfo_database_update - fi -} diff --git a/sdk_container/src/third_party/portage-stable/dev-build/cmake/cmake-3.31.7-r1.ebuild b/sdk_container/src/third_party/portage-stable/dev-build/cmake/cmake-3.31.7-r1.ebuild deleted file mode 100644 index 9f0ab88bff..0000000000 --- a/sdk_container/src/third_party/portage-stable/dev-build/cmake/cmake-3.31.7-r1.ebuild +++ /dev/null @@ -1,315 +0,0 @@ -# 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-cmake-docs -# Set to 1 if prebuilt, 0 if not -# (the construct below is to allow overriding from env for script) -: ${CMAKE_DOCS_PREBUILT:=1} - -CMAKE_DOCS_PREBUILT_DEV=sam -CMAKE_DOCS_VERSION=$(ver_cut 1-2).0 -# Default to generating docs (inc. man pages) if no prebuilt; overridden later -# See bug #784815 -CMAKE_DOCS_USEFLAG="+doc" - -# TODO RunCMake.LinkWhatYouUse fails consistently w/ ninja -# ... but seems fine as of 3.22.3? -# TODO ... but bootstrap sometimes(?) fails with ninja now. bug #834759. -CMAKE_MAKEFILE_GENERATOR="emake" -CMAKE_REMOVE_MODULES_LIST=( none ) -inherit bash-completion-r1 cmake flag-o-matic multiprocessing \ - toolchain-funcs xdg-utils - -MY_P="${P/_/-}" - -DESCRIPTION="Cross platform Make" -HOMEPAGE="https://cmake.org/" -if [[ ${PV} == *9999* ]] ; then - CMAKE_DOCS_PREBUILT=0 - - EGIT_REPO_URI="https://gitlab.kitware.com/cmake/cmake.git" - inherit git-r3 -else - SRC_URI="https://cmake.org/files/v$(ver_cut 1-2)/${MY_P}.tar.gz" - - if [[ ${CMAKE_DOCS_PREBUILT} == 1 ]] ; then - SRC_URI+=" !doc? ( https://dev.gentoo.org/~${CMAKE_DOCS_PREBUILT_DEV}/distfiles/${CATEGORY}/${PN}/${PN}-${CMAKE_DOCS_VERSION}-docs.tar.xz )" - fi - - if [[ ${PV} != *_rc* ]] ; then - VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/bradking.asc - inherit verify-sig - - SRC_URI+=" verify-sig? ( - https://github.com/Kitware/CMake/releases/download/v$(ver_cut 1-3)/${MY_P}-SHA-256.txt - https://github.com/Kitware/CMake/releases/download/v$(ver_cut 1-3)/${MY_P}-SHA-256.txt.asc - )" - - 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" - - BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-bradking-20240902 )" - fi -fi - -[[ ${CMAKE_DOCS_PREBUILT} == 1 ]] && CMAKE_DOCS_USEFLAG="doc" - -S="${WORKDIR}/${MY_P}" - -LICENSE="BSD" -SLOT="0" -IUSE="${CMAKE_DOCS_USEFLAG} dap gui ncurses test" -RESTRICT="!test? ( test )" - -RDEPEND=" - >=app-arch/libarchive-3.3.3:= - app-crypt/rhash:0= - >=dev-libs/expat-2.0.1 - >=dev-libs/jsoncpp-1.9.2-r2:0= - >=dev-libs/libuv-1.10.0:= - >=net-misc/curl-7.21.5[ssl] - sys-libs/zlib - virtual/pkgconfig - dap? ( dev-cpp/cppdap ) - gui? ( dev-qt/qtbase:6[gui,widgets] ) - ncurses? ( sys-libs/ncurses:= ) -" -DEPEND="${RDEPEND}" -BDEPEND+=" - doc? ( - dev-python/requests - dev-python/sphinx - ) - test? ( app-arch/libarchive[zstd] ) -" - -SITEFILE="50${PN}-gentoo.el" - -PATCHES=( - # Prefix - "${FILESDIR}"/${PN}-3.27.0_rc1-0001-Don-t-use-.so-for-modules-on-darwin-macos.-Use-.bund.patch - "${FILESDIR}"/${PN}-3.27.0_rc1-0002-Set-some-proper-paths-to-make-cmake-find-our-tools.patch - # Misc - "${FILESDIR}"/${PN}-3.31.6-Prefer-pkgconfig-in-FindBLAS.patch - "${FILESDIR}"/${PN}-3.27.0_rc1-0004-Ensure-that-the-correct-version-of-Qt-is-always-used.patch - "${FILESDIR}"/${PN}-3.27.0_rc1-0005-Respect-Gentoo-s-Python-eclasses.patch - # Cuda - "${FILESDIR}"/${PN}-3.30.3-cudahostld.patch - - # Upstream fixes (can usually be removed with a version bump) - "${FILESDIR}"/${PN}-3.31.7-hdf5.patch - "${FILESDIR}/${PN}-4.1.1-curl-8.16.0.patch" -) - -cmake_src_bootstrap() { - # disable running of cmake in bootstrap command - sed -i \ - -e '/"${cmake_bootstrap_dir}\/cmake"/s/^/#DONOTRUN /' \ - bootstrap || die "sed failed" - - # execinfo.h on Solaris isn't quite what it is on Darwin - if [[ ${CHOST} == *-solaris* ]] ; then - sed -i -e 's/execinfo\.h/blablabla.h/' \ - Source/kwsys/CMakeLists.txt || die - fi - - # bootstrap script isn't exactly /bin/sh compatible - tc-env_build ${CONFIG_SHELL:-sh} ./bootstrap \ - --prefix="${T}/cmakestrap/" \ - --parallel=$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)") \ - || die "Bootstrap failed" -} - -pkg_pretend() { - if [[ -z ${EPREFIX} ]] ; then - local file - local errant_files=() - - # See bug #599684 and bug #753581 (at least) - for file in /etc/arch-release /etc/redhat-release /etc/debian_version ; do - if [[ -e ${file} ]]; then - errant_files+=( "${file}" ) - fi - done - - # If errant files exist - if [[ ${#errant_files[@]} -gt 0 ]]; then - eerror "Errant files found!" - eerror "The presence of these files is known to confuse CMake's" - eerror "library path logic. Please (re)move these files:" - - for file in "${errant_files[@]}"; do - eerror " mv ${file} ${file}.bak" - done - - die "Stray files found in /etc/, see above message" - fi - fi -} - -src_unpack() { - if [[ ${PV} == 9999 ]] ; then - git-r3_src_unpack - elif [[ ${PV} == *_rc* ]] || ! use verify-sig ; then - default - else - cd "${DISTDIR}" || die - - # See https://mgorny.pl/articles/verify-sig-by-example.html#verifying-using-a-checksum-file-with-a-detached-signature - verify-sig_verify_detached ${MY_P}-SHA-256.txt{,.asc} - verify-sig_verify_unsigned_checksums ${MY_P}-SHA-256.txt sha256 ${MY_P}.tar.gz - - cd "${WORKDIR}" || die - - default - fi -} - -src_prepare() { - cmake_src_prepare - - if [[ ${CHOST} == *-darwin* ]] ; then - # Disable Xcode hooks, bug #652134 - sed -i -e 's/cm\(\|Global\|Local\)XCode[^.]\+\.\(cxx\|h\)//' \ - Source/CMakeLists.txt || die - sed -i -e '/define CMAKE_USE_XCODE/s/XCODE/NO_XCODE/' \ - -e '/cmGlobalXCodeGenerator.h/d' \ - Source/cmake.cxx || die - # Disable system integration, bug #933744 - sed -i -e 's/__APPLE__/__DISABLED__/' \ - Source/cmFindProgramCommand.cxx \ - Source/CPack/cmCPackGeneratorFactory.cxx || die - sed -i -e 's/__MAC_OS_X_VERSION_MIN_REQUIRED/__DISABLED__/' \ - Source/cmMachO.cxx || die - sed -i -e 's:CPack/cmCPack\(Bundle\|DragNDrop\|PKG\|ProductBuild\)Generator.cxx::' \ - Source/CMakeLists.txt || die - - # Disable isysroot usage with GCC, we've properly instructed - # where things are via GCC configuration and ldwrapper - sed -i -e '/cmake_gnu_set_sysroot_flag/d' \ - Modules/Platform/Apple-GNU-*.cmake || die - # Disable isysroot usage with clang as well - sed -i -e '/_SYSROOT_FLAG/d' \ - Modules/Platform/Apple-Clang.cmake || die - # Don't set a POSIX standard, system headers don't like that, #757426 - sed -i -e 's/^#if !defined(_WIN32) && !defined(__sun)/& \&\& !defined(__APPLE__)/' \ - Source/cmLoadCommandCommand.cxx \ - Source/cmStandardLexer.h \ - Source/cmSystemTools.cxx \ - Source/cmTimestamp.cxx - sed -i -e 's/^#if !defined(_POSIX_C_SOURCE) && !defined(_WIN32) && !defined(__sun)/& \&\& !defined(__APPLE__)/' \ - Source/cmStandardLexer.h - fi - - # Add gcc libs to the default link paths - sed -i \ - -e "s|@GENTOO_PORTAGE_GCCLIBDIR@|${EPREFIX}/usr/${CHOST}/lib/|g" \ - -e "$(usex prefix-guest "s|@GENTOO_HOST@||" "/@GENTOO_HOST@/d")" \ - -e "s|@GENTOO_PORTAGE_EPREFIX@|${EPREFIX}/|g" \ - Modules/Platform/{UnixPaths,Darwin}.cmake || die "sed failed" - - ## in theory we could handle these flags in src_configure, as we do in many other packages. But we *must* - ## handle them as part of bootstrapping, sadly. - - # Fix linking on Solaris - [[ ${CHOST} == *-solaris* ]] && append-ldflags -lsocket -lnsl - - # ODR warnings, bug #858335 - # https://gitlab.kitware.com/cmake/cmake/-/issues/20740 - filter-lto - - if ! has_version -b \>=${CATEGORY}/${PN}-3.13 || ! cmake --version &>/dev/null ; then - CMAKE_BINARY="${S}/Bootstrap.cmk/cmake" - cmake_src_bootstrap - fi -} - -src_configure() { - local mycmakeargs=( - -DCMAKE_USE_SYSTEM_LIBRARIES=ON - -DCMake_ENABLE_DEBUGGER=$(usex dap) - -DCMAKE_DOC_DIR=/share/doc/${PF} - -DCMAKE_MAN_DIR=/share/man - -DCMAKE_DATA_DIR=/share/${PN} - -DSPHINX_MAN=$(usex doc) - -DSPHINX_HTML=$(usex doc) - -DBUILD_CursesDialog="$(usex ncurses)" - -DBUILD_TESTING=$(usex test) - -DBUILD_QtDialog=$(usex gui) - ) - - use gui && mycmakeargs+=( -DCMake_QT_MAJOR_VERSION=6 ) - - cmake_src_configure -} - -src_test() { - # Fix OutDir and SelectLibraryConfigurations tests - # these are altered thanks to our eclass - sed -i -e 's:^#_cmake_modify_IGNORE ::g' \ - "${S}"/Tests/{OutDir,CMakeOnly/SelectLibraryConfigurations}/CMakeLists.txt \ - || die - - unset CLICOLOR CLICOLOR_FORCE CMAKE_COMPILER_COLOR_DIAGNOSTICS CMAKE_COLOR_DIAGNOSTICS - - pushd "${BUILD_DIR}" > /dev/null || die - - # Excluded tests: - # BootstrapTest: we actually bootstrap it every time so why test it? - # BundleUtilities: bundle creation broken - # CMakeOnly.AllFindModules: pthread issues - # CTest.updatecvs: which fails to commit as root - # Fortran: requires fortran - # RunCMake.CompilerLauncher: also requires fortran - # RunCMake.CPack_RPM: breaks if app-arch/rpm is installed because - # debugedit binary is not in the expected location - # RunCMake.CPack_DEB: breaks if app-arch/dpkg is installed because - # it can't find a deb package that owns libc - # TestUpload, which requires network access - # RunCMake.CMP0125, known failure reported upstream (bug #829414) - local myctestargs=( - --output-on-failure - -E "(BootstrapTest|BundleUtilities|CMakeOnly.AllFindModules|CompileOptions|CTest.UpdateCVS|Fortran|RunCMake.CompilerLauncher|RunCMake.CPack_(DEB|RPM)|TestUpload|RunCMake.CMP0125)" \ - ) - - local -x QT_QPA_PLATFORM=offscreen - - cmake_src_test -} - -src_install() { - cmake_src_install - - # If USE=doc, there'll be newly generated docs which we install instead. - if ! use doc && [[ ${CMAKE_DOCS_PREBUILT} == 1 ]] ; then - doman "${WORKDIR}"/${PN}-${CMAKE_DOCS_VERSION}-docs/man*/*.[0-8] - fi - - insinto /usr/share/vim/vimfiles/syntax - doins Auxiliary/vim/syntax/cmake.vim - - insinto /usr/share/vim/vimfiles/indent - doins Auxiliary/vim/indent/cmake.vim - - insinto /usr/share/vim/vimfiles/ftdetect - doins "${FILESDIR}/${PN}.vim" - - dobashcomp Auxiliary/bash-completion/{${PN},ctest,cpack} -} - -pkg_postinst() { - if use gui; then - xdg_icon_cache_update - xdg_desktop_database_update - xdg_mimeinfo_database_update - fi -} - -pkg_postrm() { - if use gui; then - xdg_icon_cache_update - xdg_desktop_database_update - xdg_mimeinfo_database_update - fi -} diff --git a/sdk_container/src/third_party/portage-stable/dev-build/cmake/cmake-3.31.8.ebuild b/sdk_container/src/third_party/portage-stable/dev-build/cmake/cmake-3.31.9-r1.ebuild similarity index 97% rename from sdk_container/src/third_party/portage-stable/dev-build/cmake/cmake-3.31.8.ebuild rename to sdk_container/src/third_party/portage-stable/dev-build/cmake/cmake-3.31.9-r1.ebuild index daa7137f1b..57c4c60d69 100644 --- a/sdk_container/src/third_party/portage-stable/dev-build/cmake/cmake-3.31.8.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-build/cmake/cmake-3.31.9-r1.ebuild @@ -47,7 +47,7 @@ else https://github.com/Kitware/CMake/releases/download/v$(ver_cut 1-3)/${MY_P}-SHA-256.txt.asc )" - 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" BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-bradking-20240902 )" fi @@ -62,12 +62,13 @@ SLOT="0" IUSE="${CMAKE_DOCS_USEFLAG} dap gui ncurses test" RESTRICT="!test? ( test )" +# >= 1.51.0-r1 for ppc32 workaround (bug #941738) RDEPEND=" >=app-arch/libarchive-3.3.3:= app-crypt/rhash:0= >=dev-libs/expat-2.0.1 >=dev-libs/jsoncpp-1.9.2-r2:0= - >=dev-libs/libuv-1.10.0:= + >=dev-libs/libuv-1.51.0-r1:= >=net-misc/curl-7.21.5[ssl] sys-libs/zlib virtual/pkgconfig @@ -99,7 +100,6 @@ PATCHES=( # Upstream fixes (can usually be removed with a version bump) "${FILESDIR}"/${PN}-3.31.7-hdf5.patch - "${FILESDIR}/${PN}-4.1.1-curl-8.16.0.patch" ) cmake_src_bootstrap() { diff --git a/sdk_container/src/third_party/portage-stable/dev-build/cmake/cmake-4.0.3.ebuild b/sdk_container/src/third_party/portage-stable/dev-build/cmake/cmake-4.0.3.ebuild deleted file mode 100644 index c8af6d4f8b..0000000000 --- a/sdk_container/src/third_party/portage-stable/dev-build/cmake/cmake-4.0.3.ebuild +++ /dev/null @@ -1,323 +0,0 @@ -# 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-cmake-docs -# Set to 1 if prebuilt, 0 if not -# (the construct below is to allow overriding from env for script) -: ${CMAKE_DOCS_PREBUILT:=1} - -CMAKE_DOCS_PREBUILT_DEV=sam -CMAKE_DOCS_VERSION=4.0.0_rc1 -#CMAKE_DOCS_VERSION=${PV} -#CMAKE_DOCS_VERSION=$(ver_cut 1-2).0 -# Default to generating docs (inc. man pages) if no prebuilt; overridden later -# See bug #784815 -CMAKE_DOCS_USEFLAG="+doc" - -# TODO RunCMake.LinkWhatYouUse fails consistently w/ ninja -# ... but seems fine as of 3.22.3? -# TODO ... but bootstrap sometimes(?) fails with ninja now. bug #834759. -CMAKE_MAKEFILE_GENERATOR="emake" -CMAKE_REMOVE_MODULES_LIST=( none ) -inherit bash-completion-r1 cmake flag-o-matic multiprocessing \ - toolchain-funcs xdg-utils - -MY_P="${P/_/-}" - -DESCRIPTION="Cross platform Make" -HOMEPAGE="https://cmake.org/" -if [[ ${PV} == *9999* ]] ; then - CMAKE_DOCS_PREBUILT=0 - - EGIT_REPO_URI="https://gitlab.kitware.com/cmake/cmake.git" - inherit git-r3 -else - SRC_URI="https://cmake.org/files/v$(ver_cut 1-2)/${MY_P}.tar.gz" - - if [[ ${CMAKE_DOCS_PREBUILT} == 1 ]] ; then - SRC_URI+=" !doc? ( https://dev.gentoo.org/~${CMAKE_DOCS_PREBUILT_DEV}/distfiles/${CATEGORY}/${PN}/${PN}-${CMAKE_DOCS_VERSION}-docs.tar.xz )" - fi - - VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/bradking.asc - inherit verify-sig - - SRC_URI+=" verify-sig? ( - https://cmake.org/files/v$(ver_cut 1-2)/${MY_P}-SHA-256.txt - https://cmake.org/files/v$(ver_cut 1-2)/${MY_P}-SHA-256.txt.asc - https://github.com/Kitware/CMake/releases/download/v${PV/_/-}/${MY_P}-SHA-256.txt - https://github.com/Kitware/CMake/releases/download/v${PV/_/-}/${MY_P}-SHA-256.txt.asc - )" - - if [[ ${PV} != *_rc* ]] ; then - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" - fi - - BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-bradking-20240902 )" -fi - -[[ ${CMAKE_DOCS_PREBUILT} == 1 ]] && CMAKE_DOCS_USEFLAG="doc" - -S="${WORKDIR}/${MY_P}" - -LICENSE="BSD" -SLOT="0" -IUSE="${CMAKE_DOCS_USEFLAG} dap gui ncurses test" -RESTRICT="!test? ( test )" - -RDEPEND=" - >=app-arch/libarchive-3.3.3:= - app-crypt/rhash:0= - >=dev-libs/expat-2.0.1 - >=dev-libs/jsoncpp-1.9.2-r2:0= - >=dev-libs/libuv-1.10.0:= - >=net-misc/curl-7.21.5[ssl] - sys-libs/zlib - virtual/pkgconfig - dap? ( dev-cpp/cppdap ) - gui? ( dev-qt/qtbase:6[gui,widgets] ) - ncurses? ( sys-libs/ncurses:= ) -" -DEPEND="${RDEPEND}" -BDEPEND+=" - doc? ( - dev-python/requests - dev-python/sphinx - ) - test? ( app-arch/libarchive[zstd] ) -" - -SITEFILE="50${PN}-gentoo.el" - -PATCHES=( - # Prefix - "${FILESDIR}"/${PN}-3.27.0_rc1-0001-Don-t-use-.so-for-modules-on-darwin-macos.-Use-.bund.patch - "${FILESDIR}"/${PN}-3.27.0_rc1-0002-Set-some-proper-paths-to-make-cmake-find-our-tools.patch - # Misc - "${FILESDIR}"/${PN}-3.31.6-Prefer-pkgconfig-in-FindBLAS.patch - "${FILESDIR}"/${PN}-3.27.0_rc1-0004-Ensure-that-the-correct-version-of-Qt-is-always-used.patch - "${FILESDIR}"/${PN}-3.27.0_rc1-0005-Respect-Gentoo-s-Python-eclasses.patch - # Cuda - "${FILESDIR}/${PN}-3.30.3-cudahostld.patch" - - # Upstream fixes (can usually be removed with a version bump) - "${FILESDIR}"/${PN}-3.31.7-hdf5.patch - "${FILESDIR}/${PN}-4.1.1-curl-8.16.0.patch" -) - -cmake_src_bootstrap() { - # disable running of cmake in bootstrap command - sed -i \ - -e '/"${cmake_bootstrap_dir}\/cmake"/s/^/#DONOTRUN /' \ - bootstrap || die "sed failed" - - # execinfo.h on Solaris isn't quite what it is on Darwin - if [[ ${CHOST} == *-solaris* ]] ; then - sed -i -e 's/execinfo\.h/blablabla.h/' \ - Source/kwsys/CMakeLists.txt || die - fi - - # bootstrap script isn't exactly /bin/sh compatible - tc-env_build ${CONFIG_SHELL:-sh} ./bootstrap \ - --prefix="${T}/cmakestrap/" \ - --parallel=$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)") \ - || die "Bootstrap failed" -} - -pkg_pretend() { - if [[ -z ${EPREFIX} ]] ; then - local file - local errant_files=() - - # See bug #599684 and bug #753581 (at least) - for file in /etc/arch-release /etc/redhat-release /etc/debian_version ; do - if [[ -e ${file} ]]; then - errant_files+=( "${file}" ) - fi - done - - # If errant files exist - if [[ ${#errant_files[@]} -gt 0 ]]; then - eerror "Errant files found!" - eerror "The presence of these files is known to confuse CMake's" - eerror "library path logic. Please (re)move these files:" - - for file in "${errant_files[@]}"; do - eerror " mv ${file} ${file}.bak" - done - - die "Stray files found in /etc/, see above message" - fi - fi -} - -src_unpack() { - if [[ ${PV} == 9999 ]] ; then - git-r3_src_unpack - elif [[ ${PV} == *_rc* ]] || ! use verify-sig ; then - default - else - cd "${DISTDIR}" || die - - # See https://mgorny.pl/articles/verify-sig-by-example.html#verifying-using-a-checksum-file-with-a-detached-signature - verify-sig_verify_detached ${MY_P}-SHA-256.txt{,.asc} - verify-sig_verify_unsigned_checksums ${MY_P}-SHA-256.txt sha256 ${MY_P}.tar.gz - - cd "${WORKDIR}" || die - - default - fi -} - -src_prepare() { - cmake_src_prepare - - if [[ ${CHOST} == *-darwin* ]] ; then - # Disable Xcode hooks, bug #652134 - sed -i -e 's/cm\(\|Global\|Local\)XCode[^.]\+\.\(cxx\|h\)//' \ - Source/CMakeLists.txt || die - sed -i -e '/define CMAKE_USE_XCODE/s/XCODE/NO_XCODE/' \ - -e '/cmGlobalXCodeGenerator.h/d' \ - Source/cmake.cxx || die - # Disable system integration, bug #933744 - sed -i -e 's/__APPLE__/__DISABLED__/' \ - Source/cmFindProgramCommand.cxx \ - Source/CPack/cmCPackGeneratorFactory.cxx || die - sed -i -e 's/__MAC_OS_X_VERSION_MIN_REQUIRED/__DISABLED__/' \ - Source/cmMachO.cxx || die - sed -i -e 's:CPack/cmCPack\(Bundle\|DragNDrop\|PKG\|ProductBuild\)Generator.cxx::' \ - Source/CMakeLists.txt || die - - # Disable isysroot usage with GCC, we've properly instructed - # where things are via GCC configuration and ldwrapper - sed -i -e '/cmake_gnu_set_sysroot_flag/d' \ - Modules/Platform/Apple-GNU-*.cmake || die - # Disable isysroot usage with clang as well - sed -i -e '/_SYSROOT_FLAG/d' \ - Modules/Platform/Apple-Clang.cmake || die - # Don't set a POSIX standard, system headers don't like that, #757426 - sed -i -e 's/^#if !defined(_WIN32) && !defined(__sun)/& \&\& !defined(__APPLE__)/' \ - Source/cmLoadCommandCommand.cxx \ - Source/cmStandardLexer.h \ - Source/cmSystemTools.cxx \ - Source/cmTimestamp.cxx - sed -i -e 's/^#if !defined(_POSIX_C_SOURCE) && !defined(_WIN32) && !defined(__sun)/& \&\& !defined(__APPLE__)/' \ - Source/cmStandardLexer.h - fi - - # Add gcc libs to the default link paths - sed -i \ - -e "s|@GENTOO_PORTAGE_GCCLIBDIR@|${EPREFIX}/usr/${CHOST}/lib/|g" \ - -e "$(usex prefix-guest "s|@GENTOO_HOST@||" "/@GENTOO_HOST@/d")" \ - -e "s|@GENTOO_PORTAGE_EPREFIX@|${EPREFIX}/|g" \ - Modules/Platform/{UnixPaths,Darwin}.cmake || die "sed failed" - - ## in theory we could handle these flags in src_configure, as we do in many other packages. But we *must* - ## handle them as part of bootstrapping, sadly. - - # Fix linking on Solaris - [[ ${CHOST} == *-solaris* ]] && append-ldflags -lsocket -lnsl - - # ODR warnings, bug #858335 - # https://gitlab.kitware.com/cmake/cmake/-/issues/20740 - filter-lto - - # 4.0.0_rc1 is missing this, fails to configure - # https://gitlab.kitware.com/cmake/cmake/-/issues/26712 - touch .clang-tidy Utilities/.clang-tidy || die - - if ! has_version -b \>=${CATEGORY}/${PN}-3.13 || ! cmake --version &>/dev/null ; then - CMAKE_BINARY="${S}/Bootstrap.cmk/cmake" - cmake_src_bootstrap - fi -} - -src_configure() { - local mycmakeargs=( - -DCMAKE_USE_SYSTEM_LIBRARIES=ON - -DCMake_ENABLE_DEBUGGER=$(usex dap) - -DCMAKE_DOC_DIR=/share/doc/${PF} - -DCMAKE_MAN_DIR=/share/man - -DCMAKE_DATA_DIR=/share/${PN} - -DSPHINX_MAN=$(usex doc) - -DSPHINX_HTML=$(usex doc) - -DBUILD_CursesDialog="$(usex ncurses)" - -DBUILD_TESTING=$(usex test) - -DBUILD_QtDialog=$(usex gui) - ) - - use gui && mycmakeargs+=( -DCMake_QT_MAJOR_VERSION=6 ) - - cmake_src_configure -} - -src_test() { - # Fix OutDir and SelectLibraryConfigurations tests - # these are altered thanks to our eclass - sed -i -e 's:^#_cmake_modify_IGNORE ::g' \ - "${S}"/Tests/{OutDir,CMakeOnly/SelectLibraryConfigurations}/CMakeLists.txt \ - || die - - unset CLICOLOR CLICOLOR_FORCE CMAKE_COMPILER_COLOR_DIAGNOSTICS CMAKE_COLOR_DIAGNOSTICS - - pushd "${BUILD_DIR}" > /dev/null || die - - # Excluded tests: - # BootstrapTest: we actually bootstrap it every time so why test it? - # BundleUtilities: bundle creation broken - # CMakeOnly.AllFindModules: pthread issues - # CTest.updatecvs: which fails to commit as root - # Fortran: requires fortran - # RunCMake.CompilerLauncher: also requires fortran - # RunCMake.CPack_RPM: breaks if app-arch/rpm is installed because - # debugedit binary is not in the expected location - # RunCMake.CPack_DEB: breaks if app-arch/dpkg is installed because - # it can't find a deb package that owns libc - # TestUpload, which requires network access - # RunCMake.CMP0125, known failure reported upstream (bug #829414) - local myctestargs=( - --output-on-failure - -E "(BootstrapTest|BundleUtilities|CMakeOnly.AllFindModules|CompileOptions|CTest.UpdateCVS|Fortran|RunCMake.CompilerLauncher|RunCMake.CPack_(DEB|RPM)|TestUpload|RunCMake.CMP0125)" \ - ) - - local -x QT_QPA_PLATFORM=offscreen - - cmake_src_test -} - -src_install() { - cmake_src_install - - # If USE=doc, there'll be newly generated docs which we install instead. - if ! use doc && [[ ${CMAKE_DOCS_PREBUILT} == 1 ]] ; then - doman "${WORKDIR}"/${PN}-${CMAKE_DOCS_VERSION}-docs/man*/*.[0-8] - fi - - insinto /usr/share/vim/vimfiles/syntax - doins Auxiliary/vim/syntax/cmake.vim - - insinto /usr/share/vim/vimfiles/indent - doins Auxiliary/vim/indent/cmake.vim - - insinto /usr/share/vim/vimfiles/ftdetect - doins "${FILESDIR}/${PN}.vim" - - dobashcomp Auxiliary/bash-completion/{${PN},ctest,cpack} -} - -pkg_postinst() { - if use gui; then - xdg_icon_cache_update - xdg_desktop_database_update - xdg_mimeinfo_database_update - fi -} - -pkg_postrm() { - if use gui; then - xdg_icon_cache_update - xdg_desktop_database_update - xdg_mimeinfo_database_update - fi -} diff --git a/sdk_container/src/third_party/portage-stable/dev-build/cmake/cmake-4.0.4.ebuild b/sdk_container/src/third_party/portage-stable/dev-build/cmake/cmake-4.0.4.ebuild deleted file mode 100644 index e1c7d026c0..0000000000 --- a/sdk_container/src/third_party/portage-stable/dev-build/cmake/cmake-4.0.4.ebuild +++ /dev/null @@ -1,322 +0,0 @@ -# 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-cmake-docs -# Set to 1 if prebuilt, 0 if not -# (the construct below is to allow overriding from env for script) -: ${CMAKE_DOCS_PREBUILT:=1} - -CMAKE_DOCS_PREBUILT_DEV=sam -CMAKE_DOCS_VERSION=4.0.0_rc1 -#CMAKE_DOCS_VERSION=${PV} -#CMAKE_DOCS_VERSION=$(ver_cut 1-2).0 -# Default to generating docs (inc. man pages) if no prebuilt; overridden later -# See bug #784815 -CMAKE_DOCS_USEFLAG="+doc" - -# TODO RunCMake.LinkWhatYouUse fails consistently w/ ninja -# ... but seems fine as of 3.22.3? -# TODO ... but bootstrap sometimes(?) fails with ninja now. bug #834759. -CMAKE_MAKEFILE_GENERATOR="emake" -CMAKE_REMOVE_MODULES_LIST=( none ) -inherit bash-completion-r1 cmake flag-o-matic multiprocessing \ - toolchain-funcs xdg-utils - -MY_P="${P/_/-}" - -DESCRIPTION="Cross platform Make" -HOMEPAGE="https://cmake.org/" -if [[ ${PV} == *9999* ]] ; then - CMAKE_DOCS_PREBUILT=0 - - EGIT_REPO_URI="https://gitlab.kitware.com/cmake/cmake.git" - inherit git-r3 -else - SRC_URI="https://cmake.org/files/v$(ver_cut 1-2)/${MY_P}.tar.gz" - - if [[ ${CMAKE_DOCS_PREBUILT} == 1 ]] ; then - SRC_URI+=" !doc? ( https://dev.gentoo.org/~${CMAKE_DOCS_PREBUILT_DEV}/distfiles/${CATEGORY}/${PN}/${PN}-${CMAKE_DOCS_VERSION}-docs.tar.xz )" - fi - - VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/bradking.asc - inherit verify-sig - - SRC_URI+=" verify-sig? ( - https://cmake.org/files/v$(ver_cut 1-2)/${MY_P}-SHA-256.txt - https://cmake.org/files/v$(ver_cut 1-2)/${MY_P}-SHA-256.txt.asc - https://github.com/Kitware/CMake/releases/download/v${PV/_/-}/${MY_P}-SHA-256.txt - https://github.com/Kitware/CMake/releases/download/v${PV/_/-}/${MY_P}-SHA-256.txt.asc - )" - - if [[ ${PV} != *_rc* ]] ; then - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" - fi - - BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-bradking-20240902 )" -fi - -[[ ${CMAKE_DOCS_PREBUILT} == 1 ]] && CMAKE_DOCS_USEFLAG="doc" - -S="${WORKDIR}/${MY_P}" - -LICENSE="BSD" -SLOT="0" -IUSE="${CMAKE_DOCS_USEFLAG} dap gui ncurses test" -RESTRICT="!test? ( test )" - -RDEPEND=" - >=app-arch/libarchive-3.3.3:= - app-crypt/rhash:0= - >=dev-libs/expat-2.0.1 - >=dev-libs/jsoncpp-1.9.2-r2:0= - >=dev-libs/libuv-1.10.0:= - >=net-misc/curl-7.21.5[ssl] - sys-libs/zlib - virtual/pkgconfig - dap? ( dev-cpp/cppdap ) - gui? ( dev-qt/qtbase:6[gui,widgets] ) - ncurses? ( sys-libs/ncurses:= ) -" -DEPEND="${RDEPEND}" -BDEPEND+=" - doc? ( - dev-python/requests - dev-python/sphinx - ) - test? ( app-arch/libarchive[zstd] ) -" - -SITEFILE="50${PN}-gentoo.el" - -PATCHES=( - # Prefix - "${FILESDIR}"/${PN}-3.27.0_rc1-0001-Don-t-use-.so-for-modules-on-darwin-macos.-Use-.bund.patch - "${FILESDIR}"/${PN}-3.27.0_rc1-0002-Set-some-proper-paths-to-make-cmake-find-our-tools.patch - # Misc - "${FILESDIR}"/${PN}-3.31.6-Prefer-pkgconfig-in-FindBLAS.patch - "${FILESDIR}"/${PN}-3.27.0_rc1-0004-Ensure-that-the-correct-version-of-Qt-is-always-used.patch - "${FILESDIR}"/${PN}-3.27.0_rc1-0005-Respect-Gentoo-s-Python-eclasses.patch - # Cuda - "${FILESDIR}/${PN}-3.30.3-cudahostld.patch" - - # Upstream fixes (can usually be removed with a version bump) - "${FILESDIR}"/${PN}-3.31.7-hdf5.patch -) - -cmake_src_bootstrap() { - # disable running of cmake in bootstrap command - sed -i \ - -e '/"${cmake_bootstrap_dir}\/cmake"/s/^/#DONOTRUN /' \ - bootstrap || die "sed failed" - - # execinfo.h on Solaris isn't quite what it is on Darwin - if [[ ${CHOST} == *-solaris* ]] ; then - sed -i -e 's/execinfo\.h/blablabla.h/' \ - Source/kwsys/CMakeLists.txt || die - fi - - # bootstrap script isn't exactly /bin/sh compatible - tc-env_build ${CONFIG_SHELL:-sh} ./bootstrap \ - --prefix="${T}/cmakestrap/" \ - --parallel=$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)") \ - || die "Bootstrap failed" -} - -pkg_pretend() { - if [[ -z ${EPREFIX} ]] ; then - local file - local errant_files=() - - # See bug #599684 and bug #753581 (at least) - for file in /etc/arch-release /etc/redhat-release /etc/debian_version ; do - if [[ -e ${file} ]]; then - errant_files+=( "${file}" ) - fi - done - - # If errant files exist - if [[ ${#errant_files[@]} -gt 0 ]]; then - eerror "Errant files found!" - eerror "The presence of these files is known to confuse CMake's" - eerror "library path logic. Please (re)move these files:" - - for file in "${errant_files[@]}"; do - eerror " mv ${file} ${file}.bak" - done - - die "Stray files found in /etc/, see above message" - fi - fi -} - -src_unpack() { - if [[ ${PV} == 9999 ]] ; then - git-r3_src_unpack - elif [[ ${PV} == *_rc* ]] || ! use verify-sig ; then - default - else - cd "${DISTDIR}" || die - - # See https://mgorny.pl/articles/verify-sig-by-example.html#verifying-using-a-checksum-file-with-a-detached-signature - verify-sig_verify_detached ${MY_P}-SHA-256.txt{,.asc} - verify-sig_verify_unsigned_checksums ${MY_P}-SHA-256.txt sha256 ${MY_P}.tar.gz - - cd "${WORKDIR}" || die - - default - fi -} - -src_prepare() { - cmake_src_prepare - - if [[ ${CHOST} == *-darwin* ]] ; then - # Disable Xcode hooks, bug #652134 - sed -i -e 's/cm\(\|Global\|Local\)XCode[^.]\+\.\(cxx\|h\)//' \ - Source/CMakeLists.txt || die - sed -i -e '/define CMAKE_USE_XCODE/s/XCODE/NO_XCODE/' \ - -e '/cmGlobalXCodeGenerator.h/d' \ - Source/cmake.cxx || die - # Disable system integration, bug #933744 - sed -i -e 's/__APPLE__/__DISABLED__/' \ - Source/cmFindProgramCommand.cxx \ - Source/CPack/cmCPackGeneratorFactory.cxx || die - sed -i -e 's/__MAC_OS_X_VERSION_MIN_REQUIRED/__DISABLED__/' \ - Source/cmMachO.cxx || die - sed -i -e 's:CPack/cmCPack\(Bundle\|DragNDrop\|PKG\|ProductBuild\)Generator.cxx::' \ - Source/CMakeLists.txt || die - - # Disable isysroot usage with GCC, we've properly instructed - # where things are via GCC configuration and ldwrapper - sed -i -e '/cmake_gnu_set_sysroot_flag/d' \ - Modules/Platform/Apple-GNU-*.cmake || die - # Disable isysroot usage with clang as well - sed -i -e '/_SYSROOT_FLAG/d' \ - Modules/Platform/Apple-Clang.cmake || die - # Don't set a POSIX standard, system headers don't like that, #757426 - sed -i -e 's/^#if !defined(_WIN32) && !defined(__sun)/& \&\& !defined(__APPLE__)/' \ - Source/cmLoadCommandCommand.cxx \ - Source/cmStandardLexer.h \ - Source/cmSystemTools.cxx \ - Source/cmTimestamp.cxx - sed -i -e 's/^#if !defined(_POSIX_C_SOURCE) && !defined(_WIN32) && !defined(__sun)/& \&\& !defined(__APPLE__)/' \ - Source/cmStandardLexer.h - fi - - # Add gcc libs to the default link paths - sed -i \ - -e "s|@GENTOO_PORTAGE_GCCLIBDIR@|${EPREFIX}/usr/${CHOST}/lib/|g" \ - -e "$(usex prefix-guest "s|@GENTOO_HOST@||" "/@GENTOO_HOST@/d")" \ - -e "s|@GENTOO_PORTAGE_EPREFIX@|${EPREFIX}/|g" \ - Modules/Platform/{UnixPaths,Darwin}.cmake || die "sed failed" - - ## in theory we could handle these flags in src_configure, as we do in many other packages. But we *must* - ## handle them as part of bootstrapping, sadly. - - # Fix linking on Solaris - [[ ${CHOST} == *-solaris* ]] && append-ldflags -lsocket -lnsl - - # ODR warnings, bug #858335 - # https://gitlab.kitware.com/cmake/cmake/-/issues/20740 - filter-lto - - # 4.0.0_rc1 is missing this, fails to configure - # https://gitlab.kitware.com/cmake/cmake/-/issues/26712 - touch .clang-tidy Utilities/.clang-tidy || die - - if ! has_version -b \>=${CATEGORY}/${PN}-3.13 || ! cmake --version &>/dev/null ; then - CMAKE_BINARY="${S}/Bootstrap.cmk/cmake" - cmake_src_bootstrap - fi -} - -src_configure() { - local mycmakeargs=( - -DCMAKE_USE_SYSTEM_LIBRARIES=ON - -DCMake_ENABLE_DEBUGGER=$(usex dap) - -DCMAKE_DOC_DIR=/share/doc/${PF} - -DCMAKE_MAN_DIR=/share/man - -DCMAKE_DATA_DIR=/share/${PN} - -DSPHINX_MAN=$(usex doc) - -DSPHINX_HTML=$(usex doc) - -DBUILD_CursesDialog="$(usex ncurses)" - -DBUILD_TESTING=$(usex test) - -DBUILD_QtDialog=$(usex gui) - ) - - use gui && mycmakeargs+=( -DCMake_QT_MAJOR_VERSION=6 ) - - cmake_src_configure -} - -src_test() { - # Fix OutDir and SelectLibraryConfigurations tests - # these are altered thanks to our eclass - sed -i -e 's:^#_cmake_modify_IGNORE ::g' \ - "${S}"/Tests/{OutDir,CMakeOnly/SelectLibraryConfigurations}/CMakeLists.txt \ - || die - - unset CLICOLOR CLICOLOR_FORCE CMAKE_COMPILER_COLOR_DIAGNOSTICS CMAKE_COLOR_DIAGNOSTICS - - pushd "${BUILD_DIR}" > /dev/null || die - - # Excluded tests: - # BootstrapTest: we actually bootstrap it every time so why test it? - # BundleUtilities: bundle creation broken - # CMakeOnly.AllFindModules: pthread issues - # CTest.updatecvs: which fails to commit as root - # Fortran: requires fortran - # RunCMake.CompilerLauncher: also requires fortran - # RunCMake.CPack_RPM: breaks if app-arch/rpm is installed because - # debugedit binary is not in the expected location - # RunCMake.CPack_DEB: breaks if app-arch/dpkg is installed because - # it can't find a deb package that owns libc - # TestUpload, which requires network access - # RunCMake.CMP0125, known failure reported upstream (bug #829414) - local myctestargs=( - --output-on-failure - -E "(BootstrapTest|BundleUtilities|CMakeOnly.AllFindModules|CompileOptions|CTest.UpdateCVS|Fortran|RunCMake.CompilerLauncher|RunCMake.CPack_(DEB|RPM)|TestUpload|RunCMake.CMP0125)" \ - ) - - local -x QT_QPA_PLATFORM=offscreen - - cmake_src_test -} - -src_install() { - cmake_src_install - - # If USE=doc, there'll be newly generated docs which we install instead. - if ! use doc && [[ ${CMAKE_DOCS_PREBUILT} == 1 ]] ; then - doman "${WORKDIR}"/${PN}-${CMAKE_DOCS_VERSION}-docs/man*/*.[0-8] - fi - - insinto /usr/share/vim/vimfiles/syntax - doins Auxiliary/vim/syntax/cmake.vim - - insinto /usr/share/vim/vimfiles/indent - doins Auxiliary/vim/indent/cmake.vim - - insinto /usr/share/vim/vimfiles/ftdetect - doins "${FILESDIR}/${PN}.vim" - - dobashcomp Auxiliary/bash-completion/{${PN},ctest,cpack} -} - -pkg_postinst() { - if use gui; then - xdg_icon_cache_update - xdg_desktop_database_update - xdg_mimeinfo_database_update - fi -} - -pkg_postrm() { - if use gui; then - xdg_icon_cache_update - xdg_desktop_database_update - xdg_mimeinfo_database_update - fi -} diff --git a/sdk_container/src/third_party/portage-stable/dev-build/cmake/cmake-4.1.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-build/cmake/cmake-4.1.0.ebuild deleted file mode 100644 index b9df90b728..0000000000 --- a/sdk_container/src/third_party/portage-stable/dev-build/cmake/cmake-4.1.0.ebuild +++ /dev/null @@ -1,322 +0,0 @@ -# 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-cmake-docs -# Set to 1 if prebuilt, 0 if not -# (the construct below is to allow overriding from env for script) -: ${CMAKE_DOCS_PREBUILT:=1} - -CMAKE_DOCS_PREBUILT_DEV=sam -CMAKE_DOCS_VERSION=4.0.0_rc1 -#CMAKE_DOCS_VERSION=${PV} -#CMAKE_DOCS_VERSION=$(ver_cut 1-2).0 -# Default to generating docs (inc. man pages) if no prebuilt; overridden later -# See bug #784815 -CMAKE_DOCS_USEFLAG="+doc" - -# TODO RunCMake.LinkWhatYouUse fails consistently w/ ninja -# ... but seems fine as of 3.22.3? -# TODO ... but bootstrap sometimes(?) fails with ninja now. bug #834759. -CMAKE_MAKEFILE_GENERATOR="emake" -CMAKE_REMOVE_MODULES_LIST=( none ) -inherit bash-completion-r1 cmake flag-o-matic multiprocessing \ - toolchain-funcs xdg-utils - -MY_P="${P/_/-}" - -DESCRIPTION="Cross platform Make" -HOMEPAGE="https://cmake.org/" -if [[ ${PV} == *9999* ]] ; then - CMAKE_DOCS_PREBUILT=0 - - EGIT_REPO_URI="https://gitlab.kitware.com/cmake/cmake.git" - inherit git-r3 -else - SRC_URI="https://cmake.org/files/v$(ver_cut 1-2)/${MY_P}.tar.gz" - - if [[ ${CMAKE_DOCS_PREBUILT} == 1 ]] ; then - SRC_URI+=" !doc? ( https://dev.gentoo.org/~${CMAKE_DOCS_PREBUILT_DEV}/distfiles/${CATEGORY}/${PN}/${PN}-${CMAKE_DOCS_VERSION}-docs.tar.xz )" - fi - - VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/bradking.asc - inherit verify-sig - - SRC_URI+=" verify-sig? ( - https://cmake.org/files/v$(ver_cut 1-2)/${MY_P}-SHA-256.txt - https://cmake.org/files/v$(ver_cut 1-2)/${MY_P}-SHA-256.txt.asc - https://github.com/Kitware/CMake/releases/download/v${PV/_/-}/${MY_P}-SHA-256.txt - https://github.com/Kitware/CMake/releases/download/v${PV/_/-}/${MY_P}-SHA-256.txt.asc - )" - - if [[ ${PV} != *_rc* ]] ; then - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" - fi - - BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-bradking-20240902 )" -fi - -[[ ${CMAKE_DOCS_PREBUILT} == 1 ]] && CMAKE_DOCS_USEFLAG="doc" - -S="${WORKDIR}/${MY_P}" - -LICENSE="BSD" -SLOT="0" -IUSE="${CMAKE_DOCS_USEFLAG} dap gui ncurses test" -RESTRICT="!test? ( test )" - -RDEPEND=" - >=app-arch/libarchive-3.3.3:= - app-crypt/rhash:0= - >=dev-libs/expat-2.0.1 - >=dev-libs/jsoncpp-1.9.2-r2:0= - >=dev-libs/libuv-1.10.0:= - >=net-misc/curl-7.21.5[ssl] - sys-libs/zlib - virtual/pkgconfig - dap? ( dev-cpp/cppdap ) - gui? ( dev-qt/qtbase:6[gui,widgets] ) - ncurses? ( sys-libs/ncurses:= ) -" -DEPEND="${RDEPEND}" -BDEPEND+=" - doc? ( - dev-python/requests - dev-python/sphinx - ) - test? ( app-arch/libarchive[zstd] ) -" - -SITEFILE="50${PN}-gentoo.el" - -PATCHES=( - # Prefix - "${FILESDIR}"/${PN}-3.27.0_rc1-0001-Don-t-use-.so-for-modules-on-darwin-macos.-Use-.bund.patch - "${FILESDIR}"/${PN}-3.27.0_rc1-0002-Set-some-proper-paths-to-make-cmake-find-our-tools.patch - # Misc - "${FILESDIR}"/${PN}-3.31.6-Prefer-pkgconfig-in-FindBLAS.patch - "${FILESDIR}"/${PN}-3.27.0_rc1-0004-Ensure-that-the-correct-version-of-Qt-is-always-used.patch - "${FILESDIR}"/${PN}-3.27.0_rc1-0005-Respect-Gentoo-s-Python-eclasses.patch - # Cuda - "${FILESDIR}/${PN}-3.30.3-cudahostld.patch" - - # Upstream fixes (can usually be removed with a version bump) - "${FILESDIR}/${PN}-4.1.1-curl-8.16.0.patch" -) - -cmake_src_bootstrap() { - # disable running of cmake in bootstrap command - sed -i \ - -e '/"${cmake_bootstrap_dir}\/cmake"/s/^/#DONOTRUN /' \ - bootstrap || die "sed failed" - - # execinfo.h on Solaris isn't quite what it is on Darwin - if [[ ${CHOST} == *-solaris* ]] ; then - sed -i -e 's/execinfo\.h/blablabla.h/' \ - Source/kwsys/CMakeLists.txt || die - fi - - # bootstrap script isn't exactly /bin/sh compatible - tc-env_build ${CONFIG_SHELL:-sh} ./bootstrap \ - --prefix="${T}/cmakestrap/" \ - --parallel=$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)") \ - || die "Bootstrap failed" -} - -pkg_pretend() { - if [[ -z ${EPREFIX} ]] ; then - local file - local errant_files=() - - # See bug #599684 and bug #753581 (at least) - for file in /etc/arch-release /etc/redhat-release /etc/debian_version ; do - if [[ -e ${file} ]]; then - errant_files+=( "${file}" ) - fi - done - - # If errant files exist - if [[ ${#errant_files[@]} -gt 0 ]]; then - eerror "Errant files found!" - eerror "The presence of these files is known to confuse CMake's" - eerror "library path logic. Please (re)move these files:" - - for file in "${errant_files[@]}"; do - eerror " mv ${file} ${file}.bak" - done - - die "Stray files found in /etc/, see above message" - fi - fi -} - -src_unpack() { - if [[ ${PV} == 9999 ]] ; then - git-r3_src_unpack - elif [[ ${PV} == *_rc* ]] || ! use verify-sig ; then - default - else - cd "${DISTDIR}" || die - - # See https://mgorny.pl/articles/verify-sig-by-example.html#verifying-using-a-checksum-file-with-a-detached-signature - verify-sig_verify_detached ${MY_P}-SHA-256.txt{,.asc} - verify-sig_verify_unsigned_checksums ${MY_P}-SHA-256.txt sha256 ${MY_P}.tar.gz - - cd "${WORKDIR}" || die - - default - fi -} - -src_prepare() { - cmake_src_prepare - - if [[ ${CHOST} == *-darwin* ]] ; then - # Disable Xcode hooks, bug #652134 - sed -i -e 's/cm\(\|Global\|Local\)XCode[^.]\+\.\(cxx\|h\)//' \ - Source/CMakeLists.txt || die - sed -i -e '/define CMAKE_USE_XCODE/s/XCODE/NO_XCODE/' \ - -e '/cmGlobalXCodeGenerator.h/d' \ - Source/cmake.cxx || die - # Disable system integration, bug #933744 - sed -i -e 's/__APPLE__/__DISABLED__/' \ - Source/cmFindProgramCommand.cxx \ - Source/CPack/cmCPackGeneratorFactory.cxx || die - sed -i -e 's/__MAC_OS_X_VERSION_MIN_REQUIRED/__DISABLED__/' \ - Source/cmMachO.cxx || die - sed -i -e 's:CPack/cmCPack\(Bundle\|DragNDrop\|PKG\|ProductBuild\)Generator.cxx::' \ - Source/CMakeLists.txt || die - - # Disable isysroot usage with GCC, we've properly instructed - # where things are via GCC configuration and ldwrapper - sed -i -e '/cmake_gnu_set_sysroot_flag/d' \ - Modules/Platform/Apple-GNU-*.cmake || die - # Disable isysroot usage with clang as well - sed -i -e '/_SYSROOT_FLAG/d' \ - Modules/Platform/Apple-Clang.cmake || die - # Don't set a POSIX standard, system headers don't like that, #757426 - sed -i -e 's/^#if !defined(_WIN32) && !defined(__sun)/& \&\& !defined(__APPLE__)/' \ - Source/cmLoadCommandCommand.cxx \ - Source/cmStandardLexer.h \ - Source/cmSystemTools.cxx \ - Source/cmTimestamp.cxx - sed -i -e 's/^#if !defined(_POSIX_C_SOURCE) && !defined(_WIN32) && !defined(__sun)/& \&\& !defined(__APPLE__)/' \ - Source/cmStandardLexer.h - fi - - # Add gcc libs to the default link paths - sed -i \ - -e "s|@GENTOO_PORTAGE_GCCLIBDIR@|${EPREFIX}/usr/${CHOST}/lib/|g" \ - -e "$(usex prefix-guest "s|@GENTOO_HOST@||" "/@GENTOO_HOST@/d")" \ - -e "s|@GENTOO_PORTAGE_EPREFIX@|${EPREFIX}/|g" \ - Modules/Platform/{UnixPaths,Darwin}.cmake || die "sed failed" - - ## in theory we could handle these flags in src_configure, as we do in many other packages. But we *must* - ## handle them as part of bootstrapping, sadly. - - # Fix linking on Solaris - [[ ${CHOST} == *-solaris* ]] && append-ldflags -lsocket -lnsl - - # ODR warnings, bug #858335 - # https://gitlab.kitware.com/cmake/cmake/-/issues/20740 - filter-lto - - # 4.0.0_rc1 is missing this, fails to configure - # https://gitlab.kitware.com/cmake/cmake/-/issues/26712 - touch .clang-tidy Utilities/.clang-tidy || die - - if ! has_version -b \>=${CATEGORY}/${PN}-3.13 || ! cmake --version &>/dev/null ; then - CMAKE_BINARY="${S}/Bootstrap.cmk/cmake" - cmake_src_bootstrap - fi -} - -src_configure() { - local mycmakeargs=( - -DCMAKE_USE_SYSTEM_LIBRARIES=ON - -DCMake_ENABLE_DEBUGGER=$(usex dap) - -DCMAKE_DOC_DIR=/share/doc/${PF} - -DCMAKE_MAN_DIR=/share/man - -DCMAKE_DATA_DIR=/share/${PN} - -DSPHINX_MAN=$(usex doc) - -DSPHINX_HTML=$(usex doc) - -DBUILD_CursesDialog="$(usex ncurses)" - -DBUILD_TESTING=$(usex test) - -DBUILD_QtDialog=$(usex gui) - ) - - use gui && mycmakeargs+=( -DCMake_QT_MAJOR_VERSION=6 ) - - cmake_src_configure -} - -src_test() { - # Fix OutDir and SelectLibraryConfigurations tests - # these are altered thanks to our eclass - sed -i -e 's:^#_cmake_modify_IGNORE ::g' \ - "${S}"/Tests/{OutDir,CMakeOnly/SelectLibraryConfigurations}/CMakeLists.txt \ - || die - - unset CLICOLOR CLICOLOR_FORCE CMAKE_COMPILER_COLOR_DIAGNOSTICS CMAKE_COLOR_DIAGNOSTICS - - pushd "${BUILD_DIR}" > /dev/null || die - - # Excluded tests: - # BootstrapTest: we actually bootstrap it every time so why test it? - # BundleUtilities: bundle creation broken - # CMakeOnly.AllFindModules: pthread issues - # CTest.updatecvs: which fails to commit as root - # Fortran: requires fortran - # RunCMake.CompilerLauncher: also requires fortran - # RunCMake.CPack_RPM: breaks if app-arch/rpm is installed because - # debugedit binary is not in the expected location - # RunCMake.CPack_DEB: breaks if app-arch/dpkg is installed because - # it can't find a deb package that owns libc - # TestUpload, which requires network access - # RunCMake.CMP0125, known failure reported upstream (bug #829414) - local myctestargs=( - --output-on-failure - -E "(BootstrapTest|BundleUtilities|CMakeOnly.AllFindModules|CompileOptions|CTest.UpdateCVS|Fortran|RunCMake.CompilerLauncher|RunCMake.CPack_(DEB|RPM)|TestUpload|RunCMake.CMP0125)" \ - ) - - local -x QT_QPA_PLATFORM=offscreen - - cmake_src_test -} - -src_install() { - cmake_src_install - - # If USE=doc, there'll be newly generated docs which we install instead. - if ! use doc && [[ ${CMAKE_DOCS_PREBUILT} == 1 ]] ; then - doman "${WORKDIR}"/${PN}-${CMAKE_DOCS_VERSION}-docs/man*/*.[0-8] - fi - - insinto /usr/share/vim/vimfiles/syntax - doins Auxiliary/vim/syntax/cmake.vim - - insinto /usr/share/vim/vimfiles/indent - doins Auxiliary/vim/indent/cmake.vim - - insinto /usr/share/vim/vimfiles/ftdetect - doins "${FILESDIR}/${PN}.vim" - - dobashcomp Auxiliary/bash-completion/{${PN},ctest,cpack} -} - -pkg_postinst() { - if use gui; then - xdg_icon_cache_update - xdg_desktop_database_update - xdg_mimeinfo_database_update - fi -} - -pkg_postrm() { - if use gui; then - xdg_icon_cache_update - xdg_desktop_database_update - xdg_mimeinfo_database_update - fi -} diff --git a/sdk_container/src/third_party/portage-stable/dev-build/cmake/cmake-4.1.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-build/cmake/cmake-4.1.2-r1.ebuild similarity index 99% rename from sdk_container/src/third_party/portage-stable/dev-build/cmake/cmake-4.1.1.ebuild rename to sdk_container/src/third_party/portage-stable/dev-build/cmake/cmake-4.1.2-r1.ebuild index 0ca40735b5..c2af90e358 100644 --- a/sdk_container/src/third_party/portage-stable/dev-build/cmake/cmake-4.1.1.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-build/cmake/cmake-4.1.2-r1.ebuild @@ -66,12 +66,13 @@ SLOT="0" IUSE="${CMAKE_DOCS_USEFLAG} dap gui ncurses test" RESTRICT="!test? ( test )" +# >= 1.51.0-r1 for ppc32 workaround (bug #941738) RDEPEND=" >=app-arch/libarchive-3.3.3:= app-crypt/rhash:0= >=dev-libs/expat-2.0.1 >=dev-libs/jsoncpp-1.9.2-r2:0= - >=dev-libs/libuv-1.10.0:= + >=dev-libs/libuv-1.51.0-r1:= >=net-misc/curl-7.21.5[ssl] sys-libs/zlib virtual/pkgconfig @@ -102,7 +103,6 @@ PATCHES=( "${FILESDIR}/${PN}-3.30.3-cudahostld.patch" # Upstream fixes (can usually be removed with a version bump) - "${FILESDIR}/${PN}-4.1.1-curl-8.16.0.patch" ) cmake_src_bootstrap() { 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 b2642fef07..c2af90e358 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 @@ -66,12 +66,13 @@ SLOT="0" IUSE="${CMAKE_DOCS_USEFLAG} dap gui ncurses test" RESTRICT="!test? ( test )" +# >= 1.51.0-r1 for ppc32 workaround (bug #941738) RDEPEND=" >=app-arch/libarchive-3.3.3:= app-crypt/rhash:0= >=dev-libs/expat-2.0.1 >=dev-libs/jsoncpp-1.9.2-r2:0= - >=dev-libs/libuv-1.10.0:= + >=dev-libs/libuv-1.51.0-r1:= >=net-misc/curl-7.21.5[ssl] sys-libs/zlib virtual/pkgconfig diff --git a/sdk_container/src/third_party/portage-stable/dev-build/cmake/files/cmake-3.27.0_rc1-0003-Prefer-pkgconfig-in-FindBLAS.patch b/sdk_container/src/third_party/portage-stable/dev-build/cmake/files/cmake-3.27.0_rc1-0003-Prefer-pkgconfig-in-FindBLAS.patch deleted file mode 100644 index 8e6e218b73..0000000000 --- a/sdk_container/src/third_party/portage-stable/dev-build/cmake/files/cmake-3.27.0_rc1-0003-Prefer-pkgconfig-in-FindBLAS.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 9bc75325cc38962ecdd4a3ebd67ce34ea8162a45 Mon Sep 17 00:00:00 2001 -From: Lars Wendler -Date: Thu, 13 Feb 2020 13:12:45 +0100 -Subject: [PATCH 3/6] Prefer pkgconfig in FindBLAS - ---- a/Modules/FindBLAS.cmake -+++ b/Modules/FindBLAS.cmake -@@ -7,6 +7,10 @@ FindBLAS - - Find Basic Linear Algebra Subprograms (BLAS) library - -+Version modified for Gentoo Linux. -+If a valid PkgConfig configuration is found, this overrides and cancels -+all further checks. -+ - This module finds an installed Fortran library that implements the - `BLAS linear-algebra interface`_. - -@@ -276,6 +280,9 @@ function(_add_blas_target) - endif() - endfunction() - -+# first, try PkgConfig -+set(BLA_PREFER_PKGCONFIG ON) -+ - if(CMAKE_Fortran_COMPILER_LOADED) - include(${CMAKE_CURRENT_LIST_DIR}/CheckFortranFunctionExists.cmake) - else() --- -2.41.0 - diff --git a/sdk_container/src/third_party/portage-stable/dev-build/cmake/files/cmake-3.27.0_rc1-0006-Filter-out-distcc-warnings-to-avoid-confusing-CMake.patch b/sdk_container/src/third_party/portage-stable/dev-build/cmake/files/cmake-3.27.0_rc1-0006-Filter-out-distcc-warnings-to-avoid-confusing-CMake.patch deleted file mode 100644 index 74d74b5f12..0000000000 --- a/sdk_container/src/third_party/portage-stable/dev-build/cmake/files/cmake-3.27.0_rc1-0006-Filter-out-distcc-warnings-to-avoid-confusing-CMake.patch +++ /dev/null @@ -1,26 +0,0 @@ -From f7ad7429b0b17c70b0309a5a8ee04d1afc434df0 Mon Sep 17 00:00:00 2001 -From: Felix W -Date: Fri, 9 Jun 2023 09:59:41 +0100 -Subject: [PATCH 6/6] Filter out distcc warnings to avoid confusing CMake - -Forward-ported from 3.16.5 to 3.18.0 - -Bug: https://bugs.gentoo.org/691544 -Bug: https://gitlab.kitware.com/cmake/cmake/-/issues/22573 -[imported from cmake 3.18.0-filter_distcc_warning.patch] - -Signed-off-by: Sam James ---- a/Source/Checks/cm_cxx_features.cmake -+++ b/Source/Checks/cm_cxx_features.cmake -@@ -55,6 +55,8 @@ function(cm_check_cxx_feature name) - string(REGEX REPLACE "[^\n]*icpc: command line warning #10121: overriding [^\n]*" "" check_output "${check_output}") - # Filter out ld warnings. - string(REGEX REPLACE "[^\n]*ld: warning: [^\n]*" "" check_output "${check_output}") -+ # Filter out distcc. -+ string(REGEX REPLACE "[^\n]*distcc\\[[0-9]+\\][^\n]*[Ww]arning:[^\n]*" "" check_output "${check_output}") - # If using the feature causes warnings, treat it as broken/unavailable. - if(check_output MATCHES "(^|[ :])[Ww][Aa][Rr][Nn][Ii][Nn][Gg]") - set(CMake_HAVE_CXX_${FEATURE} OFF CACHE INTERNAL "TRY_COMPILE" FORCE) --- -2.41.0 - diff --git a/sdk_container/src/third_party/portage-stable/dev-build/cmake/files/cmake-3.28.5-curl-8.16.0.patch b/sdk_container/src/third_party/portage-stable/dev-build/cmake/files/cmake-3.28.5-curl-8.16.0.patch deleted file mode 100644 index 9a57b28b81..0000000000 --- a/sdk_container/src/third_party/portage-stable/dev-build/cmake/files/cmake-3.28.5-curl-8.16.0.patch +++ /dev/null @@ -1,28 +0,0 @@ -https://github.com/Kitware/CMake/commit/c92268f91b30e6d52b82d1ffad227cadafcf4dbf -From: Matt Jolly -Date: Thu, 11 Sep 2025 11:20:42 +1000 -Subject: [PATCH] cmCTestCurl: Avoid using undocumented type for - CURLOPT_PROXYTYPE values - -Since upstream curl commit `1a12663d06` (CURLOPT: bump `CURLPROXY_*` -enums to `long`, drop casts, 2025-07-28), the `CURLPROXY_*` constants -are integer literals instead of `enum curl_proxytype`. It turns out -that `curl_easy_setopt` has always expected a `long` anyway, and that -`curl_proxytype` is not documented for public use. - -Rebased for 3.28.5 - -Signed-off-by: Matt Jolly ---- a/Source/CTest/cmCTestCurl.h -+++ b/Source/CTest/cmCTestCurl.h -@@ -44,7 +44,7 @@ private: - std::vector HttpHeaders; - std::string HTTPProxyAuth; - std::string HTTPProxy; -- curl_proxytype HTTPProxyType; -+ long HTTPProxyType; - bool VerifyHostOff; - bool VerifyPeerOff; - bool UseHttp10; --- -2.49.1 diff --git a/sdk_container/src/third_party/portage-stable/dev-build/cmake/files/cmake-3.31.6-curl-8.13.0.patch b/sdk_container/src/third_party/portage-stable/dev-build/cmake/files/cmake-3.31.6-curl-8.13.0.patch deleted file mode 100644 index 08bbcf4a3f..0000000000 --- a/sdk_container/src/third_party/portage-stable/dev-build/cmake/files/cmake-3.31.6-curl-8.13.0.patch +++ /dev/null @@ -1,36 +0,0 @@ -https://bugs.gentoo.org/953060 -https://gitlab.kitware.com/cmake/cmake/-/issues/26754 -https://gitlab.kitware.com/cmake/cmake/-/merge_requests/10449 - -From 1b0c92a3a1b782ff3e1c4499b6ab8db614d45bcd Mon Sep 17 00:00:00 2001 -From: Brad King -Date: Mon, 10 Mar 2025 11:08:42 -0400 -Subject: [PATCH] cmCurl: Avoid using undocumented type for CURLOPT_NETRC - values - -Since upstream curl commit `2ec00372a1` (curl.h: change some enums to -defines with L suffix, 2025-02-25), the `CURL_NETRC_*` constants are -integer literals instead of `enum CURL_NETRC_OPTION`. It turns out -that `curl_easy_setopt` has always expected a `long` anyway, and -that `CURL_NETRC_OPTION` is not documented for public use. - -Fixes: #26754 ---- - Source/cmCurl.cxx | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/Source/cmCurl.cxx b/Source/cmCurl.cxx -index b9133ed7d47..0cf8a71a72d 100644 ---- a/Source/cmCurl.cxx -+++ b/Source/cmCurl.cxx -@@ -170,7 +170,7 @@ std::string cmCurlSetNETRCOption(::CURL* curl, const std::string& netrc_level, - const std::string& netrc_file) - { - std::string e; -- CURL_NETRC_OPTION curl_netrc_level = CURL_NETRC_LAST; -+ long curl_netrc_level = CURL_NETRC_LAST; - ::CURLcode res; - - if (!netrc_level.empty()) { --- -GitLab diff --git a/sdk_container/src/third_party/portage-stable/dev-build/cmake/files/cmake-4.1.1-curl-8.16.0.patch b/sdk_container/src/third_party/portage-stable/dev-build/cmake/files/cmake-4.1.1-curl-8.16.0.patch deleted file mode 100644 index a2122eb295..0000000000 --- a/sdk_container/src/third_party/portage-stable/dev-build/cmake/files/cmake-4.1.1-curl-8.16.0.patch +++ /dev/null @@ -1,24 +0,0 @@ -https://github.com/Kitware/CMake/commit/c92268f91b30e6d52b82d1ffad227cadafcf4dbf -From: Brad King -Date: Tue, 2 Sep 2025 11:41:10 -0400 -Subject: [PATCH] cmCTestCurl: Avoid using undocumented type for - CURLOPT_PROXYTYPE values - -Since upstream curl commit `1a12663d06` (CURLOPT: bump `CURLPROXY_*` -enums to `long`, drop casts, 2025-07-28), the `CURLPROXY_*` constants -are integer literals instead of `enum curl_proxytype`. It turns out -that `curl_easy_setopt` has always expected a `long` anyway, and that -`curl_proxytype` is not documented for public use. - -Fixes: #27178 ---- a/Source/CTest/cmCTestCurl.h -+++ b/Source/CTest/cmCTestCurl.h -@@ -52,7 +52,7 @@ class cmCTestCurl - std::vector HttpHeaders; - std::string HTTPProxyAuth; - std::string HTTPProxy; -- curl_proxytype HTTPProxyType; -+ long HTTPProxyType; - bool UseHttp10 = false; - bool Quiet = false; - int TimeOutSeconds = 0; 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 2f36b8939c..f109c68410 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/Manifest b/sdk_container/src/third_party/portage-stable/dev-build/meson/Manifest index c843458821..d63fcd838b 100644 --- a/sdk_container/src/third_party/portage-stable/dev-build/meson/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-build/meson/Manifest @@ -12,16 +12,13 @@ DIST meson-1.6.1.tar.gz 2276144 BLAKE2B 7ccdb3bf3f701fc787fabf91413db8301a8658b8 DIST meson-1.6.1.tar.gz.asc 833 BLAKE2B 6666eca8e5506b8692fc29ba66dc3ee9d725a7d720a7b43db720098f7e00671e71993586606c187d8314e3919474f5733d64a8d052be6552cbcf013a872905ab SHA512 543cf396de0a58998c3587aa05580fa9a56734db40b74fc5fbb22cd56124531804a5360d6b9acb9baa71753ac04c343364da4d78a0d366d8e8bc760030ebf8d3 DIST meson-1.7.2.tar.gz 5009274 BLAKE2B f5a19d7c0dfa35efda5bdef972fa6362a64fee2c74be0c09dee6d52c30a8b0169dbe7fab3199add306c778f6a57196251b44ec27ff6b5e038e12c11b27513a54 SHA512 c3c71ae0e0c31d8d72e200bb5fd5e6584ce41aabe1e85575d50371f82ed02c6e346da3b0b4a2786199b9410daaa1622807a88bfc8ac991cf134bad4a53b3c863 DIST meson-1.7.2.tar.gz.asc 996 BLAKE2B 9a34bb86f15eb92d4eb972835e8e18e175c869a6ba9d88310ca6058654200b227c7a4a945eee220784f584737a3b74ffcd06e2b60a3e502e49af5da69eb1e5bf SHA512 a1e0461a28dfc8ba74ffd919511584148094c2bc809c3d380749856cbdaa33473c1a0c1ec92928020f50e116803fc03deb37b3ee2aca7e56287b155a5ccc36ac -DIST meson-1.8.3.tar.gz 2335924 BLAKE2B 3c440854bd91c757d4370b498f0e6e903df4589f4958e05fa16ae70e6efc01d2e96f101612146556b81cc3db370255f4319bd5d49d8e46210df282cc447ec12e SHA512 effd6f556152e508185a5bc59131b3a31696577298aec5f3d3ab68153ade9e98242171d6b72c00f8c32fc3492aba3487252d77a94a96b5a92e89724de045d49b -DIST meson-1.8.3.tar.gz.asc 833 BLAKE2B 25f00f76819c74e64b3750ddd4507fdd8a0be764db54ea48ba49f0985bfbf04d294e5eff1ee799ec082cba24ed59b21a8fd75f81dee9d824e5f8cd9c775b0dcd SHA512 9c28747ff4756422dae4eb4a86de24fe230e6676660aa9cfb72d29311012106a9edbcfff3559682917a7e0ed8c80af8b8ec37807d3f7e0f4005eed5793367307 -DIST meson-1.8.4.tar.gz 2336961 BLAKE2B fd574be17f1dde56fed13e18151cddc3265b4175b46bb45961f46a586e0e3b619ce5179df78505ac46cc6af7d8cbd4fc73f6434b8581b3e3518d791f6bb6e75c SHA512 3325c3968649847621e4d39309222741e5158b204ff6cc88410f364634c9978b5fb4c02c73968b3b7df46c89371a5b27aec9a997917dae757415bd77f5db39f2 -DIST meson-1.8.4.tar.gz.asc 833 BLAKE2B 33fea09355be6f3df1c9f82daf2c92cbebd79846f82039e697f390db4811ade49edaeb942a4d1da8cb95238cff400e4ef1a76e141189acf10bc5da70e3fb3c44 SHA512 e0e6474a020e320d940d8de1843b491d1906c38bca304168324cae333c5635c70b210ef14e1d31ada2a31e7d3b8e5ae4a8563373230f40c52c2cac017359fd29 -DIST meson-1.9.0.tar.gz 2366082 BLAKE2B 54cef087a9629087e67a0d75422d08370e86273a202d9e054d160a4ae52b7b1ad612a2a2c8e72a00a8e29bd5857375bedca5935cd74a560950c6b45a48d69f19 SHA512 62e633e07e7e8be1bf4f62f9e5a2df9535750fc0047ee5c21b17bc851d190cc0cf8e6696614692091013dc72e68aa23d2c1fe04500e146f56876591250474d04 -DIST meson-1.9.0.tar.gz.asc 833 BLAKE2B 3054c5f24b264fd5471b4094e6a37cfa4cad3567b8eda69d4b7a6c0e5486c95199b683c1b5b9ed1be44fd0eacaca1afb9dd95fd363a23753fdd0f71f194e9793 SHA512 7f2ce856cf16004ebdef1ce294e7efc44f644691cac2f704625b4a56b270d4b2db54564bef9f4c90360c1ec738e54b948aba336e1feb70dca2daf0e500f2b627 +DIST meson-1.8.5.tar.gz 5056050 BLAKE2B 4f67b140329d3b64dcc213e0c4e65d105dd98e0348d4c2bda622cfb617a6bd5434da13a0bc845cdb40ce376a30752d3183007f9b364cf54c699bc89cdecad195 SHA512 d0333380c4c9d8724212a100b7a4faa323c076ead9eed78e712974d68449271c6fd020e07ac8373fcdb18a0738a3ff5709dcacf8ff1aedf3a8ebd6edbb6b4c04 +DIST meson-1.8.5.tar.gz.asc 996 BLAKE2B ff8c1ffe8fd8488a00ffcc9d5d0c19dcadfca5216ad8c70daf44526f949c835d775dc558932237a891345e9d900385081ee1d7c76b41237aac423bf72b8f5f7b SHA512 da9ff37ac207dbfbe8bca511e6b8ee233aaaf89653bf00c43d2fed2ecaf0b59b0b11bd4efafa4f87a6f70c8ad11f23834d313c7d1ae07a77baa0d9cfbbe535aa +DIST meson-1.9.1.tar.gz 5083044 BLAKE2B a4d1894636ee61fa0101153f07d53717d34ba9de620b69becf669e06dc09a85874b4c5d619a509347c97e4112502a431affecccc5faf96464b072b5563247b9e SHA512 e5a167ff035f1494d6b1df7d3bf6feb37aa6421222fd27bfbebb36de4c7c3083e327679b82b7d9d3d4a2cc4dc2a3babb7cbf03358e4a2784d47eb34502014a1c +DIST meson-1.9.1.tar.gz.asc 992 BLAKE2B 5271c87e19da0f0776c01b1f9f71eef0540e532a9397dbbff3c09c9b3b7698b8ea650f46c8b7edab8e5fd72c1fce4445d556c310770cc23c8275ebf8f06241f6 SHA512 a621781134e4793ea557fd1487895b65a38de23b676a7b6d8d7ac779abcdf768bdf09f933ea7ecedee0cd78fa62ab6319a9108cdf39ffa2e5695cddf183fb903 DIST meson-reference-1.4.2.3 339324 BLAKE2B 1a4fbd8c27a8cfba773777eabd2ebaa0f76ec0c61dcfe1c7b4483737b348ff9528d68f26e68d7d40b2e1875611eed5b9a31c1cf55fed8eabb42fc1e31d9ef14b SHA512 8b8ec43e812599203ec44c08805eb6818485805c45b9c69802261eaa35efc97846a96f6472c6b1ef5f6c703e7153fd957df7b805f173ca3400a2030dfbe002ca DIST meson-reference-1.5.2.3 341110 BLAKE2B 0d588b796f7f2da2dcb0e7822acde6a9a461930da4bfead3cf9148fa0fac18cd0ccbc6e891f555c973836f1c16b4eae299908a838a0b6843293de8815d30fc23 SHA512 64715ce2113e362e7d67179fe13566bc8f84ce7f4e6d795b836f42455a871173fee06e3e969e2996022d7e6c9b4b5379587a4c0c3d97b4bca527fb8902d3547f DIST meson-reference-1.6.1.3 343730 BLAKE2B 55df822192781a70e4bc44cfe14fb363e3f820406260ca9705d7fdb5fad1bf0117e3f1325d37e58e23477bc075ab6bd84056409355ec694f72eeaa5bf982ecc7 SHA512 553cdcd86a7a600cda05ac970cc285c4c50017d1e7d2925645d7f19a62b34c2f079673cafecf4111aa102afbe9d8e4d56f166d1d9940b740eeec0bb99d6cbc0d DIST meson-reference-1.7.2.3 344764 BLAKE2B 82de9a7a01c2f1b45a2b3432deb4713af3cfd3b2dc9af8802488b7d1b86dde9b6ac81f90b144006a79e90b313e1d4d23f9cc90e17255ce9573e5487d3e20c286 SHA512 d482a3b3bed671705d6316e106984ad2c2169fe890349437e512455705ee8dddb31a29d31f44402a4c7c5bd2f78595b75bfc5ad34d8c0337b66f40837b08ee56 -DIST meson-reference-1.8.3.3 345855 BLAKE2B c8825ba7b72b36866ebfa8cdf63362f2d38673315378ea213c438057f5dafa36b9e729e8c415a29715c1da4fe72733a4a6a2cdbee4b7df57e5eb97f50152491b SHA512 3085c10cfc08ce4f0edad7129ce4d9a0bf75c6522309e344ba14e27c34d46c3da25ebb46260de28caef4a6c8134857d63297ded26f1296639a8a097e62a1801c -DIST meson-reference-1.8.4.3 345964 BLAKE2B a2840cfabe319cb244ad46bb3b72b7e19bcaf3bfbd0f804c3982a191f795284cc4d35ee00266bf069dd95c0fa99fdb565343007aed75a7a0859ad85528422667 SHA512 95385faa364103c9f38b497f6e021d81c0e08048863a046b5c9030d11f7554f8237d405fe04d2145513e3685a13c71b167f29a8727d0f8cb0ca591076e0b39b9 -DIST meson-reference-1.9.0.3 347286 BLAKE2B 1fb96870791e7bdaefed5c9a0e807d412e922e965690ef2f8820075a27c2d20d7b8057f0f3b7b009dcc5f20cb7ba7ee778d2df6e4eac583cda58625d58fe9266 SHA512 6e0e127c988b6269c13ba901ce7bbedab135d81a0b4bcd8528a01371d9f74964381c446c2fa35876953ad0199866a0016b1e39f315b054b91499fc00597a9c5d +DIST meson-reference-1.8.5.3 345964 BLAKE2B df514085c03c6cd84e31b1ea1aea18d34fdd5aebbcfa3ca96b31ca7dc97c89649f0b26e927288ed71beb3500a46d53cf6c42b740d9a8b3a22d75258cdf99c3c6 SHA512 ef8c4479b13bea4510dd57b0e18a4b86255853885763ae0a2ee19b3e0e846c6619bb6a646d656266650a58bc2afc7b1fa91b05bfc6f8fec9dcd73a7627a369fe +DIST meson-reference-1.9.1.3 347286 BLAKE2B cae2e9a97bcb7fc6894723156280306ea0fb35d9cbe68d31785ac0678b17b8a4bdfdf2362834b9daf3c01e0ff8dd67c0f1d384595ef4e93858064bdad3e46840 SHA512 d79a772f4fdd55309acda104087d0bbdc707e8fd2816b516daf0b8d1c034892ddb0bec9a383d6f65184e9509a358e2a8b392a484b65ab9d26c0e68a02fd6db95 diff --git a/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.8.4.ebuild b/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.8.4.ebuild deleted file mode 100644 index 699967ac5f..0000000000 --- a/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.8.4.ebuild +++ /dev/null @@ -1,231 +0,0 @@ -# Copyright 2016-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -PYTHON_COMPAT=( python3_{11..14} pypy3_11 ) -DISTUTILS_USE_PEP517=setuptools - -inherit shell-completion edo distutils-r1 flag-o-matic toolchain-funcs - -if [[ ${PV} = *9999* ]]; then - EGIT_REPO_URI="https://github.com/mesonbuild/meson" - inherit ninja-utils git-r3 - - BDEPEND=" - ${NINJA_DEPEND} - $(python_gen_any_dep 'dev-python/pyyaml[${PYTHON_USEDEP}]') - " - -else - inherit verify-sig - - MY_PV=${PV/_/} - MY_P=${P/_/} - S=${WORKDIR}/${MY_P} - - SRC_URI=" - https://github.com/mesonbuild/meson/releases/download/${MY_PV}/${MY_P}.tar.gz - verify-sig? ( https://github.com/mesonbuild/meson/releases/download/${MY_PV}/${MY_P}.tar.gz.asc ) - https://github.com/mesonbuild/meson/releases/download/${MY_PV}/meson-reference.3 -> meson-reference-${MY_PV}.3 - " - # Releases may be signed by those listed in Releasing.md. Jussi - # remains the default release manager. - # https://github.com/mesonbuild/meson/commit/c2d795735fa1c46c54d6aed4d4a30f36a1f853cb - BDEPEND="verify-sig? ( sec-keys/openpgp-keys-jpakkane )" - VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/jpakkane.gpg - - 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 - -DESCRIPTION="Open source build system" -HOMEPAGE="https://mesonbuild.com/" - -LICENSE="Apache-2.0" -SLOT="0" -IUSE="test test-full" -RESTRICT="!test? ( test )" -REQUIRED_USE="test-full? ( test )" - -DEPEND=" - test? ( - dev-libs/glib:2 - dev-libs/gobject-introspection - app-alternatives/ninja - dev-vcs/git - sys-libs/zlib[static-libs(+)] - virtual/pkgconfig - dev-build/cmake - ) - test-full? ( - || ( dev-lang/rust dev-lang/rust-bin ) - dev-lang/nasm - >=dev-lang/pypy-3 - dev-lang/vala - dev-python/cython - virtual/fortran - virtual/jdk - - app-text/doxygen - dev-cpp/gtest - dev-libs/protobuf - dev-util/bindgen - dev-util/gtk-doc - dev-util/itstool - llvm-core/llvm - media-libs/libsdl2 - media-libs/libwmf - net-libs/libpcap - sci-libs/hdf5[fortran] - sci-libs/netcdf - sys-cluster/openmpi[fortran] - sys-devel/bison - sys-devel/flex - - dev-qt/linguist-tools:5 - dev-qt/qtwidgets:5 - dev-qt/qtbase:6[gui,widgets] - dev-qt/qtdeclarative:6 - dev-qt/qttools:6 - dev-util/gdbus-codegen - x11-libs/gtk+:3 - - dev-libs/wayland - dev-util/wayland-scanner - ) -" -RDEPEND=" - !/dev/null) - - ${EPYTHON} -u run_tests.py - ) || die "Testing failed with ${EPYTHON}" -} - -python_install_all() { - distutils-r1_python_install_all - - insinto /usr/share/vim/vimfiles - doins -r data/syntax-highlighting/vim/{ftdetect,indent,syntax} - - dozshcomp data/shell-completions/zsh/_meson - dobashcomp data/shell-completions/bash/meson - - if [[ ${PV} = *9999* ]]; then - DESTDIR="${ED}" eninja -C docs/builddir install - else - newman "${DISTDIR}"/meson-reference-${MY_PV}.3 meson-reference.3 - fi -} diff --git a/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.9.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.8.5.ebuild similarity index 96% rename from sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.9.0.ebuild rename to sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.8.5.ebuild index 699967ac5f..3b3b8ff738 100644 --- a/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.9.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.8.5.ebuild @@ -32,8 +32,9 @@ else # Releases may be signed by those listed in Releasing.md. Jussi # remains the default release manager. # https://github.com/mesonbuild/meson/commit/c2d795735fa1c46c54d6aed4d4a30f36a1f853cb - BDEPEND="verify-sig? ( sec-keys/openpgp-keys-jpakkane )" - VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/jpakkane.gpg + BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-eschwartz-20250723-r1 sec-keys/openpgp-keys-jpakkane )" + VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/eschwartz.asc + #VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/jpakkane.gpg 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" diff --git a/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.8.3.ebuild b/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.9.1.ebuild similarity index 96% rename from sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.8.3.ebuild rename to sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.9.1.ebuild index 699967ac5f..3b3b8ff738 100644 --- a/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.8.3.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-build/meson/meson-1.9.1.ebuild @@ -32,8 +32,9 @@ else # Releases may be signed by those listed in Releasing.md. Jussi # remains the default release manager. # https://github.com/mesonbuild/meson/commit/c2d795735fa1c46c54d6aed4d4a30f36a1f853cb - BDEPEND="verify-sig? ( sec-keys/openpgp-keys-jpakkane )" - VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/jpakkane.gpg + BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-eschwartz-20250723-r1 sec-keys/openpgp-keys-jpakkane )" + VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/eschwartz.asc + #VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/jpakkane.gpg 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" diff --git a/sdk_container/src/third_party/portage-stable/dev-cpp/azure-core/Manifest b/sdk_container/src/third_party/portage-stable/dev-cpp/azure-core/Manifest index 00172e394f..1334c3fda4 100644 --- a/sdk_container/src/third_party/portage-stable/dev-cpp/azure-core/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-cpp/azure-core/Manifest @@ -1,2 +1 @@ DIST azure-sdk-for-cpp-11a2a38aa79daf573c2a16353dd9121536ac9fc1.tar.gz 3375477 BLAKE2B ee381975a7464c62b6a2d6a7aeaa52118cf6941a6c91b81eb8e056cc5deef9cd0d23dc7e56f273796fa906a064e9e23acb763762013b9c27837788cc261253ce SHA512 892223ff787bf68dd782e058962120b06f12891383fe26e157d9efd59ecc4d5d216f4fb1df6d46a46a57167ec1c3cfe864757e4e198a3c8a6a721603d7c51695 -DIST azure-sdk-for-cpp-de3cc64a55b2a67d672b7ca899a8675182d1c989.tar.gz 3359660 BLAKE2B eda2034cc789ad6d5e1d477bbb5a3619a53ee22b511707b8aec9471dc8b09814b4b6c199442532790f7b43c07e21bfa3f6534cf49e1f46d7f8a5e60f3e5eecce SHA512 b6004de0e1f312bdd55f91f597d2ee831be9d3d500a0c554a8258f52d054c288a6caff3ae86cc023b9ee1167df9fd898d65278f0b076ae23b2e65e9ab5791d36 diff --git a/sdk_container/src/third_party/portage-stable/dev-cpp/azure-core/azure-core-1.16.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-cpp/azure-core/azure-core-1.16.0.ebuild deleted file mode 100644 index 333d13c704..0000000000 --- a/sdk_container/src/third_party/portage-stable/dev-cpp/azure-core/azure-core-1.16.0.ebuild +++ /dev/null @@ -1,46 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit cmake - -COMMIT="de3cc64a55b2a67d672b7ca899a8675182d1c989" -MY_P="azure-sdk-for-cpp-${COMMIT}" -DESCRIPTION="Azure SDK for C++" -HOMEPAGE="https://azure.github.io/azure-sdk-for-cpp/" -SRC_URI="https://github.com/Azure/azure-sdk-for-cpp/archive/${COMMIT}.tar.gz -> ${MY_P}.tar.gz" -S="${WORKDIR}/${MY_P}/sdk/core/${PN}" -LICENSE="MIT" -SLOT="0/${PV}" -KEYWORDS="amd64" -IUSE="doc" -RESTRICT="test" # Too many online tests. - -RDEPEND=" - dev-libs/openssl:= - net-misc/curl[ssl] -" -DEPEND=" - ${RDEPEND} -" -BDEPEND=" - virtual/pkgconfig - doc? ( app-text/doxygen ) -" - -src_configure() { - local mycmakeargs=( - -DBUILD_DOCUMENTATION=$(usex doc) - -DWARNINGS_AS_ERRORS=no - ) - - AZURE_SDK_DISABLE_AUTO_VCPKG=yes \ - cmake_src_configure -} - -src_install() { - cmake_src_install - rm -v "${ED}"/usr/share/*/copyright || die - use doc && dodoc -r "${BUILD_DIR}"/docs/html -} diff --git a/sdk_container/src/third_party/portage-stable/dev-cpp/azure-core/azure-core-1.16.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-cpp/azure-core/azure-core-1.16.1.ebuild index 8cfac7c907..a78f7e0749 100644 --- a/sdk_container/src/third_party/portage-stable/dev-cpp/azure-core/azure-core-1.16.1.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-cpp/azure-core/azure-core-1.16.1.ebuild @@ -13,7 +13,7 @@ SRC_URI="https://github.com/Azure/azure-sdk-for-cpp/archive/${COMMIT}.tar.gz -> S="${WORKDIR}/${MY_P}/sdk/core/${PN}" LICENSE="MIT" SLOT="0/${PV}" -KEYWORDS="~amd64" +KEYWORDS="amd64" IUSE="doc" RESTRICT="test" # Too many online tests. diff --git a/sdk_container/src/third_party/portage-stable/dev-cpp/azure-identity/Manifest b/sdk_container/src/third_party/portage-stable/dev-cpp/azure-identity/Manifest index 4240e6308c..8dd25a608a 100644 --- a/sdk_container/src/third_party/portage-stable/dev-cpp/azure-identity/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-cpp/azure-identity/Manifest @@ -1,2 +1,2 @@ DIST azure-sdk-for-cpp-11a2a38aa79daf573c2a16353dd9121536ac9fc1.tar.gz 3375477 BLAKE2B ee381975a7464c62b6a2d6a7aeaa52118cf6941a6c91b81eb8e056cc5deef9cd0d23dc7e56f273796fa906a064e9e23acb763762013b9c27837788cc261253ce SHA512 892223ff787bf68dd782e058962120b06f12891383fe26e157d9efd59ecc4d5d216f4fb1df6d46a46a57167ec1c3cfe864757e4e198a3c8a6a721603d7c51695 -DIST azure-sdk-for-cpp-6aea93d0410f5bc3e3a58a8d492a3063cac3aced.tar.gz 3360426 BLAKE2B 027729aece30196a607a3bb9d6b12e1f884069526b96773701fe211945426a0175ed94d65ae5df6577dfe871a89cbbcff53ea1c6ab814719385af9c9a821aad5 SHA512 f7abcf97468caa04c841935911490c134f1d860b9ae11f2ba57a2a480b9c63a7277fe2ed1440ae0d3c8d2ba76890bc170f38ee936016f9a4ba9b4989f2b7eb11 +DIST azure-sdk-for-cpp-fe5e5ad9e50423ad992648a60151696ed896b7c6.tar.gz 3399411 BLAKE2B dba68b4c673bfa48c3e8bb08d51f4e677e82cdd9a2eb651ec91f62b0a658d22493d5ded51346ee08c43b3da369ab6dbd77dc57396544facf48fe5082d8682312 SHA512 7fe149e37d17e54fb3669f143b7ba16c8d4bde3caf56e132786aa97d7c3d662b753a99d0ed460ca29dfc469776aaf5e0d36df17e419458c4f941c1c5763990dd diff --git a/sdk_container/src/third_party/portage-stable/dev-cpp/azure-identity/azure-identity-1.13.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-cpp/azure-identity/azure-identity-1.13.1.ebuild index ace02d6307..b0e5af7756 100644 --- a/sdk_container/src/third_party/portage-stable/dev-cpp/azure-identity/azure-identity-1.13.1.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-cpp/azure-identity/azure-identity-1.13.1.ebuild @@ -13,7 +13,7 @@ SRC_URI="https://github.com/Azure/azure-sdk-for-cpp/archive/${COMMIT}.tar.gz -> S="${WORKDIR}/${MY_P}/sdk/identity/${PN}" LICENSE="MIT" SLOT="0/${PV}" -KEYWORDS="~amd64" +KEYWORDS="amd64" IUSE="doc" RESTRICT="test" # Too many online tests. diff --git a/sdk_container/src/third_party/portage-stable/dev-cpp/azure-identity/azure-identity-1.13.0-r1.ebuild b/sdk_container/src/third_party/portage-stable/dev-cpp/azure-identity/azure-identity-1.13.2.ebuild similarity index 88% rename from sdk_container/src/third_party/portage-stable/dev-cpp/azure-identity/azure-identity-1.13.0-r1.ebuild rename to sdk_container/src/third_party/portage-stable/dev-cpp/azure-identity/azure-identity-1.13.2.ebuild index 193754348d..f521a19b95 100644 --- a/sdk_container/src/third_party/portage-stable/dev-cpp/azure-identity/azure-identity-1.13.0-r1.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-cpp/azure-identity/azure-identity-1.13.2.ebuild @@ -5,7 +5,7 @@ EAPI=8 inherit cmake -COMMIT="6aea93d0410f5bc3e3a58a8d492a3063cac3aced" +COMMIT="fe5e5ad9e50423ad992648a60151696ed896b7c6" MY_P="azure-sdk-for-cpp-${COMMIT}" DESCRIPTION="Azure SDK for C++" HOMEPAGE="https://azure.github.io/azure-sdk-for-cpp/" @@ -13,7 +13,7 @@ SRC_URI="https://github.com/Azure/azure-sdk-for-cpp/archive/${COMMIT}.tar.gz -> S="${WORKDIR}/${MY_P}/sdk/identity/${PN}" LICENSE="MIT" SLOT="0/${PV}" -KEYWORDS="amd64" +KEYWORDS="~amd64" IUSE="doc" RESTRICT="test" # Too many online tests. @@ -30,10 +30,6 @@ BDEPEND=" doc? ( app-text/doxygen ) " -PATCHES=( - "${FILESDIR}"/${PN}-imds-double-slash.patch -) - src_configure() { local mycmakeargs=( -DBUILD_DOCUMENTATION=$(usex doc) diff --git a/sdk_container/src/third_party/portage-stable/dev-cpp/azure-identity/files/azure-identity-imds-double-slash.patch b/sdk_container/src/third_party/portage-stable/dev-cpp/azure-identity/files/azure-identity-imds-double-slash.patch deleted file mode 100644 index f6b47be1ad..0000000000 --- a/sdk_container/src/third_party/portage-stable/dev-cpp/azure-identity/files/azure-identity-imds-double-slash.patch +++ /dev/null @@ -1,22 +0,0 @@ -From 72f327b2c19afffa9df2ce0ef817c13b3dd75804 Mon Sep 17 00:00:00 2001 -From: James Le Cuirot -Date: Wed, 13 Aug 2025 15:52:31 +0100 -Subject: [PATCH] Fix IMDS token requests for managed identities - -This was broken by a035ee5f9416ef9188533de40b4ab1c37fb7c0af, which -accidentally constructed the IMDS URL with a double slash at the start -of the path. This is not properly routed on the server side, leading to -a 404 error with some very misleading XML. - -Signed-off-by: James Le Cuirot ---- a/src/managed_identity_source.cpp -+++ b/src/managed_identity_source.cpp -@@ -527,7 +527,7 @@ std::unique_ptr ImdsManagedIdentitySource::Create( - - imdsUrl = Core::Url{imdsEndpointEnvVarValue}; - } -- imdsUrl.SetPath("/metadata/identity/oauth2/token"); -+ imdsUrl.SetPath("metadata/identity/oauth2/token"); - - return std::unique_ptr( - new ImdsManagedIdentitySource(clientId, objectId, resourceId, imdsUrl, options)); diff --git a/sdk_container/src/third_party/portage-stable/dev-db/sqlite/Manifest b/sdk_container/src/third_party/portage-stable/dev-db/sqlite/Manifest index b5847a4aed..352c52c876 100644 --- a/sdk_container/src/third_party/portage-stable/dev-db/sqlite/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-db/sqlite/Manifest @@ -1,4 +1,2 @@ -DIST sqlite-doc-3500200.zip 11382890 BLAKE2B f7cea3721d77b32ac4b4c514023750aae8fd95e417fa594452b6f29aa56a061f4177187effaad82d25b868076c6dd8b15db08cf5b9353aa6be06e9938be73e9d SHA512 d1dbec8bc41cc83d2fd048cdc353e44f1ae4a60949aabec1e5aee50485f8535efba85bdae88f93785c8e53d48feb76b8143f272d70f73ce13368815f978bd4bc DIST sqlite-doc-3500400.zip 11398708 BLAKE2B a179191767c86b10604ad03ebd6408ebc3e6b14ce5a85d7dd14cfc933da8e92b76a7ad8b40616699c54022259ba852e30e6f7eeb34640326d51623a7c52c0065 SHA512 24db55ec5d29a6389cf930e3fa3c7205ca47973f5857f7cc5444166bd10d00109cbe4141e87cbb94f75711cb981e60bde286b15c0384cdcfb41337f0f0eaa446 -DIST sqlite-src-3500200.zip 14392422 BLAKE2B d1d21b53e4eb5b4a89d1460e2a1f57f198fa194efa804f1eb71a747d8a8ff75240f7d2757bee537b901830c359b42d7639943f59d28623bc2fb3c870b725debf SHA512 827c78b2bfd823626cdae6a88fff882cbd90430babfab6c6fd224cf05c8764b43499184a4f07293fb00bfcbbaedfec958d1afbfe4431ea9b24b189c561213e7d DIST sqlite-src-3500400.zip 14393367 BLAKE2B e94589cb80ce64b5b8c0a2d28582b223a7cb9355424366fc3135c261ca33b4a93dcdeafb86252deeb9beca0ea94490ec6461ba5ab9e8f16b33e9628a85a19813 SHA512 003b03ddc4dd9618b48370e2aaf339c12c3384963f142f1f97110d6ed74f45aa7477477f53bc8b24b6d9f473b899ecb5d13889f52b8cd4fbdce2e6e5fa24502f diff --git a/sdk_container/src/third_party/portage-stable/dev-db/sqlite/sqlite-3.50.2.ebuild b/sdk_container/src/third_party/portage-stable/dev-db/sqlite/sqlite-3.50.2.ebuild deleted file mode 100644 index 67f10a4d5f..0000000000 --- a/sdk_container/src/third_party/portage-stable/dev-db/sqlite/sqlite-3.50.2.ebuild +++ /dev/null @@ -1,444 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit flag-o-matic multilib multilib-minimal toolchain-funcs - -DESCRIPTION="SQL database engine" -HOMEPAGE="https://sqlite.org/" - -# On version updates, make sure to read the forum (https://sqlite.org/forum/forum) -# for hints regarding test failures, backports, etc. -if [[ ${PV} == 9999 ]]; then - S="${WORKDIR}"/${PN} - PROPERTIES="live" -else - printf -v SRC_PV "%u%02u%02u%02u" $(ver_rs 1- " ") - DOC_PV="${SRC_PV}" - #printf -v DOC_PV "%u%02u%02u00" $(ver_rs 1-3 " ") - - SRC_URI=" - https://sqlite.org/2025/${PN}-src-${SRC_PV}.zip - doc? ( https://sqlite.org/2025/${PN}-doc-${DOC_PV}.zip ) - " - S="${WORKDIR}/${PN}-src-${SRC_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" -fi - -LICENSE="public-domain" -SLOT="3" -IUSE="debug doc icu +readline secure-delete static-libs tcl test tools" -RESTRICT="!test? ( test )" - -RDEPEND=" - sys-libs/zlib:=[${MULTILIB_USEDEP}] - icu? ( dev-libs/icu:=[${MULTILIB_USEDEP}] ) - readline? ( sys-libs/readline:=[${MULTILIB_USEDEP}] ) - tcl? ( dev-lang/tcl:=[${MULTILIB_USEDEP}] ) - tools? ( dev-lang/tcl:= ) -" -DEPEND=" - ${RDEPEND} - test? ( >=dev-lang/tcl-8.6:0[${MULTILIB_USEDEP}] ) -" -if [[ ${PV} == 9999 ]]; then - BDEPEND+=" dev-vcs/fossil" -else - BDEPEND+=" app-arch/unzip" -fi - -PATCHES=( - "${FILESDIR}"/${PN}-3.47.2-hwtime.h-Don-t-use-rdtsc-on-i486.patch -) - -_fossil_fetch() { - local distdir="${PORTAGE_ACTUAL_DISTDIR:-${DISTDIR}}" - local repo_id="${1}" - local repo_uri="${2}" - - local -x FOSSIL_HOME="${HOME}" - - mkdir -p "${T}/fossil/${repo_id}" || die - pushd "${T}/fossil/${repo_id}" > /dev/null || die - - if [[ -n "${EVCS_OFFLINE}" ]]; then - if [[ ! -f "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" ]]; then - die "Network activity disabled using EVCS_OFFLINE and clone of repository missing: \"${distdir}/fossil-src/${repo_id}/${repo_id}.fossil\"" - fi - else - if [[ ! -f "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" ]]; then - einfo fossil clone --verbose "${repo_uri}" "${repo_id}.fossil" - fossil clone --verbose "${repo_uri}" "${repo_id}.fossil" || die - echo - else - cp -p "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" . || die - einfo fossil pull --repository "${repo_id}.fossil" --verbose "${repo_uri}" - fossil pull --repository "${repo_id}.fossil" --verbose "${repo_uri}" || die - echo - fi - - ( - addwrite "${distdir}" - mkdir -p "${distdir}/fossil-src/${repo_id}" || die - cp -p "${repo_id}.fossil" "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" || die - ) - fi - - popd > /dev/null || die -} - -_fossil_checkout() { - local distdir="${PORTAGE_ACTUAL_DISTDIR:-${DISTDIR}}" - local repo_id="${1}" - local branch_or_commit="${2}" - local target_directory="${3}" - - local -x FOSSIL_HOME="${HOME}" - - if [[ ! -f "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" ]]; then - die "Clone of repository missing: \"${distdir}/fossil-src/${repo_id}/${repo_id}.fossil\"" - fi - - if [[ ! -f "${T}/fossil/${repo_id}/${repo_id}.fossil" ]]; then - mkdir -p "${T}/fossil/${repo_id}" || die - cp -p "${distdir}/fossil-src/${repo_id}/${repo_id}.fossil" "${T}/fossil/${repo_id}" || die - fi - - mkdir "${target_directory}" || die - pushd "${target_directory}" > /dev/null || die - - einfo fossil open --quiet "${T}/fossil/${repo_id}/${repo_id}.fossil" "${branch_or_commit}" - fossil open --quiet "${T}/fossil/${repo_id}/${repo_id}.fossil" "${branch_or_commit}" || die - echo - - popd > /dev/null || die -} - -fossil_fetch() { - local repo_id="${1}" - local repo_uri="${2}" - local target_directory="${3}" - - local branch_or_commit="${EFOSSIL_COMMIT:-${EFOSSIL_BRANCH:-trunk}}" - - _fossil_fetch "${repo_id}" "${repo_uri}" - _fossil_checkout "${repo_id}" "${branch_or_commit}" "${target_directory}" -} - -src_unpack() { - if [[ ${PV} == 9999 ]]; then - fossil_fetch sqlite https://sqlite.org/src "${WORKDIR}/${PN}" - if use doc; then - fossil_fetch sqlite-doc https://sqlite.org/docsrc "${WORKDIR}/${PN}-doc" - fi - else - default - fi -} - -src_prepare() { - default - - multilib_copy_sources -} - -multilib_src_configure() { - local -x CPPFLAGS="${CPPFLAGS}" CFLAGS="${CFLAGS}" - local options=() - - options+=( - --enable-load-extension - --enable-threadsafe - ) - - # Support detection of misuse of SQLite API. - # https://sqlite.org/compile.html#enable_api_armor - append-cppflags -DSQLITE_ENABLE_API_ARMOR - - # Support bytecode and tables_used virtual tables. - # https://sqlite.org/compile.html#enable_bytecode_vtab - # https://sqlite.org/bytecodevtab.html - append-cppflags -DSQLITE_ENABLE_BYTECODE_VTAB - - # Support column metadata functions. - # https://sqlite.org/compile.html#enable_column_metadata - # https://sqlite.org/c3ref/column_database_name.html - append-cppflags -DSQLITE_ENABLE_COLUMN_METADATA - - # Support sqlite_dbpage virtual table. - # https://sqlite.org/compile.html#enable_dbpage_vtab - # https://sqlite.org/dbpage.html - append-cppflags -DSQLITE_ENABLE_DBPAGE_VTAB - - # Support dbstat virtual table. - # https://sqlite.org/compile.html#enable_dbstat_vtab - # https://sqlite.org/dbstat.html - append-cppflags -DSQLITE_ENABLE_DBSTAT_VTAB - - # Support sqlite3_serialize() and sqlite3_deserialize() functions. - # https://sqlite.org/compile.html#enable_deserialize - # https://sqlite.org/c3ref/serialize.html - # https://sqlite.org/c3ref/deserialize.html - append-cppflags -DSQLITE_ENABLE_DESERIALIZE - - # Support comments in output of EXPLAIN. - # https://sqlite.org/compile.html#enable_explain_comments - append-cppflags -DSQLITE_ENABLE_EXPLAIN_COMMENTS - - # Support Full-Text Search versions 3, 4 and 5. - # https://sqlite.org/compile.html#enable_fts3 - # https://sqlite.org/compile.html#enable_fts3_parenthesis - # https://sqlite.org/compile.html#enable_fts4 - # https://sqlite.org/compile.html#enable_fts5 - # https://sqlite.org/fts3.html - # https://sqlite.org/fts5.html - append-cppflags -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS - options+=( --enable-fts4 ) - options+=( --enable-fts5 ) - - # Support hidden columns. - append-cppflags -DSQLITE_ENABLE_HIDDEN_COLUMNS - - # Support memsys5 memory allocator. - # https://sqlite.org/compile.html#enable_memsys5 - # https://sqlite.org/malloc.html#memsys5 - options+=( --enable-memsys5 ) - - # Support sqlite3_normalized_sql() function. - # https://sqlite.org/c3ref/expanded_sql.html - append-cppflags -DSQLITE_ENABLE_NORMALIZE - - # Support sqlite_offset() function. - # https://sqlite.org/compile.html#enable_offset_sql_func - # https://sqlite.org/lang_corefunc.html#sqlite_offset - append-cppflags -DSQLITE_ENABLE_OFFSET_SQL_FUNC - - # Support pre-update hook functions. - # https://sqlite.org/compile.html#enable_preupdate_hook - # https://sqlite.org/c3ref/preupdate_count.html - append-cppflags -DSQLITE_ENABLE_PREUPDATE_HOOK - - # Support Resumable Bulk Update extension. - # https://sqlite.org/compile.html#enable_rbu - # https://sqlite.org/rbu.html - append-cppflags -DSQLITE_ENABLE_RBU - - # Support R*Trees. - # https://sqlite.org/compile.html#enable_rtree - # https://sqlite.org/compile.html#enable_geopoly - # https://sqlite.org/rtree.html - # https://sqlite.org/geopoly.html - options+=( --enable-rtree --enable-geopoly ) - - # Support Session extension. - # https://sqlite.org/compile.html#enable_session - # https://sqlite.org/sessionintro.html - options+=( --enable-session ) - - # Support scan status functions. - # https://sqlite.org/compile.html#enable_stmt_scanstatus - # https://sqlite.org/c3ref/stmt_scanstatus.html - # https://sqlite.org/c3ref/stmt_scanstatus_reset.html - append-cppflags -DSQLITE_ENABLE_STMT_SCANSTATUS - - # Support sqlite_stmt virtual table. - # https://sqlite.org/compile.html#enable_stmtvtab - # https://sqlite.org/stmt.html - append-cppflags -DSQLITE_ENABLE_STMTVTAB - - # Support unknown() function. - # https://sqlite.org/compile.html#enable_unknown_sql_function - append-cppflags -DSQLITE_ENABLE_UNKNOWN_SQL_FUNCTION - - # Support unlock notification. - # https://sqlite.org/compile.html#enable_unlock_notify - # https://sqlite.org/c3ref/unlock_notify.html - # https://sqlite.org/unlock_notify.html - append-cppflags -DSQLITE_ENABLE_UNLOCK_NOTIFY - - # Support LIMIT and ORDER BY clauses on DELETE and UPDATE statements. - # https://sqlite.org/compile.html#enable_update_delete_limit - # https://sqlite.org/lang_delete.html#optional_limit_and_order_by_clauses - # https://sqlite.org/lang_update.html#optional_limit_and_order_by_clauses - append-cppflags -DSQLITE_ENABLE_UPDATE_DELETE_LIMIT - - # Support soundex() function. - # https://sqlite.org/compile.html#soundex - # https://sqlite.org/lang_corefunc.html#soundex - append-cppflags -DSQLITE_SOUNDEX - - # Support URI filenames. - # https://sqlite.org/compile.html#use_uri - # https://sqlite.org/uri.html - append-cppflags -DSQLITE_USE_URI - - options+=( $(use_enable debug) ) - - if use icu; then - # Support ICU extension. - # https://sqlite.org/compile.html#enable_icu - options+=( --with-icu-config ) - fi - - options+=( - --disable-editline - $(use_enable readline) - ) - - if use readline; then - options+=( --with-readline-inc="-I${ESYSROOT}/usr/include/readline" ) - fi - - if use secure-delete; then - # Enable secure_delete pragma by default. - # https://sqlite.org/compile.html#secure_delete - # https://sqlite.org/pragma.html#pragma_secure_delete - append-cppflags -DSQLITE_SECURE_DELETE - fi - - options+=( $(use_enable static-libs static) ) - - # tcl, test, tools USE flags. - if use tcl || use test || { use tools && multilib_is_native_abi; }; then - options+=( - --enable-tcl - --with-tcl="${ESYSROOT}/usr/$(get_libdir)" - ) - else - options+=( --disable-tcl ) - fi - - if [[ "${ABI}" == "x86" ]]; then - if $(tc-getCC) ${CPPFLAGS} ${CFLAGS} -E -P -dM - < /dev/null 2> /dev/null | grep -q "^#define __SSE__ 1$"; then - append-cflags -mfpmath=sse - else - append-cflags -ffloat-store - fi - fi - - if [[ ${CHOST} != *-darwin* ]] ; then - # set SONAME for the library - options+=( --soname=legacy ) - else - # to allow install_name_tool id change - append-ldflags -headerpad_max_install_names - fi - - # https://sqlite.org/forum/forumpost/4f4d06a9f6683bb9 - tc-export_build_env BUILD_CC - - CC_FOR_BUILD=${BUILD_CC} econf "${options[@]}" -} - -multilib_src_compile() { - emake HAVE_TCL="$(usex tcl 1 0)" TCLLIBDIR="${EPREFIX}/usr/$(get_libdir)/${P}" - - if use tools && multilib_is_native_abi; then - emake changeset dbdump dbhash dbtotxt index_usage rbu scrub showdb showjournal showshm showstat4 showwal sqldiff sqlite3_analyzer sqlite3_checker sqlite3_expert sqltclsh - fi - - if [[ ${PV} == 9999 ]] && use doc && multilib_is_native_abi; then - emake tclsqlite3.c - - local build_directory="$(pwd)" - build_directory="${build_directory##*/}" - - mkdir "${WORKDIR}/${PN}-doc-build" || die - pushd "${WORKDIR}/${PN}-doc-build" > /dev/null || die - - emake -f "../${PN}-doc/Makefile" -j1 SRC="../${PN}" BLD="../${build_directory}" DOC="../${PN}-doc" CC="$(tc-getBUILD_CC)" TCLINC="" TCLFLAGS="$($(tc-getBUILD_PKG_CONFIG) --libs tcl) -ldl -lm" base doc - rmdir doc/matrix{/*,} || die - - popd > /dev/null || die - fi -} - -multilib_src_test() { - if [[ "${EUID}" -eq 0 ]]; then - ewarn "Skipping tests due to root permissions" - return - fi - - local -x SQLITE_HISTORY="${T}/sqlite_history_${ABI}" - - # e_uri.test tries to open files in /. - # bug #839798 - local SANDBOX_PREDICT=${SANDBOX_PREDICT} - addpredict "/test.db" - addpredict "/ÿ.db" - - emake -Onone $(usex debug 'fulltest' 'test') -} - -multilib_src_install() { - emake DESTDIR="${D}" HAVE_TCL="$(usex tcl 1 "")" TCLLIBDIR="${EPREFIX}/usr/$(get_libdir)/${P}" install - - if [[ ${CHOST} == *-darwin* ]] ; then - # fix install_name, soname=legacy doesn't work for this (but - # breaks the build instead) - install_name_tool \ - -id "${EPREFIX}/usr/$(get_libdir)/libsqlite3$(get_libname 0)" \ - "${ED}/usr/$(get_libdir)/libsqlite3$(get_libname ${PV})" \ - || die "failed to fix install_name" - fi - - if use tools && multilib_is_native_abi; then - install_tool() { - if [[ -f ".libs/${1}" ]]; then - newbin ".libs/${1}" "${2}" - else - newbin "${1}" "${2}" - fi - } - - install_tool changeset sqlite3-changeset - install_tool dbdump sqlite3-db-dump - install_tool dbhash sqlite3-db-hash - install_tool dbtotxt sqlite3-db-to-txt - install_tool index_usage sqlite3-index-usage - install_tool rbu sqlite3-rbu - install_tool scrub sqlite3-scrub - install_tool showdb sqlite3-show-db - install_tool showjournal sqlite3-show-journal - install_tool showshm sqlite3-show-shm - install_tool showstat4 sqlite3-show-stat4 - install_tool showwal sqlite3-show-wal - install_tool sqldiff sqlite3-diff - install_tool sqlite3_analyzer sqlite3-analyzer - install_tool sqlite3_checker sqlite3-checker - install_tool sqlite3_expert sqlite3-expert - install_tool sqltclsh sqlite3-tclsh - - unset -f install_tool - fi -} - -multilib_src_install_all() { - find "${ED}" -name "*.la" -delete || die - - doman sqlite3.1 - - if use doc; then - if [[ ${PV} == 9999 ]]; then - pushd "${WORKDIR}/${PN}-doc-build/doc" > /dev/null || die - else - pushd "${WORKDIR}/${PN}-doc-${DOC_PV}" > /dev/null || die - fi - - find "(" -name "*.db" -o -name "*.txt" ")" -delete || die - if [[ ${PV} != 9999 ]]; then - rm search search.d/admin || die - rmdir search.d || die - find -name "*~" -delete || die - fi - - ( - docinto html - dodoc -r * - ) - - popd > /dev/null || die - fi -} diff --git a/sdk_container/src/third_party/portage-stable/dev-debug/gdb/Manifest b/sdk_container/src/third_party/portage-stable/dev-debug/gdb/Manifest index 48e5b62065..544d900289 100644 --- a/sdk_container/src/third_party/portage-stable/dev-debug/gdb/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-debug/gdb/Manifest @@ -1,3 +1 @@ -DIST gdb-15.2.tar.xz 24332820 BLAKE2B 073668c21b41f12bf40160c6d3df808056453cc9df3b5b86374abe38e955d208f86467458b7e64b3c3e93d70b7f87425619778173fdb375256cd85be15419f14 SHA512 624007deceb5b15ba89c0725883d1a699fa46714ef30887f3d0165e17c5d65d634671740a135aa69e437d916218abb08cfa2a38ed309ff19d48f51da56b2a8ba -DIST gdb-16.2.tar.xz 24426680 BLAKE2B 480cc5c116e418d7eb13a68bee8a2ced8e7a40bd38826dde3590a8d5b690c3dd46be6fa3790518b39ac7255698a1ecf35a2bb51d7e38d849f7b9277c15fe38fc SHA512 f04a6335dbdee371edb7e3213294fcbb878ac39adedb73f7e17e621f54350488f5f5bea9bc742639239c122d590bed158771a74fc3aaeaa7fa0ae304232576a3 DIST gdb-16.3.tar.xz 24434444 BLAKE2B a75c8655b39580a7f6e0d85ef663f60932fbed9a92ade6d58a2e99bc8b1416b36f8410c66c23bdada83e221a65c1cdfdeb7bb7ae9a930c443557864a1769dbee SHA512 fffd6689c3405466a179670b04720dc825e4f210a761f63dd2b33027432f8cd5d1c059c431a5ec9e165eedd1901220b5329d73c522f9a444788888c731b29e9c diff --git a/sdk_container/src/third_party/portage-stable/dev-debug/gdb/gdb-15.2-r103.ebuild b/sdk_container/src/third_party/portage-stable/dev-debug/gdb/gdb-15.2-r103.ebuild deleted file mode 100644 index d06ba9e31e..0000000000 --- a/sdk_container/src/third_party/portage-stable/dev-debug/gdb/gdb-15.2-r103.ebuild +++ /dev/null @@ -1,352 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# See https://sourceware.org/gdb/wiki/DistroAdvice for general packaging -# tips & notes. - -GUILE_COMPAT=( 2-2 3-0 ) -PYTHON_COMPAT=( python3_{11..13} ) -inherit flag-o-matic guile-single linux-info python-single-r1 strip-linguas toolchain-funcs - -export CTARGET=${CTARGET:-${CHOST}} - -if [[ ${CTARGET} == ${CHOST} ]] ; then - if [[ ${CATEGORY} == cross-* ]] ; then - export CTARGET=${CATEGORY#cross-} - fi -fi - -is_cross() { [[ ${CHOST} != ${CTARGET} ]] ; } - -case ${PV} in - 9999*) - # live git tree - EGIT_REPO_URI="https://sourceware.org/git/binutils-gdb.git" - inherit git-r3 - SRC_URI="" - ;; - *.*.50_p2???????|*.*.90_p2???????) - # Weekly snapshots - MY_PV="${PV/_p/.}" - SRC_URI=" - https://sourceware.org/pub/gdb/snapshots/branch/gdb-weekly-${MY_PV}.tar.xz - https://sourceware.org/pub/gdb/snapshots/current/gdb-weekly-${MY_PV}.tar.xz - https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/gdb-weekly-${MY_PV}.tar.xz - " - S="${WORKDIR}/${PN}-${MY_PV}" - - # e.g. 13.1.90_p20230325 is a snapshot on the stable branch, so it's fine - if [[ ${PV} == *.[123456789].9?_p2??????? ]] ; then - REGULAR_RELEASE=1 - fi - ;; - *.*.9?) - # Prereleases - MY_PV="${PV/_p/.}" - SRC_URI=" - https://sourceware.org/pub/gdb/snapshots/branch/gdb-${MY_PV}.tar.xz - https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/gdb-${MY_PV}.tar.xz - " - S="${WORKDIR}/${PN}-${MY_PV}" - ;; - *) - # Normal upstream release - SRC_URI=" - mirror://gnu/gdb/${P}.tar.xz - https://sourceware.org/pub/gdb/releases/${P}.tar.xz - " - - REGULAR_RELEASE=1 -esac - -PATCH_DEV="" -PATCH_VER="" -DESCRIPTION="GNU debugger" -HOMEPAGE="https://sourceware.org/gdb/" -SRC_URI=" - ${SRC_URI} - ${PATCH_DEV:+https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${CATEGORY}/${PN}/${P}-patches-${PATCH_VER}.tar.xz} - ${PATCH_VER:+mirror://gentoo/${P}-patches-${PATCH_VER}.tar.xz} -" - -LICENSE="GPL-3+ LGPL-2.1+" -SLOT="0" -IUSE="babeltrace cet debuginfod guile lzma multitarget nls +python rocm +server sim source-highlight test vanilla xml xxhash zstd" -if [[ -n ${REGULAR_RELEASE} ]] ; then - KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~x64-macos ~x64-solaris" -fi -REQUIRED_USE=" - guile? ( ${GUILE_REQUIRED_USE} ) - python? ( ${PYTHON_REQUIRED_USE} ) - rocm? ( multitarget ) -" -RESTRICT="!test? ( test )" - -# =dev-lang/go-${GO_BOOTSTRAP_MIN}"; then - export GOROOT_BOOTSTRAP="${BROOT}/usr/lib/go" - elif has_version -b ">=dev-lang/go-bootstrap-${GO_BOOTSTRAP_MIN}"; then - export GOROOT_BOOTSTRAP="${BROOT}/usr/lib/go-bootstrap" - else - eerror "Go cannot be built without go or go-bootstrap installed" - die "Should not be here, please report a bug" - fi - - # Go's build script does not use BUILD/HOST/TARGET consistently. :( - export GOHOSTARCH=$(go-env_goarch ${CBUILD}) - export GOHOSTOS=$(go-env_goos ${CBUILD}) - export CC=$(tc-getBUILD_CC) - - export GOARCH=$(go-env_goarch) - export GOOS=$(go-env_goos) - export CC_FOR_TARGET=$(tc-getCC) - export CXX_FOR_TARGET=$(tc-getCXX) - use arm && export GOARM=$(go-env_goarm) - use x86 && export GO386=$(go-env_go386) - - cd src - bash -x ./make.bash || die "build failed" -} - -src_test() { - go_cross_compile && return 0 - cd src - PATH="${GOBIN}:${PATH}" \ - ./run.bash -no-rebuild -k || die "tests failed" -} - -src_install() { - dodir /usr/lib/go - # The use of cp is deliberate in order to retain permissions - cp -R . "${ED}"/usr/lib/go - einstalldocs - - # testdata directories are not needed on the installed system - # The other files we remove are installed by einstalldocs - rm -r $(find "${ED}"/usr/lib/go -iname testdata -type d -print) || die - rm "${ED}"/usr/lib/go/{CONTRIBUTING.md,PATENTS,README.md} || die - rm "${ED}"/usr/lib/go/{SECURITY.md,codereview.cfg,LICENSE} || die - - local bin_path - if go_cross_compile; then - bin_path="bin/$(go_tuple)" - else - bin_path=bin - fi - local f x - for x in ${bin_path}/*; do - f=${x##*/} - dosym ../lib/go/${bin_path}/${f} /usr/bin/${f} - done -} diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/go/go-1.24.7.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/go/go-1.24.7.ebuild index 9a85939da6..0b04ca1987 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.7.ebuild @@ -20,7 +20,7 @@ case ${PV} in *) SRC_URI="https://storage.googleapis.com/golang/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" + KEYWORDS="-* amd64 arm arm64 ~loong ~mips ppc64 ~riscv ~s390 x86 ~amd64-linux ~x86-linux ~x64-macos ~x64-solaris" ;; esac 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.1.ebuild index 5eb7ca8d21..6f8697ab12 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.1.ebuild @@ -20,7 +20,7 @@ case ${PV} in *) SRC_URI="https://storage.googleapis.com/golang/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" + KEYWORDS="-* amd64 arm arm64 ~loong ~mips ppc64 ~riscv ~s390 x86 ~amd64-linux ~x86-linux ~x64-macos ~x64-solaris" ;; esac diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/nasm/Manifest b/sdk_container/src/third_party/portage-stable/dev-lang/nasm/Manifest index 0f491497c9..0c3cc661ad 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/nasm/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-lang/nasm/Manifest @@ -1 +1,2 @@ DIST nasm-2.16.03.tar.xz 1032388 BLAKE2B 742cbf330341fde9f778d8ca13e8c06199f48796d47028ac973d39e3d9e434450cdfebe89f6ab248d372bdaeb0c88a25eb7153a39b66fc05e770523d4c9e11e9 SHA512 0c706e41a9c33e1ac3bad5056e8bf8cbcd51785b551a6e34ce7d0d723df8eaab8603a033e89b3dcda1004b558f9e9ef3196691500f10d8201bf47a323a516f84 +DIST nasm-3.01.tar.xz 1499136 BLAKE2B 182d908e949e8212ec29bfaa4b747312f7b57dd686195c9b44701f0055ced4b40555624e27d1e1183b356095da76ba1ac8b2a5aa84b2e0d2277106de8ca915d1 SHA512 ca9550ad3239cfaa9546a908e8de86e11a7c7dd9d6006f42d272d0b025b601cdb205e60b8b3929f31123ef450dd0f0403e1300328cadf0ffdfd459f443944482 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 new file mode 100644 index 0000000000..e15966772d --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-lang/nasm/nasm-3.01.ebuild @@ -0,0 +1,91 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools + +DESCRIPTION="groovy little assembler" +HOMEPAGE="https://www.nasm.us/" +SRC_URI="https://www.nasm.us/pub/nasm/releasebuilds/${PV/_}/${P/_}.tar.xz" +S=${WORKDIR}/${P/_} + +LICENSE="BSD-2" +SLOT="0" +KEYWORDS="~amd64 ~arm64 ~loong ~ppc64 ~riscv ~x86 ~amd64-linux ~x86-linux" +IUSE="doc" + +QA_CONFIG_IMPL_DECL_SKIP=( + # Windows. + _BitScanReverse + _BitScanReverse64 + + # Linux headers that are not included. + __cpu_to_le16 + __cpu_to_le32 + __cpu_to_le64 + _byteswap_uint64 + _byteswap_ulong + _byteswap_ushort + cpu_to_le16 + cpu_to_le32 + cpu_to_le64 + + # __typeof as gnu extensions are not enabled + typeof + + # musl doesn't define __bswap_N in endian.h (it's named _bswapN + # instead). could be fixed to call this instead, or to include + # musl's byteswap.h instead, but it is much easier to fall back on + # __builtin_bswapN. Bug #928848 + __bswap_16 + __bswap_32 + __bswap_64 +) + +# [fonts note] doc/psfonts.ph defines ordered list of font preference. +# Currently 'media-fonts/source-pro' is most preferred and is able to +# satisfy all 6 font flavours: tilt, chapter, head, etc. +BDEPEND=" + dev-lang/perl + doc? ( + app-text/ghostscript-gpl + dev-perl/Font-TTF + dev-perl/Sort-Versions + media-fonts/source-code-pro + media-fonts/source-sans:3 + virtual/perl-File-Spec + ) +" + +PATCHES=( + "${FILESDIR}"/${PN}-2.15-bsd-cp-doc.patch +) + +src_prepare() { + default + + # https://bugs.gentoo.org/870214 + # During the split of media-fonts/source-pro, the source-sans files + # were renamed. Currently depend on media-fonts/source-sans:3 which works + # with this sed. + sed -i 's/SourceSansPro/SourceSans3/g' doc/psfonts.ph || die + + AT_M4DIR="${S}/autoconf/m4" eautoreconf +} + +src_configure() { + # --enable-lto just appends -flto to *FLAGS + # so let users just use lto through normal make.conf *FLAGS + econf +} + +src_compile() { + default + use doc && emake doc +} + +src_install() { + default + emake DESTDIR="${D}" install $(usex doc install_doc '') +} diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/perl/files/perl-5.42.0-cross-rebase.patch b/sdk_container/src/third_party/portage-stable/dev-lang/perl/files/perl-5.42.0-cross-rebase.patch new file mode 100644 index 0000000000..7b0b0184a6 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-lang/perl/files/perl-5.42.0-cross-rebase.patch @@ -0,0 +1,191 @@ +https://github.com/arsv/perl-cross/pull/165 + +From add39339ed09334e6809b48b3f8474c01a7ea1a1 Mon Sep 17 00:00:00 2001 +From: Pavlo Kleymonov +Date: Fri, 5 Sep 2025 17:03:23 +0200 +Subject: [PATCH] patches for perl-5.42.0 + +--- + cnf/configure_func.sh | 1 + + cnf/diffs/perl5-5.42.0/constant.patch | 1 + + cnf/diffs/perl5-5.42.0/dynaloader.patch | 1 + + cnf/diffs/perl5-5.42.0/findext.patch | 1 + + cnf/diffs/perl5-5.42.0/installscripts.patch | 1 + + cnf/diffs/perl5-5.42.0/liblist.patch | 70 +++++++++++++++++++++ + cnf/diffs/perl5-5.42.0/makemaker.patch | 1 + + cnf/diffs/perl5-5.42.0/posix-makefile.patch | 1 + + cnf/diffs/perl5-5.42.0/test-checkcase.patch | 1 + + cnf/diffs/perl5-5.42.0/test-makemaker.patch | 1 + + cnf/diffs/perl5-5.42.0/xconfig.patch | 1 + + 11 files changed, 80 insertions(+) + create mode 120000 cnf/diffs/perl5-5.42.0/constant.patch + create mode 120000 cnf/diffs/perl5-5.42.0/dynaloader.patch + create mode 120000 cnf/diffs/perl5-5.42.0/findext.patch + create mode 120000 cnf/diffs/perl5-5.42.0/installscripts.patch + create mode 100644 cnf/diffs/perl5-5.42.0/liblist.patch + create mode 120000 cnf/diffs/perl5-5.42.0/makemaker.patch + create mode 120000 cnf/diffs/perl5-5.42.0/posix-makefile.patch + create mode 120000 cnf/diffs/perl5-5.42.0/test-checkcase.patch + create mode 120000 cnf/diffs/perl5-5.42.0/test-makemaker.patch + create mode 120000 cnf/diffs/perl5-5.42.0/xconfig.patch + +diff --git a/cnf/configure_func.sh b/cnf/configure_func.sh +index 4c13e4c..20f9cdf 100644 +--- a/cnf/configure_func.sh ++++ b/cnf/configure_func.sh +@@ -82,6 +82,7 @@ checkfunc d_fchmod 'fchmod' "0,0" 'unistd.h sys/stat.h' + checkfunc d_fchmodat 'fchmodat' "0,NULL,0,0" 'unistd.h sys/stat.h' + checkfunc d_fchown 'fchown' "0,0,0" 'unistd.h' + checkfunc d_fcntl 'fcntl' "0,0" 'unistd.h fcntl.h' ++checkfunc d_fdopendir 'fdopendir' "0" 'dirent.h sys/types.h' + checkfunc d_fdclose 'fdclose' "NULL,NULL" 'stdio.h' + checkfunc d_ffs 'ffs' "0" 'strings.h' + checkfunc d_ffsl 'ffsl' "0" 'strings.h' +diff --git a/cnf/diffs/perl5-5.42.0/constant.patch b/cnf/diffs/perl5-5.42.0/constant.patch +new file mode 120000 +index 0000000..065e198 +--- /dev/null ++++ b/cnf/diffs/perl5-5.42.0/constant.patch +@@ -0,0 +1 @@ ++../perl5-5.22.3/constant.patch +\ No newline at end of file +diff --git a/cnf/diffs/perl5-5.42.0/dynaloader.patch b/cnf/diffs/perl5-5.42.0/dynaloader.patch +new file mode 120000 +index 0000000..ffb73eb +--- /dev/null ++++ b/cnf/diffs/perl5-5.42.0/dynaloader.patch +@@ -0,0 +1 @@ ++../perl5-5.22.3/dynaloader.patch +\ No newline at end of file +diff --git a/cnf/diffs/perl5-5.42.0/findext.patch b/cnf/diffs/perl5-5.42.0/findext.patch +new file mode 120000 +index 0000000..9efbe5b +--- /dev/null ++++ b/cnf/diffs/perl5-5.42.0/findext.patch +@@ -0,0 +1 @@ ++../perl5-5.22.3/findext.patch +\ No newline at end of file +diff --git a/cnf/diffs/perl5-5.42.0/installscripts.patch b/cnf/diffs/perl5-5.42.0/installscripts.patch +new file mode 120000 +index 0000000..1c05e0f +--- /dev/null ++++ b/cnf/diffs/perl5-5.42.0/installscripts.patch +@@ -0,0 +1 @@ ++../perl5-5.36.0/installscripts.patch +\ No newline at end of file +diff --git a/cnf/diffs/perl5-5.42.0/liblist.patch b/cnf/diffs/perl5-5.42.0/liblist.patch +new file mode 100644 +index 0000000..1dae0bb +--- /dev/null ++++ b/cnf/diffs/perl5-5.42.0/liblist.patch +@@ -0,0 +1,70 @@ ++diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist/Kid.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist/Kid.pm ++index fbdc79aea2..976fd268aa 100644 ++--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist/Kid.pm +++++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist/Kid.pm ++@@ -20,9 +20,10 @@ use File::Basename; ++ use File::Spec; ++ ++ sub ext { ++- if ( $^O eq 'VMS' ) { goto &_vms_ext; } ++- elsif ( $^O eq 'MSWin32' ) { goto &_win32_ext; } ++- else { goto &_unix_os2_ext; } +++ if ( $Config{usemmldlt} ){ goto &_ld_ext; } +++ elsif ( $^O eq 'VMS' ) { goto &_vms_ext; } +++ elsif ( $^O eq 'MSWin32' ) { goto &_win32_ext; } +++ else { goto &_unix_os2_ext; } ++ } ++ ++ sub _space_dirs_split { ++@@ -643,4 +644,51 @@ sub _vms_ext { ++ wantarray ? ( $lib, '', $ldlib, '', ( $give_libs ? \@flibs : () ) ) : $lib; ++ } ++ +++# A direct test for -l validity. +++# Because guessing real file names for -llib options when dealing +++# with a cross compiler is generally a BAD IDEA^tm. +++sub _ld_ext { +++ my($self,$potential_libs, $verbose, $give_libs) = @_; +++ $verbose ||= 0; +++ +++ if ($^O =~ 'os2' and $Config{perllibs}) { +++ # Dynamic libraries are not transitive, so we may need including +++ # the libraries linked against perl.dll again. +++ +++ $potential_libs .= " " if $potential_libs; +++ $potential_libs .= $Config{perllibs}; +++ } +++ return ("", "", "", "", ($give_libs ? [] : ())) unless $potential_libs; +++ warn "Potential libraries are '$potential_libs':\n" if $verbose; +++ +++ my($ld) = $Config{ld}; +++ my($ldflags) = $Config{ldflags}; +++ my($libs) = defined $Config{perllibs} ? $Config{perllibs} : $Config{libs}; +++ +++ my $try = 'try_mm.c'; +++ my $tryx = 'try_mm.x'; +++ open(TRY, '>', $try) || die "Can't create MakeMaker test file $try: $!\n"; +++ print TRY "int main(void) { return 0; }\n"; +++ close(TRY); +++ +++ my $testlibs = ''; +++ my @testlibs = (); +++ foreach my $thislib (split ' ', $potential_libs) { +++ $testlibs = join(' ', @testlibs); +++ if($thislib =~ /^-L/) { +++ push(@testlibs, $thislib); +++ next +++ }; +++ my $cmd = "$ld $ldflags -o $tryx $try $testlibs $thislib >/dev/null 2>&1"; +++ my $ret = system($cmd); +++ warn "Warning (mostly harmless): " . "No library found for $thislib\n" if $ret; +++ next if $ret; +++ push @testlibs, $thislib; +++ } +++ unlink($try); +++ unlink($tryx); +++ +++ return (join(' ', @testlibs), '', join(' ', @testlibs), ''); +++} +++ ++ 1; +diff --git a/cnf/diffs/perl5-5.42.0/makemaker.patch b/cnf/diffs/perl5-5.42.0/makemaker.patch +new file mode 120000 +index 0000000..d7bd609 +--- /dev/null ++++ b/cnf/diffs/perl5-5.42.0/makemaker.patch +@@ -0,0 +1 @@ ++../perl5-5.38.0/makemaker.patch +\ No newline at end of file +diff --git a/cnf/diffs/perl5-5.42.0/posix-makefile.patch b/cnf/diffs/perl5-5.42.0/posix-makefile.patch +new file mode 120000 +index 0000000..29463b7 +--- /dev/null ++++ b/cnf/diffs/perl5-5.42.0/posix-makefile.patch +@@ -0,0 +1 @@ ++../perl5-5.22.3/posix-makefile.patch +\ No newline at end of file +diff --git a/cnf/diffs/perl5-5.42.0/test-checkcase.patch b/cnf/diffs/perl5-5.42.0/test-checkcase.patch +new file mode 120000 +index 0000000..36c5186 +--- /dev/null ++++ b/cnf/diffs/perl5-5.42.0/test-checkcase.patch +@@ -0,0 +1 @@ ++../perl5-5.22.3/test-checkcase.patch +\ No newline at end of file +diff --git a/cnf/diffs/perl5-5.42.0/test-makemaker.patch b/cnf/diffs/perl5-5.42.0/test-makemaker.patch +new file mode 120000 +index 0000000..4e970ff +--- /dev/null ++++ b/cnf/diffs/perl5-5.42.0/test-makemaker.patch +@@ -0,0 +1 @@ ++../perl5-5.34.0/test-makemaker.patch +\ No newline at end of file +diff --git a/cnf/diffs/perl5-5.42.0/xconfig.patch b/cnf/diffs/perl5-5.42.0/xconfig.patch +new file mode 120000 +index 0000000..1c22c96 +--- /dev/null ++++ b/cnf/diffs/perl5-5.42.0/xconfig.patch +@@ -0,0 +1 @@ ++../perl5-5.41.3/xconfig.patch +\ No newline at end of file diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/perl/perl-5.42.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/perl/perl-5.42.0.ebuild index 10f0171d4e..e927faba92 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/perl/perl-5.42.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/perl/perl-5.42.0.ebuild @@ -276,6 +276,8 @@ src_prepare_perlcross() { # bug 794463, needs further analysis what is exactly wrong here eapply "${FILESDIR}/perl-5.34.0-crossfit.patch" + # bug 959686, rebase via upstream PR (no 5.42.0 release) + eapply "${FILESDIR}/perl-5.42.0-cross-rebase.patch" # bug 604072 MAKEOPTS+=" -j1" 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 4043fe6800..1d222aafd9 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 @@ -2,14 +2,24 @@ DIST Python-2.7.18.tar.xz 12854736 BLAKE2B 060a621c91dd8e3d321aec99d44c17aa67381 DIST Python-2.7.18.tar.xz.asc 833 BLAKE2B 1d98770e46171971fb99994508d238c01d2755281d2f94353314014d9e83e0ec5f0b3e3950ea1fdf5fce9ba6b8f55312355845c2a3fc4291c27ee56fe6215448 SHA512 c2a5f5a52f47dec52460ad3275758d4e5de6e7075c3def4353c988d74d563a39b42cae2d5eb24e2a23a6247cef69100f91620b11a49c2359fbf99b203c9cbda8 DIST Python-3.10.18.tar.xz 19619316 BLAKE2B 312d2cb6ba3bdc8e1eea4493d73c6adbe80063cd271a8738d9e772b2d9aa2d8628c8b0f96fc6ddb91db6f91ca58e2fb38950a90547fb131a10344b926b661a39 SHA512 2c444f024cd15babd156964b50aa0245020a17c0c600250ffcf112e91594a3d6e1fb87c9b87a57cb7a802dae90004d801ed95a3103d79aefb8ed714279997708 DIST Python-3.10.18.tar.xz.asc 833 BLAKE2B 834d0e7ea65b653d748e7844157ee215302e4b48aa63a45fa8d548b03e78d2cb36b6ebbb6bb6214f9eec3200d6a32d3a22d31691d1580114a14e67e4dd7c5abc SHA512 dbe1426b1b8371bf390b53595d2c656fbd311fed55ad3c705e175fa0c72d51a022f286877ec55ad74547a3b57ae945c9af7ece4dacc7132e21b9b7eb4421add6 +DIST Python-3.10.19.tar.xz 19873020 BLAKE2B 194c36643fbdfaa777523ede07cc751c8de7dc549223ba1e48d55796fc8c7b1b6f835d62e8cd1d34e011497a9df971ad073a3949dfdfe88043a65e9cb7bb7f72 SHA512 9ea1e952bb5f7c9cc8d3efd8e7ae0059c129b6e09d12ded7d4e22476fad35f2c8186b1e003ea35a0099ffa5ff0a114985c3e960fba84e7037670b840a3e19c68 +DIST Python-3.10.19.tar.xz.asc 833 BLAKE2B 7378ba5751974d758cbedb0b14d239883da8f6e514232909056952be5f66496d5b59d0435f6cc34b9df85fdf3969537c85eea044e6af9faed7041d2a78e77b2a SHA512 64bcee68c2f4e0718daaf19d405f4a5bd0ce3fc3d13bb5cbae8d4a36e419dd104c94323b497f1d06110f6b62a1b3b351279c534145f4e8cea9af0d7bb0a8b5c9 DIST Python-3.11.13.tar.xz 20117496 BLAKE2B 444de8eef3a938a387374b152350414b7e2659920784ebc57d5491cacc78cde406b557237fc7f06627e2855f60219b86fe41cb8b82e61fd3b1b448fc7b98af5c SHA512 70f57464d548eac4fe0d0c7f85a14b0e549a4e25ef66de4fc36b06ce72a3efe87dadfcd56ee275c10483cf802fbc9d73b61f9fb2941a46e2f92f075aeb1afe85 DIST Python-3.11.13.tar.xz.asc 833 BLAKE2B c6860aa8687e53b8d9df5d8442490adaff202bfb23817801562577c8d7b81383376342d8e15c5451e25e270746a6d28167f39cfdd75be589e0d58187026a4830 SHA512 6e261490bc7777f0bcebd0464867df98b7955b32f13a445aab3cb6a1a1d3fb804817638f67a8586910fb97291a805b64f130909c06257903f431f8634c691c3b +DIST Python-3.11.14.tar.xz 20326860 BLAKE2B d0db72842e46fd2b95d245e8fe4550a52ad2eabcb95900d8beb2f871ed25494dba395bf30e93591ecc42b99cd587c6ecb06578d1232fe51a04e37bf00dec307d SHA512 8b5aa917fe67dbaa3c306239ed56c16cd7a3b4b701fab0b3dc0d342d60176c75440713bcab0c59a3289ac4a0f06103bd31140c492556e1937fcdbd990675f9e5 +DIST Python-3.11.14.tar.xz.asc 833 BLAKE2B 5b32ac50e6e725d9949bb6e89179d1c06c4e7d04ea82f6b80b64573c7e05b94da12de5738d0d7a5b73ad8d4cf1a5b35c5738c9e5a4ef93f97bb660f6f8b7cfc7 SHA512 d0049fd6f6d06ae5d86b3587080be060d522dd52e7e56270125541d5617582ea3977b75c7e585da005694665cfc5657e39033a730187c506edc252965f4df769 DIST Python-3.12.11.tar.xz 20525812 BLAKE2B 08eed9d91fe0be305fe9832f5fae5ed4ffdb524283079b6473ed77cc277671356ce2b8f6ca97f55f8ee4954a35fe399099773d0699d6bfbc0aa87a7e9271ba8b SHA512 81f259c5bb293a5b685ebead1dff56c7c9d28eed12edb508b3e5e1a882991e762fc959803cf2734f4233bb1c5407b4f5303324c67b25d860b069d38bbebe4454 DIST Python-3.12.11.tar.xz.asc 963 BLAKE2B 4c7eea750312ba996f88c452e51b58c0176d53f43e5bd30fd41a931540320b598b6d1e93d79996ce30dfa22858c4c3ed2cb24d16ba0a891a146fbf81ec60b07b SHA512 3589deba17c5adcfcd614387a5207ad20db56cd9c7937eb44e21035a8745f1c6bb9a1b7cfe8bc5b58ecc7cca09ed49fd4c2878f65baecb2514e79c666f85a22e +DIST Python-3.12.12.tar.xz 20798712 BLAKE2B 3ce140b5b2c5e3b055118c8595385c7d79582c64cd8dfe9dbd062f8e38a7a995bf51f7c61e1faa768bd36c315c3493d27cd81c7425c7416454f41f77431eac0f SHA512 4b99d240dd96a6e154909dcffe87f8bb38193d634cd80a1c3d9e819b7a63af2afa46d5e6423e81f00dd388840dc29a4a71580f6aa1ce9a12e559c1d63f65a205 +DIST Python-3.12.12.tar.xz.asc 963 BLAKE2B 243d7e8000768b562ff771ec8dd8fdc6be2bc36174a1f0f8b00038df2264c9d1c8a14913d07df2826fead822a16db18ef08b40d553f6a9bdc0ea39645d6d798a SHA512 32c10fd427c6f9f11595493d1b4d4c3cade85bffd439fe11e8b0b2c619e06734097b6aaedfdb4fe035b7fdd7196714dba77cdc806923e4454d5bcf60056991a0 DIST Python-3.13.5.tar.xz 22856016 BLAKE2B 9caacad8745dcd238b208022cb140a6655ae57ae0b7f5ac88efc84a96635c310102a5de20cbaa43ef3c329f454b142a0a019141279d49a4d657be5682a1d6521 SHA512 2a058072e87b614b204bd1321b2bfa9c4b6614dbd5ded98dc0ee51c0d6b81504f902b7c003ad14295b371a37918f6975dc37d5a9c836dd9c30f8b086e4759193 DIST Python-3.13.5.tar.xz.asc 963 BLAKE2B 2db0162d18129ec42b48393108a72c28e7f8f8c3fa40b2e231c87fe0bdc3c166fb6ca4a1c1dfb3fffe1aa0c2618c7ccb245513beb7a0919b4aaca5ec7eb23b36 SHA512 07c1a2ec2d6ba2805680b7f1dc262fdc5dc3eec4503780ecdc08cd570ccbb5f1efa736ee03c83d36bdb33ce87db06be5892cf5a6eaf4018d5fe78fff99e615ae DIST Python-3.13.7.tar.xz 22769492 BLAKE2B 8654588ed12e8cd1d691a1869ed1db0d4b9dbb8e265bb0189cfb3cd1f21a298c1d8e9678e27c23b31e6c7f86478f33f3fc6bb66488a550bed60d64b7a801e65a SHA512 73fa04db860e8b98c204f84d403598fcb802b19bfc8f2675df2fddb6b153b1643daf081746a043f57c8fa71b950a439581aa5204c2bfadb8cfd8864ca4f42f0d 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.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 @@ -18,19 +28,27 @@ DIST Python-3.8.20.tar.xz 18962788 BLAKE2B 715c75e0c0a3d3b77af7f07478311bb0554b8 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-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 +DIST python-gentoo-patches-3.10.19.tar.xz 29136 BLAKE2B 3dc3719a4e36d34529f81107c4b57a905df68c072732999cc701b8c8323361eef554b3b8db45d82eecb2eafff65892355ff85b19a3963c9a04077f660fd242b0 SHA512 3f55917563f3adf62c7e11e7411ddfc28ac1fdca1ba7d567c770897a4ae969a10911344c5808564b99bce1839a87bfc98bf41ce42719ba2885c2d35644cf260b DIST python-gentoo-patches-3.11.13.tar.xz 16492 BLAKE2B 8b188742dd3f25974cead290e5793c31f02741a901dce65137c596045fa2fbd5baaef332204af90f95ddcd864ee542b252c00b190e15c25af60a7bda771b116f SHA512 b5abad341d2eede81df445b56a98720466ec23df40a8a2e99a04dba5a106205655c8e2b64df0ca2630f036c8fe457ba64524280d137bbc99f52e4fd8e6bbd5ae DIST python-gentoo-patches-3.11.13_p1.tar.xz 27748 BLAKE2B 26e0b5397d7927711bcc40330f72f54fb16c660c56a2f87166c5336eb2f53ccd4e920b906854ee122d64360b414e11a38a31a410936b4a49f6610626203f4322 SHA512 7c7eca7bf827255925e073c0ed5c69e9036b79e35e8f6ccb2684709bdc41fec80823a1df192c3decf56ba6d53e2c9feaf7fb81f3a214da69773da6a2997ca19b +DIST python-gentoo-patches-3.11.14.tar.xz 15968 BLAKE2B 5bd091046feee03afd59a87b72c44b3a0874b23f89eb98020cc057f5651d31857721eb095bd056dae8bef85220dbe5aff2900cf8411dceb14e8775a4a2f09a93 SHA512 760df16f98c1a91164b43c13eb36073c74169321569791125fdad8682419b818736fe02e40c1aa1232a11081b1007c923a8fd2afd002eb4fdff0800da92d03e2 DIST python-gentoo-patches-3.12.11.tar.xz 12020 BLAKE2B b419d32b1d7bef9408027edda7eac9a920a877e1b8f521483df595199bad1bbadd9dd9500079c09beab63286a801bfb25da5f93a5d31462ed3e457a6e40ad6af SHA512 1b0eaff4c0df06554525a50576da7eadb4067c4f2970851e5c9e3e527a9ccc4216cbd65c45fd562af4a1cedc2c66278a74bee5cf5c1a65df8feb22f34f5a19e4 DIST python-gentoo-patches-3.12.11_p1.tar.xz 23276 BLAKE2B 794485d0fa596f0f2797e2aa505f888a05e2ef63840068b3214efbe51b592586bcfdf193b71e239beb3c3037f01ca086b6b97aeff092b2a344e74d962fb9dffc SHA512 1402b0bbeb189ed4a16364398495fcccc31da0aad4fc88e30978e7754575fbd8f51974dcd97d2a57a581072f083233dfb00b30af687455ad170fc3c64875a9d5 +DIST python-gentoo-patches-3.12.12.tar.xz 12012 BLAKE2B 4a030f976e73160f74dd760a8cac55a5889bf821e998b717962aac8b79780c314dfbabf93a6919daa75565c3ef31dcf6af87f3ec6768db0ff02154c4c112ab08 SHA512 d5ee32b93fb4a1910a8e3aa0486ae284885c05bd03ada3540f4990b4f12c837cd154e76511db663542dde74d652c3d1d279098319dcc991e7195e8db5befea12 DIST python-gentoo-patches-3.13.4.tar.xz 8912 BLAKE2B e3d9f2a12f801dc75e09c5301757f35216d712b5e5394f2ec3ce1d79d0cb57571dbca525e3d5c35b90fa059c2b78ee24341b6a51cbe9691deac84c9ee0578824 SHA512 1a7141accb7aa70c7bd8dd12528f7de031dfeab9ff089f3d044da0b7b52461e2d6d7d1467161e0fe1e259d9fa06d70bcf107d86ad3590e8cf73aa1132ef3aaf9 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.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.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 diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-0.3.13.8.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-0.3.13.8.ebuild new file mode 100644 index 0000000000..2e133b563a --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-0.3.13.8.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.14.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-0.3.14.0.ebuild new file mode 100644 index 0000000000..efe2d8cadb --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-0.3.14.0.ebuild @@ -0,0 +1,635 @@ +# 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 eapi9-ver flag-o-matic linux-info +inherit multiprocessing pax-utils python-utils-r1 toolchain-funcs +inherit verify-sig + +REAL_PV=${PV#0.} +MY_PV=${REAL_PV/_/} +MY_P="Python-${MY_PV%_p*}" +PYVER="$(ver_cut 2-3)t" +PATCHSET="python-gentoo-patches-${MY_PV}" + +DESCRIPTION="Freethreading (no-GIL) version of Python programming language" +HOMEPAGE=" + https://www.python.org/ + https://github.com/python/cpython/ +" +SRC_URI=" + https://www.python.org/ftp/python/${REAL_PV%%_*}/${MY_P}.tar.xz + https://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}" +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 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 + ) + 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:* + ) + ) +" +if [[ ${PV} != *_alpha* ]]; then + RDEPEND+=" + dev-lang/python-exec[python_targets_python${PYVER/./_}(-)] + " +fi +PDEPEND=" + ensurepip? ( dev-python/ensurepip-pip ) +" + +# https://www.python.org/downloads/metadata/sigstore/ +VERIFY_SIG_CERT_IDENTITY=hugo@python.org +VERIFY_SIG_CERT_OIDC_ISSUER=https://github.com/login/oauth + +# large file tests involve a 2.5G file being copied (duplicated) +CHECKREQS_DISK_BUILD=5500M + +QA_PKGCONFIG_VERSION=${PYVER%t} +# false positives -- functions specific to *BSD +QA_CONFIG_IMPL_DECL_SKIP=( chflags lchflags ) + +declare -rgA PYTHON_KERNEL_CHECKS=( + ["CROSS_MEMORY_ATTACH"]="test_external_inspection" #bug 938589 + ["DNOTIFY"]="test_fcntl" # bug 938662 +) + +pkg_pretend() { + if use pgo || use test; then + check-reqs_pkg_pretend + fi +} + +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" + + # python-exec wrapping support + local pymajor=${PYVER%.*} + local EPYTHON=python${PYVER} + local scriptdir=${D}$(python_get_scriptdir) + mkdir -p "${scriptdir}" || die + # python and pythonX + ln -s "../../../bin/${abiver}" "${scriptdir}/python${pymajor}" || die + ln -s "python${pymajor}" "${scriptdir}/python" || die + # python-config and pythonX-config + # note: we need to create a wrapper rather than symlinking it due + # to some random dirname(argv[0]) magic performed by python-config + cat > "${scriptdir}/python${pymajor}-config" <<-EOF || die + #!/bin/sh + exec "${abiver}-config" "\${@}" + EOF + chmod +x "${scriptdir}/python${pymajor}-config" || die + ln -s "python${pymajor}-config" "${scriptdir}/python-config" || die + # pydoc + ln -s "../../../bin/pydoc${PYVER}" "${scriptdir}/pydoc" || die + # idle + if use tk; then + ln -s "../../../bin/idle${PYVER}" "${scriptdir}/idle" || die + fi +} + +pkg_postinst() { + if ver_replacing -lt 0.3.14.0_beta3; then + ewarn "Python 3.14.0b3 has changed its module ABI. The .pyc files" + ewarn "installed previously are no longer valid and will be regenerated" + ewarn "(or ignored) on the next import. This may cause sandbox failures" + ewarn "when installing some packages and checksum mismatches when removing" + ewarn "old versions. To actively prevent this, rebuild all packages" + ewarn "installing Python 3.14 modules, e.g. using:" + ewarn + ewarn " emerge -1v /usr/lib/python3.14t/site-packages" + fi +} diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-0.3.14.9999.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-0.3.14.9999.ebuild index 9d9d70958f..e0b4a11ba9 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-0.3.14.9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-0.3.14.9999.ebuild @@ -77,6 +77,12 @@ BDEPEND=" dev-build/autoconf-archive app-alternatives/awk virtual/pkgconfig + tail-call-interp? ( + || ( + >=sys-devel/gcc-15:* + >=llvm-core/clang-19:* + ) + ) " if [[ ${PV} != *_alpha* ]]; then RDEPEND+=" @@ -122,6 +128,10 @@ pkg_setup() { 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 } @@ -341,6 +351,10 @@ src_configure() { # 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 diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-0.3.15.9999.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-0.3.15.9999.ebuild index 246ae13dfe..bcd5eadcb5 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-0.3.15.9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-0.3.15.9999.ebuild @@ -77,6 +77,12 @@ 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 ) @@ -117,6 +123,10 @@ pkg_setup() { 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 } @@ -336,6 +346,10 @@ src_configure() { # 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 diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.10.19.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.10.19.ebuild new file mode 100644 index 0000000000..f773d6ce75 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.10.19.ebuild @@ -0,0 +1,572 @@ +# 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 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-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? ( + !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? ( + 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 +} + +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 and bug #864911. + 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. + --without-lto + --disable-optimizations + ) + + 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+=" _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+=" _ctypes _crypt" 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 + 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 + --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-ffi + --with-system-libmpdec + --with-wheel-pkg-dir="${EPREFIX}"/usr/lib/python/ensurepip + + $(use_with debug assertions) + $(use_enable pgo optimizations) + $(use_with readline readline "$(usex libedit editline readline)") + $(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 + build_cbuild_python + # Point the imminent CHOST build to the Python we just + # built for CBUILD. + export PATH="${WORKDIR}/${P}-${CBUILD}:${PATH}" + 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}" 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 ensurepip; then + rm -r "${libdir}"/ensurepip || die + fi + 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.11.14.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.11.14.ebuild new file mode 100644 index 0000000000..878df7ed98 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.11.14.ebuild @@ -0,0 +1,619 @@ +# 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 python-utils-r1 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 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/libcrypt:= + 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? ( + 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 ) +" +if [[ ${PV} != *_alpha* ]]; then + RDEPEND+=" + dev-lang/python-exec[python_targets_python${PYVER/./_}(-)] + " +fi +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 +} + +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 + # We disable _ctypes and _crypt for CBUILD because Python's setup.py can't handle locating + # libdir correctly for cross. + 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_STATE=disabled + MODULE__DBM_STATE=disabled + MODULE__GDBM_STATE=disabled + MODULE__DBM_STATE=disabled + MODULE__SQLITE3_STATE=disabled + MODULE__HASHLIB_STATE=disabled + MODULE__SSL_STATE=disabled + MODULE__CURSES_STATE=disabled + MODULE__CURSES_PANEL_STATE=disabled + MODULE_READLINE_STATE=disabled + MODULE__TKINTER_STATE=disabled + MODULE_PYEXPAT_STATE=disabled + MODULE_ZLIB_STATE=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 --with-build-python value + # immediately. + PYTHON_DISABLE_MODULES+=" _ctypes _crypt" 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 + ) + + # 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 + --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-ffi + --with-system-libmpdec + --with-platlibdir=lib + --with-pkg-config=yes + --with-wheel-pkg-dir="${EPREFIX}"/usr/lib/python/ensurepip + + $(use_with debug assertions) + $(use_enable pgo optimizations) + $(use_with readline readline "$(usex libedit editline readline)") + $(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 + 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 + + 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 + + # force-disable modules we don't want built + local disable_modules=( NIS ) + use gdbm || disable_modules+=( _GDBM _DBM ) + use sqlite || disable_modules+=( _SQLITE3 ) + use ssl || disable_modules+=( _HASHLIB _SSL ) + use ncurses || disable_modules+=( _CURSES _CURSES_PANEL ) + use readline || disable_modules+=( READLINE ) + use tk || disable_modules+=( _TKINTER ) + + local mod + for mod in "${disable_modules[@]}"; do + echo "MODULE_${mod}_STATE=disabled" + done >> Makefile || die + + # 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 + 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 ensurepip; then + rm -r "${libdir}"/ensurepip || die + fi + 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 + # 2to3, pydoc + ln -s "../../../bin/2to3-${PYVER}" "${scriptdir}/2to3" || die + 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.12.12.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.12.12.ebuild new file mode 100644 index 0000000000..182b0c80db --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.12.12.ebuild @@ -0,0 +1,602 @@ +# 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 python-utils-r1 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 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/libcrypt:= + 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? ( + app-arch/xz-utils + 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 + 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 ) + +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. + # 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 _crypt + 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 + ) + + # 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 + + # 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 + --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 + + $(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} + + # the Makefile rules are broken + # https://github.com/python/cpython/issues/100221 + mkdir -p "${libdir}"/lib-dynload || die + + # -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 + # 2to3, pydoc + ln -s "../../../bin/2to3-${PYVER}" "${scriptdir}/2to3" || die + 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.13.8.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.13.8.ebuild new file mode 100644 index 0000000000..13bdac28ad --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.13.8.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.14.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.14.0.ebuild new file mode 100644 index 0000000000..fecf2ad12e --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.14.0.ebuild @@ -0,0 +1,646 @@ +# 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 eapi9-ver 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.sigstore + ) +" +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 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 + ) + 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:* + ) + ) +" +if [[ ${PV} != *_alpha* ]]; then + RDEPEND+=" + dev-lang/python-exec[python_targets_python${PYVER/./_}(-)] + " +fi +PDEPEND=" + ensurepip? ( dev-python/ensurepip-pip ) +" + +# https://www.python.org/downloads/metadata/sigstore/ +VERIFY_SIG_CERT_IDENTITY=hugo@python.org +VERIFY_SIG_CERT_OIDC_ISSUER=https://github.com/login/oauth + +# large file tests involve a 2.5G file being copied (duplicated) +CHECKREQS_DISK_BUILD=5500M + +QA_PKGCONFIG_VERSION=${PYVER%t} +# false positives -- functions specific to *BSD +QA_CONFIG_IMPL_DECL_SKIP=( chflags lchflags ) + +declare -rgA PYTHON_KERNEL_CHECKS=( + ["CROSS_MEMORY_ATTACH"]="test_external_inspection" #bug 938589 + ["DNOTIFY"]="test_fcntl" # bug 938662 +) + +pkg_pretend() { + if use pgo || use test; then + check-reqs_pkg_pretend + fi + + if use jit; then + ewarn "USE=jit is considered experimental upstream. Using it" + ewarn "could lead to unexpected breakage, including race conditions" + ewarn "and crashes, respectively. Please do not file Gentoo bugs, unless" + ewarn "you can reproduce the problem with dev-lang/python[-jit]. Instead," + ewarn "please consider reporting JIT problems upstream." + fi +} + +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" + + # python-exec wrapping support + local pymajor=${PYVER%.*} + local EPYTHON=python${PYVER} + local scriptdir=${D}$(python_get_scriptdir) + mkdir -p "${scriptdir}" || die + # python and pythonX + ln -s "../../../bin/${abiver}" "${scriptdir}/python${pymajor}" || die + ln -s "python${pymajor}" "${scriptdir}/python" || die + # python-config and pythonX-config + # note: we need to create a wrapper rather than symlinking it due + # to some random dirname(argv[0]) magic performed by python-config + cat > "${scriptdir}/python${pymajor}-config" <<-EOF || die + #!/bin/sh + exec "${abiver}-config" "\${@}" + EOF + chmod +x "${scriptdir}/python${pymajor}-config" || die + ln -s "python${pymajor}-config" "${scriptdir}/python-config" || die + # pydoc + ln -s "../../../bin/pydoc${PYVER}" "${scriptdir}/pydoc" || die + # idle + if use tk; then + ln -s "../../../bin/idle${PYVER}" "${scriptdir}/idle" || die + fi +} + +pkg_postinst() { + if ver_replacing -lt 3.14.0_beta3; then + ewarn "Python 3.14.0b3 has changed its module ABI. The .pyc files" + ewarn "installed previously are no longer valid and will be regenerated" + ewarn "(or ignored) on the next import. This may cause sandbox failures" + ewarn "when installing some packages and checksum mismatches when removing" + ewarn "old versions. To actively prevent this, rebuild all packages" + ewarn "installing Python 3.14 modules, e.g. using:" + ewarn + ewarn " emerge -1v /usr/lib/python3.14/site-packages" + fi +} diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.14.9999.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.14.9999.ebuild index 6b946baf90..614bb3b9d7 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.14.9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.14.9999.ebuild @@ -86,6 +86,12 @@ BDEPEND=" llvm-core/llvm:${LLVM_SLOT} ') ) + tail-call-interp? ( + || ( + >=sys-devel/gcc-15:* + >=llvm-core/clang-19:* + ) + ) " if [[ ${PV} != *_alpha* ]]; then RDEPEND+=" @@ -134,6 +140,10 @@ pkg_setup() { 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 } @@ -353,6 +363,10 @@ src_configure() { # 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 diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.15.9999.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.15.9999.ebuild index f85907c04d..36f2b24f15 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.15.9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.15.9999.ebuild @@ -86,6 +86,12 @@ BDEPEND=" llvm-core/llvm:${LLVM_SLOT} ') ) + tail-call-interp? ( + || ( + >=sys-devel/gcc-15:* + >=llvm-core/clang-19:* + ) + ) " PDEPEND=" ensurepip? ( dev-python/ensurepip-pip ) @@ -129,6 +135,10 @@ pkg_setup() { 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 } @@ -348,6 +358,10 @@ src_configure() { # 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 diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.9.24.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.9.24.ebuild new file mode 100644 index 0000000000..919febbb52 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-lang/python/python-3.9.24.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 0b55358109..d51e61e995 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 @@ -627,6 +627,99 @@ DIST rust-1.89.0-x86_64-unknown-linux-gnu.tar.xz 201436760 BLAKE2B f0b77a74c27a7 DIST rust-1.89.0-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B cd7e0e527601b36bcb133f0fa2786bc2720e0dc35cd340acc839220cd4b13c1f2622ace457ed3dbc7dda70bcd5199873cebdab36eec0569b0905524ae68a7cca SHA512 8e366e0e70ea78dd4a6a8414fa0349c2a178dc17a11809f350f08b700c3ff3cb1baff0ff363ce9dc3532dcb2d7b7518b5b2b30c07623e0f35f7162bffe59aad8 DIST rust-1.89.0-x86_64-unknown-linux-musl.tar.xz 292022352 BLAKE2B d1f268d67011824ce6b9b27581518620e6ba51f4b49cdcf9a215fd649550a22b8fdc9c2e154a9c6e39986e52b46036813b4d3c0c115dbd55a1ce04fc0482feb0 SHA512 e9bb0e4a45a273fb6cf1e46264b879fd410465ea2f3cc396cc8a797a744cc71a0c95db8af9754462ca1c9ec1fdc699ee64262483cbd625dffaef50476462eb32 DIST rust-1.89.0-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 54b4b8a887c7fe441d3ee33bc37f6ad8f7f1b99d01f54b660bfaae0cb29cecfe7208e27cce9360db68bb275ee7aa0f760539ec3ae37fb5a44edc2365c1f115cb SHA512 666d87fd3ab91375dc081fe9a6300b945db6ffc317c8ba7f5f01e58421793d3f1ff68dd0d72aac1add426834a0bd81ce48949683ee379e60afe820c1baf960f0 +DIST rust-1.90.0-aarch64-unknown-linux-gnu.tar.xz 169265824 BLAKE2B 4b34bcfee65330296b440590700a159a76d81fe3c43b941a407d8c772e863d8d164326acc23e3648a61813b5e76a2d1f0d7b8b88933da75f332fe285bff36e84 SHA512 d32bddecfb3f33946f99427dd69d7317a85f1b08290efde32f20fbfb9a4d09cc8ef292e5f50e9d383981d9fbc086b46cf096cfa689bd5019ac315eceea8f46de +DIST rust-1.90.0-aarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B ff68adfea558cd67dc7693da6f37902af64225e62b53a85c3c78c98ec8c810734a28ca9520c4f65805f982e9fd675919e7a8d569f0de18fecc22bf499fbc772d SHA512 8900e1538800cbfb4d14780264ace699f7c8bddefb2380d478bd6352d76bfac60710f5f2fb5803a4619fc4457cd94ef943747b34b2b8bbdda6c6da40cdc16804 +DIST rust-1.90.0-aarch64-unknown-linux-musl.tar.xz 245058996 BLAKE2B 43835ccec433d02e75d5714b529ebd5ea62bcd003bddb832ead8389be6465fefce46f786b9e367285622f5a3e56969861b5b2141cef49aac83117a176e50e96b SHA512 cbfb8f5a98fe0a2f092bd81d0dcdd6e95cc62a4bd7d70ac4f0afc48e777f5f45c723df1faf238541d1b2b87d0c8a15208d59959bfa9cb2c9a64abf39cb8648bc +DIST rust-1.90.0-aarch64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 78b76283ef86050edf3174e2e5a32419d324e636df11e4218a80eed371a4f5dccdc5a0c4d37a12c1f7c089bddb83bb8e706baa27217f72601930362db873d897 SHA512 8c27ba73c26d87e40424b66ac9e7c46338237624513fc203c8467e3f1fd7d6adee6e3c34be8601f41f1b7cd3df35baaca7ed00bf4aa0676c8da71a2aafb82e91 +DIST rust-1.90.0-arm-unknown-linux-gnueabi.tar.xz 228671464 BLAKE2B bc2cdcec7f089e004b9e4843ab238d1f139ff7a613e8c8fb69c780d7104bdf9903e3d7ae64fd3d64f0702b9a9f4a54ed5a7d4a6faee8f0d650e650e879b81eea SHA512 607e59b213f409abd82784540c87d17629848c567595fb9592d08354e98b99ec8246cba2242f37751d5d9666c1d994fcc588915e7045720baad072931ba2c665 +DIST rust-1.90.0-arm-unknown-linux-gnueabi.tar.xz.asc 801 BLAKE2B c4733ef2f18c3b017399ab19c6374c644351d46573a099982a16671edeb38ef24e28e6cd7aa17d941e590e4066f3e9dd235651630016ecc97dfd814eb968d49f SHA512 23ab313e327569e7b72317ecb277330f5f7d3dc5cb9e7969947fe758ca0aa68807687cd6ba2caf4f0b36d42eb76842be7cf8facb1ed413b3c46a364ffdd6276f +DIST rust-1.90.0-arm-unknown-linux-gnueabihf.tar.xz 230244472 BLAKE2B 6aab1a3872471a2e64522dc30335a2242222b20e9fe4300c4c1baa5b06e58e9087f83699b33a20979feec0e820cce03a469991d4a07368e503247a1571f25e0d SHA512 831d1d7fb6879a370e6d012152b06747740339d7166447d4e4a6af7943f57bf581500df0b810febb558921199ad66c384423ceaac1d640a26f950e0608026ee7 +DIST rust-1.90.0-arm-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B 5479b228a2f320e574a032a64d0a736badd8d192d60529e8996ca8278b60685fe1b9103c0dbc08f88f19c26b06cdc71df587b16e55f2526de206c0ea9c098ca4 SHA512 7ffe8ac52a808cee5953d525ef6886cfb487c6ae81bd332d1c560c9f19601b0e33876820cc1726ecd17e5991c33b6cd625e5cb9e3b05b6b82abf29beb0387d75 +DIST rust-1.90.0-armv7-unknown-linux-gnueabihf.tar.xz 235900672 BLAKE2B 7a51f042afa6fa04b8ac71ec41809ec33c75ce27d517f2ab0468f902a75cbc35f887d6967bf26c231a0e44350fdb4f702a1d428352cda3c637062ef3e9931de8 SHA512 483755b280bb89358388652399672ab7a5ce4c37c29751353cde9eb56ef9c2bcea8fd613b81bb22a91a3b3424cb6134ca112ce3906a566f17faf16554194e09b +DIST rust-1.90.0-armv7-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B 721cfcfc8017a00f7b2726d219d5adcbf4b3a0f4f17c2760bb70eb5dea7169c71d4aded9f70068b12025bca0a19b1afcdeb732bd5776396739339ca2764b9589 SHA512 44576bfc17c4e90369b4a08e4498796f792513ccd0b36215b2e484fc8740d7e4ea0c295405e0de6ff8d0a91feceea60640161be99496ed0d27afe020909c89a5 +DIST rust-1.90.0-i686-unknown-linux-gnu.tar.xz 264929384 BLAKE2B b0cf4dba2cc681e3fa7d49cb3810bda0fc84c372813be7b7d4f47d8c31a1668af124fd83c15fa0896ec9a1541328d074f0ab6a8eaaa3221443c1ac5e0b3bd641 SHA512 b43cefa30978419c071e7c0e095ffb23531dc898b9f1ab96ceeb8950aa9ba91db395a1e97b09d7bb331989296330a7ed886202ef0d0b747eeb1a06c08f7ea579 +DIST rust-1.90.0-i686-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 20d99bcb2f58f68ab46b545ae4912f1ad1155c28fd4410fed0fae0fd1ca904cf6521ffc24cc71d1ed70345511cc21591aae7030c47deecd84a60dc431adee0ca SHA512 ff9c4f87c9fd4e1b7c0f982a5935257bbdc9d2cc3c14f0327d22f201afae74e49bbf72a527d2e8bfc557d81ef4357563c3235cb97815a68c089218ad062872e2 +DIST rust-1.90.0-loongarch64-unknown-linux-gnu.tar.xz 262294868 BLAKE2B 85fa352e24cd483655e0566f0b249c914b14ff8b622a7e5a1dd34809a980ec1702cb6a23944f53e517496e59648c5689f2c8ea60f22cf23294190a379f893af0 SHA512 0dc95620c82d7e4589c73579ffdc647aecc11d53dac2354a4388a7e05269758413c67ac3bd2cedc517e7d3a50a53cffd41240cb9b3f80d1dbc354f6cba3ff7ce +DIST rust-1.90.0-loongarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 72217e5378ccbf95990a1b4f3c9f703cc1dd23a5222cccbb692b8c080c581d12b0f37181b452c619e4eda80e7b8a6fa7c0453e37a2e755b0ea23fbe686bf594a SHA512 a562272949cd2958e80332ce75f1ff4f925fec311f09ccd299e767dd5b42fcda76a82bc666b274855c734729c339063719893980ca8d1bef35e719d712fe00c6 +DIST rust-1.90.0-mips-unknown-linux-gnu.tar.xz 80303968 BLAKE2B 3f67dc569a2aa0552c047cefadef4bd7e8ac4e3b7f2e7f125df1b4055461ff00303db46b45725a139933db9b4ccc18cf5925dbbaa37a4bea469088bfbf268717 SHA512 b1aa8737298c0159ba016ebac6123bcdbb44d0ab996185981bc427bcadbc80dc7656fa81b2083914530b606d1aec331eca4fa1e35c2bbff4d7e4d2c32da209e8 +DIST rust-1.90.0-mips64-unknown-linux-gnuabi64.tar.xz 80138932 BLAKE2B bbbabdde7057a3d42ac8e1311816609f9a4266e8b5c0f2f5e9e2b4f266c07e018d6ba29448f8306677cd478b0a11e12f5e11a5460898a06d31a66926abbe3b72 SHA512 44bda6564fc4f225de81def186f60264b214463fced9f9d6dbea2a1dfe5f6393ad16f62a05b53c96a0e0a99ddc258f71e99318286ad79c86c37b7016883b0a83 +DIST rust-1.90.0-mips64el-unknown-linux-gnuabi64.tar.xz 81807724 BLAKE2B 02433f49e5e0431b7f6114ac8fdb0b1883f3c40a8a2255a1ee6985df74659d4861fd2fddcb2696fca24566ffaaa9f8385278713de805ee39f3661eb5e078bb62 SHA512 f13816a3d4af570291a0f2e69cd6828ddfbe5271e8d8ce75f3843abe7f164e4e2590785a1c648694b5521610fcb03ae3c422451ade455405a36f9ad2401de329 +DIST rust-1.90.0-mipsel-unknown-linux-gnu.tar.xz 81955400 BLAKE2B bb7cc3f154ad8d4bd3a031546190475c9a295541e99cf968ea60a0f0516186604002b03a20df59d96da4885ee909ef5f07f4688964b0e776fffeeeea32f28d74 SHA512 8269434edcb8f6929ca2db1d2f1fed570cb939392a9c567ccb7b1ef538f06111ebb3430fa7547a796b40d59d2460186dfe7f86e4fba60d6ef98d225ccb4d335b +DIST rust-1.90.0-powerpc-unknown-linux-gnu.tar.xz 256658904 BLAKE2B a4338f11483e53457bd2bbd3eaed9240c90c55f3f4db987a6d39e5bd2c90e7a02bf2307edb41e325d7fa6b74cde861aed52de70d231c404e8d99ebc310fac37d SHA512 baffec50e030234bdd00b1b2a8d5887a08c80f0e7ff91b7415e338ad0d1ed7be32055a77b116d8fea7625e56b35cced1f94d27cb802e6446bcde3977e32baf7c +DIST rust-1.90.0-powerpc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B e7c65582e52a4121470a926f4ac17d2d380785c98fdfef0b41cd46d6a85dc74dc950ed13dd0d7074e64370077bc6544dff768d484a27aa564cb98501bab9b3b9 SHA512 52102dfa3c203cd334fe58cb4a993bf37344f4064e7173d2191034816e052f75fc8b826abdb536571577e434cd19cf790488d01ae705050d31c617c7bcdecfa4 +DIST rust-1.90.0-powerpc64-unknown-linux-gnu.tar.xz 255330048 BLAKE2B 5d28eb5241da557d326e769601684a0ec54732c2f27232a111b1b2366620dbdb3e6c124182ba63858b4d2070cf710a7afdea1a0fd639178af53b075e01b42506 SHA512 590b8be30bac6cd4bd9c5a37e8b2a35590a3836eff765cfd9c297de97778584d0ea4a0052ded10176a4ff8ec92d636aa42bd329fea48d2407f1ecf3b93e8f983 +DIST rust-1.90.0-powerpc64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 3e2c32718432b7ba46375f8a35f94ffe09c97b448e91bb455cde5f63b576d070617fd58fbdb491ba3b232602daaf878f3cee71715a8f019b44d884030ef08b35 SHA512 07a128e2dc18421a45e3906ca9836ef66ac31132b764e5e0e938a75d80b3c35c9c3ccde5530a9f91f7a7638b12cbcf87259c37baa60a72d9316933ebb14d05bf +DIST rust-1.90.0-powerpc64-unknown-linux-musl.tar.xz 84002208 BLAKE2B a6272fe59f8b4acdc5bfd74d041d6b19595b9a586b234c412f00b3bd5f13edeb53492844eb863665f147af1c60f14b2697a7e1c8311299340f0b2da7bdf1d048 SHA512 3ad44c62873ec2d56b9953eb5d654757b2bb80dbd85cc3ddbb048e14064b31d9c4cb9577c43af5966f98ad9b47c8b55f5950e24d9614d728372600c052faeda1 +DIST rust-1.90.0-powerpc64le-unknown-linux-gnu.tar.xz 278420964 BLAKE2B f5ddeb3e2df8747abd66e201217287ee316a79c23db3604bb86f67de0f21a92616122121d3b99042e409f7cc9afce61b29498023f52a3a9565db718a3d0fe380 SHA512 74df8a75e23f0f85f63121029d0fd1fcfa7869fcf20e17c8d5c118c521fd072c5d8a6fe56272a2326a1d3f2f5f888acad3a1af0f982c8ab3e9ba113a7b6c10a0 +DIST rust-1.90.0-powerpc64le-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 8b2aa1e7408fad0fa86c8c0370d5bc00d01c4384d25626295718c08592577ecfaf77a4e129d0fbb6538e77c01cdfd09f3a8e4e43f03ddf8b038c33de411e4245 SHA512 10f2e8a10fa2148a50f4132e8c009d767f49ce685e76add16dbebc5ce23c336d88ee5f3ae8e5671af4eb1d5148ab8eb860a4ab2def852ae1fa2dbb2bf30e625b +DIST rust-1.90.0-powerpc64le-unknown-linux-musl.tar.xz 276592804 BLAKE2B 5bb63d56fbd3d15c7d89cec6464eba31bcf46a97c92b366c08147cde69abac96dc7c6dbc3626a7fe594744e502d65cef54e2613db503df6e8a1536a4e8caedb1 SHA512 065e29e053dbcb3007e4cb623d25e3b0bb7e13b3e0beed118ab55cc16a8abc087b7c4fd84d1a2d489e78549857a524e3d59355b3ad249475832b24cfae490e23 +DIST rust-1.90.0-powerpc64le-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 1752c39212cd6c4777f3a42a3a5cd19c64621810955aa811d5bb19eca70728b6f8c0570669fa19285e911e3e0977a6293d03c53bfd8a7d6e680681d3f68df3e8 SHA512 5a847e6d989335dd3c95aa8ce2482636778b82ac73385627e24e39e0932a8743949462849af631a79635c3d0f050ac180baca6c5e5526f5e4eb9d1e612287dcc +DIST rust-1.90.0-riscv64gc-unknown-linux-gnu.tar.xz 251333732 BLAKE2B b0f93df592f168fc84d7e7163b225824175fe027a4af31086af1aca83dd583fc0333042208120d3d93db972ac8d5abb099155bf0fc6bf33971b05e7f2bc8e169 SHA512 ae1298cb80297a954dade4543f3f31ddeeb31ee889a59c106bd6ac3dcb75a6ae2a8ac7f6086565c00a6d4a1d7f7b05f11b892285b7f27e5783003f21bddf03ca +DIST rust-1.90.0-riscv64gc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B ea18fe3ee6c2ac38e59be3196fc22f47917e2129ab62c38cf8b18b1970b1fe9f1e95076009475a67b421520b7266e8dad2b7a7379ef07e8963531e8e50ce585d SHA512 a17e9d45a537cf8e99eaab409e6e57ba52ef64c4d55a789e759af9934d7081d509c67af8332d5502785d2b1363d18bdd8ec691b032af7f5686c3f5f48eac66ae +DIST rust-1.90.0-riscv64gc-unknown-linux-musl.tar.xz 88552308 BLAKE2B c3fe49a244ea491d7f658eecd6f1a2a21ccec27b9036e1f64716797083a124a5220ac736f2e491e0973ff6e247a221378f9ae4a6fa7daa4ec350b3056663fffc SHA512 293a5e6705f212ac8eb6eec1ac9a9b4dfb67a3caee34cc6d908bec3ef4a92cd4a52b5dfe925bd4f279e64099200ddc100b644d07f38f7716634cb7539f9a777b +DIST rust-1.90.0-s390x-unknown-linux-gnu.tar.xz 239828172 BLAKE2B 6d2eb09ae026846602c6dcbf1a7c462bdbcfaafcb7f8e44ea9f0f10421fa39f1eac00152aa18e8790e8ba58f41ec7fdf9f1e837e968270ea442c3a6d3a3de39b SHA512 7bee7c0704bd8158bce9a35549271d3c161483c3a422a0f36c2cb71270268efa80dc77308380f584d92768d035898e9381b0dbc6e429d8e035dad365c4effb4c +DIST rust-1.90.0-s390x-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B f4ce2782c7a744dcd9ced9c62e824ad32768384d4cb3ad3041085222660da94f178c0831602d86d05607b9fe84e9d79b5ddb75c90b6428a424a0444781d8f878 SHA512 f764d51722fb11223b912abba403cab74e0f5d2cf3494cd752c9eccc5dabb6be26cf32bf4d6826e66d81492a8a1566392a51b9117a03800c246cd20e3522623a +DIST rust-1.90.0-sparc64-unknown-linux-gnu.tar.xz 78354804 BLAKE2B 33054f778452b1050a07145671e62540aead68e48ad78e3edd4575f56860e83367427551a44e88e16f6010f49ff1764101907bd4f9c49d09fc9c4de73376bf31 SHA512 ac72a6bb899e386d4fa01c61583d67ab2aa07cb3b46da5bb2ed280fd434996b65942be97065a15633b01daa68b19eaedd4b1a96c1401968f159ea7c836d40305 +DIST rust-1.90.0-x86_64-unknown-linux-gnu.tar.xz 202999512 BLAKE2B 2aeaca36f521134282228ebe34e47555e30f015b72c12dfa9075fedf1f2769226b5a11d4c3662506bf941aac0cbf91f6decd367b7aa84034e97e5dfd8fc08eef SHA512 bc1e7181cfefc630074e7019bacdca0fd159932b3011accb12e97c17023b6832b865de26e7b3b106cb595fe78b518cff397b6e50c9e1a56f7ce0c47f1a6a7c25 +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-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 @@ -645,3 +738,6 @@ DIST rust-src-1.86.0.tar.xz 3053544 BLAKE2B 2d1d8a4be4f9dc9355ce9a2d1599e0a57c5d DIST rust-src-1.87.0.tar.xz 3119800 BLAKE2B 6429eb419f17109537a2a5463b0c68f504b3cb0f55766e18f73cf053883b06eedc934ab4598756790cec147ff41c4eb30a807d2ce0b7e6af33310710fdc5a8c1 SHA512 9747c60268d772b7c6e7694260c0808d2b8a42028f5606499c81595d76f5bc32c9acf6b4b9aad168235f8fd77d980c56bc4afc3d40f5d0374b23d3e66e3de390 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 diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.90.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.90.0.ebuild new file mode 100644 index 0000000000..5bd7c7a55a --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.90.0.ebuild @@ -0,0 +1,320 @@ +# 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 ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +fi + +GENTOO_BIN_BASEURI="https://github.com/projg2/rust-bootstrap/releases/download/${PVR}" # omit trailing slash + +DESCRIPTION="Systems programming language from Mozilla" +HOMEPAGE="https://www.rust-lang.org/" + +if [[ ${PV} != *9999* && ${PV} != *beta* ]]; then + # Keep this separate to allow easy commenting out if not yet built + SRC_URI+=" sparc? ( ${GENTOO_BIN_BASEURI}/rust-${PVR}-sparc64-unknown-linux-gnu.tar.xz ) " + SRC_URI+=" mips? ( + abi_mips_o32? ( + big-endian? ( ${GENTOO_BIN_BASEURI}/rust-${PVR}-mips-unknown-linux-gnu.tar.xz ) + !big-endian? ( ${GENTOO_BIN_BASEURI}/rust-${PVR}-mipsel-unknown-linux-gnu.tar.xz ) + ) + abi_mips_n64? ( + big-endian? ( ${GENTOO_BIN_BASEURI}/rust-${PVR}-mips64-unknown-linux-gnuabi64.tar.xz ) + !big-endian? ( ${GENTOO_BIN_BASEURI}/rust-${PVR}-mips64el-unknown-linux-gnuabi64.tar.xz ) + ) + )" + SRC_URI+=" riscv? ( + elibc_musl? ( ${GENTOO_BIN_BASEURI}/rust-${PVR}-riscv64gc-unknown-linux-musl.tar.xz ) + )" + SRC_URI+=" ppc64? ( elibc_musl? ( + big-endian? ( ${GENTOO_BIN_BASEURI}/rust-${PVR}-powerpc64-unknown-linux-musl.tar.xz ) + ) )" +fi + +LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4" +SLOT="${PV%%_*}" # Beta releases get to share the same SLOT as the eventual stable +IUSE="big-endian clippy cpu_flags_x86_sse2 doc prefix rust-analyzer rust-src rustfmt" + +# net-misc/curl is needed for our own bootstrapped rustc, since cross-compiling bundled curl is not supported +RDEPEND=" + >=app-eselect/eselect-rust-20190311 + dev-libs/openssl + net-misc/curl + sys-apps/lsb-release + || ( + llvm-runtimes/libgcc + sys-devel/gcc:* + ) + !dev-lang/rust:stable + !dev-lang/rust-bin:stable +" +BDEPEND=" + prefix? ( dev-util/patchelf ) + verify-sig? ( sec-keys/openpgp-keys-rust ) +" +[[ ${PV} == *9999* ]] && BDEPEND+=" net-misc/curl" + +REQUIRED_USE="x86? ( cpu_flags_x86_sse2 )" + +# stripping rust may break it (at least on x86_64) +# https://github.com/rust-lang/rust/issues/112286 +RESTRICT="strip" + +QA_PREBUILT=" + opt/rust-bin-${SLOT}/bin/.* + opt/rust-bin-${SLOT}/lib/.*.so* + opt/rust-bin-${SLOT}/libexec/.* + opt/rust-bin-${SLOT}/lib/rustlib/.*/bin/.* + opt/rust-bin-${SLOT}/lib/rustlib/.*/lib/.* +" + +# An rmeta file is custom binary format that contains the metadata for the crate. +# rmeta files do not support linking, since they do not contain compiled object files. +# so we can safely silence the warning for this QA check. +QA_EXECSTACK="opt/${PN}-${SLOT}/lib/rustlib/*/lib*.rlib:lib.rmeta" + +VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/rust.asc" + +src_unpack() { + if [[ ${PV} == *9999* ]]; then + # We need to fetch the latest nightly listing and get the apprapriate src_uri for our arch + local rust_bin_url rustc_src_url + # Cut down on webrequests by fetching the nightly toml once + curl -Ls static.rust-lang.org/dist/channel-rust-nightly.toml > "${WORKDIR}/channel-rust-nightly.toml" || + die "Failed to fetch nightly revision info" + rustc_src_url=$(grep 'xz_url.*rust-src' "${WORKDIR}/channel-rust-nightly.toml" | cut -d '"' -f 2) + 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-1.91.0_beta20250928.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.91.0_beta20250928.ebuild new file mode 100644 index 0000000000..2e4fb28bc1 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.91.0_beta20250928.ebuild @@ -0,0 +1,320 @@ +# 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-1.91.0_beta20251009.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.91.0_beta20251009.ebuild new file mode 100644 index 0000000000..2e4fb28bc1 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust-bin/rust-bin-1.91.0_beta20251009.ebuild @@ -0,0 +1,320 @@ +# 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-common/Manifest b/sdk_container/src/third_party/portage-stable/dev-lang/rust-common/Manifest index da509c8bee..92a01cf285 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 @@ -16,3 +16,9 @@ DIST rustc-1.88.0-src.tar.xz 283294344 BLAKE2B fc17efbc8b2e54f2da61384097dcb3b8f DIST rustc-1.88.0-src.tar.xz.asc 801 BLAKE2B 858e987ad1fc49c1e1cbc5ea709f835c60fce907e89205e431c843bfad97dc0ccbcf399fc7d87319b8455561cbc24020bd88cb572cbe932cb8b80a8adec39687 SHA512 64ab398dc602fed3ad7bf232249e80cc0a9831aa90c7eb37658f7dc5b2af04ee391f9633aae7a1d90f743d019cec531318384f71384ecbe4f6169e6e88b7ba0e DIST rustc-1.89.0-src.tar.xz 267487572 BLAKE2B 9f6e3c595f843c239b57f14e26685e9856cffa10189b75627fee4dc82970a9b5f2c6f42e145d1c1042d934bd4db0334014c046450f7594d621b378d951546d5d SHA512 3ac0f02baaff12c67fe35cef4d56b315134d0a043bb6103a248a2842456c74733c6e3039f079bacfb8b8ab9b7487f92d678987e588bd41276abf9bf7c2f7870b 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 diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust-common/rust-common-1.90.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust-common/rust-common-1.90.0.ebuild new file mode 100644 index 0000000000..26c4792d0f --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust-common/rust-common-1.90.0.ebuild @@ -0,0 +1,73 @@ +# 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-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_beta20250928.ebuild new file mode 100644 index 0000000000..26c4792d0f --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust-common/rust-common-1.91.0_beta20250928.ebuild @@ -0,0 +1,73 @@ +# 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-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 new file mode 100644 index 0000000000..26c4792d0f --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust-common/rust-common-1.91.0_beta20251009.ebuild @@ -0,0 +1,73 @@ +# 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 f4f700c5ca..afd68d15d4 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 @@ -16,6 +16,9 @@ DIST rust-patches-1.86.0-r2-1.tar.bz2 6308 BLAKE2B eca644026942bd729a748df57dd67 DIST rust-patches-1.87.0-r1-1.tar.bz2 5116 BLAKE2B 783ad21464a7e393d0aee506119be12b0137a7d360402b74f36b6fde154c2804cc0779da63875977d09f7e9f2d273ff41dd189bbe4eb239a314fea27bbaa704c SHA512 8c67e4e43bf2afb226f70bb2a03aad0abfd525cd484c8c9ff663da06d63b471f4f1b48169d952a6a6c14258c0029dedea14aadaaca2ee75389df65b806188363 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 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 @@ -52,3 +55,9 @@ DIST rustc-1.88.0-src.tar.xz 283294344 BLAKE2B fc17efbc8b2e54f2da61384097dcb3b8f DIST rustc-1.88.0-src.tar.xz.asc 801 BLAKE2B 858e987ad1fc49c1e1cbc5ea709f835c60fce907e89205e431c843bfad97dc0ccbcf399fc7d87319b8455561cbc24020bd88cb572cbe932cb8b80a8adec39687 SHA512 64ab398dc602fed3ad7bf232249e80cc0a9831aa90c7eb37658f7dc5b2af04ee391f9633aae7a1d90f743d019cec531318384f71384ecbe4f6169e6e88b7ba0e DIST rustc-1.89.0-src.tar.xz 267487572 BLAKE2B 9f6e3c595f843c239b57f14e26685e9856cffa10189b75627fee4dc82970a9b5f2c6f42e145d1c1042d934bd4db0334014c046450f7594d621b378d951546d5d SHA512 3ac0f02baaff12c67fe35cef4d56b315134d0a043bb6103a248a2842456c74733c6e3039f079bacfb8b8ab9b7487f92d678987e588bd41276abf9bf7c2f7870b 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 diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.90.0-r1.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.90.0-r1.ebuild new file mode 100644 index 0000000000..81e30e372e --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.90.0-r1.ebuild @@ -0,0 +1,847 @@ +# 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=${PV} + +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 + +# 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 ${ALL_LLVM_TARGETS[*]} ${ALL_RUST_SYSROOTS[*]}" + +if [[ ${PV} = *9999* ]]; then + # These USE flags require nightly rust + IUSE+=" miri" +fi + +LLVM_DEPEND=() +# splitting usedeps needed to avoid CI/pkgcheck's UncheckableDep limitation +for _x in "${ALL_LLVM_TARGETS[@]}"; do + LLVM_DEPEND+=( " ${_x}? ( $(llvm_gen_dep "llvm-core/llvm:\${LLVM_SLOT}[${_x}=]") )" ) + if [[ -v ALL_RUST_EXPERIMENTAL_TARGETS["${_x}"] ]] ; then + ALL_RUST_EXPERIMENTAL_TARGETS["${_x}"]=1 + fi +done +LLVM_DEPEND+=( " rust_sysroots_wasm? ( $(llvm_gen_dep 'llvm-core/lld:${LLVM_SLOT}') )" ) +LLVM_DEPEND+=( " $(llvm_gen_dep 'llvm-core/llvm:${LLVM_SLOT}')" ) + +# dev-libs/oniguruma is used for documentation +BDEPEND="${PYTHON_DEPS} + app-eselect/eselect-rust + dev-libs/oniguruma + || ( + >=sys-devel/gcc-4.7[cxx] + >=llvm-core/clang-3.5 + ) + lto? ( system-llvm? ( + || ( + $(llvm_gen_dep 'llvm-core/lld:${LLVM_SLOT}') + sys-devel/mold + ) + ) ) + !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[*]} ) + rust_sysroots_bpf? ( llvm_targets_BPF ) + rust_sysroots_wasm? ( llvm_targets_WebAssembly ) + x86? ( cpu_flags_x86_sse2 ) +" + +# we don't use cmake.eclass, but can get a warning +CMAKE_WARN_UNUSED_CLI=no + +QA_FLAGS_IGNORED=" + usr/lib/${PN}/${SLOT}/bin/.* + usr/lib/${PN}/${SLOT}/libexec/.* + usr/lib/${PN}/${SLOT}/lib/lib.*.so + usr/lib/${PN}/${SLOT}/lib/rustlib/.*/bin/.* + usr/lib/${PN}/${SLOT}/lib/rustlib/.*/lib/lib.*.so +" + +QA_SONAME=" + usr/lib/${PN}/${SLOT}/lib/lib.*.so.* + usr/lib/${PN}/${SLOT}/lib/rustlib/.*/lib/lib.*.so +" + +QA_PRESTRIPPED=" + usr/lib/${PN}/${SLOT}/lib/rustlib/.*/bin/rust-llvm-dwp + usr/lib/${PN}/${SLOT}/lib/rustlib/.*/lib/self-contained/crtn.o +" + +# An rmeta file is custom binary format that contains the metadata for the crate. +# rmeta files do not support linking, since they do not contain compiled object files. +# so we can safely silence the warning for this QA check. +QA_EXECSTACK="usr/lib/${PN}/${SLOT}/lib/rustlib/*/lib*.rlib:lib.rmeta" + +# causes double bootstrap +RESTRICT="test" + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/rust.asc + +clear_vendor_checksums() { + sed -i 's/\("files":{\)[^}]*/\1/' "vendor/${1}/.cargo-checksum.json" || die +} + +toml_usex() { + usex "${1}" true false +} + +pre_build_checks() { + local M=9216 + # multiply requirements by 1.3 if we are doing x86-multilib + if use amd64; then + M=$(( $(usex abi_x86_32 13 10) * ${M} / 10 )) + fi + M=$(( $(usex clippy 128 0) + ${M} )) + if [[ ${PV} == *9999* ]]; then + M=$(( $(usex miri 128 0) + ${M} )) + fi + M=$(( $(usex rustfmt 256 0) + ${M} )) + # add 2G if we compile llvm and 256M per llvm_target + if ! use system-llvm; then + M=$(( 2048 + ${M} )) + local ltarget + for ltarget in ${ALL_LLVM_TARGETS[@]}; do + M=$(( $(usex ${ltarget} 256 0) + ${M} )) + done + fi + M=$(( $(usex rust_sysroots_bpf 256 0) + ${M} )) + M=$(( $(usex rust_sysroots_wasm 256 0) + ${M} )) + M=$(( $(usex debug 2 1) * ${M} )) + eshopts_push -s extglob + if is-flagq '-g?(gdb)?([1-9])'; then + M=$(( 15 * ${M} / 10 )) + fi + eshopts_pop + M=$(( $(usex doc 256 0) + ${M} )) + CHECKREQS_DISK_BUILD=${M}M check-reqs_pkg_${EBUILD_PHASE} +} + +llvm_check_deps() { + has_version -r "llvm-core/llvm:${LLVM_SLOT}[${LLVM_TARGET_USEDEPS// /,}]" +} + +# Is LLVM being linked against libc++? +is_libcxx_linked() { + local code='#include +#if defined(_LIBCPP_VERSION) + HAVE_LIBCXX +#endif +' + local out=$($(tc-getCXX) ${CXXFLAGS} ${CPPFLAGS} -x c++ -E -P - <<<"${code}") || return 1 + [[ ${out} == *HAVE_LIBCXX* ]] +} + +pkg_pretend() { + pre_build_checks +} + +pkg_setup() { + pre_build_checks + python-any-r1_pkg_setup + + 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 rust_sysroots_bpf; then + rust_targets+=",\"bpfeb-unknown-none\",\"bpfel-unknown-none\"" + fi + if use rust_sysroots_wasm; then + rust_targets+=",\"wasm32-unknown-unknown\"" + if use system-llvm; then + # un-hardcode rust-lld linker for this target + # https://bugs.gentoo.org/715348 + sed -i '/linker:/ s/rust-lld/wasm-ld/' compiler/rustc_target/src/spec/base/wasm.rs || die + fi + fi + rust_targets="${rust_targets#,}" + + # cargo and rustdoc are mandatory and should always be included + local tools='"cargo","rustdoc"' + use clippy && tools+=',"clippy"' + use rustfmt && tools+=',"rustfmt"' + use rust-analyzer && tools+=',"rust-analyzer","rust-analyzer-proc-macro-srv"' + use rust-src && tools+=',"src"' + + if [[ ${PV} == *9999* ]]; then + use miri && tools+=',"miri"' + fi + + local rust_stage0_root="$(${RUSTC} --print sysroot || die "Can't determine rust's sysroot")" + # in case of prefix it will be already prefixed, as --print sysroot returns full path + [[ -d ${rust_stage0_root} ]] || die "${rust_stage0_root} is not a directory" + + rust_target="$(rust_abi)" + rust_build="$(rust_abi "${CBUILD}")" + rust_host="$(rust_abi "${CHOST}")" + + RUST_EXPERIMENTAL_TARGETS=() + for _x in "${!ALL_RUST_EXPERIMENTAL_TARGETS[@]}"; do + if [[ ${ALL_RUST_EXPERIMENTAL_TARGETS[${_x}]} == 1 ]] && use ${_x} ; then + RUST_EXPERIMENTAL_TARGETS+=( ${_x#llvm_targets_} ) + fi + done + RUST_EXPERIMENTAL_TARGETS=${RUST_EXPERIMENTAL_TARGETS[@]} + + local cm_btype="$(usex debug DEBUG RELEASE)" + local build_channel + local build_miri="false" + case "${PV}" in + *9999*) + build_channel="nightly" + ;; + *beta*) + build_channel="beta" + ;; + *) + build_channel="stable" + ;; + esac + cat <<- _EOF_ > "${S}"/bootstrap.toml + # Suppresses a warning about tracking changes which we don't care about. + change-id = "ignore" + # https://github.com/rust-lang/rust/issues/135358 (bug #947897) + profile = "dist" + [llvm] + download-ci-llvm = false + optimize = $(toml_usex !debug) + release-debuginfo = $(toml_usex debug) + assertions = $(toml_usex debug) + ninja = true + targets = "${LLVM_TARGETS// /;}" + experimental-targets = "${RUST_EXPERIMENTAL_TARGETS// /;}" + link-shared = $(toml_usex system-llvm) + $(if is_libcxx_linked; then + # https://bugs.gentoo.org/732632 + echo "use-libcxx = true" + echo "static-libstdcpp = false" + fi) + $(case "${rust_target}" in + i586-*-linux-*) + # https://github.com/rust-lang/rust/issues/93059 + echo 'cflags = "-fcf-protection=none"' + echo 'cxxflags = "-fcf-protection=none"' + echo 'ldflags = "-fcf-protection=none"' + ;; + *) + ;; + esac) + enable-warnings = false + [llvm.build-config] + CMAKE_VERBOSE_MAKEFILE = "ON" + $(if ! tc-is-cross-compiler; then + # When cross-compiling, LLVM is compiled twice, once for host and + # once for target. Unfortunately, this build configuration applies + # to both, which means any flags applicable to one target but not + # the other will break. Conditionally disable respecting user + # flags when cross-compiling. + echo "CMAKE_C_FLAGS_${cm_btype} = \"${CFLAGS}\"" + echo "CMAKE_CXX_FLAGS_${cm_btype} = \"${CXXFLAGS}\"" + echo "CMAKE_EXE_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\"" + echo "CMAKE_MODULE_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\"" + echo "CMAKE_SHARED_LINKER_FLAGS_${cm_btype} = \"${LDFLAGS}\"" + echo "CMAKE_STATIC_LINKER_FLAGS_${cm_btype} = \"${ARFLAGS}\"" + fi) + [build] + build-stage = 2 + test-stage = 2 + build = "${rust_build}" + host = ["${rust_host}"] + target = [${rust_targets}] + cargo = "${rust_stage0_root}/bin/cargo" + rustc = "${rust_stage0_root}/bin/rustc" + rustfmt = "${rust_stage0_root}/bin/rustfmt" + description = "gentoo" + docs = $(toml_usex doc) + compiler-docs = false + submodules = false + python = "${EPYTHON}" + locked-deps = true + vendor = true + extended = true + tools = [${tools}] + verbose = 2 + sanitizers = false + profiler = true + cargo-native-static = false + [install] + prefix = "${EPREFIX}/usr/lib/${PN}/${SLOT}" + sysconfdir = "etc" + docdir = "share/doc/rust" + bindir = "bin" + libdir = "lib" + mandir = "share/man" + [rust] + # https://github.com/rust-lang/rust/issues/54872 + codegen-units-std = 1 + optimize = true + debug = $(toml_usex debug) + debug-assertions = $(toml_usex debug) + debug-assertions-std = $(toml_usex debug) + debuginfo-level = $(usex debug 2 0) + debuginfo-level-rustc = $(usex debug 2 0) + debuginfo-level-std = $(usex debug 2 0) + debuginfo-level-tools = $(usex debug 2 0) + debuginfo-level-tests = 0 + backtrace = true + incremental = false + $(if ! tc-is-cross-compiler; then + echo "default-linker = \"${CHOST}-cc\"" + fi) + channel = "${build_channel}" + rpath = true + verbose-tests = true + optimize-tests = $(toml_usex !debug) + codegen-tests = true + omit-git-hash = false + dist-src = false + remap-debuginfo = true + lld = $(usex system-llvm false $(toml_usex rust_sysroots_wasm)) + $(if use lto && tc-is-clang && ! tc-ld-is-mold; then + echo "use-lld = true" + fi) + # only deny warnings if doc+wasm are NOT requested, documenting stage0 wasm std fails without it + # https://github.com/rust-lang/rust/issues/74976 + # https://github.com/rust-lang/rust/issues/76526 + deny-warnings = $(usex rust_sysroots_wasm $(usex doc false true) true) + backtrace-on-ice = true + jemalloc = false + # See https://github.com/rust-lang/rust/issues/121124 + lto = "$(usex lto thin off)" + [dist] + src-tarball = false + compression-formats = ["xz"] + compression-profile = "balanced" + _EOF_ + + for v in $(multilib_get_enabled_abi_pairs); do + rust_target=$(rust_abi $(get_abi_CHOST ${v##*.})) + arch_cflags="$(get_abi_CFLAGS ${v##*.})" + + export CFLAGS_${rust_target//-/_}="${arch_cflags}" + + cat <<- _EOF_ >> "${S}"/bootstrap.toml + [target.${rust_target}] + ar = "$(tc-getAR)" + cc = "$(tc-getCC)" + cxx = "$(tc-getCXX)" + linker = "$(tc-getCC)" + ranlib = "$(tc-getRANLIB)" + llvm-libunwind = "$(usex llvm-libunwind $(usex system-llvm system in-tree) no)" + _EOF_ + if use system-llvm; then + cat <<- _EOF_ >> "${S}"/bootstrap.toml + llvm-config = "$(get_llvm_prefix)/bin/llvm-config" + _EOF_ + fi + # by default librustc_target/spec/linux_musl_base.rs sets base.crt_static_default = true; + # but we patch it and set to false here as well + if use elibc_musl; then + cat <<- _EOF_ >> "${S}"/bootstrap.toml + crt-static = false + musl-root = "$($(tc-getCC) -print-sysroot)/usr" + _EOF_ + fi + done + if use rust_sysroots_wasm; then + wasm_target="wasm32-unknown-unknown" + 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.90.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.90.0.ebuild new file mode 100644 index 0000000000..5ace910567 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.90.0.ebuild @@ -0,0 +1,837 @@ +# 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_beta20250928.ebuild new file mode 100644 index 0000000000..b84b675c5c --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.91.0_beta20250928.ebuild @@ -0,0 +1,837 @@ +# 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-1.91.0_beta20251009.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.91.0_beta20251009.ebuild new file mode 100644 index 0000000000..b84b675c5c --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-lang/rust/rust-1.91.0_beta20251009.ebuild @@ -0,0 +1,837 @@ +# 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 3ef79e7077..a4cb917d49 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,14 +3,14 @@ EAPI=8 -LLVM_COMPAT=( 20 ) +LLVM_COMPAT=( 21 ) PYTHON_COMPAT=( python3_{11..14} ) RUST_PATCH_VER=${PVR} RUST_MAX_VER=${PV%%_*} if [[ ${PV} == *9999* ]]; then - RUST_MIN_VER="1.89.0" # Update this as new `beta` releases come out. + RUST_MIN_VER="1.91.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" @@ -62,10 +62,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 +85,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 +137,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 +200,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 +362,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 @@ -505,14 +515,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 +562,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 diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/expat/Manifest b/sdk_container/src/third_party/portage-stable/dev-libs/expat/Manifest index 184c81b000..9a6606b670 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/expat/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-libs/expat/Manifest @@ -3,3 +3,4 @@ DIST expat-2.6.4.tar.xz 486732 BLAKE2B 70d716722358db8d0acb2c74dbbc9d2362d04a0b8 DIST expat-2.7.0.tar.xz 493060 BLAKE2B 44567e955b8cf2053665140b3557897c6e0e66c7e2ba5919970d91d55a05bb8db604afa37a441ff0a7abf4472b24b0e1e6c3964c56b4bb55358c000ccdc1459d SHA512 69fb19c2634821b657f550f609d0bcc6e45e9d903072bbc63e9a0bfc92ef7d04c6e1408dd39eb43eaa2951f28ae93dce4f796c9769253f440905db2d5606a4c7 DIST expat-2.7.1.tar.xz 496108 BLAKE2B 243ef1c3578234135018d31b567c88a50cadddac86441e4d4a6d6330e113596edbad13b40c79f541d49487e7df98d798032d39ec28b7d67d22f46e4290d14519 SHA512 4c9a6c1c1769d2c4404da083dd3013dbc73883da50e2b7353db2349a420e9b6d27cac7dbcb645991d6c7cdbf79bd88486fc1ac353084ce48e61081fb56e13d46 DIST expat-2.7.2.tar.xz 503392 BLAKE2B 35525274817dab4d6ae8698f5f83978e633a6e4afe7cf3b126c87d5aba4b64bcb9d26ec3e4a39b1ea82a7430e290950595bfa4150266ef3806026b423a870e33 SHA512 da64ae6d1762388873acbad9bc0edc80094c693bccacf89ca90d1626f53866c5e87c2019276e39643963d6479fb8a6d7b1f05f38caa1be84a24ff9d603449e38 +DIST expat-2.7.3.tar.xz 504744 BLAKE2B 26d4c9cb2c9b2a5b9ca9a86e9ea754e832f397bdb8ef266587b146591ff1358b2f439153f2eadb584180be6aee85050f19987565bbedf215993061ce5c85c5c9 SHA512 d2e495a9a2b902d38d838ec514da67ff56b76cdefcf89d0c320e2f319a35e439bd697880334d0ee70ca79b4515ac94c0c9b9ff97f899bcaa89308f1c8efaee0d 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 new file mode 100644 index 0000000000..0bcc032b34 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/expat/expat-2.7.3.ebuild @@ -0,0 +1,100 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 +AUTOTOOLS_AUTO_DEPEND=no +inherit autotools multilib-minimal + +DESCRIPTION="Stream-oriented XML parser library" +HOMEPAGE="https://libexpat.github.io/" +SRC_URI="https://github.com/libexpat/libexpat/releases/download/R_${PV//\./_}/expat-${PV}.tar.xz" + +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" +IUSE="examples static-libs test unicode" +RESTRICT="!test? ( test )" +BDEPEND="unicode? ( ${AUTOTOOLS_DEPEND} )" + +DOCS=( README.md ) + +QA_CONFIG_IMPL_DECL_SKIP=( + # https://bugs.gentoo.org/906384 + arc4random + arc4random_buf +) + +src_prepare() { + default + + # fix interpreter to be a recent/good shell + sed -i -e "1s:/bin/sh:${BASH}:" conftools/get-version.sh || die + if use unicode; then + cp -R "${S}" "${S}"w || die + pushd "${S}"w >/dev/null + find -name Makefile.am \ + -exec sed \ + -e 's,libexpat\.la,libexpatw.la,' \ + -e 's,libexpat_la,libexpatw_la,' \ + -i {} + || die + eautoreconf + popd >/dev/null + fi +} + +multilib_src_configure() { + local myconf="$(use_with test tests) $(use_enable static-libs static) --without-docbook" + + mkdir -p "${BUILD_DIR}"w || die + + if use unicode; then + pushd "${BUILD_DIR}"w >/dev/null + CPPFLAGS="${CPPFLAGS} -DXML_UNICODE" ECONF_SOURCE="${S}"w econf ${myconf} + popd >/dev/null + fi + + ECONF_SOURCE="${S}" econf ${myconf} +} + +multilib_src_compile() { + emake + + if use unicode; then + pushd "${BUILD_DIR}"w >/dev/null + emake -C lib + popd >/dev/null + fi +} + +multilib_src_install() { + emake install DESTDIR="${D}" + + if use unicode; then + pushd "${BUILD_DIR}"w >/dev/null + emake -C lib install DESTDIR="${D}" + popd >/dev/null + + pushd "${ED}"/usr/$(get_libdir)/pkgconfig >/dev/null + cp expat.pc expatw.pc + sed -i -e '/^Libs/s:-lexpat:&w:' expatw.pc || die + popd >/dev/null + fi +} + +multilib_src_install_all() { + einstalldocs + + doman doc/xmlwf.1 + + # Note: Use of HTML_DOCS would add unwanted "doc" subfolder + docinto html + dodoc doc/*.{css,html} + + if use examples; then + docinto examples + dodoc examples/*.c + docompress -x usr/share/doc/${PF}/examples + fi + + find "${D}" -name '*.la' -type f -delete || die +} 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 31cef49579..b98d83f3aa 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,4 +1,5 @@ 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 gobject-introspection-1.82.0.tar.xz 1052872 BLAKE2B 8336ae26d48a71a203655d9d268076f603055ceabb55dbfa676f2c67b4096b83afc106d485dc45d02b3a8be806f9ef50d54806a82e61f2a252ae59543c61e934 SHA512 e139fadb4174c72b648914f3774d89fc0e5eaee45bba0c13edf05de883664dad8276dbc34006217bb09871ed4bad23adab51ff232a17b9eb131329b2926cafb7 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 de02e76c5d..02e612d7f3 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,7 +36,6 @@ 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 31553b2eac..4b143af6c4 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,7 +36,6 @@ 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 4877e9cbd2..ccf8b36b0c 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 @@ -36,7 +36,6 @@ 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.86.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/glib/glib-2.86.0.ebuild new file mode 100644 index 0000000000..ccf8b36b0c --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/glib/glib-2.86.0.ebuild @@ -0,0 +1,474 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 +PYTHON_REQ_USE="xml(+)" +PYTHON_COMPAT=( python3_{11..14} ) + +inherit dot-a eapi9-ver gnome.org gnome2-utils linux-info meson-multilib multilib python-any-r1 toolchain-funcs xdg + +DESCRIPTION="The GLib library of C routines" +HOMEPAGE="https://www.gtk.org/" + +INTROSPECTION_PN="gobject-introspection" +INTROSPECTION_PV="1.82.0" +INTROSPECTION_P="${INTROSPECTION_PN}-${INTROSPECTION_PV}" +SRC_URI=" + ${SRC_URI} + introspection? ( mirror://gnome/sources/gobject-introspection/${INTROSPECTION_PV%.*}/gobject-introspection-${INTROSPECTION_PV}.tar.${GNOME_TARBALL_SUFFIX} ) +" +INTROSPECTION_SOURCE_DIR="${WORKDIR}/${INTROSPECTION_P}" +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" +IUSE="dbus debug +elf doc +introspection +mime selinux static-libs sysprof systemtap test utils xattr" +RESTRICT="!test? ( test )" + +# * elfutils (via libelf) does not build on Windows. gresources are not embedded +# within ELF binaries on that platform anyway and inspecting ELF binaries from +# other platforms is not that useful so exclude the dependency in this case. +# * Technically static-libs is needed on zlib, util-linux and perhaps more, but +# these are used by GIO, which glib[static-libs] consumers don't really seem +# to need at all, thus not imposing the deps for now and once some consumers +# are actually found to static link libgio-2.0.a, we can revisit and either add +# 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?] + >=dev-libs/libffi-3.0.13-r1:=[${MULTILIB_USEDEP}] + >=sys-libs/zlib-1.2.8-r1[${MULTILIB_USEDEP}] + >=virtual/libintl-0-r2[${MULTILIB_USEDEP}] + introspection? ( + >=dev-libs/gobject-introspection-common-${INTROSPECTION_PV} + ) + kernel_linux? ( >=sys-apps/util-linux-2.23[${MULTILIB_USEDEP}] ) + selinux? ( >=sys-libs/libselinux-2.2.2-r5[${MULTILIB_USEDEP}] ) + xattr? ( !elibc_glibc? ( >=sys-apps/attr-2.4.47-r1[${MULTILIB_USEDEP}] ) ) + elf? ( virtual/libelf:0= ) + sysprof? ( >=dev-util/sysprof-capture-3.40.1:4[${MULTILIB_USEDEP}] ) +" +DEPEND="${RDEPEND}" +# libxml2 used for optional tests that get automatically skipped +BDEPEND=" + app-text/docbook-xsl-stylesheets + >=dev-build/meson-1.4.0 + dev-libs/libxslt + >=sys-devel/gettext-0.19.8 + doc? ( >=dev-util/gi-docgen-2023.1 ) + dev-python/docutils + systemtap? ( >=dev-debug/systemtap-1.3 ) + ${PYTHON_DEPS} + test? ( >=sys-apps/dbus-1.2.14 ) + virtual/pkgconfig + + introspection? ( + $(python_gen_any_dep ' + dev-python/setuptools[${PYTHON_USEDEP}] + ') + virtual/pkgconfig + sys-devel/bison + app-alternatives/lex + ${PYTHON_DEPS} + ) +" +# TODO: >=dev-util/gdbus-codegen-${PV} test dep once we modify gio/tests/meson.build to use external gdbus-codegen + +PDEPEND=" + dbus? ( gnome-base/dconf ) + mime? ( x11-misc/shared-mime-info ) +" +# shared-mime-info needed for gio/xdgmime, bug #409481 +# dconf is needed to be able to save settings, bug #498436 + +MULTILIB_CHOST_TOOLS=( + /usr/bin/gio-querymodules$(get_exeext) +) + +PATCHES=( + "${FILESDIR}"/${PN}-2.64.1-mark-gdbus-server-auth-test-flaky.patch +) + +python_check_deps() { + if use introspection ; then + python_has_version "dev-python/setuptools[${PYTHON_USEDEP}]" + fi +} + +pkg_setup() { + if use kernel_linux ; then + CONFIG_CHECK="~INOTIFY_USER" + if use test ; then + CONFIG_CHECK="~IPV6" + WARNING_IPV6="Your kernel needs IPV6 support for running some tests, skipping them." + fi + linux-info_pkg_setup + fi + python-any-r1_pkg_setup +} + +src_prepare() { + if use test; then + # TODO: Review the test exclusions, especially now with meson + # gdesktopappinfo requires existing terminal (gnome-terminal or any + # other), falling back to xterm if one doesn't exist + #if ! has_version x11-terms/xterm && ! has_version x11-terms/gnome-terminal ; then + # ewarn "Some tests will be skipped due to missing terminal program" + # These tests seem to sometimes fail even with a terminal; skip for now and reevulate with meson + # Also try https://gitlab.gnome.org/GNOME/glib/issues/1601 once ready + # for backport (or in a bump) and file new issue if still fails + sed -i -e "/appinfo\/launch/d" gio/tests/appinfo.c || die + # desktop-app-info/launch* might fail similarly + sed -i -e "/desktop-app-info\/launch-as-manager/d" gio/tests/desktop-app-info.c || die + #fi + + # https://bugzilla.gnome.org/show_bug.cgi?id=722604 + sed -i -e "/timer\/stop/d" glib/tests/timer.c || die + sed -i -e "/timer\/basic/d" glib/tests/timer.c || die + + ewarn "Tests for search-utils have been skipped" + sed -i -e "/search-utils/d" glib/tests/meson.build || die + + # Running gdb inside a test within sandbox is brittle + sed -i -e '/self.__gdb = shutil.which("gdb")/s:"gdb":"gdb-idonotexist":' glib/tests/assert-msg-test.py || die + + # Play nice with network-sandbox, but this approach would defeat the purpose of the test + #sed -i -e "s/localhost/127.0.0.1/g" gio/tests/gsocketclient-slow.c || die + else + # Don't build tests, also prevents extra deps, bug #512022 + sed -i -e '/subdir.*tests/d' {.,gio,glib}/meson.build || die + fi + + # Don't build fuzzing binaries - not used + sed -i -e '/subdir.*fuzzing/d' meson.build || die + + # gdbus-codegen is a separate package + sed -i -e '/install_dir/d' gio/gdbus-2.0/codegen/meson.build || die + sed -i -e '/install : true/d' gio/gdbus-2.0/codegen/meson.build || die + + # Same kind of meson-0.50 issue with some installed-tests files; will likely be fixed upstream soon + sed -i -e '/install_dir/d' gio/tests/meson.build || die + + cat > "${T}/glib-test-ld-wrapper" <<-EOF + #!/usr/bin/env sh + exec \${LD:-ld} "\$@" + EOF + chmod a+x "${T}/glib-test-ld-wrapper" || die + sed -i -e "s|'ld'|'${T}/glib-test-ld-wrapper'|g" gio/tests/meson.build || die + + # make default sane for us + if use prefix ; then + sed -i -e "s:/usr/local:${EPREFIX}/usr:" gio/xdgmime/xdgmime.c || die + # bug #308609, without path, bug #314057 + export PERL=perl + fi + + if [[ ${CHOST} == *-solaris* ]] ; then + # fix standards conflicts + sed -i \ + -e 's/\<\(_XOPEN_SOURCE_EXTENDED\)\>/_POSIX_PTHREAD_SEMANTICS/' \ + -e '/\<_XOPEN_SOURCE\>/s/\<2\>/600/' \ + meson.build || die + sed -i -e '/#define\s\+_POSIX_SOURCE/d' \ + glib/giounix.c || die + fi + + # disable native macOS integrations + sed -i -e '/glib_conf.set(.HAVE_\(CARBON\|COCOA\).,/s/true/false/' \ + meson.build || die + sed -i \ + -e '/AvailabilityMacros.h/d' \ + gio/giomodule.c || die + + # Link the glib source to the introspection subproject directory so it can be built there first + if use introspection ; then + ln -s "${S}" "${INTROSPECTION_SOURCE_DIR}/subprojects/glib" + fi + + default + gnome2_environment_reset + # TODO: python_name sedding for correct python shebang? Might be relevant mainly for glib-utils only +} + +src_configure() { + lto-guarantee-fat + meson-multilib_src_configure +} + +multilib_src_configure() { + # TODO: figure a way to pass appropriate values for all cross properties + # that glib uses (search for get_cross_property) + #if tc-is-cross-compiler ; then + # https://bugzilla.gnome.org/show_bug.cgi?id=756473 + # TODO-meson: This should be in meson cross file as 'growing_stack' + # property; and more, look at get_cross_property + #case ${CHOST} in + #hppa*|metag*) export glib_cv_stack_grows=yes ;; + #*) export glib_cv_stack_grows=no ;; + #esac + #fi + + _need_bootstrap_gi() { + if ! multilib_native_use introspection ; then + return 1 + fi + + if ! has_version ">=dev-libs/${INTROSPECTION_P}" ; then + return 0 + fi + + # Is the installed gobject-introspection usable? + if ! g-ir-scanner --version &> /dev/null ; then + return 0 + fi + + # Do we somehow have a dev-libs/gobject-introspection installed + # with an unsatisfied dependency? (bug #951487) + if ! $(tc-getPKG_CONFIG) --cflags gobject-introspection-1.0 &> /dev/null ; then + return 0 + fi + + # Make sure has_version didn't lie to us while at it as well, + # given bug #951487. + if ! $(tc-getPKG_CONFIG) --atleast-version=${INTROSPECTION_PV} gobject-introspection-1.0 &> /dev/null ; then + return 0 + fi + + return 1 + } + + # Build internal copy of gobject-introspection to avoid circular dependency (built for native abi only) + if _need_bootstrap_gi ; then + einfo "Bootstrapping gobject-introspection..." + INTROSPECTION_BIN_DIR="${T}/bootstrap-gi-prefix/usr/bin" + INTROSPECTION_LIB_DIR="${T}/bootstrap-gi-prefix/usr/$(get_libdir)" + + local emesonargs=( + --prefix="${T}/bootstrap-gi-prefix/usr" + -Dpython="${EPYTHON}" + -Dbuild_introspection_data=true + # Build an internal copy of glib for the internal copy of gobject-introspection + --force-fallback-for=glib + # Make the paths in pkgconfig files relative as we used to not + # do a proper install here and it seems less risky to keep it + # this way. + -Dpkgconfig.relocatable=true + + # We want as minimal a build as possible here to speed things up + # and reduce the risk of failures. + -Dglib:selinux=disabled + -Dglib:xattr=false + -Dglib:libmount=disabled + -Dglib:man-pages=disabled + -Dglib:dtrace=disabled + -Dglib:systemtap=disabled + -Dglib:sysprof=disabled + -Dglib:documentation=false + -Dglib:tests=false + -Dglib:installed_tests=false + -Dglib:nls=disabled + -Dglib:oss_fuzz=disabled + -Dglib:libelf=disabled + -Dglib:multiarch=false + ) + + ORIG_SOURCE_DIR=${EMESON_SOURCE} + EMESON_SOURCE=${INTROSPECTION_SOURCE_DIR} + + # g-ir-scanner has some relocatable logic but it searches + # for 'lib', not 'lib64', so it can't find itself and eventually + # falls back to the system installation. See bug #946221. + sed -i -e "/^pylibdir =/s:'lib:'$(get_libdir):" "${EMESON_SOURCE}"/tools/g-ir-tool-template.in || die + + ORIG_BUILD_DIR=${BUILD_DIR} + BUILD_DIR=${INTROSPECTION_BUILD_DIR} + + pushd ${INTROSPECTION_SOURCE_DIR} || die + + meson_src_configure + meson_src_compile + # We already provide a prefix in ${T} above. Blank DESTDIR + # as it may be set in the environment by Portage (though not + # guaranteed in src_configure). + meson_src_install --destdir "" + + popd || die + + EMESON_SOURCE=${ORIG_SOURCE_DIR} + BUILD_DIR=${ORIG_BUILD_DIR} + + # Add gobject-introspection binaries and pkgconfig files to path + 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" + + # 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)" + + # Add the paths to the built glib libraries to the library path so that gobject-introspection can load them + for gliblib in glib gobject gthread gmodule gio girepository; do + export LD_LIBRARY_PATH="${BUILD_DIR}/${gliblib}:${LD_LIBRARY_PATH}" + done + + # Add the path to introspection libraries so that glib can call gir utilities + export LD_LIBRARY_PATH="${INTROSPECTION_LIB_DIR}:${LD_LIBRARY_PATH}" + + # Add the paths to the gobject-introspection python modules to python path so they can be imported + export PYTHONPATH="${INTROSPECTION_LIB_DIR}/gobject-introspection:${PYTHONPATH}" + fi + + # TODO: Can this be cleaned up now we have -Dglib_debug? (bug #946485) + use debug && EMESON_BUILD_TYPE=debug + + local emesonargs=( + -Ddefault_library=$(usex static-libs both shared) + -Druntime_dir="${EPREFIX}"/run + $(meson_feature debug glib_debug) + $(meson_feature selinux) + $(meson_use xattr) + -Dlibmount=enabled # only used if host_system == 'linux' + -Dman-pages=enabled + $(meson_feature systemtap dtrace) + $(meson_feature systemtap) + $(meson_feature sysprof) + $(meson_use doc documentation) + $(meson_use test tests) + -Dinstalled_tests=false + -Dnls=enabled + -Doss_fuzz=disabled + $(meson_native_use_feature elf libelf) + -Dmultiarch=false + $(meson_native_use_feature introspection) + ) + + # Workaround for bug #938302 + if use systemtap && has_version "dev-debug/systemtap[-dtrace-symlink(+)]" ; then + local native_file="${T}"/meson.${CHOST}.ini.local + cat >> ${native_file} <<-EOF || die + [binaries] + dtrace='stap-dtrace' + EOF + emesonargs+=( --native-file "${native_file}" ) + fi + + meson_src_configure +} + +multilib_src_test() { + export XDG_CONFIG_DIRS=/etc/xdg + export XDG_DATA_DIRS=/usr/local/share:/usr/share + # TODO: Use ${ABI} here to be unique for multilib? + export G_DBUS_COOKIE_SHA1_KEYRING_DIR="${T}/temp" + export LC_TIME=C # bug #411967 + export TZ=UTC + unset GSETTINGS_BACKEND # bug #596380 + python_setup + + # https://bugs.gentoo.org/839807 + local -x SANDBOX_PREDICT=${SANDBOX_PREDICT} + addpredict /usr/b + + # Related test is a bit nitpicking + mkdir -p "$G_DBUS_COOKIE_SHA1_KEYRING_DIR" || die + chmod 0700 "$G_DBUS_COOKIE_SHA1_KEYRING_DIR" || die + + meson_src_test --timeout-multiplier 20 --no-suite flaky +} + +multilib_src_install() { + meson_src_install + keepdir /usr/$(get_libdir)/gio/modules +} + +multilib_src_install_all() { + strip-lto-bytecode + + # These are installed by dev-util/glib-utils + # TODO: With patching we might be able to get rid of the python-any deps + # and removals, and test depend on glib-utils instead; revisit now with + # meson + rm "${ED}/usr/bin/glib-genmarshal" || die + rm "${ED}/usr/share/man/man1/glib-genmarshal.1" || die + rm "${ED}/usr/bin/glib-mkenums" || die + rm "${ED}/usr/share/man/man1/glib-mkenums.1" || die + rm "${ED}/usr/bin/gtester-report" || die + rm "${ED}/usr/share/man/man1/gtester-report.1" || die + # gdbus-codegen manpage installed by dev-util/gdbus-codegen + rm "${ED}/usr/share/man/man1/gdbus-codegen.1" || die +} + +pkg_preinst() { + xdg_pkg_preinst + + # Make gschemas.compiled belong to glib alone + local cache="/usr/share/glib-2.0/schemas/gschemas.compiled" + + if [[ -e ${EROOT}${cache} ]]; then + cp "${EROOT}"${cache} "${ED}"/${cache} || die + else + touch "${ED}"${cache} || die + fi + + multilib_pkg_preinst() { + # Make giomodule.cache belong to glib alone + local cache="/usr/$(get_libdir)/gio/modules/giomodule.cache" + + if [[ -e ${EROOT}${cache} ]]; then + cp "${EROOT}"${cache} "${ED}"${cache} || die + else + touch "${ED}"${cache} || die + fi + } + + # Don't run the cache ownership when cross-compiling, as it would end up with an empty cache + # file due to inability to create it and GIO might not look at any of the modules there + if ! tc-is-cross-compiler ; then + multilib_foreach_abi multilib_pkg_preinst + fi +} + +pkg_postinst() { + xdg_pkg_postinst + # glib installs no schemas itself, but we force update for fresh install in case + # something has dropped in a schemas file without direct glib dep; and for upgrades + # in case the compiled schema format could have changed + gnome2_schemas_update + + multilib_pkg_postinst() { + gnome2_giomodule_cache_update \ + || die "Update GIO modules cache failed (for ${ABI})" + } + if ! tc-is-cross-compiler ; then + multilib_foreach_abi multilib_pkg_postinst + else + ewarn "Updating of GIO modules cache skipped due to cross-compilation." + ewarn "You might want to run gio-querymodules manually on the target for" + ewarn "your final image for performance reasons and re-run it when packages" + ewarn "installing GIO modules get upgraded or added to the image." + fi + + if ver_replacing "-lt" "2.63.6"; then + ewarn "glib no longer installs the gio-launch-desktop binary. You may need" + ewarn "to restart your session for \"Open With\" dialogs to work." + fi +} + +pkg_postrm() { + xdg_pkg_postrm + gnome2_schemas_update + + if [[ -z ${REPLACED_BY_VERSION} ]]; then + multilib_pkg_postrm() { + rm -f "${EROOT}"/usr/$(get_libdir)/gio/modules/giomodule.cache || die + } + multilib_foreach_abi multilib_pkg_postrm + rm -f "${EROOT}"/usr/share/glib-2.0/schemas/gschemas.compiled || die + fi +} diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/gobject-introspection-common/Manifest b/sdk_container/src/third_party/portage-stable/dev-libs/gobject-introspection-common/Manifest index df672af822..e37410a896 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/gobject-introspection-common/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-libs/gobject-introspection-common/Manifest @@ -1,2 +1,3 @@ DIST gobject-introspection-1.82.0.tar.xz 1052872 BLAKE2B 8336ae26d48a71a203655d9d268076f603055ceabb55dbfa676f2c67b4096b83afc106d485dc45d02b3a8be806f9ef50d54806a82e61f2a252ae59543c61e934 SHA512 e139fadb4174c72b648914f3774d89fc0e5eaee45bba0c13edf05de883664dad8276dbc34006217bb09871ed4bad23adab51ff232a17b9eb131329b2926cafb7 DIST gobject-introspection-1.84.0.tar.xz 1080316 BLAKE2B c888cc36f980db61bf7da46199fecfbe944034b9ffdf3e6e21cc56b2177c3ece1a0571166ab37c63c6f0d5c80be91963c9e342f5162e2b908838d8eef9e193e3 SHA512 764b5071472f93ed62bd64983c16fc4f73d4e20575d31eb475b40f4c6643080249aec4c5e9536d0ade719a99844cefa5a6e902b4d58e5644d0c0793212da3e5b +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/gobject-introspection-common/gobject-introspection-common-1.86.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/gobject-introspection-common/gobject-introspection-common-1.86.0.ebuild new file mode 100644 index 0000000000..ac499b93ce --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/gobject-introspection-common/gobject-introspection-common-1.86.0.ebuild @@ -0,0 +1,30 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 +GNOME_ORG_MODULE="gobject-introspection" + +inherit gnome.org + +DESCRIPTION="Build infrastructure for GObject Introspection" +HOMEPAGE="https://gi.readthedocs.io/" + +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 ~ppc-macos ~x64-macos ~x64-solaris" + +RDEPEND="!<${CATEGORY}/${GNOME_ORG_MODULE}-${PV}" +# Use !<${PV} because mixing gobject-introspection with different version of -common can cause issues like: +# https://forums.gentoo.org/viewtopic-p-7421930.html + +src_configure() { :; } + +src_compile() { :; } + +src_install() { + insinto /usr/share/aclocal + doins m4/introspection.m4 + + insinto /usr/share/gobject-introspection-1.0 + doins Makefile.introspection +} 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 9bfdd44988..1a4cde3f48 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/libgcrypt/libgcrypt-1.10.2.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/libgcrypt/libgcrypt-1.10.2.ebuild index 8c51ead446..7b76809466 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/libgcrypt/libgcrypt-1.10.2.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libgcrypt/libgcrypt-1.10.2.ebuild @@ -136,6 +136,7 @@ multilib_src_configure() { $(use asm || echo "--disable-asm") GPG_ERROR_CONFIG="${ESYSROOT}/usr/bin/${CHOST}-gpg-error-config" + GPGRT_CONFIG="${ESYSROOT}/usr/bin/${CHOST}-gpgrt-config" ) if use kernel_linux; then diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libgcrypt/libgcrypt-1.10.3-r1.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/libgcrypt/libgcrypt-1.10.3-r1.ebuild index 0aa3ef6055..461f0fe8e9 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/libgcrypt/libgcrypt-1.10.3-r1.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libgcrypt/libgcrypt-1.10.3-r1.ebuild @@ -134,6 +134,7 @@ multilib_src_configure() { $(use asm || echo "--disable-asm") GPG_ERROR_CONFIG="${ESYSROOT}/usr/bin/${CHOST}-gpg-error-config" + GPGRT_CONFIG="${ESYSROOT}/usr/bin/${CHOST}-gpgrt-config" ) if use kernel_linux; then diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libgcrypt/libgcrypt-1.10.3-r2.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/libgcrypt/libgcrypt-1.10.3-r2.ebuild index 3596fcca95..b7c7ff42e6 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/libgcrypt/libgcrypt-1.10.3-r2.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libgcrypt/libgcrypt-1.10.3-r2.ebuild @@ -140,6 +140,7 @@ multilib_src_configure() { $(use asm || echo "--disable-asm") GPG_ERROR_CONFIG="${ESYSROOT}/usr/bin/${CHOST}-gpg-error-config" + GPGRT_CONFIG="${ESYSROOT}/usr/bin/${CHOST}-gpgrt-config" ) if use kernel_linux; then diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libgcrypt/libgcrypt-1.11.0-r1.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/libgcrypt/libgcrypt-1.11.0-r1.ebuild index 5774aa6e9f..976242e767 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/libgcrypt/libgcrypt-1.11.0-r1.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libgcrypt/libgcrypt-1.11.0-r1.ebuild @@ -134,6 +134,7 @@ multilib_src_configure() { $(use asm || echo "--disable-asm") GPG_ERROR_CONFIG="${ESYSROOT}/usr/bin/${CHOST}-gpg-error-config" + GPGRT_CONFIG="${ESYSROOT}/usr/bin/${CHOST}-gpgrt-config" ) if use kernel_linux; then diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libgcrypt/libgcrypt-1.11.0-r2.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/libgcrypt/libgcrypt-1.11.0-r2.ebuild index c7c5ba4592..a69a2ad7df 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/libgcrypt/libgcrypt-1.11.0-r2.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libgcrypt/libgcrypt-1.11.0-r2.ebuild @@ -141,6 +141,7 @@ multilib_src_configure() { $(use asm || echo "--disable-asm") GPG_ERROR_CONFIG="${ESYSROOT}/usr/bin/${CHOST}-gpg-error-config" + GPGRT_CONFIG="${ESYSROOT}/usr/bin/${CHOST}-gpgrt-config" ) if use kernel_linux; then diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libgcrypt/libgcrypt-1.11.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/libgcrypt/libgcrypt-1.11.1.ebuild index 8bc8c09a50..7723c5ad7e 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/libgcrypt/libgcrypt-1.11.1.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libgcrypt/libgcrypt-1.11.1.ebuild @@ -154,6 +154,7 @@ multilib_src_configure() { $(use asm || echo "--disable-asm") GPG_ERROR_CONFIG="${ESYSROOT}/usr/bin/${CHOST}-gpg-error-config" + GPGRT_CONFIG="${ESYSROOT}/usr/bin/${CHOST}-gpgrt-config" ) if use kernel_linux; then diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libgcrypt/libgcrypt-1.11.2.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/libgcrypt/libgcrypt-1.11.2.ebuild index 565f926150..2289611c5d 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/libgcrypt/libgcrypt-1.11.2.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libgcrypt/libgcrypt-1.11.2.ebuild @@ -150,6 +150,7 @@ multilib_src_configure() { $(use asm || echo "--disable-asm") GPG_ERROR_CONFIG="${ESYSROOT}/usr/bin/${CHOST}-gpg-error-config" + GPGRT_CONFIG="${ESYSROOT}/usr/bin/${CHOST}-gpgrt-config" ) if use kernel_linux; then diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libgpg-error/Manifest b/sdk_container/src/third_party/portage-stable/dev-libs/libgpg-error/Manifest index 2c992f5d7b..e3b7a53f93 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/libgpg-error/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libgpg-error/Manifest @@ -4,3 +4,5 @@ DIST libgpg-error-1.53.tar.bz2 1106986 BLAKE2B 9c00543c086f963cf84507ba1a33e4df6 DIST libgpg-error-1.53.tar.bz2.sig 119 BLAKE2B 421d1a3babc1a0916c8b95ade4550c5003137cc86295ee10d595e2d879057959637e760b4f66b5b5c5edfa5367199b02685c734dafbcb2369abc85fb3998d28f SHA512 62000a0e154219834e3891285f41357cfabdd95c1888f7703c76159529eac73bd2c9b7cd290a287ff93e052bd3ca6c70597b2250ed786c329823d34a0fc3d8cf DIST libgpg-error-1.55.tar.bz2 1109437 BLAKE2B ae8bf5d17ebd252b32b05b9686baf2d2e027f5e827dbd7db6fea37570aeeeea2625d416aaea96fbcdfd64fd08de589ef054843b2e3619d22fc8a052a6b5c7e0a SHA512 d3f6ca9d9abefe81f5cbbc195fbe259d3362119018c535ad2621ee407cad3487011325a9f4c4a15442a9ac5a0fe7ce86dafd7b3d891a446516362ba6b7b9047b DIST libgpg-error-1.55.tar.bz2.sig 238 BLAKE2B 62d461984fd658a9722183e08b8805c8f48dca06a37de9f8f76e19d3946099ec252c8ef1df76e20f9ea49f5413d87ce4a00b8dd967664125d93089617a42894a SHA512 dee5152818ff9f65d2e7165c378f10a7d07ef58848c7290e98c87ce17aaed37fea82df0c3005b159da2ce8a48a1396037f43b22c5ee9857c01bc86b77181e7a1 +DIST libgpg-error-1.56.tar.bz2 1116017 BLAKE2B 2c84fe5cef8c77dc01f481aeacada815baf7fff85369a9c877dc4a11f2e3f84f37ad69a04213bc79765677dd2829a5074d7c8239b298429484378234cb4d2a66 SHA512 ff4160f4133cf1a90eddf5f59d6248214b59db4f021f124302be37bf04fa1f2eb665560914cbe289095e630a31ba141252e7a72a8e6dbbc622cb135a2066259a +DIST libgpg-error-1.56.tar.bz2.sig 147 BLAKE2B 13a2642c4b891ab92abfc0d9022b06a1a545b09bb86b460485d26e5626ce7f87f0c08cc2563ddf78153ad35ff68223acec3a87a60aa75192b964e5d17bbc6e9b SHA512 20f3d0af54948479a8d878fe580f6929cad097ca388c7ae314a716574e9edb976b53cd0e5cdb0164485a832dd9961101bbb1a86b053a1492e05717710a14e303 diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libgpg-error/libgpg-error-1.56.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/libgpg-error/libgpg-error-1.56.ebuild new file mode 100644 index 0000000000..fdcf7bddbe --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libgpg-error/libgpg-error-1.56.ebuild @@ -0,0 +1,89 @@ +# 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 +inherit libtool multilib-minimal toolchain-funcs verify-sig + +DESCRIPTION="Contains error handling functions used by GnuPG software" +HOMEPAGE="https://www.gnupg.org/related_software/libgpg-error/" +SRC_URI="mirror://gnupg/${PN}/${P}.tar.bz2" +SRC_URI+=" verify-sig? ( mirror://gnupg/${PN}/${P}.tar.bz2.sig )" + +LICENSE="GPL-2 LGPL-2.1" +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="common-lisp nls static-libs test" +RESTRICT="!test? ( test )" + +RDEPEND="nls? ( >=virtual/libintl-0-r1[${MULTILIB_USEDEP}] )" +DEPEND="${RDEPEND}" +BDEPEND=" + nls? ( sys-devel/gettext ) + verify-sig? ( sec-keys/openpgp-keys-gnupg ) +" + +MULTILIB_WRAPPED_HEADERS=( + /usr/include/gpg-error.h + /usr/include/gpgrt.h +) + +MULTILIB_CHOST_TOOLS=( + /usr/bin/gpg-error-config + /usr/bin/gpgrt-config +) + +src_prepare() { + default + elibtoolize + + if use prefix ; then + # don't hardcode /usr/xpg4/bin/sh as shell on Solaris + sed -i -e 's:INSTALLSHELLPATH=/usr/xpg4/bin/sh:INSTALLSHELLPATH=/bin/sh:g' configure.ac configure || die + fi + + # This check breaks multilib + cat <<-EOF > src/gpg-error-config-test.sh.in || die + #!@INSTALLSHELLPATH@ + exit 0 + EOF + + # only necessary for as long as we run eautoreconf, configure.ac + # uses ./autogen.sh to generate PACKAGE_VERSION, but autogen.sh is + # not a pure /bin/sh script, so it fails on some hosts + #sed -i -e "1s:.*:#\!${BASH}:" autogen.sh || die + #eautoreconf +} + +multilib_src_configure() { + local myeconfargs=( + $(multilib_is_native_abi || echo --disable-languages) + $(use_enable common-lisp languages) + $(use_enable nls) + # required for sys-power/suspend[crypt], bug 751568 + $(use_enable static-libs static) + $(use_enable test tests) + + # See bug #699206 and its duplicates wrt gpgme-config + # Upstream no longer install this by default and we should + # seek to disable it at some point. + --enable-install-gpg-error-config + + --enable-threads + CC_FOR_BUILD="$(tc-getBUILD_CC)" + $("${S}/configure" --help | grep -o -- '--without-.*-prefix') + ) + ECONF_SOURCE="${S}" econf "${myeconfargs[@]}" +} + +multilib_src_install_all() { + einstalldocs + find "${ED}" -type f -name '*.la' -delete || die +} diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libksba/libksba-1.6.7.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/libksba/libksba-1.6.7.ebuild index e7b5624907..c0c8449f81 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/libksba/libksba-1.6.7.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libksba/libksba-1.6.7.ebuild @@ -49,6 +49,7 @@ my_src_configure() { GPG_ERROR_CONFIG="${ESYSROOT}/usr/bin/${CHOST}-gpg-error-config" LIBGCRYPT_CONFIG="${ESYSROOT}/usr/bin/${CHOST}-libgcrypt-config" + GPGRT_CONFIG="${ESYSROOT}/usr/bin/${CHOST}-gpgrt-config" ) econf "${myeconfargs[@]}" 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 a0db9d66b4..343327138b 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/libuv/files/libuv-1.51.0-ppc32-uring.patch b/sdk_container/src/third_party/portage-stable/dev-libs/libuv/files/libuv-1.51.0-ppc32-uring.patch new file mode 100644 index 0000000000..baef628bb8 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libuv/files/libuv-1.51.0-ppc32-uring.patch @@ -0,0 +1,21 @@ +https://bugs.gentoo.org/941738 + +There are reports of this working with libuv-1.51.0 and cmake-4.1.2 but +the fix was likely on the kernel side which means it's not something we +can rely on, especially for an arch like ppc32. + +This could be submitted upstream if we can identify what actually fixed +it and therefore the first good kernel version to check for, as we do +for hppa. +--- a/src/unix/linux.c ++++ b/src/unix/linux.c +@@ -464,6 +464,9 @@ static int uv__use_io_uring(uint32_t flags) { + #elif defined(__powerpc64__) || defined(__ppc64__) + /* See https://github.com/libuv/libuv/issues/4283. */ + return 0; /* Random SIGSEGV in signal handler. */ ++#elif defined(__powerpc__) && !defined(__powerpc64__) ++ /* See https://bugs.gentoo.org/941738. */ ++ return 0; /* Crash in uv__spawn_and_init_child_fork. */ + #else + /* Ternary: unknown=0, yes=1, no=-1 */ + static _Atomic int use_io_uring; diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libuv/libuv-1.51.0-r1.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/libuv/libuv-1.51.0-r1.ebuild new file mode 100644 index 0000000000..51b018e5ff --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libuv/libuv-1.51.0-r1.ebuild @@ -0,0 +1,63 @@ +# 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/libuv.asc +inherit autotools verify-sig + +DESCRIPTION="Cross-platform asychronous I/O" +HOMEPAGE="https://github.com/libuv/libuv" + +if [[ ${PV} = 9999* ]]; then + EGIT_REPO_URI="https://github.com/libuv/libuv.git" + inherit git-r3 +else + SRC_URI=" + https://dist.libuv.org/dist/v${PV}/libuv-v${PV}.tar.gz -> ${P}.tar.gz + verify-sig? ( https://dist.libuv.org/dist/v${PV}/libuv-v${PV}.tar.gz.sign -> ${P}.tar.gz.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" + S="${WORKDIR}/${PN}-v${PV}" +fi + +LICENSE="BSD BSD-2 ISC MIT" +SLOT="0/1" + +BDEPEND=" + dev-build/libtool + virtual/pkgconfig + verify-sig? ( sec-keys/openpgp-keys-libuv ) +" + +PATCHES=( + "${FILESDIR}"/${PN}-1.48.0-test-thread-priority-portage.patch + "${FILESDIR}"/${PN}-1.51.0-ppc32-uring.patch +) + +src_prepare() { + default + + if [[ ${CHOST} == *-darwin* && ${CHOST##*darwin} -le 9 ]] ; then + eapply "${FILESDIR}"/${PN}-1.41.0-darwin.patch + fi + + # Upstream fails to ship a configure script and has missing m4 file. + echo "m4_define([UV_EXTRA_AUTOMAKE_FLAGS], [serial-tests])" \ + > m4/libuv-extra-automake-flags.m4 || die + eautoreconf +} + +src_configure() { + local myeconfargs=( + cc_cv_cflags__g=no + ) + + econf "${myeconfargs[@]}" +} + +src_install() { + default + + find "${ED}" -name '*.la' -delete || die +} 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 9ac5bab41f..24082c5677 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,5 +1,6 @@ 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 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/files/2.15.0/0001-meson-Fix-install-dir-of-man-pages.patch b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/files/2.15.0/0001-meson-Fix-install-dir-of-man-pages.patch new file mode 100644 index 0000000000..d787bfc041 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/files/2.15.0/0001-meson-Fix-install-dir-of-man-pages.patch @@ -0,0 +1,29 @@ +From 17b056cb8ecff88326340ef9e70cd59d78d781a0 Mon Sep 17 00:00:00 2001 +Message-ID: <17b056cb8ecff88326340ef9e70cd59d78d781a0.1760256737.git.sam@gentoo.org> +From: Nick Wellnhofer +Date: Wed, 17 Sep 2025 11:10:51 +0200 +Subject: [PATCH 1/8] meson: Fix install dir of man pages + +Regressed when reworking documentation in 2.15. + +Fixes #985. +--- + doc/meson.build | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/doc/meson.build b/doc/meson.build +index 018b7d03..8cde254a 100644 +--- a/doc/meson.build ++++ b/doc/meson.build +@@ -31,7 +31,7 @@ if want_docs + + xsltproc = find_program('xsltproc') + types = [ +- [ 'manpages', '.1', dir_man ], ++ [ 'manpages', '.1', dir_man / 'man1' ], + [ 'html', '.html', dir_doc ], + ] + programs = [ 'xmllint' ] +-- +2.51.0 + diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/files/2.15.0/0002-parser-Fix-attribute-normalization-and-standalone-ch.patch b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/files/2.15.0/0002-parser-Fix-attribute-normalization-and-standalone-ch.patch new file mode 100644 index 0000000000..371e014c5f --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/files/2.15.0/0002-parser-Fix-attribute-normalization-and-standalone-ch.patch @@ -0,0 +1,38 @@ +From 368a0b146a7ce92fcb9ef485eb37f81e135c4c8d Mon Sep 17 00:00:00 2001 +Message-ID: <368a0b146a7ce92fcb9ef485eb37f81e135c4c8d.1760256737.git.sam@gentoo.org> +In-Reply-To: <17b056cb8ecff88326340ef9e70cd59d78d781a0.1760256737.git.sam@gentoo.org> +References: <17b056cb8ecff88326340ef9e70cd59d78d781a0.1760256737.git.sam@gentoo.org> +From: Nick Wellnhofer +Date: Fri, 19 Sep 2025 13:39:41 +0200 +Subject: [PATCH 2/8] parser: Fix attribute normalization and standalone check + +Regressed with e4cbc295. +--- + parser.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/parser.c b/parser.c +index 2c3d9048..c7f46a31 100644 +--- a/parser.c ++++ b/parser.c +@@ -4025,7 +4025,7 @@ xmlParseAttValueInternal(xmlParserCtxtPtr ctxt, int *attlen, int *outFlags, + int c, l, quote, entFlags, chunkSize; + int inSpace = 1; + int replaceEntities; +- int normalize = (special & XML_SPECIAL_TYPE_MASK) != 0; ++ int normalize = (special & XML_SPECIAL_TYPE_MASK) > XML_ATTRIBUTE_CDATA; + int attvalFlags = 0; + + /* Always expand namespace URIs */ +@@ -8578,7 +8578,7 @@ xmlParseAttribute2(xmlParserCtxtPtr ctxt, + + #ifdef LIBXML_VALID_ENABLED + if ((ctxt->validate) && +- (ctxt->standalone) && ++ (ctxt->standalone == 1) && + (special & XML_SPECIAL_EXTERNAL) && + (flags & XML_ATTVAL_NORM_CHANGE)) { + xmlValidityError(ctxt, XML_DTD_NOT_STANDALONE, +-- +2.51.0 + diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/files/2.15.0/0003-Fixed-compilation-error-on-GCC-versions-prior-to-4.5.patch b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/files/2.15.0/0003-Fixed-compilation-error-on-GCC-versions-prior-to-4.5.patch new file mode 100644 index 0000000000..a7c1e8816a --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/files/2.15.0/0003-Fixed-compilation-error-on-GCC-versions-prior-to-4.5.patch @@ -0,0 +1,43 @@ +From 7d7ac6215ffa45b13c4e16c0b1478acb73de784e Mon Sep 17 00:00:00 2001 +Message-ID: <7d7ac6215ffa45b13c4e16c0b1478acb73de784e.1760256737.git.sam@gentoo.org> +In-Reply-To: <17b056cb8ecff88326340ef9e70cd59d78d781a0.1760256737.git.sam@gentoo.org> +References: <17b056cb8ecff88326340ef9e70cd59d78d781a0.1760256737.git.sam@gentoo.org> +From: Lars Erik Wik +Date: Thu, 25 Sep 2025 11:29:05 +0200 +Subject: [PATCH 3/8] Fixed compilation error on GCC versions prior to 4.5 + +The deprecated attribute started accepting an optional string argument +in GCC version 4.5. Compiling libxml2 with GCC versions prior to that +would cause compilation errors such as: +``` +./include/libxml/xmlmemory.h:134: error: wrong number of arguments specified for 'deprecated' attribute +``` + +Now the string argument is omitted for older versions of GCC. + +Signed-off-by: Lars Erik Wik +--- + include/libxml/xmlexports.h | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/include/libxml/xmlexports.h b/include/libxml/xmlexports.h +index 3149c731..3a23c548 100644 +--- a/include/libxml/xmlexports.h ++++ b/include/libxml/xmlexports.h +@@ -55,8 +55,12 @@ + #ifndef XML_DEPRECATED + #if defined(IN_LIBXML) + #define XML_DEPRECATED +- #elif __GNUC__ * 100 + __GNUC_MINOR__ >= 301 ++ #elif __GNUC__ * 100 + __GNUC_MINOR__ >= 405 ++ /* GCC 4.5+ supports deprecated with message */ + #define XML_DEPRECATED __attribute__((deprecated("See https://gnome.pages.gitlab.gnome.org/libxml2/html/deprecated.html"))) ++ #elif __GNUC__ * 100 + __GNUC_MINOR__ >= 301 ++ /* GCC 3.1+ supports deprecated without message */ ++ #define XML_DEPRECATED __attribute__((deprecated)) + #elif defined(_MSC_VER) && _MSC_VER >= 1400 + /* Available since Visual Studio 2005 */ + #define XML_DEPRECATED __declspec(deprecated("See https://gnome.pages.gitlab.gnome.org/libxml2/html/deprecated.html")) +-- +2.51.0 + diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/files/2.15.0/0004-valid-Undeprecate-xmlValidGetPotentialChildren.patch b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/files/2.15.0/0004-valid-Undeprecate-xmlValidGetPotentialChildren.patch new file mode 100644 index 0000000000..b274516522 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/files/2.15.0/0004-valid-Undeprecate-xmlValidGetPotentialChildren.patch @@ -0,0 +1,42 @@ +From 49cf8724f542767fd38ac2a94b64c949b4dddb92 Mon Sep 17 00:00:00 2001 +Message-ID: <49cf8724f542767fd38ac2a94b64c949b4dddb92.1760256737.git.sam@gentoo.org> +In-Reply-To: <17b056cb8ecff88326340ef9e70cd59d78d781a0.1760256737.git.sam@gentoo.org> +References: <17b056cb8ecff88326340ef9e70cd59d78d781a0.1760256737.git.sam@gentoo.org> +From: Nick Wellnhofer +Date: Fri, 26 Sep 2025 16:29:10 +0200 +Subject: [PATCH 4/8] valid: Undeprecate xmlValidGetPotentialChildren + +Fixes #988. +--- + include/libxml/valid.h | 1 - + valid.c | 2 -- + 2 files changed, 3 deletions(-) + +diff --git a/include/libxml/valid.h b/include/libxml/valid.h +index 2b8b8fb1..c5638031 100644 +--- a/include/libxml/valid.h ++++ b/include/libxml/valid.h +@@ -395,7 +395,6 @@ XMLPUBFUN xmlElement * + + #ifdef LIBXML_VALID_ENABLED + +-XML_DEPRECATED + XMLPUBFUN int + xmlValidGetPotentialChildren(xmlElementContent *ctree, + const xmlChar **names, +diff --git a/valid.c b/valid.c +index 5c4ecfb5..9dbace65 100644 +--- a/valid.c ++++ b/valid.c +@@ -6383,8 +6383,6 @@ xmlCtxtValidateDocument(xmlParserCtxt *ctxt, xmlDoc *doc) { + /** + * Build/extend a list of potential children allowed by the content tree + * +- * @deprecated Internal function, don't use. +- * + * @param ctree an element content tree + * @param names an array to store the list of child names + * @param len a pointer to the number of element in the list +-- +2.51.0 + diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/files/2.15.0/0005-globals-Don-t-export-DllMain-on-Windows.patch b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/files/2.15.0/0005-globals-Don-t-export-DllMain-on-Windows.patch new file mode 100644 index 0000000000..a42e38a2c1 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/files/2.15.0/0005-globals-Don-t-export-DllMain-on-Windows.patch @@ -0,0 +1,37 @@ +From baead423c9b7f1880f460390657e92798b8fe2b9 Mon Sep 17 00:00:00 2001 +Message-ID: +In-Reply-To: <17b056cb8ecff88326340ef9e70cd59d78d781a0.1760256737.git.sam@gentoo.org> +References: <17b056cb8ecff88326340ef9e70cd59d78d781a0.1760256737.git.sam@gentoo.org> +From: Nick Wellnhofer +Date: Sat, 27 Sep 2025 19:07:38 +0200 +Subject: [PATCH 5/8] globals: Don't export DllMain on Windows + +This shouldn't be done and lld 21 warns about it: + +https://github.com/msys2/MINGW-packages/issues/17820 +https://github.com/msys2/MINGW-packages/issues/25716 + +Regressed with f05af837. +--- + globals.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/globals.c b/globals.c +index 38db2954..de131552 100644 +--- a/globals.c ++++ b/globals.c +@@ -782,9 +782,9 @@ xmlDllMain(ATTRIBUTE_UNUSED void *hinstDLL, unsigned long fdwReason, + /* declare to avoid "no previous prototype for 'DllMain'" warning */ + /* Note that we do NOT want to include this function declaration in + a public header because it's meant to be called by Windows itself, +- not a program that uses this library. This also has to be exported. */ ++ not a program that uses this library. */ + +-XMLPUBFUN BOOL WINAPI ++BOOL WINAPI + DllMain (HINSTANCE hinstDLL, + DWORD fdwReason, + LPVOID lpvReserved); +-- +2.51.0 + diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/files/2.15.0/0006-Revert-globals-Don-t-export-DllMain-on-Windows.patch b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/files/2.15.0/0006-Revert-globals-Don-t-export-DllMain-on-Windows.patch new file mode 100644 index 0000000000..8da07c5655 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/files/2.15.0/0006-Revert-globals-Don-t-export-DllMain-on-Windows.patch @@ -0,0 +1,46 @@ +From 03e822bc3cf029ef01da81cdade78fa14d38d3f4 Mon Sep 17 00:00:00 2001 +Message-ID: <03e822bc3cf029ef01da81cdade78fa14d38d3f4.1760256737.git.sam@gentoo.org> +In-Reply-To: <17b056cb8ecff88326340ef9e70cd59d78d781a0.1760256737.git.sam@gentoo.org> +References: <17b056cb8ecff88326340ef9e70cd59d78d781a0.1760256737.git.sam@gentoo.org> +From: Nick Wellnhofer +Date: Mon, 29 Sep 2025 10:46:47 +0200 +Subject: [PATCH 6/8] Revert "globals: Don't export DllMain on Windows" + +This reverts commit bd2072f8d025e7a37d527b23b84698460c5798bf. + +Apparently, this change would require to recompile downstream code. +--- + globals.c | 16 +++++++++++----- + 1 file changed, 11 insertions(+), 5 deletions(-) + +diff --git a/globals.c b/globals.c +index de131552..8306f94e 100644 +--- a/globals.c ++++ b/globals.c +@@ -779,12 +779,18 @@ int + xmlDllMain(ATTRIBUTE_UNUSED void *hinstDLL, unsigned long fdwReason, + ATTRIBUTE_UNUSED void *lpvReserved) + #else +-/* declare to avoid "no previous prototype for 'DllMain'" warning */ +-/* Note that we do NOT want to include this function declaration in +- a public header because it's meant to be called by Windows itself, +- not a program that uses this library. */ + +-BOOL WINAPI ++/* ++ * Declare to avoid "no previous prototype for 'DllMain'" warning. ++ * ++ * Note that we do NOT want to include this function declaration in ++ * a public header because it's meant to be called by Windows itself, ++ * not a program that uses this library. ++ * ++ * It is a mistake to export this function, but changing that seems ++ * to break the ABI. ++ */ ++XMLPUBFUN BOOL WINAPI + DllMain (HINSTANCE hinstDLL, + DWORD fdwReason, + LPVOID lpvReserved); +-- +2.51.0 + diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/files/2.15.0/0007-io-Undeprecate-xmlOutputBuffer-members.patch b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/files/2.15.0/0007-io-Undeprecate-xmlOutputBuffer-members.patch new file mode 100644 index 0000000000..3fadb15109 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/files/2.15.0/0007-io-Undeprecate-xmlOutputBuffer-members.patch @@ -0,0 +1,50 @@ +From 2ec85657e33e81a96314bdd36af42ac39f0ae354 Mon Sep 17 00:00:00 2001 +Message-ID: <2ec85657e33e81a96314bdd36af42ac39f0ae354.1760256737.git.sam@gentoo.org> +In-Reply-To: <17b056cb8ecff88326340ef9e70cd59d78d781a0.1760256737.git.sam@gentoo.org> +References: <17b056cb8ecff88326340ef9e70cd59d78d781a0.1760256737.git.sam@gentoo.org> +From: Nick Wellnhofer +Date: Mon, 29 Sep 2025 11:04:03 +0200 +Subject: [PATCH 7/8] io: Undeprecate xmlOutputBuffer members + +The public API is too buggy, so direct access to struct members is +required by projects like libxslt. +--- + include/libxml/xmlIO.h | 16 ++++++++-------- + 1 file changed, 8 insertions(+), 8 deletions(-) + +diff --git a/include/libxml/xmlIO.h b/include/libxml/xmlIO.h +index 3090215b..575b7eb5 100644 +--- a/include/libxml/xmlIO.h ++++ b/include/libxml/xmlIO.h +@@ -148,20 +148,20 @@ struct _xmlParserInputBuffer { + * Output buffer + */ + struct _xmlOutputBuffer { +- void* context XML_DEPRECATED_MEMBER; +- xmlOutputWriteCallback writecallback XML_DEPRECATED_MEMBER; +- xmlOutputCloseCallback closecallback XML_DEPRECATED_MEMBER; ++ void* context; ++ xmlOutputWriteCallback writecallback; ++ xmlOutputCloseCallback closecallback; + + /* I18N conversions to UTF-8 */ +- xmlCharEncodingHandler *encoder XML_DEPRECATED_MEMBER; ++ xmlCharEncodingHandler *encoder; + + /* Local buffer encoded in UTF-8 or ISOLatin */ +- xmlBuf *buffer XML_DEPRECATED_MEMBER; ++ xmlBuf *buffer; + /* if encoder != NULL buffer for output */ +- xmlBuf *conv XML_DEPRECATED_MEMBER; ++ xmlBuf *conv; + /* total number of byte written */ +- int written XML_DEPRECATED_MEMBER; +- int error XML_DEPRECATED_MEMBER; ++ int written; ++ int error; + }; + #endif /* LIBXML_OUTPUT_ENABLED */ + +-- +2.51.0 + diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/files/2.15.0/0008-tree-Undeprecate-several-struct-members.patch b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/files/2.15.0/0008-tree-Undeprecate-several-struct-members.patch new file mode 100644 index 0000000000..5fd13b8ec3 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/files/2.15.0/0008-tree-Undeprecate-several-struct-members.patch @@ -0,0 +1,112 @@ +From 196bfd340ac3c79e2c31b3103fcaf6d39d5b2e2c Mon Sep 17 00:00:00 2001 +Message-ID: <196bfd340ac3c79e2c31b3103fcaf6d39d5b2e2c.1760256737.git.sam@gentoo.org> +In-Reply-To: <17b056cb8ecff88326340ef9e70cd59d78d781a0.1760256737.git.sam@gentoo.org> +References: <17b056cb8ecff88326340ef9e70cd59d78d781a0.1760256737.git.sam@gentoo.org> +From: Nick Wellnhofer +Date: Tue, 7 Oct 2025 01:05:03 +0200 +Subject: [PATCH 8/8] tree: Undeprecate several struct members + +--- + include/libxml/tree.h | 38 +++++++++++++++++++------------------- + 1 file changed, 19 insertions(+), 19 deletions(-) + +diff --git a/include/libxml/tree.h b/include/libxml/tree.h +index 32cea2fb..277110ae 100644 +--- a/include/libxml/tree.h ++++ b/include/libxml/tree.h +@@ -296,11 +296,11 @@ typedef xmlNotation *xmlNotationPtr; + */ + struct _xmlNotation { + /** Notation name */ +- const xmlChar *name XML_DEPRECATED_MEMBER; ++ const xmlChar *name; + /** Public identifier, if any */ +- const xmlChar *PublicID XML_DEPRECATED_MEMBER; ++ const xmlChar *PublicID; + /** System identifier, if any */ +- const xmlChar *SystemID XML_DEPRECATED_MEMBER; ++ const xmlChar *SystemID; + }; + + /** +@@ -375,11 +375,11 @@ struct _xmlAttribute { + struct _xmlDoc *doc; + + /** next in hash table */ +- struct _xmlAttribute *nexth XML_DEPRECATED_MEMBER; ++ struct _xmlAttribute *nexth; + /** attribute type */ +- xmlAttributeType atype XML_DEPRECATED_MEMBER; ++ xmlAttributeType atype; + /** attribute default */ +- xmlAttributeDefault def XML_DEPRECATED_MEMBER; ++ xmlAttributeDefault def; + /** default value */ + xmlChar *defaultValue; + /** enumeration tree if any */ +@@ -387,7 +387,7 @@ struct _xmlAttribute { + /** namespace prefix if any */ + const xmlChar *prefix; + /** element name */ +- const xmlChar *elem XML_DEPRECATED_MEMBER; ++ const xmlChar *elem; + }; + + /** +@@ -478,13 +478,13 @@ struct _xmlElement { + struct _xmlDoc *doc; + + /** element type */ +- xmlElementTypeVal etype XML_DEPRECATED_MEMBER; ++ xmlElementTypeVal etype; + /** allowed element content */ +- xmlElementContent *content XML_DEPRECATED_MEMBER; ++ xmlElementContent *content; + /** list of declared attributes */ +- xmlAttribute *attributes XML_DEPRECATED_MEMBER; ++ xmlAttribute *attributes; + /** namespace prefix if any */ +- const xmlChar *prefix XML_DEPRECATED_MEMBER; ++ const xmlChar *prefix; + #ifdef LIBXML_REGEXP_ENABLED + /** validating regexp */ + xmlRegexp *contModel XML_DEPRECATED_MEMBER; +@@ -564,19 +564,19 @@ struct _xmlDtd { + /* End of common part */ + + /** hash table for notations if any */ +- void *notations XML_DEPRECATED_MEMBER; ++ void *notations; + /** hash table for elements if any */ +- void *elements XML_DEPRECATED_MEMBER; ++ void *elements; + /** hash table for attributes if any */ +- void *attributes XML_DEPRECATED_MEMBER; ++ void *attributes; + /** hash table for entities if any */ +- void *entities XML_DEPRECATED_MEMBER; ++ void *entities; + /** public identifier */ +- xmlChar *ExternalID XML_DEPRECATED_MEMBER; ++ xmlChar *ExternalID; + /** system identifier */ +- xmlChar *SystemID XML_DEPRECATED_MEMBER; ++ xmlChar *SystemID; + /** hash table for parameter entities if any */ +- void *pentities XML_DEPRECATED_MEMBER; ++ void *pentities; + }; + + /** Attribute of an element */ +@@ -823,7 +823,7 @@ struct _xmlDoc { + /** external subset */ + struct _xmlDtd *extSubset; + /** used to hold the XML namespace if needed */ +- struct _xmlNs *oldNs XML_DEPRECATED_MEMBER; ++ struct _xmlNs *oldNs; + /** version string from XML declaration */ + xmlChar *version; + /** actual encoding if any */ +-- +2.51.0 + 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 738064b3f7..94f73024bf 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.0-r1.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/libxml2-2.15.0-r1.ebuild new file mode 100644 index 0000000000..0537b14115 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/libxml2-2.15.0-r1.ebuild @@ -0,0 +1,166 @@ +# 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 + "${FILESDIR}"/2.15.0/ +) + +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/libxml2/libxml2-9999.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/libxml2-9999.ebuild index 1d1ab606ab..82b37ff451 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/libxml2-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/libxml2/libxml2-9999.ebuild @@ -9,13 +9,6 @@ PYTHON_COMPAT=( python3_{11..14} ) PYTHON_REQ_USE="xml(+)" inherit python-r1 meson-multilib -XSTS_HOME="https://www.w3.org/XML/2004/xml-schema-test-suite" -XSTS_NAME_1="xmlschema2002-01-16" -XSTS_NAME_2="xmlschema2004-01-14" -XSTS_TARBALL_1="xsts-2002-01-16.tar.gz" -XSTS_TARBALL_2="xsts-2004-01-14.tar.gz" -XMLCONF_TARBALL="xmlts20130923.tar.gz" - DESCRIPTION="XML C parser and toolkit" HOMEPAGE="https://gitlab.gnome.org/GNOME/libxml2/-/wikis/home" if [[ ${PV} == 9999 ]] ; then @@ -26,19 +19,12 @@ else 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+=" - test? ( - ${XSTS_HOME}/${XSTS_NAME_1}/${XSTS_TARBALL_1} - ${XSTS_HOME}/${XSTS_NAME_2}/${XSTS_TARBALL_2} - https://www.w3.org/XML/Test/${XMLCONF_TARBALL} - ) -" S="${WORKDIR}/${PN}-${PV%_rc*}" LICENSE="MIT" # see so_version = v_maj + v_min_compat for subslot SLOT="2/16" -IUSE="icu +python readline static-libs test" +IUSE="doc icu python readline static-libs test" RESTRICT="!test? ( test )" REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" @@ -50,7 +36,15 @@ RDEPEND=" readline? ( sys-libs/readline:= ) " DEPEND="${RDEPEND}" -BDEPEND="virtual/pkgconfig" +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 @@ -60,26 +54,10 @@ src_unpack() { if [[ ${PV} == 9999 ]] ; then git-r3_src_unpack else - local tarname=${P/_rc/-rc}.tar.xz - - # ${A} isn't used to avoid unpacking of test tarballs into ${WORKDIR}, - # as they are needed as tarballs in ${S}/xstc instead and not unpacked - unpack ${tarname} - - if [[ -n ${PATCHSET_VERSION} ]] ; then - unpack ${PN}-${PATCHSET_VERSION}.tar.xz - fi + default fi cd "${S}" || die - - if use test ; then - cp "${DISTDIR}/${XSTS_TARBALL_1}" \ - "${DISTDIR}/${XSTS_TARBALL_2}" \ - "${S}"/xstc/ \ - || die "Failed to install test tarballs" - unpack ${XMLCONF_TARBALL} - fi } src_prepare() { @@ -93,7 +71,9 @@ python_configure() { $(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 @@ -105,9 +85,11 @@ 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. diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/openssl/Manifest b/sdk_container/src/third_party/portage-stable/dev-libs/openssl/Manifest index ac4da6e6ab..60c020ce27 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/openssl/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-libs/openssl/Manifest @@ -7,19 +7,31 @@ DIST openssl-3.0.16.tar.gz 15334967 BLAKE2B a1bcaf17c92beca6ff7f3985778812064890 DIST openssl-3.0.16.tar.gz.asc 833 BLAKE2B 5f288f4b1e3a85181a73f288c7cb2d2e6e54e09b3ba032a6074c207f1f53d2920f4cdbbc9143a60063b3426eaa0279af4b1ed59b6b909047051ce73caff03584 SHA512 8b9688ecf84cb61b2718fc898eb748a8eb1ad9125f4742b09552d81bce098753dcbc36cdee9a30adbe4127de30938d955a7af12f8619338bcf2e2e748c8e8c86 DIST openssl-3.0.17.tar.gz 15344831 BLAKE2B 4f7df7867ece7043d8682b8ebfacd4611abb81d977bef36b1183dcae7fd136d1bf4ea7bf1d24a165211aaceba79895814b82586305177d3066b0cad729059882 SHA512 563546cfc0766b9a690c20bcc7df1afed843c3c57df4b8fa561d4c695e6f5cc3258a2cd95775f8fb5fd78005198ee20aa58c3fc19fdefbe5e60b8731390842c2 DIST openssl-3.0.17.tar.gz.asc 833 BLAKE2B 908b65ba1454915b767947003978b452feaa54e58c20dac6bf66c497de28213b3e06e73c55991fb09d584e6b2d9cb5db688e6927b5afc847f62c0a30a2b2ee43 SHA512 d07368696c698cb5f0f194be90f110c84d961c58c7d311106a3ef235ee3e1e1f8473a53e61add48aca7630ce010b5457e90c92da6fee4b576689d0a9ba59864c -DIST openssl-3.1.8.tar.gz 15706439 BLAKE2B 05d8ac054bc46ac6196470bd388ef8be2d2dd62c14bb22fff668ab8e8914bb8d89eb78119ba49839a364ca4c3683186299a9bfbf6a03d83a8630b54e668e5977 SHA512 faf066b207184a67387d4659b68de0bb89c4ec847b835998c8cc57ee4a8759f3fc3b7fe2db85f394bf8c54720ce044447168e0fa2fda6f0901c4d9a1697d9a6e -DIST openssl-3.1.8.tar.gz.asc 833 BLAKE2B b9f1f439ff373d4b3706cfd9d2518d84aca1744ae50a31c50cb7fd4aa9de1d4139fc314390353377391a99b3d6c9ea66b0160d7fed15bdf4c9a255e94654eb80 SHA512 0737d62b6971f311936908d7cf3eb6c01e1ae314709bc80cfdbe885d17c64337fd2378a1e93c932f870681efc992a8d0656625580e30cc9e3d397aa4ebb7c7e6 +DIST openssl-3.0.18.tar.gz 15348046 BLAKE2B 2cb9cefecab790f6e857a63e2ade93e1b28fdfab7110e4ed6049c36c7cc2131e88454cb49e70e0802adf6f9317b3f21e950446a9152b58074f9ffb787732716a SHA512 6bdd16f33b83ae2a12777230c4ff00d0595bbc00253ac8c3ac31e1375e818fc74d7f491bd2e507ff33cab9f0498cfb28fa8690f75a98663568d40901523cdf3c +DIST openssl-3.0.18.tar.gz.asc 833 BLAKE2B bfa698106e314bf8800c5bdf9ec892611a91a2bcb006b7e5f52afc5d0af64be65bf8512e042b37d36db041964aa83c17f4b1ee2f22dcb127d4e4665d3b6c9440 SHA512 cd4cd8afab68cbe0a5b034039112901cf8a25711c55556681f86b04e47389bcffae85a98f155a517156dd9fb29ceb82f627e371881feb928e887053f145bddfd DIST openssl-3.2.4.tar.gz 17782746 BLAKE2B 079a0eb15b960a8ec89a2b2ccfa1f5e216dac325cb0857e168119fb240b6cdd78ecf723802a53d1e62e0a534be60e5459f561de764d1987e38eab466e555f994 SHA512 24712cb722ed8daff51db9deec4db982256cccd1a537d3a8690a94a6fd41815fd85cab95e551212938f28a61ed658d285b07734f7b88d8a0b18a318602d424f2 DIST openssl-3.2.4.tar.gz.asc 833 BLAKE2B 27c55522889843a14133535d47ad1fc7b2eba7a6f7fd0f78a8be8f36492ff53932b1a50131e90a37c3c22ba60b188b9dff98717756c4a20f361b22d069482399 SHA512 a381b24bd47a2e00657a29af02aa890b22186de70ba3ac3776ff5d4fb40579e9fd8356aacb6ce230d40adb6765e906b8d9bda54f98cc8887e98069f9bfd10140 DIST openssl-3.2.5.tar.gz 17800797 BLAKE2B 6d1dad57e6700ac9e14912e6b96a486d40ac5fa2567d129c0f4d9bed8fbd408f65000a1d4fcd2ebc49ecd118bfa03a504cfb24da38bdf4530cd250046cf05de1 SHA512 a0662f8d35df9986ade5332d86c8d79bf9d98f4a92dbf63e177be2cf24bc633fbcb2758fdc5eab425aaafd48d9b6fdf32602c915e61f8278e1b78452d54dfc21 DIST openssl-3.2.5.tar.gz.asc 833 BLAKE2B 591629a5435de5b715b58c4758797bdfd99586dc8807cbaac0f80010b51adb755864ed5694e15a35f1716f905654632ff6c591c6923d5d67ced27d43a60964d6 SHA512 b3b7fa105caed32de357db55023a114ad9704324887f51979c2e10b305a91774026fad28dab37b733a57abaa941b2793fbd0ad333bf35d05b8a0b1cf03172d79 +DIST openssl-3.2.6.tar.gz 17805999 BLAKE2B 3c1410d8f8aea119828259cd88d6e8336d20b5176a4b0e1907c79d76fef5954f658bb5c7fd2b20985ed7ee5930842a39c6b1a9aa1a0944c00ead0f81f2c3603d SHA512 a183b9ecfcf75f1dbc7911d726adb26f9da83e307b593dbbd7ded5f46170b63bac44e403cef53d16daf2d8dc116f8c2eb820c9de50d073c75681ef8e5de01c05 +DIST openssl-3.2.6.tar.gz.asc 833 BLAKE2B 9f332db499dea93760e1d2f881115cd5c8574141e42b86429d2b009ac6f698ef7341f1a5ff407803506c06fd59e3fe243387befb2ee68584ce88893364c09a17 SHA512 2bfbe94619349fa7af86109a7ad84588a033e690a45d5500e3f1332891e5cb39f18ee631a307b6c8aa5724f2c684b90f276d071a91556f01312bed83d7b30aa3 DIST openssl-3.3.3.tar.gz 18102481 BLAKE2B c2033e357963e339faaf3b35b18c660da48616a6228e802a3ef1c4a6a51a570db42970d973868c4d57afcd3953403c9ff047317cac49a865af628abde99c2ade SHA512 4f53d963c258305f0e926d2e56fc73359c3d62adb25bfce06889eef3278652d073b9e2a4100a884c0d8ee90cb924ba258a5de4e7be6d2c7c49765167e95430d7 DIST openssl-3.3.3.tar.gz.asc 833 BLAKE2B dbb8436f7e8e015eca740ccddcbfc159884089c7540e47d03d65efcc607a28d29889f7eaf53412e50362d201941df3061e7877b6216215d4cab04bdb149d23a7 SHA512 2fde16310fc0a2985ea9df5b8485c17391a589297679687634b833b453e9c5d04ddb3b8b4f117259af9b13813ca0ea9ee6cec2d854dfc7e1add3dbb78962ccd0 DIST openssl-3.3.4.tar.gz 18113350 BLAKE2B f4a2c050eef854212b4518e04f5746c65a0cf22437eba11a0eb095158113836f181e25891021f923700a939d792e537b71c650991b3346eb6ca0a5053f565409 SHA512 7f01240b745ee6b3af6935ec3fd3be700f7be243b092d3265f160f1da12d52efb562755fb2b41240bc12a22a2ec7440fb21d4c53183c6a91c4182e0e8a2adfb1 DIST openssl-3.3.4.tar.gz.asc 833 BLAKE2B 75097d89f505070b4aeb0660c725726ae4fefd8d46becf786a75fe6c03727fbdb07c0699e1b6f002791cd2b791f53bc636c5e249ab25fcad2235ee6c3ff5a9d3 SHA512 76cc3eb3e09dbf3a22531ba1b5b945d41525850d74ce155a13a0b0955f51f857e7e7246b0fc24bfe9a9cb0dd45aee059faa22cabd7b0db862e537be0f4a043c5 +DIST openssl-3.3.5.tar.gz 18125182 BLAKE2B 377a9a2cbc1f97fb34f1f314789354e047e1bc875eddc4e2aa50578009a3352e196ea33b0d6f57ede199b16d4b0e6096782a0d70ea1a4d923d5543b1caf6ca02 SHA512 4fe2d51afefd21af4e50225bde6dfd2c12eb00ce2a144ee1aadba48463604cd180135b5f71fcea3908977b043ffceb7d2824fa30b969a017df016dccd8519aad +DIST openssl-3.3.5.tar.gz.asc 833 BLAKE2B 7a6e93e68981436932bf3e019e9021863dfafd2699065959086ac1b1f2bda278b94965f5027794ee565e2a80d8c4c0b796b6e17063eccd38e5ec723cfb2411ba SHA512 b79526a5cf0326b63828d534a3ddd2cb5699a226a485345017c9a1ef34fe7610a62a2b6b90d171da8b4660a9937cdf7688c08b93d6e05629a8648627a928676c DIST openssl-3.4.1.tar.gz 18346056 BLAKE2B 328a2a4f0536b15ffe6421afc99bdb5dcdf3d29f44437fdd80bbf4089f5f2658ca10907e033eda2e04c6b862e49b150ea59d8ab1807d14a3dcf64e10c32e78af SHA512 1de6307c587686711f05d1e96731c43526fa3af51e4cd94c06c880954b67f6eb4c7db3177f0ea5937d41bc1f8cadcf5bce75025b5c1a46a469376960f1001c5f DIST openssl-3.4.1.tar.gz.asc 833 BLAKE2B 321a5593ce5a1ff07553dcca722b0da0e9e9f3ef639176d663b6a92be2a32d3379536a788930f7f78dccc4e4d4922fe696f8d1bd65aa54f51c3c75accad34b1f SHA512 b007d5a35a7904d5d5e053e232a54b2ba75fb43f80bf1fe2175528e86e31cca8161da09d7417b50359008ce1955497e4d11c46794f15cc7c3220aa92eff99ccb DIST openssl-3.4.2.tar.gz 18357346 BLAKE2B f773b8bd1bcfeae2c906c079598460cb87aaab5a39691b00ba27864b30261ae69af4314a28e0209707e1954b3ec2dfc920be4a21c96efae29e596b315d9821ab SHA512 5633659dd6ccad48a16ddbf3c0d35eb6df7d4ed2d1d99e5bf2fb7ba0b6ee955e14b671e9b3be3794151f35754b9969b4243317c28bae5b48e24d89930579cc31 DIST openssl-3.4.2.tar.gz.asc 833 BLAKE2B d278d061c09896c6819e479092c96c371515fbae535f9c4848f79660a1c1a444737a17299873e6dfd190f1f11f4d662b78940ddddea2e2514a801765cd39f452 SHA512 c6df601904db0415ac100a496367e3c6cd59b3eda76cf0bfe3fc39805ff05dd717d87016a144391701f4bb141f303c88b9ddcf812db28858b8b9080126832afa +DIST openssl-3.4.3.tar.gz 18369414 BLAKE2B e74392b93696d4967d8ec1d0edc2f2d559e56cf6cb28207708d5288a3df2854b37e21b33c9a816829d4215a7575285dd91b65770d0333e966fcc800837bfe3d5 SHA512 84d73d8ee1032b911bd60c8c0c69cca14e37c80c57735789f23d49b968388c641a75add3b347b222228cbb629f0c10c17a2f6c139547bdd261f4bab4a78eb94c +DIST openssl-3.4.3.tar.gz.asc 833 BLAKE2B 52c5c0753230812ce251b274e2e934e9746c51e11aeed73046a5408356d620a32d5703bffe3c0d8933ebc03c659b80d8b1d7d6a77d4876620d0fea3aa54b27ed SHA512 510fbbb693549b0aad3004739f001f8569ca17a859848b48a58afac3f1bd2f92aa2bac649a492fa32bad4e5d5c14f4a6e341253bc6cc9536428307be71daf516 DIST openssl-3.5.2.tar.gz 53180161 BLAKE2B fd6179457b85d7a2ae87ee432de4d9e0d5b5dba30b6b57d0f289a0d034c6d7de7c7166b1f69f00d822105c5119bfa44fd52bf5b9035a14aae21015ad3fe2d224 SHA512 db2c7a88bea432f96d867a98af15f850f371d4136c657338de93cb88a39a3578c025b5df7310e195a02fc715ad5a2422a319a44f0247c6a7e2ba8b36aad77651 DIST openssl-3.5.2.tar.gz.asc 833 BLAKE2B f22883c76bc636f6d5916913486ef0873da91b0e29dd24569def0409e8573ebe23f28b9e3b3ed6120fb85afaa3181470b8fc83959b40389d8b1cd2dc4852f404 SHA512 2be00d03e5b246833f8e47f59bd7ca3dbaec519f2160fd9dfed3a7b2c65b9977703811c06662c17b301e456bbfc73477c76e3b444329741e99e2576005900580 +DIST openssl-3.5.3.tar.gz 53183370 BLAKE2B 1c1eb2aff7ed565cec4c7579ba24862df50edee41ac9b414d456538fbf660fca98c2d4cd3cb26e92a3ce4f0af8f7188132e183fd68d6d7976440c114152e5a04 SHA512 58265c05d208a269418d4928d3127d22738e696d5d080ab8f1c0cbd2cd30e4e1e07e244a1d81c9b40f1a7f972fe835f4f122c098a7b2177ac48492881416aa78 +DIST openssl-3.5.3.tar.gz.asc 833 BLAKE2B 1f4027888f3a370678447f9511ecc2caf4f2cc6f36119530d91ba3fbdf97438e1d1ea14c26541139a975e138d81a54401a3637cd5a45f6ca9c900499b0deb539 SHA512 edd289f5b300a7a421d45a9a8d4542e91a30f55b4c1cfd3b42bc4618000d003d4083314e9b5de11b2fef6f86f777d0263970916025b0396e95114752c00063b9 +DIST openssl-3.5.4.tar.gz 53190367 BLAKE2B 07e02f88af05e189385eef28599b81bd16d242130975c79df46e565a0dd92f74e59807d4770a2b3316adf08f2ca6a0dd2bfc96ab2a88a8dfb5c0d19197fe8fbf SHA512 365aca6f2e59b5c8261fba683425d177874cf6024b0d216ca309112b879c1f4e8da78617e23c3c95d0b4a26b83ecd0d8348038b999d30e597d19f466c4761227 +DIST openssl-3.5.4.tar.gz.asc 833 BLAKE2B 837dfd4778073dbecdf5859dfe11b81dcecd9796a13c06c36c6dadfed04f9cee158759d96116ae8d0985ba29bcaefad874824b8f633f13c252b79a9e28fa7303 SHA512 7bf10c965e5f376979c8cd0a24560ba9d0169ee41d43c54f78642d50d9a27bf111c5553b1ee4c6c1b459b00d465681dea8ba983d0a0396ecc52b9e561769ffe5 +DIST openssl-3.6.0.tar.gz 54974351 BLAKE2B 4a0150aa9a78581e74119b338848458249630c94a43589a5b311d41c669b817b043007ddd13b3fb81233da10af3ccd455f3fbf3b09cf45016c475a8e2044e965 SHA512 866825a1cdf0b705b409402fbc7a713e7d9b8e7736c5126be57b354927954c148a341fc52b02c0629c1e015a889bfd40217f8e703b73235892e91da060909b76 +DIST openssl-3.6.0.tar.gz.asc 833 BLAKE2B 47e8aff0e9c0306213c0e3db689c16f7ee65d28a3d1201f317f184980237725598cec5256fc3453e48802ba28f0301867ab9e1413724d68773ead9125562d3c9 SHA512 1622ee1a099a1d2c5cac4de4c464574cd8b2d9c2bd565aa5f7a7efd6d4081849937d3d1b6d6e34254e0904f79a9c2477fb692c71599792092ceb09fc11a30d8d diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/openssl/files/openssl-3.5.3-revert-version-change.patch b/sdk_container/src/third_party/portage-stable/dev-libs/openssl/files/openssl-3.5.3-revert-version-change.patch new file mode 100644 index 0000000000..e310e90679 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/openssl/files/openssl-3.5.3-revert-version-change.patch @@ -0,0 +1,67 @@ +https://github.com/openssl/openssl/issues/28227 +https://github.com/openssl/project/issues/1621 +https://github.com/openssl/openssl/pull/28603 +https://github.com/openssl/openssl/commit/be0013641917730dc7ea4a769731d0e083796164 + +From be0013641917730dc7ea4a769731d0e083796164 Mon Sep 17 00:00:00 2001 +From: Richard Levitte +Date: Thu, 18 Sep 2025 07:14:13 +0200 +Subject: [PATCH] Fix OPENSSL_VERSION_NUMBER to always have zero status bits + +The documentation suggested that they were always zero, while the +implementation in suggested that it could be +0xf in OpenSSL releases... which (almost) never happened because +of a bug in said implementation. + +Therefore, we solidify that the status bits are indeed always zero, +at least in all OpenSSL 3 versions. + +Resolves: https://github.com/openssl/project/issues/1621 + +Reviewed-by: Paul Dale +Reviewed-by: Tomas Mraz +(Merged from https://github.com/openssl/openssl/pull/28603) + +(cherry picked from commit 60c4feacce6faf0e98167dc2ab2a1c2e85882049) +--- + doc/man3/OpenSSL_version.pod | 7 +++++++ + include/openssl/opensslv.h.in | 4 ++-- + 2 files changed, 9 insertions(+), 2 deletions(-) + +diff --git a/doc/man3/OpenSSL_version.pod b/doc/man3/OpenSSL_version.pod +index e5dff33dcdda2..fc30dc0737865 100644 +--- a/doc/man3/OpenSSL_version.pod ++++ b/doc/man3/OpenSSL_version.pod +@@ -256,6 +256,13 @@ L + The macros and functions described here were added in OpenSSL 3.0, + except for OPENSSL_VERSION_NUMBER and OpenSSL_version_num(). + ++=head1 BUGS ++ ++There was a discrepancy between this manual and commentary + code ++in F<< >>, where the latter suggested that the ++four least significant bits of B could be ++C<0x0f> in released OpenSSL versions. ++ + =head1 COPYRIGHT + + Copyright 2018-2022 The OpenSSL Project Authors. All Rights Reserved. +diff --git a/include/openssl/opensslv.h.in b/include/openssl/opensslv.h.in +index e547281ff527f..69b9caacf4dce 100644 +--- a/include/openssl/opensslv.h.in ++++ b/include/openssl/opensslv.h.in +@@ -89,12 +89,12 @@ extern "C" { + + # define OPENSSL_VERSION_TEXT "OpenSSL {- "$config{full_version} $config{release_date}" -}" + +-/* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */ ++/* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PP0L */ + # define OPENSSL_VERSION_NUMBER \ + ( (OPENSSL_VERSION_MAJOR<<28) \ + |(OPENSSL_VERSION_MINOR<<20) \ + |(OPENSSL_VERSION_PATCH<<4) \ +- |{- @config{prerelease} ? "0x0L" : "0xfL" -} ) ++ |0x0L ) + + # ifdef __cplusplus + } diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/openssl/openssl-3.1.9999.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/openssl/openssl-3.0.18.ebuild similarity index 98% rename from sdk_container/src/third_party/portage-stable/dev-libs/openssl/openssl-3.1.9999.ebuild rename to sdk_container/src/third_party/portage-stable/dev-libs/openssl/openssl-3.0.18.ebuild index 1ae5a138a7..c183d21b68 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/openssl/openssl-3.1.9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/openssl/openssl-3.0.18.ebuild @@ -36,12 +36,11 @@ fi S="${WORKDIR}"/${MY_P} LICENSE="Apache-2.0" -SLOT="0/$(ver_cut 1)" # .so version of libssl/libcrypto +SLOT="0/3" # .so version of libssl/libcrypto IUSE="+asm cpu_flags_x86_sse2 fips ktls rfc3779 sctp static-libs test tls-compression vanilla weak-ssl-ciphers" RESTRICT="!test? ( test )" COMMON_DEPEND=" - !=sys-libs/zlib-1.2.8-r1[static-libs(+)?,${MULTILIB_USEDEP}] ) " BDEPEND+=" @@ -91,7 +90,7 @@ pkg_setup() { src_prepare() { # Make sure we only ever touch Makefile.org and avoid patching a file # that gets blown away anyways by the Configure script in src_configure - rm -f Makefile + rm -f Makefile || die if ! use vanilla ; then PATCHES+=( 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 new file mode 100644 index 0000000000..ed40954510 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/openssl/openssl-3.2.6.ebuild @@ -0,0 +1,297 @@ +# 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/openssl.org.asc +inherit edo flag-o-matic linux-info toolchain-funcs +inherit multilib multilib-minimal multiprocessing preserve-libs verify-sig + +DESCRIPTION="Robust, full-featured Open Source Toolkit for the Transport Layer Security (TLS)" +HOMEPAGE="https://openssl-library.org/" + +MY_P=${P/_/-} + +if [[ ${PV} == *9999 ]] ; then + [[ ${PV} == *.*.9999 ]] && EGIT_BRANCH="openssl-${PV%%.9999}" + EGIT_REPO_URI="https://github.com/openssl/openssl.git" + + inherit git-r3 +else + inherit verify-sig + SRC_URI=" + https://github.com/openssl/openssl/releases/download/${P}/${P}.tar.gz + verify-sig? ( + https://github.com/openssl/openssl/releases/download/${P}/${P}.tar.gz.asc + ) + " + + 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" + fi + + BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-openssl-20240920 )" +fi + +S="${WORKDIR}"/${MY_P} + +LICENSE="Apache-2.0" +SLOT="0/$(ver_cut 1)" # .so version of libssl/libcrypto +IUSE="+asm cpu_flags_x86_sse2 fips ktls rfc3779 sctp static-libs test tls-compression vanilla verify-sig weak-ssl-ciphers" +RESTRICT="!test? ( test )" + +COMMON_DEPEND=" + !=sys-libs/zlib-1.2.8-r1[static-libs(+)?,${MULTILIB_USEDEP}] ) +" +BDEPEND+=" + >=dev-lang/perl-5 + sctp? ( >=net-misc/lksctp-tools-1.0.12 ) + test? ( + sys-apps/diffutils + app-alternatives/bc + sys-process/procps + ) + verify-sig? ( >=sec-keys/openpgp-keys-openssl-20240920 ) +" +DEPEND="${COMMON_DEPEND}" +RDEPEND="${COMMON_DEPEND}" +PDEPEND="app-misc/ca-certificates" + +MULTILIB_WRAPPED_HEADERS=( + /usr/include/openssl/configuration.h +) + +pkg_setup() { + if use ktls ; then + if kernel_is -lt 4 18 ; then + ewarn "Kernel implementation of TLS (USE=ktls) requires kernel >=4.18!" + else + CONFIG_CHECK="~TLS ~TLS_DEVICE" + ERROR_TLS="You will be unable to offload TLS to kernel because CONFIG_TLS is not set!" + ERROR_TLS_DEVICE="You will be unable to offload TLS to kernel because CONFIG_TLS_DEVICE is not set!" + use test && CONFIG_CHECK+=" ~CRYPTO_USER_API_SKCIPHER" + + linux-info_pkg_setup + fi + fi + + [[ ${MERGE_TYPE} == binary ]] && return + + # must check in pkg_setup; sysctl doesn't work with userpriv! + if use test && use sctp ; then + # test_ssl_new will fail with "Ensure SCTP AUTH chunks are enabled in kernel" + # if sctp.auth_enable is not enabled. + local sctp_auth_status=$(sysctl -n net.sctp.auth_enable 2>/dev/null) + if [[ -z "${sctp_auth_status}" ]] || [[ ${sctp_auth_status} != 1 ]] ; then + die "FEATURES=test with USE=sctp requires net.sctp.auth_enable=1!" + fi + fi +} + +src_prepare() { + # Make sure we only ever touch Makefile.org and avoid patching a file + # that gets blown away anyways by the Configure script in src_configure + rm -f Makefile + + if ! use vanilla ; then + PATCHES+=( + # Add patches which are Gentoo-specific customisations here + ) + fi + + default + + if use test && use sctp && has network-sandbox ${FEATURES} ; then + einfo "Disabling test '80-test_ssl_new.t' which is known to fail with FEATURES=network-sandbox ..." + rm test/recipes/80-test_ssl_new.t || die + fi + + # Test fails depending on kernel configuration, bug #699134 + rm test/recipes/30-test_afalg.t || die +} + +src_configure() { + # Keep this in sync with app-misc/c_rehash + SSL_CNF_DIR="/etc/ssl" + + # Quiet out unknown driver argument warnings since openssl + # doesn't have well-split CFLAGS and we're making it even worse + # and 'make depend' uses -Werror for added fun (bug #417795 again) + tc-is-clang && append-flags -Qunused-arguments + + # We really, really need to build OpenSSL w/ strict aliasing disabled. + # It's filled with violations and it *will* result in miscompiled + # code. This has been in the ebuild for > 10 years but even in 2022, + # it's still relevant: + # - https://github.com/llvm/llvm-project/issues/55255 + # - https://github.com/openssl/openssl/issues/12247 + # - https://github.com/openssl/openssl/issues/18225 + # - https://github.com/openssl/openssl/issues/18663#issuecomment-1181478057 + # Don't remove the no strict aliasing bits below! + filter-flags -fstrict-aliasing + append-flags -fno-strict-aliasing + # The OpenSSL developers don't test with LTO right now, it leads to various + # warnings/errors (which may or may not be false positives), it's considered + # unsupported, and it's not tested in CI: https://github.com/openssl/openssl/issues/18663. + filter-lto + + append-flags $(test-flags-CC -Wa,--noexecstack) + + # bug #895308 -- check inserts GNU ld-compatible arguments + [[ ${CHOST} == *-darwin* ]] || append-atomic-flags + # Configure doesn't respect LIBS + export LDLIBS="${LIBS}" + + # bug #197996 + unset APPS + # bug #312551 + unset SCRIPTS + # bug #311473 + unset CROSS_COMPILE + + tc-export AR CC CXX RANLIB RC + + multilib-minimal_src_configure +} + +multilib_src_configure() { + use_ssl() { usex $1 "enable-${2:-$1}" "no-${2:-$1}" " ${*:3}" ; } + + local krb5=$(has_version app-crypt/mit-krb5 && echo "MIT" || echo "Heimdal") + + # See if our toolchain supports __uint128_t. If so, it's 64bit + # friendly and can use the nicely optimized code paths, bug #460790. + #local ec_nistp_64_gcc_128 + # + # Disable it for now though (bug #469976) + # Do NOT re-enable without substantial discussion first! + # + #echo "__uint128_t i;" > "${T}"/128.c + #if ${CC} ${CFLAGS} -c "${T}"/128.c -o /dev/null >&/dev/null ; then + # ec_nistp_64_gcc_128="enable-ec_nistp_64_gcc_128" + #fi + + local sslout=$(bash "${FILESDIR}/gentoo.config-1.0.4") + einfo "Using configuration: ${sslout:-(openssl knows best)}" + + # https://github.com/openssl/openssl/blob/master/INSTALL.md#enable-and-disable-features + local myeconfargs=( + ${sslout} + + $(use cpu_flags_x86_sse2 || echo "no-sse2") + enable-camellia + enable-ec + enable-ec2m + enable-sm2 + enable-srp + $(use elibc_musl && echo "no-async") + enable-idea + enable-mdc2 + enable-rc5 + $(use fips && echo "enable-fips") + $(use_ssl asm) + $(use_ssl ktls) + $(use_ssl rfc3779) + $(use_ssl sctp) + $(use test || echo "no-tests") + $(use_ssl tls-compression zlib) + $(use_ssl weak-ssl-ciphers) + + --prefix="${EPREFIX}"/usr + --openssldir="${EPREFIX}"${SSL_CNF_DIR} + --libdir=$(get_libdir) + + shared + threads + ) + + edo perl "${S}/Configure" "${myeconfargs[@]}" +} + +multilib_src_compile() { + emake build_sw + + if multilib_is_native_abi; then + emake build_docs + fi +} + +multilib_src_test() { + # See https://github.com/openssl/openssl/blob/master/test/README.md for options. + # + # VFP = show subtests verbosely and show failed tests verbosely + # Normal V=1 would show everything verbosely but this slows things down. + # + # -j1 here for https://github.com/openssl/openssl/issues/21999, but it + # shouldn't matter as tests were already built earlier, and HARNESS_JOBS + # controls running the tests. + emake -Onone -j1 HARNESS_JOBS="$(makeopts_jobs)" VFP=1 test +} + +multilib_src_install() { + # Only -j1 is supported for the install targets: + # https://github.com/openssl/openssl/issues/21999#issuecomment-1771150305 + emake DESTDIR="${D}" -j1 install_sw + if use fips; then + emake DESTDIR="${D}" -j1 install_fips + # Regen this in pkg_preinst, bug 900625 + rm "${ED}${SSL_CNF_DIR}"/fipsmodule.cnf || die + fi + + if multilib_is_native_abi; then + emake DESTDIR="${D}" -j1 install_ssldirs + emake DESTDIR="${D}" DOCDIR='$(INSTALLTOP)'/share/doc/${PF} -j1 install_docs + fi + + # This is crappy in that the static archives are still built even + # when USE=static-libs. But this is due to a failing in the openssl + # build system: the static archives are built as PIC all the time. + # Only way around this would be to manually configure+compile openssl + # twice; once with shared lib support enabled and once without. + if ! use static-libs ; then + rm "${ED}"/usr/$(get_libdir)/lib{crypto,ssl}.a || die + fi +} + +multilib_src_install_all() { + # openssl installs perl version of c_rehash by default, but + # we provide a shell version via app-misc/c_rehash + rm "${ED}"/usr/bin/c_rehash || die + + dodoc {AUTHORS,CHANGES,NEWS,README,README-PROVIDERS}.md doc/*.txt doc/${PN}-c-indent.el + + # Create the certs directory + keepdir ${SSL_CNF_DIR}/certs + + # bug #254521 + dodir /etc/sandbox.d + echo 'SANDBOX_PREDICT="/dev/crypto"' > "${ED}"/etc/sandbox.d/10openssl + + diropts -m0700 + keepdir ${SSL_CNF_DIR}/private +} + +pkg_preinst() { + if use fips; then + # Regen fipsmodule.cnf, bug 900625 + ebegin "Running openssl fipsinstall" + LD_LIBRARY_PATH="${ED}/usr/$(get_libdir)" \ + "${ED}/usr/bin/openssl" fipsinstall -quiet \ + -out "${ED}${SSL_CNF_DIR}/fipsmodule.cnf" \ + -module "${ED}/usr/$(get_libdir)/ossl-modules/fips.so" + eend $? + fi + + preserve_old_lib /usr/$(get_libdir)/lib{crypto,ssl}$(get_libname 1) \ + /usr/$(get_libdir)/lib{crypto,ssl}$(get_libname 1.1) +} + +pkg_postinst() { + ebegin "Running 'openssl rehash ${EROOT}${SSL_CNF_DIR}/certs' to rebuild hashes (bug #333069)" + openssl rehash "${EROOT}${SSL_CNF_DIR}/certs" + eend $? + + preserve_old_lib_notify /usr/$(get_libdir)/lib{crypto,ssl}$(get_libname 1) \ + /usr/$(get_libdir)/lib{crypto,ssl}$(get_libname 1.1) +} 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 new file mode 100644 index 0000000000..541489aa89 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/openssl/openssl-3.3.5.ebuild @@ -0,0 +1,298 @@ +# 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/openssl.org.asc +inherit edo flag-o-matic linux-info toolchain-funcs +inherit multilib multilib-minimal multiprocessing preserve-libs + +DESCRIPTION="Robust, full-featured Open Source Toolkit for the Transport Layer Security (TLS)" +HOMEPAGE="https://openssl-library.org/" + +MY_P=${P/_/-} + +if [[ ${PV} == *9999 ]] ; then + [[ ${PV} == *.*.9999 ]] && EGIT_BRANCH="openssl-${PV%%.9999}" + EGIT_REPO_URI="https://github.com/openssl/openssl.git" + + inherit git-r3 +else + inherit verify-sig + SRC_URI=" + https://github.com/openssl/openssl/releases/download/${P}/${P}.tar.gz + verify-sig? ( + https://github.com/openssl/openssl/releases/download/${P}/${P}.tar.gz.asc + ) + " + + 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" + fi + + BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-openssl-20240920 )" +fi + +S="${WORKDIR}"/${MY_P} + +LICENSE="Apache-2.0" +SLOT="0/$(ver_cut 1)" # .so version of libssl/libcrypto +IUSE="+asm cpu_flags_x86_sse2 fips ktls +quic rfc3779 sctp static-libs test tls-compression vanilla weak-ssl-ciphers" +RESTRICT="!test? ( test )" + +COMMON_DEPEND=" + !=sys-libs/zlib-1.2.8-r1[static-libs(+)?,${MULTILIB_USEDEP}] ) +" +BDEPEND+=" + >=dev-lang/perl-5 + sctp? ( >=net-misc/lksctp-tools-1.0.12 ) + test? ( + sys-apps/diffutils + app-alternatives/bc + sys-process/procps + ) +" +DEPEND="${COMMON_DEPEND}" +RDEPEND="${COMMON_DEPEND}" +PDEPEND="app-misc/ca-certificates" + +MULTILIB_WRAPPED_HEADERS=( + /usr/include/openssl/configuration.h +) + +PATCHES=( + "${FILESDIR}"/${PN}-3.3.2-silence-warning.patch +) + +pkg_setup() { + if use ktls ; then + if kernel_is -lt 4 18 ; then + ewarn "Kernel implementation of TLS (USE=ktls) requires kernel >=4.18!" + else + CONFIG_CHECK="~TLS ~TLS_DEVICE" + ERROR_TLS="You will be unable to offload TLS to kernel because CONFIG_TLS is not set!" + ERROR_TLS_DEVICE="You will be unable to offload TLS to kernel because CONFIG_TLS_DEVICE is not set!" + use test && CONFIG_CHECK+=" ~CRYPTO_USER_API_SKCIPHER" + + linux-info_pkg_setup + fi + fi + + [[ ${MERGE_TYPE} == binary ]] && return + + # must check in pkg_setup; sysctl doesn't work with userpriv! + if use test && use sctp ; then + # test_ssl_new will fail with "Ensure SCTP AUTH chunks are enabled in kernel" + # if sctp.auth_enable is not enabled. + local sctp_auth_status=$(sysctl -n net.sctp.auth_enable 2>/dev/null) + if [[ -z "${sctp_auth_status}" ]] || [[ ${sctp_auth_status} != 1 ]] ; then + die "FEATURES=test with USE=sctp requires net.sctp.auth_enable=1!" + fi + fi +} + +src_prepare() { + # Make sure we only ever touch Makefile.org and avoid patching a file + # that gets blown away anyways by the Configure script in src_configure + rm -f Makefile || die + + if ! use vanilla ; then + PATCHES+=( + # Add patches which are Gentoo-specific customisations here + ) + fi + + default + + if use test && use sctp && has network-sandbox ${FEATURES} ; then + einfo "Disabling test '80-test_ssl_new.t' which is known to fail with FEATURES=network-sandbox ..." + rm test/recipes/80-test_ssl_new.t || die + fi + + # Test fails depending on kernel configuration, bug #699134 + rm test/recipes/30-test_afalg.t || die +} + +src_configure() { + # Keep this in sync with app-misc/c_rehash + SSL_CNF_DIR="/etc/ssl" + + # Quiet out unknown driver argument warnings since openssl + # doesn't have well-split CFLAGS and we're making it even worse + # and 'make depend' uses -Werror for added fun (bug #417795 again) + tc-is-clang && append-flags -Qunused-arguments + + # We really, really need to build OpenSSL w/ strict aliasing disabled. + # It's filled with violations and it *will* result in miscompiled + # code. This has been in the ebuild for > 10 years but even in 2022, + # it's still relevant: + # - https://github.com/llvm/llvm-project/issues/55255 + # - https://github.com/openssl/openssl/issues/12247 + # - https://github.com/openssl/openssl/issues/18225 + # - https://github.com/openssl/openssl/issues/18663#issuecomment-1181478057 + # Don't remove the no strict aliasing bits below! + filter-flags -fstrict-aliasing + append-flags -fno-strict-aliasing + # The OpenSSL developers don't test with LTO right now, it leads to various + # warnings/errors (which may or may not be false positives), it's considered + # unsupported, and it's not tested in CI: https://github.com/openssl/openssl/issues/18663. + filter-lto + + append-flags $(test-flags-CC -Wa,--noexecstack) + + # bug #895308 -- check inserts GNU ld-compatible arguments + [[ ${CHOST} == *-darwin* ]] || append-atomic-flags + # Configure doesn't respect LIBS + export LDLIBS="${LIBS}" + + # bug #197996 + unset APPS + # bug #312551 + unset SCRIPTS + # bug #311473 + unset CROSS_COMPILE + + tc-export AR CC CXX RANLIB RC + + multilib-minimal_src_configure +} + +multilib_src_configure() { + use_ssl() { usex $1 "enable-${2:-$1}" "no-${2:-$1}" " ${*:3}" ; } + + local krb5=$(has_version app-crypt/mit-krb5 && echo "MIT" || echo "Heimdal") + + # See if our toolchain supports __uint128_t. If so, it's 64bit + # friendly and can use the nicely optimized code paths, bug #460790. + #local ec_nistp_64_gcc_128 + # + # Disable it for now though (bug #469976) + # Do NOT re-enable without substantial discussion first! + # + #echo "__uint128_t i;" > "${T}"/128.c + #if ${CC} ${CFLAGS} -c "${T}"/128.c -o /dev/null >&/dev/null ; then + # ec_nistp_64_gcc_128="enable-ec_nistp_64_gcc_128" + #fi + + local sslout=$(bash "${FILESDIR}/gentoo.config-1.0.4") + einfo "Using configuration: ${sslout:-(openssl knows best)}" + + # https://github.com/openssl/openssl/blob/master/INSTALL.md#enable-and-disable-features + local myeconfargs=( + ${sslout} + + $(multilib_is_native_abi || echo "no-docs") + $(use cpu_flags_x86_sse2 || echo "no-sse2") + enable-camellia + enable-ec + enable-ec2m + enable-sm2 + enable-srp + $(use elibc_musl && echo "no-async") + enable-idea + enable-mdc2 + enable-rc5 + $(use fips && echo "enable-fips") + $(use quic && echo "enable-quic") + $(use_ssl asm) + $(use_ssl ktls) + $(use_ssl rfc3779) + $(use_ssl sctp) + $(use test || echo "no-tests") + $(use_ssl tls-compression zlib) + $(use_ssl weak-ssl-ciphers) + + --prefix="${EPREFIX}"/usr + --openssldir="${EPREFIX}"${SSL_CNF_DIR} + --libdir=$(get_libdir) + + shared + threads + ) + + edo perl "${S}/Configure" "${myeconfargs[@]}" +} + +multilib_src_compile() { + emake build_sw +} + +multilib_src_test() { + # See https://github.com/openssl/openssl/blob/master/test/README.md for options. + # + # VFP = show subtests verbosely and show failed tests verbosely + # Normal V=1 would show everything verbosely but this slows things down. + # + # -j1 here for https://github.com/openssl/openssl/issues/21999, but it + # shouldn't matter as tests were already built earlier, and HARNESS_JOBS + # controls running the tests. + emake -Onone -j1 HARNESS_JOBS="$(makeopts_jobs)" VFP=1 test +} + +multilib_src_install() { + # Only -j1 is supported for the install targets: + # https://github.com/openssl/openssl/issues/21999#issuecomment-1771150305 + emake DESTDIR="${D}" -j1 install_sw + if use fips; then + emake DESTDIR="${D}" -j1 install_fips + # Regen this in pkg_preinst, bug 900625 + rm "${ED}${SSL_CNF_DIR}"/fipsmodule.cnf || die + fi + + if multilib_is_native_abi; then + emake DESTDIR="${D}" -j1 install_ssldirs + emake DESTDIR="${D}" DOCDIR='$(INSTALLTOP)'/share/doc/${PF} -j1 install_docs + fi + + # This is crappy in that the static archives are still built even + # when USE=static-libs. But this is due to a failing in the openssl + # build system: the static archives are built as PIC all the time. + # Only way around this would be to manually configure+compile openssl + # twice; once with shared lib support enabled and once without. + if ! use static-libs ; then + rm "${ED}"/usr/$(get_libdir)/lib{crypto,ssl}.a || die + fi +} + +multilib_src_install_all() { + # openssl installs perl version of c_rehash by default, but + # we provide a shell version via app-misc/c_rehash + rm "${ED}"/usr/bin/c_rehash || die + + dodoc {AUTHORS,CHANGES,NEWS,README,README-PROVIDERS}.md doc/*.txt doc/${PN}-c-indent.el + + # Create the certs directory + keepdir ${SSL_CNF_DIR}/certs + + # bug #254521 + dodir /etc/sandbox.d + echo 'SANDBOX_PREDICT="/dev/crypto"' > "${ED}"/etc/sandbox.d/10openssl + + diropts -m0700 + keepdir ${SSL_CNF_DIR}/private +} + +pkg_preinst() { + if use fips; then + # Regen fipsmodule.cnf, bug 900625 + ebegin "Running openssl fipsinstall" + LD_LIBRARY_PATH="${ED}/usr/$(get_libdir)" \ + "${ED}/usr/bin/openssl" fipsinstall -quiet \ + -out "${ED}${SSL_CNF_DIR}/fipsmodule.cnf" \ + -module "${ED}/usr/$(get_libdir)/ossl-modules/fips.so" + eend $? + fi + + preserve_old_lib /usr/$(get_libdir)/lib{crypto,ssl}$(get_libname 1) \ + /usr/$(get_libdir)/lib{crypto,ssl}$(get_libname 1.1) +} + +pkg_postinst() { + ebegin "Running 'openssl rehash ${EROOT}${SSL_CNF_DIR}/certs' to rebuild hashes (bug #333069)" + openssl rehash "${EROOT}${SSL_CNF_DIR}/certs" + eend $? + + preserve_old_lib_notify /usr/$(get_libdir)/lib{crypto,ssl}$(get_libname 1) \ + /usr/$(get_libdir)/lib{crypto,ssl}$(get_libname 1.1) +} diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/openssl/openssl-3.1.8.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/openssl/openssl-3.4.3.ebuild similarity index 92% rename from sdk_container/src/third_party/portage-stable/dev-libs/openssl/openssl-3.1.8.ebuild rename to sdk_container/src/third_party/portage-stable/dev-libs/openssl/openssl-3.4.3.ebuild index 95198f9882..bb7855a30f 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/openssl/openssl-3.1.8.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/openssl/openssl-3.4.3.ebuild @@ -37,7 +37,7 @@ S="${WORKDIR}"/${MY_P} LICENSE="Apache-2.0" SLOT="0/$(ver_cut 1)" # .so version of libssl/libcrypto -IUSE="+asm cpu_flags_x86_sse2 fips ktls rfc3779 sctp static-libs test tls-compression vanilla weak-ssl-ciphers" +IUSE="+asm cpu_flags_x86_sse2 fips ktls +quic rfc3779 sctp static-libs test tls-compression vanilla weak-ssl-ciphers" RESTRICT="!test? ( test )" COMMON_DEPEND=" @@ -91,7 +91,7 @@ pkg_setup() { src_prepare() { # Make sure we only ever touch Makefile.org and avoid patching a file # that gets blown away anyways by the Configure script in src_configure - rm -f Makefile + rm -f Makefile || die if ! use vanilla ; then PATCHES+=( @@ -137,8 +137,8 @@ src_configure() { append-flags $(test-flags-CC -Wa,--noexecstack) - # bug #895308 - append-atomic-flags + # bug #895308 -- check inserts GNU ld-compatible arguments + [[ ${CHOST} == *-darwin* ]] || append-atomic-flags # Configure doesn't respect LIBS export LDLIBS="${LIBS}" @@ -178,6 +178,7 @@ multilib_src_configure() { local myeconfargs=( ${sslout} + $(multilib_is_native_abi || echo "no-docs") $(use cpu_flags_x86_sse2 || echo "no-sse2") enable-camellia enable-ec @@ -189,6 +190,7 @@ multilib_src_configure() { enable-mdc2 enable-rc5 $(use fips && echo "enable-fips") + $(use quic && echo "enable-quic") $(use_ssl asm) $(use_ssl ktls) $(use_ssl rfc3779) @@ -210,16 +212,18 @@ multilib_src_configure() { multilib_src_compile() { emake build_sw - - if multilib_is_native_abi; then - emake build_docs - fi } multilib_src_test() { + # See https://github.com/openssl/openssl/blob/master/test/README.md for options. + # # VFP = show subtests verbosely and show failed tests verbosely # Normal V=1 would show everything verbosely but this slows things down. - emake HARNESS_JOBS="$(makeopts_jobs)" -Onone VFP=1 test + # + # -j1 here for https://github.com/openssl/openssl/issues/21999, but it + # shouldn't matter as tests were already built earlier, and HARNESS_JOBS + # controls running the tests. + emake -Onone -j1 HARNESS_JOBS="$(makeopts_jobs)" VFP=1 test } multilib_src_install() { diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/openssl/openssl-3.5.3.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/openssl/openssl-3.5.3.ebuild new file mode 100644 index 0000000000..4678bb66d3 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/openssl/openssl-3.5.3.ebuild @@ -0,0 +1,298 @@ +# 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/openssl.org.asc +inherit edo flag-o-matic linux-info sysroot toolchain-funcs +inherit multilib multilib-minimal multiprocessing preserve-libs + +DESCRIPTION="Robust, full-featured Open Source Toolkit for the Transport Layer Security (TLS)" +HOMEPAGE="https://openssl-library.org/" + +MY_P=${P/_/-} + +if [[ ${PV} == *9999 ]] ; then + [[ ${PV} == *.*.9999 ]] && EGIT_BRANCH="openssl-${PV%%.9999}" + EGIT_REPO_URI="https://github.com/openssl/openssl.git" + + inherit git-r3 +else + inherit verify-sig + SRC_URI=" + https://github.com/openssl/openssl/releases/download/${P}/${P}.tar.gz + verify-sig? ( + https://github.com/openssl/openssl/releases/download/${P}/${P}.tar.gz.asc + ) + " + + 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" + fi + + BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-openssl-20240920 )" +fi + +S="${WORKDIR}"/${MY_P} + +LICENSE="Apache-2.0" +SLOT="0/$(ver_cut 1)" # .so version of libssl/libcrypto +IUSE="+asm cpu_flags_x86_sse2 fips ktls +quic rfc3779 sctp static-libs test tls-compression vanilla weak-ssl-ciphers" +RESTRICT="!test? ( test )" + +COMMON_DEPEND=" + !=sys-libs/zlib-1.2.8-r1[static-libs(+)?,${MULTILIB_USEDEP}] ) +" +BDEPEND+=" + >=dev-lang/perl-5 + sctp? ( >=net-misc/lksctp-tools-1.0.12 ) + test? ( + sys-apps/diffutils + app-alternatives/bc + sys-process/procps + ) +" +DEPEND="${COMMON_DEPEND}" +RDEPEND="${COMMON_DEPEND}" +PDEPEND="app-misc/ca-certificates" + +MULTILIB_WRAPPED_HEADERS=( + /usr/include/openssl/configuration.h +) + +PATCHES=( + "${FILESDIR}"/${PN}-3.5.3-revert-version-change.patch +) + +pkg_setup() { + if use ktls ; then + if kernel_is -lt 4 18 ; then + ewarn "Kernel implementation of TLS (USE=ktls) requires kernel >=4.18!" + else + CONFIG_CHECK="~TLS ~TLS_DEVICE" + ERROR_TLS="You will be unable to offload TLS to kernel because CONFIG_TLS is not set!" + ERROR_TLS_DEVICE="You will be unable to offload TLS to kernel because CONFIG_TLS_DEVICE is not set!" + use test && CONFIG_CHECK+=" ~CRYPTO_USER_API_SKCIPHER" + + linux-info_pkg_setup + fi + fi + + [[ ${MERGE_TYPE} == binary ]] && return + + # must check in pkg_setup; sysctl doesn't work with userpriv! + if use test && use sctp ; then + # test_ssl_new will fail with "Ensure SCTP AUTH chunks are enabled in kernel" + # if sctp.auth_enable is not enabled. + local sctp_auth_status=$(sysctl -n net.sctp.auth_enable 2>/dev/null) + if [[ -z "${sctp_auth_status}" ]] || [[ ${sctp_auth_status} != 1 ]] ; then + die "FEATURES=test with USE=sctp requires net.sctp.auth_enable=1!" + fi + fi +} + +src_prepare() { + # Make sure we only ever touch Makefile.org and avoid patching a file + # that gets blown away anyways by the Configure script in src_configure + rm -f Makefile || die + + if ! use vanilla ; then + PATCHES+=( + # Add patches which are Gentoo-specific customisations here + ) + fi + + default + + if use test && use sctp && has network-sandbox ${FEATURES} ; then + einfo "Disabling test '80-test_ssl_new.t' which is known to fail with FEATURES=network-sandbox ..." + rm test/recipes/80-test_ssl_new.t || die + fi + + # Test fails depending on kernel configuration, bug #699134 + rm test/recipes/30-test_afalg.t || die +} + +src_configure() { + # Keep this in sync with app-misc/c_rehash + SSL_CNF_DIR="/etc/ssl" + + # Quiet out unknown driver argument warnings since openssl + # doesn't have well-split CFLAGS and we're making it even worse + # and 'make depend' uses -Werror for added fun (bug #417795 again) + tc-is-clang && append-flags -Qunused-arguments + + # We really, really need to build OpenSSL w/ strict aliasing disabled. + # It's filled with violations and it *will* result in miscompiled + # code. This has been in the ebuild for > 10 years but even in 2022, + # it's still relevant: + # - https://github.com/llvm/llvm-project/issues/55255 + # - https://github.com/openssl/openssl/issues/12247 + # - https://github.com/openssl/openssl/issues/18225 + # - https://github.com/openssl/openssl/issues/18663#issuecomment-1181478057 + # Don't remove the no strict aliasing bits below! + filter-flags -fstrict-aliasing + append-flags -fno-strict-aliasing + # The OpenSSL developers don't test with LTO right now, it leads to various + # warnings/errors (which may or may not be false positives), it's considered + # unsupported, and it's not tested in CI: https://github.com/openssl/openssl/issues/18663. + filter-lto + + append-flags $(test-flags-CC -Wa,--noexecstack) + + # bug #895308 -- check inserts GNU ld-compatible arguments + [[ ${CHOST} == *-darwin* ]] || append-atomic-flags + # Configure doesn't respect LIBS + export LDLIBS="${LIBS}" + + # bug #197996 + unset APPS + # bug #312551 + unset SCRIPTS + # bug #311473 + unset CROSS_COMPILE + + tc-export AR CC CXX RANLIB RC + + multilib-minimal_src_configure +} + +multilib_src_configure() { + use_ssl() { usex $1 "enable-${2:-$1}" "no-${2:-$1}" " ${*:3}" ; } + + local krb5=$(has_version app-crypt/mit-krb5 && echo "MIT" || echo "Heimdal") + + # See if our toolchain supports __uint128_t. If so, it's 64bit + # friendly and can use the nicely optimized code paths, bug #460790. + #local ec_nistp_64_gcc_128 + # + # Disable it for now though (bug #469976) + # Do NOT re-enable without substantial discussion first! + # + #echo "__uint128_t i;" > "${T}"/128.c + #if ${CC} ${CFLAGS} -c "${T}"/128.c -o /dev/null >&/dev/null ; then + # ec_nistp_64_gcc_128="enable-ec_nistp_64_gcc_128" + #fi + + local sslout=$(bash "${FILESDIR}/gentoo.config-1.0.4") + einfo "Using configuration: ${sslout:-(openssl knows best)}" + + # https://github.com/openssl/openssl/blob/master/INSTALL.md#enable-and-disable-features + local myeconfargs=( + ${sslout} + + $(multilib_is_native_abi || echo "no-docs") + $(use cpu_flags_x86_sse2 || echo "no-sse2") + enable-camellia + enable-ec + enable-ec2m + enable-sm2 + enable-srp + $(use elibc_musl && echo "no-async") + enable-idea + enable-mdc2 + enable-rc5 + $(use fips && echo "enable-fips") + $(use quic && echo "enable-quic") + $(use_ssl asm) + $(use_ssl ktls) + $(use_ssl rfc3779) + $(use_ssl sctp) + $(use test || echo "no-tests") + $(use_ssl tls-compression zlib) + $(use_ssl weak-ssl-ciphers) + + --prefix="${EPREFIX}"/usr + --openssldir="${EPREFIX}"${SSL_CNF_DIR} + --libdir=$(get_libdir) + + shared + threads + ) + + edo perl "${S}/Configure" "${myeconfargs[@]}" +} + +multilib_src_compile() { + emake build_sw +} + +multilib_src_test() { + # See https://github.com/openssl/openssl/blob/master/test/README.md for options. + # + # VFP = show subtests verbosely and show failed tests verbosely + # Normal V=1 would show everything verbosely but this slows things down. + # + # -j1 here for https://github.com/openssl/openssl/issues/21999, but it + # shouldn't matter as tests were already built earlier, and HARNESS_JOBS + # controls running the tests. + emake -Onone -j1 HARNESS_JOBS="$(makeopts_jobs)" VFP=1 test +} + +multilib_src_install() { + # Only -j1 is supported for the install targets: + # https://github.com/openssl/openssl/issues/21999#issuecomment-1771150305 + emake DESTDIR="${D}" -j1 install_sw + if use fips; then + emake DESTDIR="${D}" -j1 install_fips + # Regen this in pkg_preinst, bug 900625 + rm "${ED}${SSL_CNF_DIR}"/fipsmodule.cnf || die + fi + + if multilib_is_native_abi; then + emake DESTDIR="${D}" -j1 install_ssldirs + emake DESTDIR="${D}" DOCDIR='$(INSTALLTOP)'/share/doc/${PF} -j1 install_docs + fi + + # This is crappy in that the static archives are still built even + # when USE=static-libs. But this is due to a failing in the openssl + # build system: the static archives are built as PIC all the time. + # Only way around this would be to manually configure+compile openssl + # twice; once with shared lib support enabled and once without. + if ! use static-libs ; then + rm "${ED}"/usr/$(get_libdir)/lib{crypto,ssl}.a || die + fi +} + +multilib_src_install_all() { + # openssl installs perl version of c_rehash by default, but + # we provide a shell version via app-misc/c_rehash + rm "${ED}"/usr/bin/c_rehash || die + + dodoc {AUTHORS,CHANGES,NEWS,README,README-PROVIDERS}.md doc/*.txt doc/${PN}-c-indent.el + + # Create the certs directory + keepdir ${SSL_CNF_DIR}/certs + + # bug #254521 + dodir /etc/sandbox.d + echo 'SANDBOX_PREDICT="/dev/crypto"' > "${ED}"/etc/sandbox.d/10openssl + + diropts -m0700 + keepdir ${SSL_CNF_DIR}/private +} + +pkg_preinst() { + if use fips; then + # Regen fipsmodule.cnf, bug 900625 + einfo "Running openssl fipsinstall" + LD_LIBRARY_PATH="${ED}/usr/$(get_libdir)" \ + sysroot_run_prefixed "${ED}/usr/bin/openssl" fipsinstall \ + -out "${ED}${SSL_CNF_DIR}/fipsmodule.cnf" \ + -module "${ED}/usr/$(get_libdir)/ossl-modules/fips.so" \ + || die "fipsinstall failed" + fi + + preserve_old_lib /usr/$(get_libdir)/lib{crypto,ssl}$(get_libname 1) \ + /usr/$(get_libdir)/lib{crypto,ssl}$(get_libname 1.1) +} + +pkg_postinst() { + ebegin "Running 'openssl rehash ${EROOT}${SSL_CNF_DIR}/certs' to rebuild hashes (bug #333069)" + openssl rehash "${EROOT}${SSL_CNF_DIR}/certs" + eend $? + + preserve_old_lib_notify /usr/$(get_libdir)/lib{crypto,ssl}$(get_libname 1) \ + /usr/$(get_libdir)/lib{crypto,ssl}$(get_libname 1.1) +} 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 new file mode 100644 index 0000000000..ab2f92680e --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/openssl/openssl-3.5.4.ebuild @@ -0,0 +1,294 @@ +# 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/openssl.org.asc +inherit edo flag-o-matic linux-info sysroot toolchain-funcs +inherit multilib multilib-minimal multiprocessing preserve-libs + +DESCRIPTION="Robust, full-featured Open Source Toolkit for the Transport Layer Security (TLS)" +HOMEPAGE="https://openssl-library.org/" + +MY_P=${P/_/-} + +if [[ ${PV} == *9999 ]] ; then + [[ ${PV} == *.*.9999 ]] && EGIT_BRANCH="openssl-${PV%%.9999}" + EGIT_REPO_URI="https://github.com/openssl/openssl.git" + + inherit git-r3 +else + inherit verify-sig + SRC_URI=" + https://github.com/openssl/openssl/releases/download/${P}/${P}.tar.gz + verify-sig? ( + https://github.com/openssl/openssl/releases/download/${P}/${P}.tar.gz.asc + ) + " + + 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" + fi + + BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-openssl-20240920 )" +fi + +S="${WORKDIR}"/${MY_P} + +LICENSE="Apache-2.0" +SLOT="0/$(ver_cut 1)" # .so version of libssl/libcrypto +IUSE="+asm cpu_flags_x86_sse2 fips ktls +quic rfc3779 sctp static-libs test tls-compression vanilla weak-ssl-ciphers" +RESTRICT="!test? ( test )" + +COMMON_DEPEND=" + !=sys-libs/zlib-1.2.8-r1[static-libs(+)?,${MULTILIB_USEDEP}] ) +" +BDEPEND+=" + >=dev-lang/perl-5 + sctp? ( >=net-misc/lksctp-tools-1.0.12 ) + test? ( + sys-apps/diffutils + app-alternatives/bc + sys-process/procps + ) +" +DEPEND="${COMMON_DEPEND}" +RDEPEND="${COMMON_DEPEND}" +PDEPEND="app-misc/ca-certificates" + +MULTILIB_WRAPPED_HEADERS=( + /usr/include/openssl/configuration.h +) + +pkg_setup() { + if use ktls ; then + if kernel_is -lt 4 18 ; then + ewarn "Kernel implementation of TLS (USE=ktls) requires kernel >=4.18!" + else + CONFIG_CHECK="~TLS ~TLS_DEVICE" + ERROR_TLS="You will be unable to offload TLS to kernel because CONFIG_TLS is not set!" + ERROR_TLS_DEVICE="You will be unable to offload TLS to kernel because CONFIG_TLS_DEVICE is not set!" + use test && CONFIG_CHECK+=" ~CRYPTO_USER_API_SKCIPHER" + + linux-info_pkg_setup + fi + fi + + [[ ${MERGE_TYPE} == binary ]] && return + + # must check in pkg_setup; sysctl doesn't work with userpriv! + if use test && use sctp ; then + # test_ssl_new will fail with "Ensure SCTP AUTH chunks are enabled in kernel" + # if sctp.auth_enable is not enabled. + local sctp_auth_status=$(sysctl -n net.sctp.auth_enable 2>/dev/null) + if [[ -z "${sctp_auth_status}" ]] || [[ ${sctp_auth_status} != 1 ]] ; then + die "FEATURES=test with USE=sctp requires net.sctp.auth_enable=1!" + fi + fi +} + +src_prepare() { + # Make sure we only ever touch Makefile.org and avoid patching a file + # that gets blown away anyways by the Configure script in src_configure + rm -f Makefile || die + + if ! use vanilla ; then + PATCHES+=( + # Add patches which are Gentoo-specific customisations here + ) + fi + + default + + if use test && use sctp && has network-sandbox ${FEATURES} ; then + einfo "Disabling test '80-test_ssl_new.t' which is known to fail with FEATURES=network-sandbox ..." + rm test/recipes/80-test_ssl_new.t || die + fi + + # Test fails depending on kernel configuration, bug #699134 + rm test/recipes/30-test_afalg.t || die +} + +src_configure() { + # Keep this in sync with app-misc/c_rehash + SSL_CNF_DIR="/etc/ssl" + + # Quiet out unknown driver argument warnings since openssl + # doesn't have well-split CFLAGS and we're making it even worse + # and 'make depend' uses -Werror for added fun (bug #417795 again) + tc-is-clang && append-flags -Qunused-arguments + + # We really, really need to build OpenSSL w/ strict aliasing disabled. + # It's filled with violations and it *will* result in miscompiled + # code. This has been in the ebuild for > 10 years but even in 2022, + # it's still relevant: + # - https://github.com/llvm/llvm-project/issues/55255 + # - https://github.com/openssl/openssl/issues/12247 + # - https://github.com/openssl/openssl/issues/18225 + # - https://github.com/openssl/openssl/issues/18663#issuecomment-1181478057 + # Don't remove the no strict aliasing bits below! + filter-flags -fstrict-aliasing + append-flags -fno-strict-aliasing + # The OpenSSL developers don't test with LTO right now, it leads to various + # warnings/errors (which may or may not be false positives), it's considered + # unsupported, and it's not tested in CI: https://github.com/openssl/openssl/issues/18663. + filter-lto + + append-flags $(test-flags-CC -Wa,--noexecstack) + + # bug #895308 -- check inserts GNU ld-compatible arguments + [[ ${CHOST} == *-darwin* ]] || append-atomic-flags + # Configure doesn't respect LIBS + export LDLIBS="${LIBS}" + + # bug #197996 + unset APPS + # bug #312551 + unset SCRIPTS + # bug #311473 + unset CROSS_COMPILE + + tc-export AR CC CXX RANLIB RC + + multilib-minimal_src_configure +} + +multilib_src_configure() { + use_ssl() { usex $1 "enable-${2:-$1}" "no-${2:-$1}" " ${*:3}" ; } + + local krb5=$(has_version app-crypt/mit-krb5 && echo "MIT" || echo "Heimdal") + + # See if our toolchain supports __uint128_t. If so, it's 64bit + # friendly and can use the nicely optimized code paths, bug #460790. + #local ec_nistp_64_gcc_128 + # + # Disable it for now though (bug #469976) + # Do NOT re-enable without substantial discussion first! + # + #echo "__uint128_t i;" > "${T}"/128.c + #if ${CC} ${CFLAGS} -c "${T}"/128.c -o /dev/null >&/dev/null ; then + # ec_nistp_64_gcc_128="enable-ec_nistp_64_gcc_128" + #fi + + local sslout=$(bash "${FILESDIR}/gentoo.config-1.0.4") + einfo "Using configuration: ${sslout:-(openssl knows best)}" + + # https://github.com/openssl/openssl/blob/master/INSTALL.md#enable-and-disable-features + local myeconfargs=( + ${sslout} + + $(multilib_is_native_abi || echo "no-docs") + $(use cpu_flags_x86_sse2 || echo "no-sse2") + enable-camellia + enable-ec + enable-ec2m + enable-sm2 + enable-srp + $(use elibc_musl && echo "no-async") + enable-idea + enable-mdc2 + enable-rc5 + $(use fips && echo "enable-fips") + $(use quic && echo "enable-quic") + $(use_ssl asm) + $(use_ssl ktls) + $(use_ssl rfc3779) + $(use_ssl sctp) + $(use test || echo "no-tests") + $(use_ssl tls-compression zlib) + $(use_ssl weak-ssl-ciphers) + + --prefix="${EPREFIX}"/usr + --openssldir="${EPREFIX}"${SSL_CNF_DIR} + --libdir=$(get_libdir) + + shared + threads + ) + + edo perl "${S}/Configure" "${myeconfargs[@]}" +} + +multilib_src_compile() { + emake build_sw +} + +multilib_src_test() { + # See https://github.com/openssl/openssl/blob/master/test/README.md for options. + # + # VFP = show subtests verbosely and show failed tests verbosely + # Normal V=1 would show everything verbosely but this slows things down. + # + # -j1 here for https://github.com/openssl/openssl/issues/21999, but it + # shouldn't matter as tests were already built earlier, and HARNESS_JOBS + # controls running the tests. + emake -Onone -j1 HARNESS_JOBS="$(makeopts_jobs)" VFP=1 test +} + +multilib_src_install() { + # Only -j1 is supported for the install targets: + # https://github.com/openssl/openssl/issues/21999#issuecomment-1771150305 + emake DESTDIR="${D}" -j1 install_sw + if use fips; then + emake DESTDIR="${D}" -j1 install_fips + # Regen this in pkg_preinst, bug 900625 + rm "${ED}${SSL_CNF_DIR}"/fipsmodule.cnf || die + fi + + if multilib_is_native_abi; then + emake DESTDIR="${D}" -j1 install_ssldirs + emake DESTDIR="${D}" DOCDIR='$(INSTALLTOP)'/share/doc/${PF} -j1 install_docs + fi + + # This is crappy in that the static archives are still built even + # when USE=static-libs. But this is due to a failing in the openssl + # build system: the static archives are built as PIC all the time. + # Only way around this would be to manually configure+compile openssl + # twice; once with shared lib support enabled and once without. + if ! use static-libs ; then + rm "${ED}"/usr/$(get_libdir)/lib{crypto,ssl}.a || die + fi +} + +multilib_src_install_all() { + # openssl installs perl version of c_rehash by default, but + # we provide a shell version via app-misc/c_rehash + rm "${ED}"/usr/bin/c_rehash || die + + dodoc {AUTHORS,CHANGES,NEWS,README,README-PROVIDERS}.md doc/*.txt doc/${PN}-c-indent.el + + # Create the certs directory + keepdir ${SSL_CNF_DIR}/certs + + # bug #254521 + dodir /etc/sandbox.d + echo 'SANDBOX_PREDICT="/dev/crypto"' > "${ED}"/etc/sandbox.d/10openssl + + diropts -m0700 + keepdir ${SSL_CNF_DIR}/private +} + +pkg_preinst() { + if use fips; then + # Regen fipsmodule.cnf, bug 900625 + einfo "Running openssl fipsinstall" + LD_LIBRARY_PATH="${ED}/usr/$(get_libdir)" \ + sysroot_run_prefixed "${ED}/usr/bin/openssl" fipsinstall \ + -out "${ED}${SSL_CNF_DIR}/fipsmodule.cnf" \ + -module "${ED}/usr/$(get_libdir)/ossl-modules/fips.so" \ + || die "fipsinstall failed" + fi + + preserve_old_lib /usr/$(get_libdir)/lib{crypto,ssl}$(get_libname 1) \ + /usr/$(get_libdir)/lib{crypto,ssl}$(get_libname 1.1) +} + +pkg_postinst() { + ebegin "Running 'openssl rehash ${EROOT}${SSL_CNF_DIR}/certs' to rebuild hashes (bug #333069)" + openssl rehash "${EROOT}${SSL_CNF_DIR}/certs" + eend $? + + preserve_old_lib_notify /usr/$(get_libdir)/lib{crypto,ssl}$(get_libname 1) \ + /usr/$(get_libdir)/lib{crypto,ssl}$(get_libname 1.1) +} 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 new file mode 100644 index 0000000000..c1c020fe49 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/openssl/openssl-3.6.0.ebuild @@ -0,0 +1,294 @@ +# 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/openssl.org.asc +inherit edo flag-o-matic linux-info sysroot toolchain-funcs +inherit multilib multilib-minimal multiprocessing preserve-libs + +DESCRIPTION="Robust, full-featured Open Source Toolkit for the Transport Layer Security (TLS)" +HOMEPAGE="https://openssl-library.org/" + +MY_P=${P/_/-} + +if [[ ${PV} == *9999 ]] ; then + [[ ${PV} == *.*.9999 ]] && EGIT_BRANCH="openssl-${PV%%.9999}" + EGIT_REPO_URI="https://github.com/openssl/openssl.git" + + inherit git-r3 +else + inherit verify-sig + SRC_URI=" + https://github.com/openssl/openssl/releases/download/${P}/${P}.tar.gz + verify-sig? ( + https://github.com/openssl/openssl/releases/download/${P}/${P}.tar.gz.asc + ) + " + + #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" + #fi + + BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-openssl-20240920 )" +fi + +S="${WORKDIR}"/${MY_P} + +LICENSE="Apache-2.0" +SLOT="0/$(ver_cut 1)" # .so version of libssl/libcrypto +IUSE="+asm cpu_flags_x86_sse2 fips ktls +quic rfc3779 sctp static-libs test tls-compression vanilla weak-ssl-ciphers" +RESTRICT="!test? ( test )" + +COMMON_DEPEND=" + !=sys-libs/zlib-1.2.8-r1[static-libs(+)?,${MULTILIB_USEDEP}] ) +" +BDEPEND+=" + >=dev-lang/perl-5 + sctp? ( >=net-misc/lksctp-tools-1.0.12 ) + test? ( + sys-apps/diffutils + app-alternatives/bc + sys-process/procps + ) +" +DEPEND="${COMMON_DEPEND}" +RDEPEND="${COMMON_DEPEND}" +PDEPEND="app-misc/ca-certificates" + +MULTILIB_WRAPPED_HEADERS=( + /usr/include/openssl/configuration.h +) + +pkg_setup() { + if use ktls ; then + if kernel_is -lt 4 18 ; then + ewarn "Kernel implementation of TLS (USE=ktls) requires kernel >=4.18!" + else + CONFIG_CHECK="~TLS ~TLS_DEVICE" + ERROR_TLS="You will be unable to offload TLS to kernel because CONFIG_TLS is not set!" + ERROR_TLS_DEVICE="You will be unable to offload TLS to kernel because CONFIG_TLS_DEVICE is not set!" + use test && CONFIG_CHECK+=" ~CRYPTO_USER_API_SKCIPHER" + + linux-info_pkg_setup + fi + fi + + [[ ${MERGE_TYPE} == binary ]] && return + + # must check in pkg_setup; sysctl doesn't work with userpriv! + if use test && use sctp ; then + # test_ssl_new will fail with "Ensure SCTP AUTH chunks are enabled in kernel" + # if sctp.auth_enable is not enabled. + local sctp_auth_status=$(sysctl -n net.sctp.auth_enable 2>/dev/null) + if [[ -z "${sctp_auth_status}" ]] || [[ ${sctp_auth_status} != 1 ]] ; then + die "FEATURES=test with USE=sctp requires net.sctp.auth_enable=1!" + fi + fi +} + +src_prepare() { + # Make sure we only ever touch Makefile.org and avoid patching a file + # that gets blown away anyways by the Configure script in src_configure + rm -f Makefile || die + + if ! use vanilla ; then + PATCHES+=( + # Add patches which are Gentoo-specific customisations here + ) + fi + + default + + if use test && use sctp && has network-sandbox ${FEATURES} ; then + einfo "Disabling test '80-test_ssl_new.t' which is known to fail with FEATURES=network-sandbox ..." + rm test/recipes/80-test_ssl_new.t || die + fi + + # Test fails depending on kernel configuration, bug #699134 + rm test/recipes/30-test_afalg.t || die +} + +src_configure() { + # Keep this in sync with app-misc/c_rehash + SSL_CNF_DIR="/etc/ssl" + + # Quiet out unknown driver argument warnings since openssl + # doesn't have well-split CFLAGS and we're making it even worse + # and 'make depend' uses -Werror for added fun (bug #417795 again) + tc-is-clang && append-flags -Qunused-arguments + + # We really, really need to build OpenSSL w/ strict aliasing disabled. + # It's filled with violations and it *will* result in miscompiled + # code. This has been in the ebuild for > 10 years but even in 2022, + # it's still relevant: + # - https://github.com/llvm/llvm-project/issues/55255 + # - https://github.com/openssl/openssl/issues/12247 + # - https://github.com/openssl/openssl/issues/18225 + # - https://github.com/openssl/openssl/issues/18663#issuecomment-1181478057 + # Don't remove the no strict aliasing bits below! + filter-flags -fstrict-aliasing + append-flags -fno-strict-aliasing + # The OpenSSL developers don't test with LTO right now, it leads to various + # warnings/errors (which may or may not be false positives), it's considered + # unsupported, and it's not tested in CI: https://github.com/openssl/openssl/issues/18663. + filter-lto + + append-flags $(test-flags-CC -Wa,--noexecstack) + + # bug #895308 -- check inserts GNU ld-compatible arguments + [[ ${CHOST} == *-darwin* ]] || append-atomic-flags + # Configure doesn't respect LIBS + export LDLIBS="${LIBS}" + + # bug #197996 + unset APPS + # bug #312551 + unset SCRIPTS + # bug #311473 + unset CROSS_COMPILE + + tc-export AR CC CXX RANLIB RC + + multilib-minimal_src_configure +} + +multilib_src_configure() { + use_ssl() { usex $1 "enable-${2:-$1}" "no-${2:-$1}" " ${*:3}" ; } + + local krb5=$(has_version app-crypt/mit-krb5 && echo "MIT" || echo "Heimdal") + + # See if our toolchain supports __uint128_t. If so, it's 64bit + # friendly and can use the nicely optimized code paths, bug #460790. + #local ec_nistp_64_gcc_128 + # + # Disable it for now though (bug #469976) + # Do NOT re-enable without substantial discussion first! + # + #echo "__uint128_t i;" > "${T}"/128.c + #if ${CC} ${CFLAGS} -c "${T}"/128.c -o /dev/null >&/dev/null ; then + # ec_nistp_64_gcc_128="enable-ec_nistp_64_gcc_128" + #fi + + local sslout=$(bash "${FILESDIR}/gentoo.config-1.0.4") + einfo "Using configuration: ${sslout:-(openssl knows best)}" + + # https://github.com/openssl/openssl/blob/master/INSTALL.md#enable-and-disable-features + local myeconfargs=( + ${sslout} + + $(multilib_is_native_abi || echo "no-docs") + $(use cpu_flags_x86_sse2 || echo "no-sse2") + enable-camellia + enable-ec + enable-ec2m + enable-sm2 + enable-srp + $(use elibc_musl && echo "no-async") + enable-idea + enable-mdc2 + enable-rc5 + $(use fips && echo "enable-fips") + $(use quic && echo "enable-quic") + $(use_ssl asm) + $(use_ssl ktls) + $(use_ssl rfc3779) + $(use_ssl sctp) + $(use test || echo "no-tests") + $(use_ssl tls-compression zlib) + $(use_ssl weak-ssl-ciphers) + + --prefix="${EPREFIX}"/usr + --openssldir="${EPREFIX}"${SSL_CNF_DIR} + --libdir=$(get_libdir) + + shared + threads + ) + + edo perl "${S}/Configure" "${myeconfargs[@]}" +} + +multilib_src_compile() { + emake build_sw +} + +multilib_src_test() { + # See https://github.com/openssl/openssl/blob/master/test/README.md for options. + # + # VFP = show subtests verbosely and show failed tests verbosely + # Normal V=1 would show everything verbosely but this slows things down. + # + # -j1 here for https://github.com/openssl/openssl/issues/21999, but it + # shouldn't matter as tests were already built earlier, and HARNESS_JOBS + # controls running the tests. + emake -Onone -j1 HARNESS_JOBS="$(makeopts_jobs)" VFP=1 test +} + +multilib_src_install() { + # Only -j1 is supported for the install targets: + # https://github.com/openssl/openssl/issues/21999#issuecomment-1771150305 + emake DESTDIR="${D}" -j1 install_sw + if use fips; then + emake DESTDIR="${D}" -j1 install_fips + # Regen this in pkg_preinst, bug 900625 + rm "${ED}${SSL_CNF_DIR}"/fipsmodule.cnf || die + fi + + if multilib_is_native_abi; then + emake DESTDIR="${D}" -j1 install_ssldirs + emake DESTDIR="${D}" DOCDIR='$(INSTALLTOP)'/share/doc/${PF} -j1 install_docs + fi + + # This is crappy in that the static archives are still built even + # when USE=static-libs. But this is due to a failing in the openssl + # build system: the static archives are built as PIC all the time. + # Only way around this would be to manually configure+compile openssl + # twice; once with shared lib support enabled and once without. + if ! use static-libs ; then + rm "${ED}"/usr/$(get_libdir)/lib{crypto,ssl}.a || die + fi +} + +multilib_src_install_all() { + # openssl installs perl version of c_rehash by default, but + # we provide a shell version via app-misc/c_rehash + rm "${ED}"/usr/bin/c_rehash || die + + dodoc {AUTHORS,CHANGES,NEWS,README,README-PROVIDERS}.md doc/*.txt doc/${PN}-c-indent.el + + # Create the certs directory + keepdir ${SSL_CNF_DIR}/certs + + # bug #254521 + dodir /etc/sandbox.d + echo 'SANDBOX_PREDICT="/dev/crypto"' > "${ED}"/etc/sandbox.d/10openssl + + diropts -m0700 + keepdir ${SSL_CNF_DIR}/private +} + +pkg_preinst() { + if use fips; then + # Regen fipsmodule.cnf, bug 900625 + einfo "Running openssl fipsinstall" + LD_LIBRARY_PATH="${ED}/usr/$(get_libdir)" \ + sysroot_run_prefixed "${ED}/usr/bin/openssl" fipsinstall \ + -out "${ED}${SSL_CNF_DIR}/fipsmodule.cnf" \ + -module "${ED}/usr/$(get_libdir)/ossl-modules/fips.so" \ + || die "fipsinstall failed" + fi + + preserve_old_lib /usr/$(get_libdir)/lib{crypto,ssl}$(get_libname 1) \ + /usr/$(get_libdir)/lib{crypto,ssl}$(get_libname 1.1) +} + +pkg_postinst() { + ebegin "Running 'openssl rehash ${EROOT}${SSL_CNF_DIR}/certs' to rebuild hashes (bug #333069)" + openssl rehash "${EROOT}${SSL_CNF_DIR}/certs" + eend $? + + preserve_old_lib_notify /usr/$(get_libdir)/lib{crypto,ssl}$(get_libname 1) \ + /usr/$(get_libdir)/lib{crypto,ssl}$(get_libname 1.1) +} 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 new file mode 100644 index 0000000000..ab2f92680e --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/openssl/openssl-3.6.9999.ebuild @@ -0,0 +1,294 @@ +# 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/openssl.org.asc +inherit edo flag-o-matic linux-info sysroot toolchain-funcs +inherit multilib multilib-minimal multiprocessing preserve-libs + +DESCRIPTION="Robust, full-featured Open Source Toolkit for the Transport Layer Security (TLS)" +HOMEPAGE="https://openssl-library.org/" + +MY_P=${P/_/-} + +if [[ ${PV} == *9999 ]] ; then + [[ ${PV} == *.*.9999 ]] && EGIT_BRANCH="openssl-${PV%%.9999}" + EGIT_REPO_URI="https://github.com/openssl/openssl.git" + + inherit git-r3 +else + inherit verify-sig + SRC_URI=" + https://github.com/openssl/openssl/releases/download/${P}/${P}.tar.gz + verify-sig? ( + https://github.com/openssl/openssl/releases/download/${P}/${P}.tar.gz.asc + ) + " + + 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" + fi + + BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-openssl-20240920 )" +fi + +S="${WORKDIR}"/${MY_P} + +LICENSE="Apache-2.0" +SLOT="0/$(ver_cut 1)" # .so version of libssl/libcrypto +IUSE="+asm cpu_flags_x86_sse2 fips ktls +quic rfc3779 sctp static-libs test tls-compression vanilla weak-ssl-ciphers" +RESTRICT="!test? ( test )" + +COMMON_DEPEND=" + !=sys-libs/zlib-1.2.8-r1[static-libs(+)?,${MULTILIB_USEDEP}] ) +" +BDEPEND+=" + >=dev-lang/perl-5 + sctp? ( >=net-misc/lksctp-tools-1.0.12 ) + test? ( + sys-apps/diffutils + app-alternatives/bc + sys-process/procps + ) +" +DEPEND="${COMMON_DEPEND}" +RDEPEND="${COMMON_DEPEND}" +PDEPEND="app-misc/ca-certificates" + +MULTILIB_WRAPPED_HEADERS=( + /usr/include/openssl/configuration.h +) + +pkg_setup() { + if use ktls ; then + if kernel_is -lt 4 18 ; then + ewarn "Kernel implementation of TLS (USE=ktls) requires kernel >=4.18!" + else + CONFIG_CHECK="~TLS ~TLS_DEVICE" + ERROR_TLS="You will be unable to offload TLS to kernel because CONFIG_TLS is not set!" + ERROR_TLS_DEVICE="You will be unable to offload TLS to kernel because CONFIG_TLS_DEVICE is not set!" + use test && CONFIG_CHECK+=" ~CRYPTO_USER_API_SKCIPHER" + + linux-info_pkg_setup + fi + fi + + [[ ${MERGE_TYPE} == binary ]] && return + + # must check in pkg_setup; sysctl doesn't work with userpriv! + if use test && use sctp ; then + # test_ssl_new will fail with "Ensure SCTP AUTH chunks are enabled in kernel" + # if sctp.auth_enable is not enabled. + local sctp_auth_status=$(sysctl -n net.sctp.auth_enable 2>/dev/null) + if [[ -z "${sctp_auth_status}" ]] || [[ ${sctp_auth_status} != 1 ]] ; then + die "FEATURES=test with USE=sctp requires net.sctp.auth_enable=1!" + fi + fi +} + +src_prepare() { + # Make sure we only ever touch Makefile.org and avoid patching a file + # that gets blown away anyways by the Configure script in src_configure + rm -f Makefile || die + + if ! use vanilla ; then + PATCHES+=( + # Add patches which are Gentoo-specific customisations here + ) + fi + + default + + if use test && use sctp && has network-sandbox ${FEATURES} ; then + einfo "Disabling test '80-test_ssl_new.t' which is known to fail with FEATURES=network-sandbox ..." + rm test/recipes/80-test_ssl_new.t || die + fi + + # Test fails depending on kernel configuration, bug #699134 + rm test/recipes/30-test_afalg.t || die +} + +src_configure() { + # Keep this in sync with app-misc/c_rehash + SSL_CNF_DIR="/etc/ssl" + + # Quiet out unknown driver argument warnings since openssl + # doesn't have well-split CFLAGS and we're making it even worse + # and 'make depend' uses -Werror for added fun (bug #417795 again) + tc-is-clang && append-flags -Qunused-arguments + + # We really, really need to build OpenSSL w/ strict aliasing disabled. + # It's filled with violations and it *will* result in miscompiled + # code. This has been in the ebuild for > 10 years but even in 2022, + # it's still relevant: + # - https://github.com/llvm/llvm-project/issues/55255 + # - https://github.com/openssl/openssl/issues/12247 + # - https://github.com/openssl/openssl/issues/18225 + # - https://github.com/openssl/openssl/issues/18663#issuecomment-1181478057 + # Don't remove the no strict aliasing bits below! + filter-flags -fstrict-aliasing + append-flags -fno-strict-aliasing + # The OpenSSL developers don't test with LTO right now, it leads to various + # warnings/errors (which may or may not be false positives), it's considered + # unsupported, and it's not tested in CI: https://github.com/openssl/openssl/issues/18663. + filter-lto + + append-flags $(test-flags-CC -Wa,--noexecstack) + + # bug #895308 -- check inserts GNU ld-compatible arguments + [[ ${CHOST} == *-darwin* ]] || append-atomic-flags + # Configure doesn't respect LIBS + export LDLIBS="${LIBS}" + + # bug #197996 + unset APPS + # bug #312551 + unset SCRIPTS + # bug #311473 + unset CROSS_COMPILE + + tc-export AR CC CXX RANLIB RC + + multilib-minimal_src_configure +} + +multilib_src_configure() { + use_ssl() { usex $1 "enable-${2:-$1}" "no-${2:-$1}" " ${*:3}" ; } + + local krb5=$(has_version app-crypt/mit-krb5 && echo "MIT" || echo "Heimdal") + + # See if our toolchain supports __uint128_t. If so, it's 64bit + # friendly and can use the nicely optimized code paths, bug #460790. + #local ec_nistp_64_gcc_128 + # + # Disable it for now though (bug #469976) + # Do NOT re-enable without substantial discussion first! + # + #echo "__uint128_t i;" > "${T}"/128.c + #if ${CC} ${CFLAGS} -c "${T}"/128.c -o /dev/null >&/dev/null ; then + # ec_nistp_64_gcc_128="enable-ec_nistp_64_gcc_128" + #fi + + local sslout=$(bash "${FILESDIR}/gentoo.config-1.0.4") + einfo "Using configuration: ${sslout:-(openssl knows best)}" + + # https://github.com/openssl/openssl/blob/master/INSTALL.md#enable-and-disable-features + local myeconfargs=( + ${sslout} + + $(multilib_is_native_abi || echo "no-docs") + $(use cpu_flags_x86_sse2 || echo "no-sse2") + enable-camellia + enable-ec + enable-ec2m + enable-sm2 + enable-srp + $(use elibc_musl && echo "no-async") + enable-idea + enable-mdc2 + enable-rc5 + $(use fips && echo "enable-fips") + $(use quic && echo "enable-quic") + $(use_ssl asm) + $(use_ssl ktls) + $(use_ssl rfc3779) + $(use_ssl sctp) + $(use test || echo "no-tests") + $(use_ssl tls-compression zlib) + $(use_ssl weak-ssl-ciphers) + + --prefix="${EPREFIX}"/usr + --openssldir="${EPREFIX}"${SSL_CNF_DIR} + --libdir=$(get_libdir) + + shared + threads + ) + + edo perl "${S}/Configure" "${myeconfargs[@]}" +} + +multilib_src_compile() { + emake build_sw +} + +multilib_src_test() { + # See https://github.com/openssl/openssl/blob/master/test/README.md for options. + # + # VFP = show subtests verbosely and show failed tests verbosely + # Normal V=1 would show everything verbosely but this slows things down. + # + # -j1 here for https://github.com/openssl/openssl/issues/21999, but it + # shouldn't matter as tests were already built earlier, and HARNESS_JOBS + # controls running the tests. + emake -Onone -j1 HARNESS_JOBS="$(makeopts_jobs)" VFP=1 test +} + +multilib_src_install() { + # Only -j1 is supported for the install targets: + # https://github.com/openssl/openssl/issues/21999#issuecomment-1771150305 + emake DESTDIR="${D}" -j1 install_sw + if use fips; then + emake DESTDIR="${D}" -j1 install_fips + # Regen this in pkg_preinst, bug 900625 + rm "${ED}${SSL_CNF_DIR}"/fipsmodule.cnf || die + fi + + if multilib_is_native_abi; then + emake DESTDIR="${D}" -j1 install_ssldirs + emake DESTDIR="${D}" DOCDIR='$(INSTALLTOP)'/share/doc/${PF} -j1 install_docs + fi + + # This is crappy in that the static archives are still built even + # when USE=static-libs. But this is due to a failing in the openssl + # build system: the static archives are built as PIC all the time. + # Only way around this would be to manually configure+compile openssl + # twice; once with shared lib support enabled and once without. + if ! use static-libs ; then + rm "${ED}"/usr/$(get_libdir)/lib{crypto,ssl}.a || die + fi +} + +multilib_src_install_all() { + # openssl installs perl version of c_rehash by default, but + # we provide a shell version via app-misc/c_rehash + rm "${ED}"/usr/bin/c_rehash || die + + dodoc {AUTHORS,CHANGES,NEWS,README,README-PROVIDERS}.md doc/*.txt doc/${PN}-c-indent.el + + # Create the certs directory + keepdir ${SSL_CNF_DIR}/certs + + # bug #254521 + dodir /etc/sandbox.d + echo 'SANDBOX_PREDICT="/dev/crypto"' > "${ED}"/etc/sandbox.d/10openssl + + diropts -m0700 + keepdir ${SSL_CNF_DIR}/private +} + +pkg_preinst() { + if use fips; then + # Regen fipsmodule.cnf, bug 900625 + einfo "Running openssl fipsinstall" + LD_LIBRARY_PATH="${ED}/usr/$(get_libdir)" \ + sysroot_run_prefixed "${ED}/usr/bin/openssl" fipsinstall \ + -out "${ED}${SSL_CNF_DIR}/fipsmodule.cnf" \ + -module "${ED}/usr/$(get_libdir)/ossl-modules/fips.so" \ + || die "fipsinstall failed" + fi + + preserve_old_lib /usr/$(get_libdir)/lib{crypto,ssl}$(get_libname 1) \ + /usr/$(get_libdir)/lib{crypto,ssl}$(get_libname 1.1) +} + +pkg_postinst() { + ebegin "Running 'openssl rehash ${EROOT}${SSL_CNF_DIR}/certs' to rebuild hashes (bug #333069)" + openssl rehash "${EROOT}${SSL_CNF_DIR}/certs" + eend $? + + preserve_old_lib_notify /usr/$(get_libdir)/lib{crypto,ssl}$(get_libname 1) \ + /usr/$(get_libdir)/lib{crypto,ssl}$(get_libname 1.1) +} diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-31.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-31.1.ebuild index dbfa1f7872..2cfbce9de2 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-31.1.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-31.1.ebuild @@ -3,7 +3,7 @@ EAPI=8 -inherit cmake-multilib dot-a elisp-common multilib +inherit cmake-multilib dot-a elisp-common flag-o-matic multilib # NOTE from https://github.com/protocolbuffers/protobuf/blob/main/cmake/dependencies.cmake ABSEIL_MIN_VER="20250127.0" @@ -16,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 ~hppa ~loong ~mips ~ppc ~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 @@ -77,6 +77,10 @@ src_prepare() { } multilib_src_configure() { + # bug #963340 (seems to only happen when upgrading from older pb, + # possibly w/o tests too). + 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 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 71bf1e316d..d9d8b3bf74 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 elisp-common multilib +inherit cmake-multilib dot-a elisp-common flag-o-matic multilib # NOTE from https://github.com/protocolbuffers/protobuf/blob/main/cmake/dependencies.cmake ABSEIL_MIN_VER="20250127.0" @@ -77,6 +77,14 @@ src_prepare() { } multilib_src_configure() { + # bug #963340 (seems to only happen when upgrading from older pb, + # possibly w/o tests too). + 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 + local mycmakeargs=( -Dprotobuf_BUILD_CONFORMANCE="$(usex test "$(usex conformance)")" -Dprotobuf_BUILD_LIBPROTOC="$(usex libprotoc)" @@ -143,6 +151,7 @@ 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 diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/tree-sitter-bash/tree-sitter-bash-0.25.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/tree-sitter-bash/tree-sitter-bash-0.25.0.ebuild index 632b5d6837..ed7e277b3a 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/tree-sitter-bash/tree-sitter-bash-0.25.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/tree-sitter-bash/tree-sitter-bash-0.25.0.ebuild @@ -12,4 +12,4 @@ HOMEPAGE="https://github.com/tree-sitter/tree-sitter-bash" LICENSE="MIT" SLOT="0" -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" 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 6ed557a651..edc4f8fed2 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-perl/File-Slurper/File-Slurper-0.14.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-perl/File-Slurper/File-Slurper-0.14.0.ebuild new file mode 100644 index 0000000000..49b070a7ef --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-perl/File-Slurper/File-Slurper-0.14.0.ebuild @@ -0,0 +1,30 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DIST_AUTHOR=LEONT +DIST_VERSION=0.014 +DIST_EXAMPLES=( "bench/*" ) +inherit perl-module + +DESCRIPTION="A simple, sane and efficient module to slurp a file" + +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" + +RDEPEND=" + dev-perl/PerlIO-utf8_strict + virtual/perl-Carp + >=virtual/perl-Encode-2.110.0 + >=virtual/perl-Exporter-5.570.0 +" +BDEPEND="${RDEPEND} + virtual/perl-ExtUtils-MakeMaker + test? ( + virtual/perl-File-Spec + virtual/perl-File-Temp + virtual/perl-Test-Simple + dev-perl/Test-Warnings + ) +" diff --git a/sdk_container/src/third_party/portage-stable/dev-perl/File-Slurper/Manifest b/sdk_container/src/third_party/portage-stable/dev-perl/File-Slurper/Manifest new file mode 100644 index 0000000000..442e95d293 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-perl/File-Slurper/Manifest @@ -0,0 +1 @@ +DIST File-Slurper-0.014.tar.gz 16064 BLAKE2B f3eac73b45ade49635cb4daa911d600bdbaa822b0329ce36f446a96f655a34b8839aa642552347bac87ac619cc1b602edafce751b90a6f4d4e53414ad614f2e2 SHA512 45474865b8c4a360ad04423c510c62f2a796081544499cf9ed335ffefe9d4087a844a1f988dfbd21b38237942eeead045923121e9786607c5270520b2b0af577 diff --git a/sdk_container/src/third_party/portage-stable/dev-perl/File-Slurper/metadata.xml b/sdk_container/src/third_party/portage-stable/dev-perl/File-Slurper/metadata.xml new file mode 100644 index 0000000000..d7d05c84ed --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-perl/File-Slurper/metadata.xml @@ -0,0 +1,13 @@ + + + + + perl@gentoo.org + Gentoo Perl Project + + + File-Slurper + File::Slurper + Leont/file-slurp-sane + + diff --git a/sdk_container/src/third_party/portage-stable/dev-perl/PerlIO-utf8_strict/Manifest b/sdk_container/src/third_party/portage-stable/dev-perl/PerlIO-utf8_strict/Manifest new file mode 100644 index 0000000000..174a7ca630 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-perl/PerlIO-utf8_strict/Manifest @@ -0,0 +1 @@ +DIST PerlIO-utf8_strict-0.010.tar.gz 141471 BLAKE2B 8af17a289aa2c299e8675cf71fe4e6d42373c9672208c35edf9c9990ccb2343143d1902c214271ea76adbc214aaf3a2a1fc6da194393c76ab9225c787a001423 SHA512 623d7ba2f80f87196c172ce2b9ad789b14455cdb18ef8dd388af357e50e299128d9f631a1a034d671e46c6c72770c5900f18c83be4b2796285bb7f56afaa76a0 diff --git a/sdk_container/src/third_party/portage-stable/dev-perl/PerlIO-utf8_strict/PerlIO-utf8_strict-0.10.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-perl/PerlIO-utf8_strict/PerlIO-utf8_strict-0.10.0.ebuild new file mode 100644 index 0000000000..6badf00780 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-perl/PerlIO-utf8_strict/PerlIO-utf8_strict-0.10.0.ebuild @@ -0,0 +1,29 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DIST_AUTHOR=LEONT +DIST_VERSION=0.010 +inherit perl-module + +DESCRIPTION="Fast and correct UTF-8 IO" + +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" + +RDEPEND=" + virtual/perl-XSLoader +" +BDEPEND=" + ${RDEPEND} + virtual/perl-ExtUtils-MakeMaker + test? ( + virtual/perl-Carp + virtual/perl-Exporter + virtual/perl-File-Spec + virtual/perl-IO + dev-perl/Test-Exception + >=virtual/perl-Test-Simple-0.880.0 + ) +" diff --git a/sdk_container/src/third_party/portage-stable/dev-perl/PerlIO-utf8_strict/metadata.xml b/sdk_container/src/third_party/portage-stable/dev-perl/PerlIO-utf8_strict/metadata.xml new file mode 100644 index 0000000000..490685f2b2 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-perl/PerlIO-utf8_strict/metadata.xml @@ -0,0 +1,12 @@ + + + + + perl@gentoo.org + Gentoo Perl Project + + + PerlIO-utf8_strict + PerlIO::utf8_strict + + 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 9097a77c2f..eaf3323019 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 @@ -14,9 +14,11 @@ DIST cfg-if-1.0.3.crate 8719 BLAKE2B 5cd0ac122110740895b45cdf8e0f738f2de1882d5a0 DIST cryptography-45.0.6.tar.gz 744949 BLAKE2B 271143188d0a7485066b5c89fc0397e6f9e5f5219844961a85e9fd382fb0b05521a093fb943252ea2985bb89645a285345fcf66a6022a58176fe809a83376a81 SHA512 2c675834fa26db0773fe51855c248927a2a7d45963e07144afdfa73573ce1e6940d40849d23fb45f7599c0821e4dbbec956ce2bd993c614617312b8e67fe7f1f 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_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 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 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 new file mode 100644 index 0000000000..36d6d42b6e --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-python/cryptography/cryptography-46.0.2.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.109 + openssl@0.10.73 + 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/cython-3.1.3.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/cython/cython-3.1.3.ebuild index 24a437ad5c..13bbe1e80c 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/cython/cython-3.1.3.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-python/cython/cython-3.1.3.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/docutils/docutils-0.22.2.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/docutils/docutils-0.22.2.ebuild index 00820ad3bd..b3dc6d0c9d 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/docutils/docutils-0.22.2.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-python/docutils/docutils-0.22.2.ebuild @@ -17,7 +17,7 @@ HOMEPAGE=" # GPL-3+ only for emacs/rst.el LICENSE="BSD BSD-2 GPL-3+ PSF-2.4 public-domain" 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/pillow[${PYTHON_USEDEP}] diff --git a/sdk_container/src/third_party/portage-stable/dev-python/idna/Manifest b/sdk_container/src/third_party/portage-stable/dev-python/idna/Manifest index 7b80a83a5e..e41092816d 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/idna/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-python/idna/Manifest @@ -1 +1,2 @@ DIST idna-3.10.tar.gz 190490 BLAKE2B 887d92fd54b2f55b33856fcb9af3d6541a8cb28b9d49d1ee621dac7e1597ad5d2370000d6bfd895d5e515b4b6837949b5085fb391f283c375ffe4529072a8dd6 SHA512 bdc00fb42c48a34ec3df91b0592fe41785061f891a252ce82f168d99089a52e8e5bc7a823794f61e7915c0f691d911ed8b3bf7aecf3e2aeb3fc85da4ef35f47e +DIST idna-3.11.tar.gz 194582 BLAKE2B aae4678630c54453d924938bca45b75517be531c27e5b4f87ca2f4718b8feae735da43af3f7a0481cfb39b5e60decbca7abcf6e3c89e46945193d75220bc93fe SHA512 f99359b515ae66a124f21336c8b5a4d2842c2ac6f64b2f6f3e25502f376d799bec848fbbf49d886f4ff787e72a0aa49a3416d63f213bc872fc980eaaa977c917 diff --git a/sdk_container/src/third_party/portage-stable/dev-python/idna/idna-3.11.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/idna/idna-3.11.ebuild new file mode 100644 index 0000000000..593b1fc022 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-python/idna/idna-3.11.ebuild @@ -0,0 +1,22 @@ +# 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=flit +PYTHON_COMPAT=( python3_{11..14} python3_{13,14}t pypy3_11 ) + +inherit distutils-r1 pypi + +DESCRIPTION="Internationalized Domain Names in Applications (IDNA)" +HOMEPAGE=" + https://github.com/kjd/idna/ + https://pypi.org/project/idna/ +" + +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" + +distutils_enable_tests unittest 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 d5a1ca33b9..76e4a6bf54 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 +1,2 @@ DIST lark-1.2.2.tar.gz 252132 BLAKE2B 175f51930972f17051af6fefdf71ef4602f126d373888f30a630a703d038abe9bb2706da80564c72f19273f7d0bfbe351ab34e9d72fa1ad9dd7181232eefe61e SHA512 77cf3abf26b827cb60eae4c193de0c98780df7dfa3daa1c21ca5d73bc16387d77561d57e8a20c69ceaeb35531b7191fe765b9834587972e2697f3f07def96b6c +DIST lark-1.3.0.tar.gz 259551 BLAKE2B 0df524ef483efeb7ab42973a1c06146e4e50fb59c489606498cc7dd8db61be76c7cf12062981cdbe9121ad98a1f892940d0b4d592d63c7d8d1563de4feab2f65 SHA512 d20191bb98e823f078359ccf2f391f9d01c80d7481d3c8061f8a6a8083f069e11029017158f773683b8e662f6cc81075f5cb4965c5fecde3956f131e3938af3d 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 new file mode 100644 index 0000000000..48238c25d0 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-python/lark/lark-1.3.0.ebuild @@ -0,0 +1,37 @@ +# 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=" + 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/lazy-object-proxy/lazy-object-proxy-1.12.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/lazy-object-proxy/lazy-object-proxy-1.12.0.ebuild index 2b0a78fdbf..bfaa23fc44 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/lazy-object-proxy/lazy-object-proxy-1.12.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-python/lazy-object-proxy/lazy-object-proxy-1.12.0.ebuild @@ -18,7 +18,7 @@ HOMEPAGE=" LICENSE="BSD" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~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" IUSE="+native-extensions" BDEPEND=" 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 68dbd90096..73bb6d0459 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/markupsafe/Manifest b/sdk_container/src/third_party/portage-stable/dev-python/markupsafe/Manifest index d8e7134521..6d9328b18c 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/markupsafe/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-python/markupsafe/Manifest @@ -1 +1,2 @@ DIST markupsafe-3.0.2.tar.gz 20537 BLAKE2B ffccc47eb4b8048aee98b61a3b9dee28eb31323563b943ad96293541467ddb3d0d63906fbbc876ee30947a10afcb580456a10d502874601ba7c4e4d63594f114 SHA512 26946b928b001933f08a5dd90c5fe424a1d9e2bccfbf7194955d031a3df54a03eb48e4e47ea9564a25da33efeb62a043a53008f551fa1e8d71321bc276e19ce2 +DIST markupsafe-3.0.3.tar.gz 80313 BLAKE2B b2ccf12452ca34e301378feda975fa2f1e256ca8a6f59a0224dc7c30c779e52216721bd9386af4d7e4ee4a5a8fcd9e03dbb5ddf24a777ddeff1c28aff650ba77 SHA512 8c4ed04b467244f6bf99cd2a60ed922bc0569581f00cc5a13d9edcd0a4bc8b97c404edc4576f6146c7aa543bbd37cf52e5312d3bdd27758264d8751fdc7a646c 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 new file mode 100644 index 0000000000..2d9bc92594 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-python/markupsafe/markupsafe-3.0.3.ebuild @@ -0,0 +1,39 @@ +# 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 +PYPI_PN="MarkupSafe" +PYTHON_COMPAT=( python3_{11..14} python3_{13,14}t pypy3_11 ) + +inherit distutils-r1 pypi + +DESCRIPTION="Implements a XML/HTML/XHTML Markup safe string for Python" +HOMEPAGE=" + https://palletsprojects.com/p/markupsafe/ + https://github.com/pallets/markupsafe/ + https://pypi.org/project/MarkupSafe/ +" + +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" +IUSE="+native-extensions" + +EPYTEST_PLUGINS=() +distutils_enable_tests pytest + +src_prepare() { + distutils-r1_src_prepare + + if ! use native-extensions; then + sed -i -e '/run_setup/s:True:False:' setup.py || die + fi +} + +python_compile() { + local -x CIBUILDWHEEL=1 + distutils-r1_python_compile +} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/msgpack/Manifest b/sdk_container/src/third_party/portage-stable/dev-python/msgpack/Manifest index e75ebf2843..2c8c9ba447 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/msgpack/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-python/msgpack/Manifest @@ -1,2 +1,2 @@ -DIST msgpack-1.1.0.tar.gz 167260 BLAKE2B fd6497ce248fabae481de41cb27bccf001e75425564f16caff9f5dceb52d82949481589a92635f4c25178f03002daf604073fc2bb07c8133e81a8ee2f1ccb7c4 SHA512 2af3a6ae9a68a0261bf1cbb5ca6925004b421241c445d17023976fe38738049458937a578828cdf3c1f2fd19dfbbcceb21762957bfd459d6862adb110cad3faa DIST msgpack-1.1.1.tar.gz 173555 BLAKE2B 972ea4174b8b7c91c529c2db55483441fc1fd6c2964b145b73784f877f8699cd26829fd0d77574fb52af50ed3f8a0ac1b815cb67b24f751079ca2a430cec0b45 SHA512 dbd1055dd4b22b43193d381e7e15ff6e8dbb49f04d111bef84555429accc2bd1609359f72604bf0c1859d0b5f2e275d16773a0f8efd50ccebb5984c8b9e84309 +DIST msgpack-1.1.2.tar.gz 173581 BLAKE2B f1631eef4699525d58f258194a9ca216294eb0c4966b264eb2bd0cc175400793d2228941d7035ec7b37a49a2b2a1cdc3478f677940b262275248963e1f811798 SHA512 75b1536e180f6cdd2cb7b525d7c4bd79ddbe8807a5276b2e119f499769497552b682a7ef76df9a82957832b7646853be8c6df5bf2881c61d716fa3de9042e4fd diff --git a/sdk_container/src/third_party/portage-stable/dev-python/msgpack/msgpack-1.1.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/msgpack/msgpack-1.1.2.ebuild similarity index 90% rename from sdk_container/src/third_party/portage-stable/dev-python/msgpack/msgpack-1.1.0.ebuild rename to sdk_container/src/third_party/portage-stable/dev-python/msgpack/msgpack-1.1.2.ebuild index 4c92056f0d..12b8bc147e 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/msgpack/msgpack-1.1.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-python/msgpack/msgpack-1.1.2.ebuild @@ -18,7 +18,7 @@ HOMEPAGE=" LICENSE="Apache-2.0" SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos" IUSE="+native-extensions" # extension code is relying on CPython implementation details @@ -30,6 +30,7 @@ BDEPEND=" ) " +EPYTEST_PLUGINS=() distutils_enable_tests pytest python_prepare_all() { 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-11.2.1.ebuild index 5972d43257..21b2705550 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-11.2.1.ebuild @@ -19,7 +19,7 @@ TEST_IMAGE_COMMIT="716bdc4adaf97601e5b9a31c9be25f8975381ee1" DESCRIPTION="Python Imaging Library (fork)" HOMEPAGE=" - https://python-pillow.org/ + https://python-pillow.github.io/ https://github.com/python-pillow/Pillow/ https://pypi.org/project/pillow/ " diff --git a/sdk_container/src/third_party/portage-stable/dev-python/pillow/pillow-11.3.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/pillow/pillow-11.3.0.ebuild index 8167dd2512..bdac42de8d 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/pillow/pillow-11.3.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-python/pillow/pillow-11.3.0.ebuild @@ -19,7 +19,7 @@ TEST_IMAGE_COMMIT="7077675d2cda485d63de4aefe0fefbf6f655c5a0" DESCRIPTION="Python Imaging Library (fork)" HOMEPAGE=" - https://python-pillow.org/ + https://python-pillow.github.io/ https://github.com/python-pillow/Pillow/ https://pypi.org/project/pillow/ " diff --git a/sdk_container/src/third_party/portage-stable/dev-python/platformdirs/Manifest b/sdk_container/src/third_party/portage-stable/dev-python/platformdirs/Manifest index 4ec221137d..0de00930d8 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/platformdirs/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-python/platformdirs/Manifest @@ -1,2 +1,2 @@ -DIST platformdirs-4.3.8.tar.gz 21362 BLAKE2B dbacac7a6692a2011b8d47abf45ec1141331743336615340d84376ca468b478b0b7d211c6d1256028ecfb81f26b8f31cb290bcb21af4714dc77f834d956c8abc SHA512 131fc9f673313d0c8ea6bc36f6efed09eedc106a37194cb35c73980841b1314fc6f5e4362180d420c071d9c173dbb11f322baab0d264d1a3d9f02f4aa1e43169 DIST platformdirs-4.4.0.tar.gz 21634 BLAKE2B cdfa2e7bde37b5d1a5e3eaaca33001510a498538909f4c8d61bf4ea32c0f0085aa3bf4559392a6df12da7611e68b854f4d70abcef1eb830457f589074ffed3e4 SHA512 04580eec94b5aa1149427e7a44789dcd443d2b9a4f002669fe1a0e4380c12b97d02ef4314c96e340e664aa251e42a4fd4bfc0d69a8191851962255689544e3b0 +DIST platformdirs-4.5.0.tar.gz 21632 BLAKE2B 06de7250dd254e03c29d32d2dbb9da65078c480e2cbdafe3dafd5602182b4472f5078d66a30a04e22c8493904097a60c82ac734b1d0ba304088b0180878dbf7f SHA512 cefe512f8f6cbe989eacdffbbb98a964000855cca46faade62180837d7e21dd6c43eb172211e55fd04090df04e2ef416d49e92d7ccc3a0253ce2a88fc3fb9358 diff --git a/sdk_container/src/third_party/portage-stable/dev-python/platformdirs/platformdirs-4.4.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/platformdirs/platformdirs-4.4.0.ebuild index a8221b77fd..bd86bb804e 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/platformdirs/platformdirs-4.4.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-python/platformdirs/platformdirs-4.4.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 ~x64-solaris" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris" BDEPEND=" test? ( diff --git a/sdk_container/src/third_party/portage-stable/dev-python/platformdirs/platformdirs-4.3.8.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/platformdirs/platformdirs-4.5.0.ebuild similarity index 81% rename from sdk_container/src/third_party/portage-stable/dev-python/platformdirs/platformdirs-4.3.8.ebuild rename to sdk_container/src/third_party/portage-stable/dev-python/platformdirs/platformdirs-4.5.0.ebuild index 58c081c761..a8221b77fd 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/platformdirs/platformdirs-4.3.8.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-python/platformdirs/platformdirs-4.5.0.ebuild @@ -16,15 +16,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 ~x64-solaris" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" BDEPEND=" test? ( dev-python/appdirs[${PYTHON_USEDEP}] - dev-python/pytest-mock[${PYTHON_USEDEP}] ) " +EPYTEST_PLUGINS=( pytest-mock ) distutils_enable_tests pytest src_configure() { @@ -47,8 +47,3 @@ src_configure() { __version_tuple__ = version_tuple = (${PV//./, }) EOF } - -python_test() { - local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 - epytest -p pytest_mock -} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/resolvelib/Manifest b/sdk_container/src/third_party/portage-stable/dev-python/resolvelib/Manifest index 4485d5fda3..87e053bf5d 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/resolvelib/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-python/resolvelib/Manifest @@ -1,3 +1,4 @@ DIST resolvelib-1.0.1.gh.tar.gz 769608 BLAKE2B 7715f61d262cb79ce08f0431650e6213def4582a0774cf36dab722d88013f7bc9c72a31a957d3782e35b315158982c3311fe3e06e26bbf9040fa96b239934661 SHA512 a35f7fdbc3aba5b44fdf6b9c55b082156ca641dfe5825611be6364622bcaaf45faafa2c45bdd13d1b5723a55732759a806905ab4b6f366fba0474d1f808d91bc DIST resolvelib-1.1.0.gh.tar.gz 772503 BLAKE2B 6dfda2dc8bc8fc6c5bd53de6f4cd0a44fc39cd53a3a8b01c8a9f135f64ef2ec022248a87d8c8302af4a3c1ea171751de4cba26139a7231bdf143b115f048bfe9 SHA512 d3b2a49c4cd6e6a27bb1eb5a8672a2b4f6daa315b82f0f008a915094a59bd2f38ad64fd83fba4387a50686a3ededb13c24839afd4d45d9766467d7e70f7b863a DIST resolvelib-1.2.0.gh.tar.gz 773960 BLAKE2B dd325d305db82fb065286175c822ffd447e8ebe414497b831409789e2e0233384c6a4ea8a027e58e8c7a7ed4e48f512e61708cbeb6906bfc9113104fcb5e38fb SHA512 b4b2af8fa575c03417f8cdc020538c8614c4ef189b498120266ea88ae98e0a0df9cc2ade28b5c4dbdb9f21633652949f51813f252ee3b48866bbc950416678dc +DIST resolvelib-1.2.1.gh.tar.gz 775041 BLAKE2B 1ce96c359deaadc9707ca7fb334278bfe84255bfe579ff8ca3881f42a0d48a4ee9c873c8b24400ed898fa8c453ca192f77a4b342885e0f338ae285163c2a97f6 SHA512 516e74b532cdb48434dc1bb4eeeac64cdf73bcd717e83aa81e75f8c0dfaecddd11e4404b41a4296c4f696470352b080d58271dda90b41c966537adee630adfab diff --git a/sdk_container/src/third_party/portage-stable/dev-python/resolvelib/resolvelib-1.2.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/resolvelib/resolvelib-1.2.1.ebuild new file mode 100644 index 0000000000..0b744e5799 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-python/resolvelib/resolvelib-1.2.1.ebuild @@ -0,0 +1,33 @@ +# Copyright 2021-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 + +DESCRIPTION="Resolve abstract dependencies into concrete ones" +HOMEPAGE=" + https://github.com/sarugaku/resolvelib/ + https://pypi.org/project/resolvelib/ + +" +SRC_URI=" + https://github.com/sarugaku/resolvelib/archive/${PV}.tar.gz + -> ${P}.gh.tar.gz +" + +LICENSE="ISC" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + +BDEPEND=" + test? ( + dev-python/packaging[${PYTHON_USEDEP}] + ) +" + +EPYTEST_PLUGINS=() +distutils_enable_tests pytest diff --git a/sdk_container/src/third_party/portage-stable/dev-python/rich/Manifest b/sdk_container/src/third_party/portage-stable/dev-python/rich/Manifest index 2ab4c21eb8..9ce159c9f8 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/rich/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-python/rich/Manifest @@ -1 +1,2 @@ DIST rich-14.1.0.gh.tar.gz 15070577 BLAKE2B b1ce2783dc3292df250f416812a6bd7d1c6cc2f15a979f50dd6811771de3beb01f4baf8d5b1ec50c2929dd572578daac58e332017e62e60f51b45e34ed5ac953 SHA512 39971d8811b754e708aa422f71a777164aee1ec0b76df3b350b637fdd6c3d3a715ccc36dfce587355b4ec95ce73a8d197da1179be13c7c1d936ba45bd2073a64 +DIST rich-14.2.0.gh.tar.gz 15072049 BLAKE2B a44560624c3e3b77f279885935a239b162251087a4a58688c40ec7feb84fd7f4948b5966091231e71067131875c3ad71fd8ee4f5e72d90a872c5dc6f08d1d071 SHA512 8e1f7ee149ceac9074cf60ad1298f2b96cdeeb1f71e1e4181101ab0b0da858d03907998a8667fb73154abf02ae511c595257618bcc3321136df253842f8e4a85 diff --git a/sdk_container/src/third_party/portage-stable/dev-python/rich/rich-14.2.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/rich/rich-14.2.0.ebuild new file mode 100644 index 0000000000..e4fc93438a --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-python/rich/rich-14.2.0.ebuild @@ -0,0 +1,68 @@ +# Copyright 2022-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=poetry +PYTHON_COMPAT=( python3_{11..14} pypy3_11 ) + +inherit distutils-r1 optfeature + +DESCRIPTION="Python library for rendering rich text, tables, etc. to the terminal" +HOMEPAGE=" + https://github.com/Textualize/rich/ + https://pypi.org/project/rich/ +" +SRC_URI=" + https://github.com/Textualize/rich/archive/v${PV}.tar.gz + -> ${P}.gh.tar.gz +" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + +RDEPEND=" + dev-python/colorama[${PYTHON_USEDEP}] + >=dev-python/markdown-it-py-2.2.0[${PYTHON_USEDEP}] + >=dev-python/pygments-2.13.0[${PYTHON_USEDEP}] +" +BDEPEND=" + test? ( + >=dev-python/attrs-21.4.0[${PYTHON_USEDEP}] + ) +" + +EPYTEST_PLUGINS=() +distutils_enable_tests pytest + +python_test() { + local EPYTEST_DESELECT=( + # TODO + tests/test_console.py::test_size_can_fall_back_to_std_descriptors + # TODO: segfault in recursion (PyQt6 interfering?) + tests/test_traceback.py::test_recursive + # TODO: some random dep changes? + tests/test_markdown.py::test_inline_code + tests/test_syntax.py::test_blank_lines + tests/test_syntax.py::test_python_render_simple_indent_guides + # pygments version? + tests/test_syntax.py::test_from_path + tests/test_syntax.py::test_syntax_guess_lexer + ) + # version-specific output -- the usual deal + case ${EPYTHON} in + pypy3.11) + EPYTEST_DESELECT+=( + tests/test_inspect.py::test_inspect_integer_with_methods_python311 + ) + ;; + esac + + local -x COLUMNS=80 + epytest +} + +pkg_postinst() { + optfeature "integration with HTML widgets for Jupyter" dev-python/ipywidgets +} 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 d2bed8a20d..5cb6113c57 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/setuptools-scm/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-python/setuptools-scm/Manifest @@ -1,2 +1,4 @@ DIST setuptools_scm-8.3.1.tar.gz 78088 BLAKE2B 6cedb55fc16830d12a28fe5b662c371b134bc4d7ef0e6de446b71152e5d83a031cf763b0753042c96745e82bf9dc42fa7cfee05a9a7e7824a4cf659b0a401a51 SHA512 e924abf81c7ee466241c5d66c39b416c8b308f01df9e1498c55ad6ed9812fbf883d8bcafd6fdcdcb96c5ec42b868ae04088de1870ca09a650fa07eb3ea9901c8 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 diff --git a/sdk_container/src/third_party/portage-stable/dev-python/setuptools-scm/setuptools-scm-9.2.1.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/setuptools-scm/setuptools-scm-9.2.1.ebuild new file mode 100644 index 0000000000..38d40d6bad --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-python/setuptools-scm/setuptools-scm-9.2.1.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/tomli/Manifest b/sdk_container/src/third_party/portage-stable/dev-python/tomli/Manifest index 397cba47e3..02ff4f3c83 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/tomli/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-python/tomli/Manifest @@ -1,2 +1,4 @@ DIST tomli-2.2.1-py3-none-any.whl.zip 14257 BLAKE2B 1806b29c4331a153c3fcadf3eb4ca40576210fdbd91ce2708bc36714949df3aba17a19eb3f8e899a984039ae77d75ab1a630ee4e30eae0605495c38b8bf86279 SHA512 00a2c52a4e580c28d9c54a1b1e73e0c26f3108ffaa538b0bc0011c3c85397f4217ecbd136e77b6571bfcb1e055b28d70ac79a25571e2367e227a9b24aff57a97 DIST tomli-2.2.1.gh.tar.gz 137745 BLAKE2B 5660d11b8925fd39f3b9bc1957a06026e108cd3fee61988f0d25af2f9634d5fbafc7121ffa7dd1abc28013310c72253b58b7d4d267f4b1848ee6a9e3ff00698a SHA512 6bd2600b06b9d41f45ae34172380d3ec162d0e25a7602e8e77ee37bbe165674ff17afc39c4d1f87c9cec9bd1f02003ba5ebaa313a60efca64ef5124f77a2c887 +DIST tomli-2.3.0-py3-none-any.whl.zip 14408 BLAKE2B 4348f41b2e893cd2a56e8892b01383f6ae46055ba8b319343690c6e528ff8ebbc2d4fd95cc0dafacde6c0b5143ab2bb34161e10f542eb368d99e579d89b8bdd8 SHA512 aaa2268fa9d4d79c32742db994540b6b4ae84091a1a7a01e574f96ea322e36d1fe079db2adc32d4baf8db2e75e9b5109038444ce30d5166103e78c924b02c951 +DIST tomli-2.3.0.gh.tar.gz 138737 BLAKE2B d8913c3d1ba3b596f8f73bab2560411cc42c2405780cbfdb14ecf77a2e23962468b86a76a864d8de2a00e4288d4b8651e26185f380eebcb8f32fb57c19113154 SHA512 bd39f9ef09bf43dc48787541ef96781459f66899fab12f72b24e57ef13a8975e135b6a90b0ed7f44c0c3171a4b3afbe0c8a2a8ffeace4255771a0f331288835e diff --git a/sdk_container/src/third_party/portage-stable/dev-python/tomli/tomli-2.3.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/tomli/tomli-2.3.0.ebuild new file mode 100644 index 0000000000..f74984f1cd --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-python/tomli/tomli-2.3.0.ebuild @@ -0,0 +1,40 @@ +# Copyright 2021-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=no +PYTHON_COMPAT=( python3_{11..14} python3_{13,14}t pypy3_11 ) + +inherit distutils-r1 pypi + +DESCRIPTION="A lil' TOML parser" +HOMEPAGE=" + https://pypi.org/project/tomli/ + https://github.com/hukkin/tomli/ +" +SRC_URI=" + https://github.com/hukkin/tomli/archive/${PV}.tar.gz + -> ${P}.gh.tar.gz + $(pypi_wheel_url --unpack) +" + +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" + +BDEPEND=" + app-arch/unzip +" + +distutils_enable_tests unittest + +python_compile() { + python_domodule src/tomli "${WORKDIR}"/*.dist-info +} + +python_install() { + distutils-r1_python_install + python_optimize +} diff --git a/sdk_container/src/third_party/portage-stable/dev-python/typing-extensions/typing-extensions-4.15.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-python/typing-extensions/typing-extensions-4.15.0.ebuild index edb1594f47..a2fe10cf28 100644 --- a/sdk_container/src/third_party/portage-stable/dev-python/typing-extensions/typing-extensions-4.15.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-python/typing-extensions/typing-extensions-4.15.0.ebuild @@ -16,7 +16,7 @@ HOMEPAGE=" LICENSE="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="test" RESTRICT="!test? ( test )" diff --git a/sdk_container/src/third_party/portage-stable/dev-util/bpftool/bpftool-7.6.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-util/bpftool/bpftool-7.6.0.ebuild index b7516d18f9..e26ad853e9 100644 --- a/sdk_container/src/third_party/portage-stable/dev-util/bpftool/bpftool-7.6.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-util/bpftool/bpftool-7.6.0.ebuild @@ -36,7 +36,7 @@ else S="${WORKDIR}/bpftool-libbpf-v${PV}-sources" fi - KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86" + KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv x86" fi LICENSE="|| ( GPL-2 BSD-2 )" diff --git a/sdk_container/src/third_party/portage-stable/dev-util/gdbus-codegen/Manifest b/sdk_container/src/third_party/portage-stable/dev-util/gdbus-codegen/Manifest index e41e34504d..decd4c3433 100644 --- a/sdk_container/src/third_party/portage-stable/dev-util/gdbus-codegen/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-util/gdbus-codegen/Manifest @@ -1,3 +1,4 @@ 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 diff --git a/sdk_container/src/third_party/portage-stable/dev-util/gdbus-codegen/gdbus-codegen-2.86.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-util/gdbus-codegen/gdbus-codegen-2.86.0.ebuild new file mode 100644 index 0000000000..bb3d561f1b --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-util/gdbus-codegen/gdbus-codegen-2.86.0.ebuild @@ -0,0 +1,78 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 +GNOME_ORG_MODULE="glib" +PYTHON_COMPAT=( python3_{11..14} ) +PYTHON_REQ_USE="xml(+)" +DISTUTILS_USE_PEP517=setuptools +DISTUTILS_SINGLE_IMPL=1 + +inherit gnome.org distutils-r1 + +DESCRIPTION="GDBus code and documentation generator" +HOMEPAGE="https://www.gtk.org/" + +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" + +RDEPEND=" + ${PYTHON_DEPS} + >=dev-libs/glib-${PV} +" +DEPEND="${RDEPEND}" +BDEPEND=" + dev-libs/libxslt + app-text/docbook-xsl-stylesheets + >=dev-python/docutils-0.21.1 +" + +python_prepare_all() { + PATCHES=( + "${FILESDIR}/${PN}-2.56.1-sitedir.patch" + ) + distutils-r1_python_prepare_all + + local MAJOR_VERSION=$(ver_cut 1) + local MINOR_VERSION=$(ver_cut 2) + sed -e 's:@PYTHON@:python:' gdbus-codegen.in > gdbus-codegen || die + sed -e "s:@VERSION@:${PV}:" \ + -e "s:@MAJOR_VERSION@:${MAJOR_VERSION}:" \ + -e "s:@MINOR_VERSION@:${MINOR_VERSION}:" config.py.in > config.py || die + cp "${FILESDIR}/setup.py-2.32.4" setup.py || die "cp failed" + sed -e "s/@PV@/${PV}/" -i setup.py || die "sed setup.py failed" +} + +do_xsltproc_command() { + # Taken from meson.build for manual manpage building - keep in sync (also copied to dev-util/glib-utils) + xsltproc \ + --nonet \ + --stringparam man.output.quietly 1 \ + --stringparam funcsynopsis.style ansi \ + --stringparam man.th.extra1.suppress 1 \ + --stringparam man.authors.section.enabled 0 \ + --stringparam man.copyright.section.enabled 0 \ + -o "${2}" \ + http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl \ + "${1}" || die "manpage generation failed" +} + +src_compile() { + distutils-r1_src_compile + rst2man \ + "${WORKDIR}/glib-${PV}/docs/reference/gio/gdbus-codegen.rst" \ + "${WORKDIR}/glib-${PV}/docs/reference/gio/gdbus-codegen.1" +} + +src_test() { + einfo "Skipping tests. This package is tested by dev-libs/glib" + einfo "when merged with FEATURES=test" +} + +python_install_all() { + distutils-r1_python_install_all # no-op, but prevents QA warning + doman "${WORKDIR}/glib-${PV}/docs/reference/gio/gdbus-codegen.1" +} diff --git a/sdk_container/src/third_party/portage-stable/dev-util/glib-utils/Manifest b/sdk_container/src/third_party/portage-stable/dev-util/glib-utils/Manifest index e41e34504d..decd4c3433 100644 --- a/sdk_container/src/third_party/portage-stable/dev-util/glib-utils/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-util/glib-utils/Manifest @@ -1,3 +1,4 @@ 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 diff --git a/sdk_container/src/third_party/portage-stable/dev-util/glib-utils/glib-utils-2.86.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-util/glib-utils/glib-utils-2.86.0.ebuild new file mode 100644 index 0000000000..a8beae9e14 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-util/glib-utils/glib-utils-2.86.0.ebuild @@ -0,0 +1,53 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 +PYTHON_COMPAT=( python3_{11..14} ) +GNOME_ORG_MODULE="glib" + +inherit gnome.org python-single-r1 + +DESCRIPTION="Build utilities for GLib using projects" +HOMEPAGE="https://www.gtk.org/" + +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" + +RDEPEND="${PYTHON_DEPS}" +DEPEND="${RDEPEND}" +BDEPEND=" + >=dev-python/docutils-0.21.1 +" + +src_configure() { :; } + +do_rst2man_command() { + rst2man \ + --syntax-highlight=none \ + "${1}" "${2}" || die "manpage generation failed" +} + +src_compile() { + sed -e "s:@VERSION@:${PV}:g;s:@PYTHON@:python:g" gobject/glib-genmarshal.in > gobject/glib-genmarshal || die + sed -e "s:@VERSION@:${PV}:g;s:@PYTHON@:python:g" gobject/glib-mkenums.in > gobject/glib-mkenums || die + sed -e "s:@GLIB_VERSION@:${PV}:g;s:@PYTHON@:python:g" glib/gtester-report.in > glib/gtester-report || die + do_rst2man_command docs/reference/gobject/glib-genmarshal.rst docs/reference/gobject/glib-genmarshal.1 + do_rst2man_command docs/reference/gobject/glib-mkenums.rst docs/reference/gobject/glib-mkenums.1 + do_rst2man_command docs/reference/glib/gtester-report.rst docs/reference/glib/gtester-report.1 +} + +src_install() { + python_fix_shebang gobject/glib-genmarshal + python_fix_shebang gobject/glib-mkenums + python_fix_shebang glib/gtester-report + exeinto /usr/bin + doexe gobject/glib-genmarshal + doexe gobject/glib-mkenums + doexe glib/gtester-report + doman docs/reference/gobject/glib-genmarshal.1 + doman docs/reference/gobject/glib-mkenums.1 + doman docs/reference/glib/gtester-report.1 +} diff --git a/sdk_container/src/third_party/portage-stable/dev-util/maturin/Manifest b/sdk_container/src/third_party/portage-stable/dev-util/maturin/Manifest index ad394efb94..d1702c19d1 100644 --- a/sdk_container/src/third_party/portage-stable/dev-util/maturin/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-util/maturin/Manifest @@ -1,4 +1,6 @@ -DIST maturin-1.9.3-vendor.tar.xz 15638528 BLAKE2B bde95efcdcf0bcd0e559df0753b402756c1b8fa354c9be0b927f9dc969adb6b0b186914c6f35fcc0d7a02919c28e882de6b4d779fd51037ae3d6e963b23a1f16 SHA512 a3441ea6fd36e9284f6f8229ba2e370f5f43130e7bc4437e21d6a1612fb07b0671f29d98c2092c848db5dc22e1072ce06ae75f33bdc6a59e9297273c1fedcaf4 -DIST maturin-1.9.3.gh.tar.gz 563145 BLAKE2B a9b303d9279f007ce86f51fb423787e53e8a86e9c0cfda03795d85c8e781eca8141258e2ce7eeb8c0841205f69005d14ded6641e631cab872d2337c5e7f9969c SHA512 9c0c2e428db725b2f6e3bd06b166e2bb3448018c8f3b2e3e85effc4294cb0b7f25918761ac2fce70b4e98890b3f3fbeb93db64f5e5de39886d009ba8bc62a707 DIST maturin-1.9.4-vendor.tar.xz 15870760 BLAKE2B 8ea5a26d618fc2698ecf0a264a81d41a28b0e74602dc6004c6a72788c1b5f7e65e9efbc56e2e2b2418f550055ff4510bdb7d77445472da300a495d31a3e84a11 SHA512 901ff4dd5901ea21f6f0ef6c055e58f3592ef651f95c413669f4fabdc009c55a453247866ab23a4ebf4c0a1b987084eeb9719d0f474ec72587bc0fba964958e2 DIST maturin-1.9.4.gh.tar.gz 564039 BLAKE2B 968c3838ba27c358fca2d00c748ecc0b8a19ca4d0c2da61c6b2df9fb1a6387366bf9ff600a3850e9cc866fe1516e4be468f2eb229030a1d85a023e2d59106d02 SHA512 8fb6dcb1d75f47b41b3541b5084fdf3c64f4264b8f254a2767449963cde2f9f8dbef833273d245e87732ebfc8ff61139ef463b18888f422365361fc8fa966fca +DIST maturin-1.9.5-vendor.tar.xz 15793068 BLAKE2B bf627f4cd57f8eca78090fbe6372678f1c2c21b69fd5482a2fa883c9d02ac351093278b66dbdf64894137deac6a610106f67b396255a394c5bdf5ef50247afca SHA512 0cf29ccc3a55f9f66bf0e75243d01ffa1a231c2f2be4e07d0f09cec3174a137aaaffbff23d35e9dc978d45c0c9b4a6dd4d2972d7e4970bef055135e91d973273 +DIST maturin-1.9.5.gh.tar.gz 571851 BLAKE2B c884102228a2281303b11971150a2011ec50f8d64c8643229274866b336547e97ca43817ec55444d6fdf67eeecccf9d0b39c5e19c2d606db939fe5c36210a55a SHA512 afbd75a6f479b7ebf4e17efd3eb56e12ef313a686ba919962842437f4e2d2b381eb9a1fa287c222e4fabfa3f353db91aeb8429548d388819ed261a36f7fc1707 +DIST maturin-1.9.6-vendor.tar.xz 15789148 BLAKE2B 74b7b1b7ec6b0b0339f7833e6dbfe1ab77324edf6199a20e1820fb784da635ac5e60297201e225bc99b521a88eee75e9b45b8db447ad962585ee4cb158424fe1 SHA512 77a800cc9652529507628acbab7dd3c27fb80a3972499fd5c342054db4ae104c5e42d343f08d23fee56aa58d929c82a4f9c41c3cf172f4a3044b4f4279b1fe4a +DIST maturin-1.9.6.gh.tar.gz 571883 BLAKE2B f47d2fa2899d3e3f489985746afdc15854180915aaad1b365f16c11808e6338f7ea5d83792357bb907c81f59a78b872786d3d49365cd068112aea16e4b9aeb8c SHA512 6e1c43f2b81a5f13be11d5ab488a3f6614a447cedf7e1242006a1bcd738ef29482e04b9a255fa4b54f1893d7a534a9758977695c13d7261b0723dfe725367ff3 diff --git a/sdk_container/src/third_party/portage-stable/dev-util/maturin/maturin-1.9.4.ebuild b/sdk_container/src/third_party/portage-stable/dev-util/maturin/maturin-1.9.4.ebuild index 9dbf6aa5ed..0db7bd358c 100644 --- a/sdk_container/src/third_party/portage-stable/dev-util/maturin/maturin-1.9.4.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-util/maturin/maturin-1.9.4.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/maturin/maturin-1.9.3.ebuild b/sdk_container/src/third_party/portage-stable/dev-util/maturin/maturin-1.9.5.ebuild similarity index 98% rename from sdk_container/src/third_party/portage-stable/dev-util/maturin/maturin-1.9.3.ebuild rename to sdk_container/src/third_party/portage-stable/dev-util/maturin/maturin-1.9.5.ebuild index 0db7bd358c..9dbf6aa5ed 100644 --- a/sdk_container/src/third_party/portage-stable/dev-util/maturin/maturin-1.9.3.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-util/maturin/maturin-1.9.5.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/maturin/maturin-1.9.6.ebuild b/sdk_container/src/third_party/portage-stable/dev-util/maturin/maturin-1.9.6.ebuild new file mode 100644 index 0000000000..9dbf6aa5ed --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-util/maturin/maturin-1.9.6.ebuild @@ -0,0 +1,154 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +DISTUTILS_UPSTREAM_PEP517=standalone +PYTHON_COMPAT=( pypy3_11 python3_{11..14} ) +RUST_MIN_VER=1.75.0 +inherit cargo distutils-r1 flag-o-matic shell-completion toolchain-funcs + +DESCRIPTION="Build and publish crates with pyo3, rust-cpython and cffi bindings" +HOMEPAGE="https://www.maturin.rs/" +SRC_URI=" + https://github.com/PyO3/maturin/archive/refs/tags/v${PV}.tar.gz + -> ${P}.gh.tar.gz + https://dev.gentoo.org/~ionen/distfiles/${P}-vendor.tar.xz +" +# ^ tarball also includes test-crates' Cargo.lock(s) crates for tests + +LICENSE="|| ( Apache-2.0 MIT ) doc? ( CC-BY-4.0 OFL-1.1 )" +LICENSE+=" + 0BSD Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD Boost-1.0 MIT + MPL-2.0 Unicode-3.0 Unicode-DFS-2016 +" # crates +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +IUSE="doc +ssl test" +RESTRICT="!test? ( test )" + +RDEPEND=" + app-arch/xz-utils + app-arch/zstd:= + ssl? ( dev-libs/openssl:= ) +" +DEPEND="${RDEPEND}" +BDEPEND=" + virtual/pkgconfig + doc? ( app-text/mdbook ) + test? ( + $(python_gen_cond_dep 'dev-python/cffi[${PYTHON_USEDEP}]' 'python*') + dev-python/boltons[${PYTHON_USEDEP}] + dev-python/virtualenv[${PYTHON_USEDEP}] + dev-vcs/git + elibc_musl? ( dev-util/patchelf ) + ) +" + +QA_FLAGS_IGNORED="usr/bin/${PN}" + +src_prepare() { + distutils-r1_src_prepare + + # we build the Rust executable (just once) via cargo_src_compile + sed -i -e '/setuptools_rust/d' -e '/rust_extensions/d' setup.py || die + + if use test; then + # used to prevent use of network during tests, and silence pip + # if it finds unrelated issues with system packages (bug #913613) + cat > "${T}"/pip.conf <<-EOF || die + [global] + quiet = 2 + + [install] + no-index = yes + no-dependencies = yes + EOF + + # uv does not work easily w/ network-sandbox, force virtualenv + sed -i 's/"uv"/"uv-not-found"/' tests/common/mod.rs || die + + # increase timeouts for tests (bug #950332) + sed -i '/^#\[timeout/s/secs(60)/secs(300)/' tests/run.rs || die + + # used by *git_sdist_generator tests + git init -q || die + git config --global user.email "larry@gentoo.org" || die + git config --global user.name "Larry the Cow" || die + git add . || die + git commit -qm init || die + fi +} + +src_configure() { + export OPENSSL_NO_VENDOR=1 + export ZSTD_SYS_USE_PKG_CONFIG=1 + + # https://github.com/rust-lang/stacker/issues/79 + use s390 && ! is-flagq '-march=*' && + append-cflags $(test-flags-CC -march=z10) + + local myfeatures=( + # like release.yml + native-tls for better platform support than rustls + full + password-storage + $(usev ssl native-tls) + ) + + cargo_src_configure --no-default-features +} + +python_compile_all() { + cargo_src_compile + + use !doc || mdbook build -d html guide || die + + if ! tc-is-cross-compiler; then + local maturin=$(cargo_target_dir)/maturin + "${maturin}" completions bash > "${T}"/${PN} || die + "${maturin}" completions fish > "${T}"/${PN}.fish || die + "${maturin}" completions zsh > "${T}"/_${PN} || die + else + ewarn "shell completion files were skipped due to cross-compilation" + fi +} + +python_test() { + local -x MATURIN_TEST_PYTHON=${EPYTHON} + local -x PIP_CONFIG_FILE=${T}/pip.conf + local -x VIRTUALENV_SYSTEM_SITE_PACKAGES=1 + + # need this for (new) python versions not yet recognized by pyo3 + local -x PYO3_USE_ABI3_FORWARD_COMPATIBILITY=1 + + local skip=( + # picky cli output test that easily benignly fail (bug #937992) + --skip cli_tests + # avoid need for wasm over a single hello world test + --skip integration_wasm_hello_world + # fragile depending on rust version, also wants libpypy*-c.so for pypy + --skip pyo3_no_extension_module + # unimportant tests that require uv, and not obvious to get it + # to work with network-sandbox (not worth the trouble) + --skip develop_hello_world::case_2 + --skip develop_pyo3_ffi_pure::case_2 + # compliance test using zig requires an old libc to pass (bug #946967) + --skip integration_pyo3_mixed_py_subdir + ) + + cargo_src_test -- "${skip[@]}" +} + +python_install_all() { + dobin "$(cargo_target_dir)"/maturin + + dodoc Changelog.md README.md + use doc && dodoc -r guide/html + + if ! tc-is-cross-compiler; then + dobashcomp "${T}"/${PN} + dofishcomp "${T}"/${PN}.fish + dozshcomp "${T}"/_${PN} + fi +} diff --git a/sdk_container/src/third_party/portage-stable/dev-util/patchutils/Manifest b/sdk_container/src/third_party/portage-stable/dev-util/patchutils/Manifest index b895d9da03..779cb271db 100644 --- a/sdk_container/src/third_party/portage-stable/dev-util/patchutils/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-util/patchutils/Manifest @@ -1 +1,2 @@ DIST patchutils-0.4.2.tar.xz 159504 BLAKE2B 3ffcda8497b010a88e8601005871fb691ea8cac6158276862ba8e4192c333a335965288f9b5451c2fbc0a873ef95eb4a485d265387b43b0cec31b6c18d38f88e SHA512 20970d52fd43c09dc7799297b9a9eb6f60ba29ecc750d49381a2dc52273dfe484a47696cddd541f623394fa3486734cf337297cbeab6b1b244511c7740f46897 +DIST patchutils-0.4.4.tar.xz 424248 BLAKE2B 65a855a5164c193262002dc2a13a5a253d5b308ed431d49fd231ef587df2c9924b26b6c683c6162a9810290aaa65c9a4fba5e3b503517d1f815e0bd30e7be9dc SHA512 26f3ee959d7f8d7d5718ecf361436709559c62d6235114faac9a84442e9df4fb271f85eea5d96dae3969e96d88fdd9c1a9b5246696ef548fad71a8f29a026a84 diff --git a/sdk_container/src/third_party/portage-stable/dev-util/patchutils/patchutils-0.4.4-r1.ebuild b/sdk_container/src/third_party/portage-stable/dev-util/patchutils/patchutils-0.4.4-r1.ebuild new file mode 100644 index 0000000000..591624f979 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-util/patchutils/patchutils-0.4.4-r1.ebuild @@ -0,0 +1,50 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{11..14} ) + +inherit autotools python-single-r1 toolchain-funcs + +DESCRIPTION="Collection of tools that operate on patch files" +HOMEPAGE="https://cyberelk.net/tim/software/patchutils/" +SRC_URI="https://github.com/twaugh/patchutils/releases/download/${PV}/${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 ~ppc-macos" +IUSE="pcre" +REQUIRED_USE="${PYTHON_REQUIRED_USE}" + +RDEPEND=" + !Include git-svn for dev-vcs/subversion support Include the 'gitk' and 'git gui' tools Adds support for push'ing to HTTP/HTTPS repositories via DAV + Adds Perl bindings and tools such as git-send-email cpe:/a:git:git 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 2e799f1435..0a8b93c215 100644 --- a/sdk_container/src/third_party/portage-stable/eclass/cmake.eclass +++ b/sdk_container/src/third_party/portage-stable/eclass/cmake.eclass @@ -106,7 +106,8 @@ fi # @DESCRIPTION: # Warn about variables that are declared on the command line # but not used. Might give false-positives. -# "no" to disable (default) or anything else to enable. +# "no" to disable or anything else to enable. +# The default is set to "yes" (enabled). : "${CMAKE_WARN_UNUSED_CLI:=yes}" # @ECLASS_VARIABLE: CMAKE_EXTRA_CACHE_FILE @@ -163,7 +164,7 @@ case ${CMAKE_MAKEFILE_GENERATOR} in esac if [[ ${PN} != cmake ]]; then - BDEPEND+=" >=dev-build/cmake-3.20.5" + BDEPEND+=" >=dev-build/cmake-3.28.5" fi # @FUNCTION: cmake_run_in @@ -303,6 +304,8 @@ _cmake_check_build_dir() { if [[ ${EAPI} == 7 ]]; then : "${CMAKE_USE_DIR:=${S}}" else + # Since EAPI-8 we use current working directory, bug #704524 + # esp. test with 'special' pkgs like: app-arch/brotli, net-libs/quiche : "${CMAKE_USE_DIR:=${PWD}}" fi if [[ -n ${CMAKE_IN_SOURCE_BUILD} ]]; then @@ -394,48 +397,11 @@ _cmake_modify-cmakelists() { _EOF_ } -# @FUNCTION: cmake_src_prepare +# @FUNCTION: _cmake4_callout +# @INTERNAL # @DESCRIPTION: -# Apply ebuild and user patches. *MUST* be run or cmake_src_configure will fail. -cmake_src_prepare() { - debug-print-function ${FUNCNAME} "$@" - - if [[ ${EAPI} == 7 ]]; then - pushd "${S}" > /dev/null || die # workaround from cmake-utils - # in EAPI-8, we use current working directory instead, bug #704524 - # esp. test with 'special' pkgs like: app-arch/brotli, net-libs/quiche - fi - _cmake_check_build_dir - - default_src_prepare - - # check if CMakeLists.txt exists and if not then die - if [[ ! -e ${CMAKE_USE_DIR}/CMakeLists.txt ]] ; then - eerror "Unable to locate CMakeLists.txt under:" - eerror "\"${CMAKE_USE_DIR}/CMakeLists.txt\"" - eerror "Consider not inheriting the cmake eclass." - die "FATAL: Unable to find CMakeLists.txt" - fi - - local modules_list - if [[ ${EAPI} == 7 && $(declare -p CMAKE_REMOVE_MODULES_LIST) != "declare -a"* ]]; then - modules_list=( ${CMAKE_REMOVE_MODULES_LIST} ) - else - modules_list=( "${CMAKE_REMOVE_MODULES_LIST[@]}" ) - fi - - local name - for name in "${modules_list[@]}" ; do - if [[ ${EAPI} == 7 ]]; then - find "${S}" -name "${name}.cmake" -exec rm -v {} + || die - else - find -name "${name}.cmake" -exec rm -v {} + || die - fi - done - - # Remove dangerous things. - _cmake_modify-cmakelists - +# 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." @@ -445,26 +411,93 @@ cmake_src_prepare() { eqawarn "CMake 4 detected; building with -DCMAKE_POLICY_VERSION_MINIMUM=3.5" eqawarn "This is merely a workaround and *not* a permanent fix." fi - if [[ ${EAPI} == 7 ]]; then - eqawarn "QA Notice: EAPI=7 detected; this package is now a prime last-rites target." - fi fi +} + +# @FUNCTION: cmake_prepare +# @DESCRIPTION: +# Check existence of and sanitise CMake files, then make ${CMAKE_USE_DIR} +# read-only. *MUST* be run or cmake_src_configure will fail. EAPI-8 only. +cmake_prepare() { + debug-print-function ${FUNCNAME} "$@" if [[ ${EAPI} == 7 ]]; then - popd > /dev/null || die + eerror "${FUNCNAME} is EAPI-8 only. Call cmake_src_prepare instead." + die "FATAL: Forbidden function call." fi - # Make ${CMAKE_USE_DIR} (in EAPI-7: ${S}) read-only in order to detect - # broken build systems. + _cmake_check_build_dir + + # Check if CMakeLists.txt exists and if not then die + if [[ ! -e ${CMAKE_USE_DIR}/CMakeLists.txt ]] ; then + eerror "Unable to locate CMakeLists.txt under:" + eerror "\"${CMAKE_USE_DIR}/CMakeLists.txt\"" + eerror "Consider not inheriting the cmake eclass." + die "FATAL: Unable to find CMakeLists.txt" + fi + + local modules_list=( "${CMAKE_REMOVE_MODULES_LIST[@]}" ) + + local name + for name in "${modules_list[@]}" ; do + find -name "${name}.cmake" -exec rm -v {} + || die + done + + # Remove dangerous things. + _cmake_modify-cmakelists + _cmake4_callout + + # Make ${CMAKE_USE_DIR} read-only in order to detect broken build systems if [[ ${CMAKE_QA_SRC_DIR_READONLY} && ! ${CMAKE_IN_SOURCE_BUILD} ]]; then - if [[ ${EAPI} == 7 ]]; then - chmod -R a-w "${S}" - else - chmod -R a-w "${CMAKE_USE_DIR}" - fi + chmod -R a-w "${CMAKE_USE_DIR}" fi - _CMAKE_SRC_PREPARE_HAS_RUN=1 + _CMAKE_PREPARE_HAS_RUN=1 +} + +# @FUNCTION: cmake_src_prepare +# @DESCRIPTION: +# Apply ebuild and user patches via default_src_prepare. In case of +# conflict with another eclass' src_prepare phase, use cmake_prepare +# instead (EAPI-8 only). +# In EAPI-7, this phase *must* be run or cmake_src_configure will fail. +cmake_src_prepare() { + debug-print-function ${FUNCNAME} "$@" + + if [[ ${EAPI} == 7 ]]; then + pushd "${S}" > /dev/null || die # workaround from cmake-utils + default_src_prepare + _cmake_check_build_dir + # check if CMakeLists.txt exists and if not then die + if [[ ! -e ${CMAKE_USE_DIR}/CMakeLists.txt ]] ; then + eerror "Unable to locate CMakeLists.txt under:" + eerror "\"${CMAKE_USE_DIR}/CMakeLists.txt\"" + eerror "Consider not inheriting the cmake eclass." + die "FATAL: Unable to find CMakeLists.txt" + fi + local modules_list + if [[ $(declare -p CMAKE_REMOVE_MODULES_LIST) != "declare -a"* ]]; then + modules_list=( ${CMAKE_REMOVE_MODULES_LIST} ) + else + modules_list=( "${CMAKE_REMOVE_MODULES_LIST[@]}" ) + fi + local name + for name in "${modules_list[@]}" ; do + find "${S}" -name "${name}.cmake" -exec rm -v {} + || die + done + _cmake_modify-cmakelists # Remove dangerous things. + _cmake4_callout + 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 + fi } # @VARIABLE: MYCMAKEARGS @@ -490,8 +523,13 @@ cmake_src_prepare() { cmake_src_configure() { debug-print-function ${FUNCNAME} "$@" - [[ ${_CMAKE_SRC_PREPARE_HAS_RUN} ]] || \ - die "FATAL: cmake_src_prepare has not been run" + if [[ -z ${_CMAKE_PREPARE_HAS_RUN} ]]; then + if [[ ${EAPI} == 7 ]]; then + die "FATAL: cmake_src_prepare has not been run" + else + die "FATAL: cmake_src_prepare (or cmake_prepare) has not been run" + fi + fi _cmake_check_build_dir @@ -779,9 +817,11 @@ cmake_src_test() { eerror "--START TEST LOG--------------------------------------------------------------" cat "${BUILD_DIR}/Testing/Temporary/LastTest.log" eerror "--END TEST LOG----------------------------------------------------------------" - die "Tests failed." + die -n "Tests failed." else - die "Tests failed. When you file a bug, please attach the following file: \n\t${BUILD_DIR}/Testing/Temporary/LastTest.log" + eerror "Tests failed. When you file a bug, please attach the following file:" + eerror "\t${BUILD_DIR}/Testing/Temporary/LastTest.log" + die -n "Tests failed." fi # die might not die due to nonfatal @@ -796,7 +836,7 @@ cmake_src_test() { cmake_src_install() { debug-print-function ${FUNCNAME} "$@" - DESTDIR="${D}" cmake_build install "$@" + DESTDIR="${D}" cmake_build "$@" install if [[ ${EAPI} == 7 ]]; then pushd "${S}" > /dev/null || die diff --git a/sdk_container/src/third_party/portage-stable/eclass/java-utils-2.eclass b/sdk_container/src/third_party/portage-stable/eclass/java-utils-2.eclass index 3b2b9d6a5b..20d189ff8c 100644 --- a/sdk_container/src/third_party/portage-stable/eclass/java-utils-2.eclass +++ b/sdk_container/src/third_party/portage-stable/eclass/java-utils-2.eclass @@ -1305,7 +1305,7 @@ java-pkg_getjar() { classpath=$(java-config --classpath=${pkg}) [[ $? != 0 ]] && die ${error_msg} - java-pkg_ensure-dep "${build_only}" "${pkg}" + [[ -z ${PORTAGE_QUIET} ]] && java-pkg_ensure-dep "${build_only}" "${pkg}" # Record the package(Virtual) as a dependency and then set build_only # So that individual jars are not recorded. @@ -1325,7 +1325,7 @@ java-pkg_getjar() { if [[ "$(basename ${jar})" == "${target_jar}" ]] ; then # Only record jars that aren't build-only - if [[ -z "${record_jar}" ]]; then + if [[ -z "${record_jar}" && -z ${PORTAGE_QUIET} ]]; then if [[ -z "${build_only}" ]]; then java-pkg_record-jar_ "${pkg}" "${jar}" else 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 f454a066a3..e213273a3a 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 @@ -1420,7 +1420,7 @@ epytest() { [[ ${NO_COLOR} ]] && color=no mkdir -p "${T}/pytest-xml" || die - local junit_xml=$(mktemp "${T}/pytest-xml/${EPYTHON}-XXX.xml" || die) + local junit_xml=$(mktemp "${T}/pytest-xml/${EPYTHON}-XXXXXX.xml" || die) local args=( # verbose progress reporting and tracebacks 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 3c9693e00f..309a3f4d5d 100644 --- a/sdk_container/src/third_party/portage-stable/eclass/rust.eclass +++ b/sdk_container/src/third_party/portage-stable/eclass/rust.eclass @@ -67,7 +67,9 @@ fi # @DESCRIPTION: # Definitive list of Rust slots and the associated LLVM slot, newest first. declare -A -g -r _RUST_LLVM_MAP=( - ["9999"]=20 + ["9999"]=21 + ["1.91.0"]=21 + ["1.90.0"]=20 ["1.89.0"]=20 ["1.88.0"]=20 ["1.87.0"]=20 @@ -96,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.90.0" "1.89.0" "1.88.0" "1.87.0" diff --git a/sdk_container/src/third_party/portage-stable/eclass/toolchain-funcs.eclass b/sdk_container/src/third_party/portage-stable/eclass/toolchain-funcs.eclass index fa2820035c..3787a84805 100644 --- a/sdk_container/src/third_party/portage-stable/eclass/toolchain-funcs.eclass +++ b/sdk_container/src/third_party/portage-stable/eclass/toolchain-funcs.eclass @@ -659,11 +659,11 @@ _tc-has-openmp() { # build-time, e.g. # @CODE # pkg_pretend() { -# [[ ${MERGE_TYPE} != binary ]] && tc-check-min_ver gcc 13.2.0 +# [[ ${MERGE_TYPE} != binary ]] && tc-check-min_ver gcc 13.2 # } # # pkg_setup() { -# [[ ${MERGE_TYPE} != binary ]] && tc-check-min_ver gcc 13.2.0 +# [[ ${MERGE_TYPE} != binary ]] && tc-check-min_ver gcc 13.2 # } # @CODE tc-check-min_ver() { 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 5d7bf2a675..0acb2cb365 100644 --- a/sdk_container/src/third_party/portage-stable/eclass/toolchain.eclass +++ b/sdk_container/src/third_party/portage-stable/eclass/toolchain.eclass @@ -1295,6 +1295,7 @@ toolchain_src_configure() { is_cobol && GCC_LANG+=",cobol" is_modula2 && GCC_LANG+=",m2" is_rust && GCC_LANG+=",rust" + is_jit && GCC_LANG+=",jit" _need_ada_bootstrap_mangling() { if [[ ${CATEGORY}/${PN} == dev-lang/gnat-gpl ]] ; then @@ -1874,6 +1875,14 @@ toolchain_src_configure() { confgcc+=( --with-gxx-libcxx-include-dir="${ESYSROOT}"/usr/include/c++/v1 ) fi + if is_jit || _tc_use_if_iuse libgdiagnostics ; then + confgcc+=( --enable-host-shared ) + fi + + if tc_version_is_at_least 15.1 ${PV} ; then + confgcc+=( $(use_enable libgdiagnostics) ) + fi + # TODO: Ignore RCs here (but TOOLCHAIN_IS_RC isn't yet an eclass var) if [[ ${PV} == *_p* && -f "${S}"/gcc/doc/gcc.info ]] ; then # Safeguard against https://gcc.gnu.org/PR106899 being fixed @@ -1924,66 +1933,6 @@ toolchain_src_configure() { gcc_shell="${BROOT}"/bin/sh fi - if is_jit || _tc_use_if_iuse libgdiagnostics ; then - einfo "Configuring shared gcc for JIT/libgdiagnostics" - - local confgcc_jit=( - "${confgcc[@]}" - - --enable-lto - --disable-analyzer - --disable-bootstrap - --disable-cet - --disable-default-pie - --disable-default-ssp - --disable-gcov - --disable-libada - --disable-libatomic - --disable-libgomp - --disable-libitm - --disable-libquadmath - --disable-libsanitizer - --disable-libssp - --disable-libstdcxx-pch - --disable-libvtv - --disable-nls - --disable-objc-gc - --disable-systemtap - - --enable-host-shared - - # Might be used for the just-built GCC. Easier to just - # respect USE=graphite here in case the user passes some - # graphite flags rather than try strip them out. - $(use_with graphite isl) - --with-system-zlib - ) - - if is_jit ; then - confgcc_jit+=( --enable-languages=jit ) - else - confgcc_jit+=( --enable-languages=c,c++ ) - fi - - if tc_has_feature zstd ; then - confgcc_jit+=( $(use_with zstd) ) - fi - - if tc_version_is_at_least 15.1 ${PV} ; then - confgcc_jit+=( $(use_enable libgdiagnostics) ) - fi - - if tc_version_is_at_least 13.1 ; then - confgcc_jit+=( --disable-fixincludes ) - fi - - mkdir -p "${WORKDIR}"/build-jit || die - pushd "${WORKDIR}"/build-jit > /dev/null || die - - CONFIG_SHELL="${gcc_shell}" edo "${gcc_shell}" "${S}"/configure "${confgcc_jit[@]}" - popd > /dev/null || die - fi - CONFIG_SHELL="${gcc_shell}" edo "${gcc_shell}" "${S}"/configure "${confgcc[@]}" # Return to whatever directory we were in before @@ -2401,12 +2350,6 @@ gcc_do_make() { ) fi - if is_jit || _tc_use_if_iuse libgdiagnostics ; then - # TODO: docs for jit? - einfo "Building JIT" - emake -C "${WORKDIR}"/build-jit "${emakeargs[@]}" - fi - einfo "Compiling ${PN} (${GCC_MAKE_TARGET})..." pushd "${WORKDIR}"/build >/dev/null || die emake "${emakeargs[@]}" ${GCC_MAKE_TARGET} @@ -2430,7 +2373,6 @@ gcc_do_make() { #---->> src_test <<---- -# TODO: add JIT testing toolchain_src_test() { # GCC's testsuite is a special case. # @@ -2609,28 +2551,6 @@ toolchain_src_install() { done < <(find gcc/include*/ -name '*.h') fi - if is_jit || _tc_use_if_iuse libgdiagnostics ; then - # See https://gcc.gnu.org/onlinedocs/gcc-11.3.0/jit/internals/index.html#packaging-notes - # and bug #843341. - # - # Both of the non-JIT and JIT builds are configured to install to $(DESTDIR) - # Install the configuration with --enable-host-shared first - # *then* the one without, so that the faster build - # of "cc1" et al overwrites the slower build. - # - # Do the 'make install' from the build directory - pushd "${WORKDIR}"/build-jit > /dev/null || die - S="${WORKDIR}"/build-jit emake DESTDIR="${D}" -j1 install - - # This one comes with binutils - find "${ED}" -name libiberty.a -delete || die - - # Move the libraries to the proper location - gcc_movelibs - - popd > /dev/null || die - fi - # Do the 'make install' from the build directory # # Unfortunately, we have to use -j1 for make install. Upstream @@ -2811,8 +2731,8 @@ toolchain_src_install() { export QA_PRESTRIPPED="usr/lib*/go/*/*/*.gox" # Disable RANDMMAP so PCH works, bug #301299 - pax-mark -r "${ED}/libexec/gcc/${CTARGET}/${GCC_CONFIG_VER}/cc1" - pax-mark -r "${ED}/libexec/gcc/${CTARGET}/${GCC_CONFIG_VER}/cc1plus" + pax-mark -r "${D}${PREFIX}/libexec/gcc/${CTARGET}/${GCC_CONFIG_VER}/cc1" + pax-mark -r "${D}${PREFIX}/libexec/gcc/${CTARGET}/${GCC_CONFIG_VER}/cc1plus" if [[ -n ${TOOLCHAIN_HAS_TESTS} ]] && use test ; then mkdir "${T}"/test-results || die @@ -2838,16 +2758,14 @@ gcc_movelibs() { # libgccjit gets installed to /usr/lib, not /usr/$(get_libdir). Probably # due to a bug in gcc build system. - if [[ ${PWD} == "${WORKDIR}"/build-jit ]] ; then - dodir "${LIBPATH#${EPREFIX}}" + dodir "${LIBPATH#${EPREFIX}}" - if is_jit ; then - mv "${ED}"/usr/lib/libgccjit* "${D}${LIBPATH}" || die - fi + if is_jit ; then + mv "${ED}"/usr/lib/libgccjit* "${D}${LIBPATH}" || die + fi - if _tc_use_if_iuse libgdiagnostics ; then - mv "${ED}"/usr/lib/libgdiagnostics* "${D}${LIBPATH}" || die - fi + if _tc_use_if_iuse libgdiagnostics ; then + mv "${ED}"/usr/lib/libgdiagnostics* "${D}${LIBPATH}" || die fi # For all the libs that are built for CTARGET, move them into the @@ -3252,7 +3170,7 @@ toolchain_death_notice() { # TODO: For bootstrap comparison failures, include the stage2 & stage3 # differing objects to avoid having to ask reporters to manually collect... local dir - for dir in "${WORKDIR}"/build-jit "${WORKDIR}"/build ; do + for dir in "${WORKDIR}"/build ; do if [[ -e "${dir}" ]] ; then pushd "${WORKDIR}" >/dev/null (echo '' | $(tc-getCC ${CTARGET}) ${CFLAGS} -v -E - 2>&1) > "${dir}"/gccinfo.log diff --git a/sdk_container/src/third_party/portage-stable/net-dns/bind/Manifest b/sdk_container/src/third_party/portage-stable/net-dns/bind/Manifest index 1c4fc567ff..4f53639e8f 100644 --- a/sdk_container/src/third_party/portage-stable/net-dns/bind/Manifest +++ b/sdk_container/src/third_party/portage-stable/net-dns/bind/Manifest @@ -2,7 +2,9 @@ DIST bind-9.18.29.tar.xz 5562720 BLAKE2B f3e7de6936362bcce4993e401ed8fdd9d597459 DIST bind-9.18.31.tar.xz 5385812 BLAKE2B e069ab3caab887a87220b54804e5b19a4c21b8d3e4e8f1bc6a7135b3990a228d6c48b1ca4a22c75242485275eff1de145a9aff89addf81124e7dfcafd8ab30cf SHA512 e51873484be3ee367eb1e601b8e0adc45abcdb16df04021ea42ffcc51b99821f8b30f67b2a693a90ad3efa51698a651c8da9d7947ee8fa19680f627afe1f7034 DIST bind-9.18.37.tar.xz 5358128 BLAKE2B 59753a594e1e8249b9104377260701a9453eeecb6a233a94a33c6a134a6368c5c0b9473c4e08d956d0746a331dc7b121550f5e426a521d6c8d0441d9164f0547 SHA512 9789cb3fa7739cc7e1b137d1642861d9517adc4391e2f8c526bfa271e13f7489794ed20cb5f64c26e432d7b79cfe7aa1f7d59c476fd2749bc2dccfb85c514943 DIST bind-9.18.38.tar.xz 5362772 BLAKE2B 04a7eeba174dc0333f5f4f3a0767ac66a0f81665dc26dc5a88434ab1c1c12fdd2deaee91b62f77001a92283d40942a0487f6d314b465d9dac6c817d4f78166d4 SHA512 38710646a817dca0df6247b660cd244c79da13d0fed2898da139ae206bc8732fddd93af6fc2cbeca805c0c0d0789ec22eacf26789db288154581478ab2eaf44c +DIST bind-9.18.39.tar.xz 5383056 BLAKE2B 5629a4973273d0ef132c94634be2787a916e6cf2dd2d4dfb12c5a27359ffc8eda26bbfc8650a03fbb5f5b98d834527289a213c74f0c5d31a68f4781053fed3bc SHA512 fd6d45c9cb9c599d8770c18801fad2f177faf3a8af82948800d186ae6dc9eb2c894b61802def0841eb722c615c93c077b55368204f0cf2737a3c50d949efca07 DIST bind-9.20.10.tar.xz 5677276 BLAKE2B e5a7824ff5b901be447a2f4f067aa8b3345eb8187ed86f3bf6bc623e2b6c812722667eefd1f915026dab078846011e222336a30c4da640c4e54aa828398b180d SHA512 2d4510e2e73aed94424b065b9371a1422f1b53ec8c01b281fdc78f90401dcd229b7095a175bb4f4d44b07d81e5edbee78bbfb1bf31b981e26fe1ea6df53d415d DIST bind-9.20.11.tar.xz 5674856 BLAKE2B 582e6de2699713e870dfc853f461c78b2d2b505bed0b571f853c94a731be9006783f45a4f897692289c1a9411725eac0b4de3818f1641221e62754316f410081 SHA512 bacc19eaf37133d37202db521e2c6727fc4e494562caad68e7c22e8dad84411684ba2c7430aa3bb2d916b9078c3aab8277d35e0f9b1f9893b89071de7ad7eee4 +DIST bind-9.20.13.tar.xz 5762540 BLAKE2B c3738ebe468849293bec3d89499d7607b76fb636c7d21833dd56414fb569c1edfaa84d152ff9febfe0ebd5c65fa351423fbfbeaaee294d57949eb45631fd5623 SHA512 2e4be2153f80f60b97c0854ce69e5eb5c343713f5544ef6b9b9229d1ba65ba13e092c17170ae5ae328a97d0ccd8cb7c8cc8259baea70827a841d251423bc0a1c DIST bind-9.20.7.tar.xz 5655168 BLAKE2B c5198939382e7295b4dfcb2ddbd86e5bccc10047d5e963dab2381404eb7a14543218e3caa438b395a2982cb607da84012f3a76a41c790a48ed615238bc080b5c SHA512 b9570c0c6588819108017d30dc7fb5e2f34361f941186d29da3d2830bbe3333c8c16bdb6581f5bec4786d90b74db860a9cad5f66d4f1c65168eae69f401a9df0 DIST bind-9.20.9.tar.xz 5668452 BLAKE2B 40a1428d2da9d92b3604f04234b2ff44701abcf2ea22883caea7fb4ee157547125fd68accb8fe10853ff64cd5018fa89e36eeb53021fa3ee9bc056e05ac228d6 SHA512 78efb4c4a5d78bd04efe222982efa1d6bb6748965e40d816d9e4329d6f2687a43d1e439bc3f98c00c85abaf8fc435063bcbe2d96a61b252fe3df0a8affa19f8f diff --git a/sdk_container/src/third_party/portage-stable/net-dns/bind/bind-9.18.38.ebuild b/sdk_container/src/third_party/portage-stable/net-dns/bind/bind-9.18.38.ebuild index d5fe3e00d7..a7f5f8789c 100644 --- a/sdk_container/src/third_party/portage-stable/net-dns/bind/bind-9.18.38.ebuild +++ b/sdk_container/src/third_party/portage-stable/net-dns/bind/bind-9.18.38.ebuild @@ -15,7 +15,7 @@ S="${WORKDIR}/${PN}-${MY_PV}" LICENSE="MPL-2.0" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux" IUSE="+caps dnstap doc doh fixed-rrset idn jemalloc geoip gssapi lmdb selinux static-libs test xml" RESTRICT="!test? ( test )" diff --git a/sdk_container/src/third_party/portage-stable/net-dns/bind/bind-9.18.39.ebuild b/sdk_container/src/third_party/portage-stable/net-dns/bind/bind-9.18.39.ebuild new file mode 100644 index 0000000000..d5fe3e00d7 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/net-dns/bind/bind-9.18.39.ebuild @@ -0,0 +1,282 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit eapi9-ver systemd tmpfiles toolchain-funcs + +MY_PV="${PV/_p/-P}" +MY_PV="${MY_PV/_rc/rc}" + +DESCRIPTION="Berkeley Internet Name Domain - Name Server" +HOMEPAGE="https://www.isc.org/software/bind" +SRC_URI="https://downloads.isc.org/isc/bind9/${PV}/${P}.tar.xz" +S="${WORKDIR}/${PN}-${MY_PV}" + +LICENSE="MPL-2.0" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux" +IUSE="+caps dnstap doc doh fixed-rrset idn jemalloc geoip gssapi lmdb selinux static-libs test xml" +RESTRICT="!test? ( test )" + +DEPEND=" + acct-group/named + acct-user/named + dev-libs/json-c:= + >=dev-libs/libuv-1.37.0:= + sys-libs/zlib:= + dev-libs/openssl:=[-bindist(-)] + caps? ( >=sys-libs/libcap-2.1.0 ) + dnstap? ( + dev-libs/fstrm + dev-libs/protobuf-c + ) + doh? ( net-libs/nghttp2:= ) + geoip? ( dev-libs/libmaxminddb ) + gssapi? ( virtual/krb5 ) + idn? ( net-dns/libidn2 ) + jemalloc? ( dev-libs/jemalloc:= ) + lmdb? ( dev-db/lmdb ) + xml? ( dev-libs/libxml2:= ) +" +RDEPEND=" + ${DEPEND} + selinux? ( sec-policy/selinux-bind ) + sys-process/psmisc + !/dev/null; echo ${CHROOT}) + if [[ -n ${CHROOT} ]]; then + elog "NOTE: As of net-dns/bind-9.4.3_p5-r1 the chroot part of the init-script got some major changes!" + elog "To enable the old behaviour (without using mount) uncomment the" + elog "CHROOT_NOMOUNT option in your /etc/conf.d/named config." + elog "If you decide to use the new/default method, ensure to make backup" + elog "first and merge your existing configs/zones to /etc/bind and" + elog "/var/bind because bind will now mount the needed directories into" + elog "the chroot dir." + fi + + # show only when upgrading to 9.18 + if ver_replacing -lt 9.18; then + elog "As this is a major bind version upgrade, please read:" + elog " https://kb.isc.org/docs/changes-to-be-aware-of-when-moving-from-bind-916-to-918" + elog "for differences in functionality." + elog "" + ewarn "In particular, please note that bind-9.18 does not need a root hints file anymore" + ewarn "and we only ship with one as a stop-gap. If your current configuration specifies a" + ewarn "root hints file - usually called named.cache - bind will not start as it will not be able" + ewarn "to find the specified file. Best practice is to delete the offending lines that" + ewarn "reference named.cache file from your configuration." + fi +} + +pkg_config() { + CHROOT=$(source "${EROOT}"/etc/conf.d/named; echo ${CHROOT}) + CHROOT_NOMOUNT=$(source "${EROOT}"/etc/conf.d/named; echo ${CHROOT_NOMOUNT}) + CHROOT_GEOIP=$(source "${EROOT}"/etc/conf.d/named; echo ${CHROOT_GEOIP}) + + if [[ -z "${CHROOT}" ]]; then + eerror "This config script is designed to automate setting up" + eerror "a chrooted bind/named. To do so, please first uncomment" + eerror "and set the CHROOT variable in '/etc/conf.d/named'." + die "Unset CHROOT" + fi + + if [[ -d "${CHROOT}" ]]; then + ewarn "NOTE: As of net-dns/bind-9.4.3_p5-r1 the chroot part of the init-script got some major changes!" + ewarn "To enable the old behaviour (without using mount) uncomment the" + ewarn "CHROOT_NOMOUNT option in your /etc/conf.d/named config." + ewarn + ewarn "${CHROOT} already exists... some things might become overridden" + ewarn "press CTRL+C if you don't want to continue" + sleep 10 + fi + + echo; einfo "Setting up the chroot directory..." + + mkdir -m 0750 -p "${CHROOT}" || die + mkdir -m 0755 -p "${CHROOT}"/{dev,etc,var/log,run} || die + mkdir -m 0750 -p "${CHROOT}"/etc/bind || die + mkdir -m 0770 -p "${CHROOT}"/var/{bind,log/named} "${CHROOT}"/run/named/ || die + + chown root:named \ + "${CHROOT}" \ + "${CHROOT}"/var/{bind,log/named} \ + "${CHROOT}"/run/named/ \ + "${CHROOT}"/etc/bind \ + || die + + mknod "${CHROOT}"/dev/null c 1 3 || die + chmod 0666 "${CHROOT}"/dev/null || die + + mknod "${CHROOT}"/dev/zero c 1 5 || die + chmod 0666 "${CHROOT}"/dev/zero || die + + if [[ "${CHROOT_NOMOUNT:-0}" -ne 0 ]]; then + cp -a /etc/bind "${CHROOT}"/etc/ || die + cp -a /var/bind "${CHROOT}"/var/ || die + fi + + if [[ "${CHROOT_GEOIP:-0}" -eq 1 ]]; then + if use geoip; then + mkdir -m 0755 -p "${CHROOT}"/usr/share/GeoIP || die + elif use geoip2; then + mkdir -m 0755 -p "${CHROOT}"/usr/share/GeoIP2 || die + fi + fi + + elog "You may need to add the following line to your syslog-ng.conf:" + elog "source jail { unix-stream(\"${CHROOT}/dev/log\"); };" +} diff --git a/sdk_container/src/third_party/portage-stable/net-dns/bind/bind-9.20.13.ebuild b/sdk_container/src/third_party/portage-stable/net-dns/bind/bind-9.20.13.ebuild new file mode 100644 index 0000000000..0c8dc469f9 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/net-dns/bind/bind-9.20.13.ebuild @@ -0,0 +1,287 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit eapi9-ver systemd tmpfiles toolchain-funcs + +MY_PV="${PV/_p/-P}" +MY_PV="${MY_PV/_rc/rc}" + +DESCRIPTION="Berkeley Internet Name Domain - Name Server" +HOMEPAGE="https://www.isc.org/bind/" +SRC_URI="https://downloads.isc.org/isc/bind9/${PV}/${P}.tar.xz" +S="${WORKDIR}/${PN}-${MY_PV}" + +LICENSE="MPL-2.0" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux" +IUSE="dnstap doc doh fixed-rrset idn jemalloc geoip gssapi lmdb selinux static-libs systemtap test xml" +RESTRICT="!test? ( test )" + +DEPEND=" + acct-group/named + acct-user/named + dev-libs/json-c:= + dev-libs/userspace-rcu:= + >=dev-libs/libuv-1.37.0:= + sys-libs/zlib:= + dev-libs/openssl:=[-bindist(-)] + >=sys-libs/libcap-2.1.0 + dnstap? ( + dev-libs/fstrm + dev-libs/protobuf-c + ) + doh? ( net-libs/nghttp2:= ) + geoip? ( dev-libs/libmaxminddb ) + gssapi? ( virtual/krb5 ) + idn? ( net-dns/libidn2 ) + jemalloc? ( dev-libs/jemalloc:= ) + lmdb? ( dev-db/lmdb ) + xml? ( dev-libs/libxml2:= ) +" +RDEPEND=" + ${DEPEND} + selinux? ( sec-policy/selinux-bind ) + sys-process/psmisc + !/dev/null; echo ${CHROOT}) + if [[ -n ${CHROOT} ]]; then + elog "NOTE: As of net-dns/bind-9.4.3_p5-r1 the chroot part of the init-script got some major changes!" + elog "To enable the old behaviour (without using mount) uncomment the" + elog "CHROOT_NOMOUNT option in your /etc/conf.d/named config." + elog "If you decide to use the new/default method, ensure to make backup" + elog "first and merge your existing configs/zones to /etc/bind and" + elog "/var/bind because bind will now mount the needed directories into" + elog "the chroot dir." + fi + + # show only when upgrading to 9.18 + if ver_replacing -lt 9.18; then + elog "As this is a major bind version upgrade, please read:" + elog " https://kb.isc.org/docs/changes-to-be-aware-of-when-moving-from-bind-916-to-918" + elog "for differences in functionality." + elog "" + ewarn "In particular, please note that bind-9.18 does not need a root hints file anymore" + ewarn "and we only ship with one as a stop-gap. If your current configuration specifies a" + ewarn "root hints file - usually called named.cache - bind will not start as it will not be able" + ewarn "to find the specified file. Best practice is to delete the offending lines that" + ewarn "reference named.cache file from your configuration." + fi +} + +pkg_config() { + CHROOT=$(source "${EROOT}"/etc/conf.d/named; echo ${CHROOT}) + CHROOT_NOMOUNT=$(source "${EROOT}"/etc/conf.d/named; echo ${CHROOT_NOMOUNT}) + CHROOT_GEOIP=$(source "${EROOT}"/etc/conf.d/named; echo ${CHROOT_GEOIP}) + + if [[ -z "${CHROOT}" ]]; then + eerror "This config script is designed to automate setting up" + eerror "a chrooted bind/named. To do so, please first uncomment" + eerror "and set the CHROOT variable in '/etc/conf.d/named'." + die "Unset CHROOT" + fi + + if [[ -d "${CHROOT}" ]]; then + ewarn "NOTE: As of net-dns/bind-9.4.3_p5-r1 the chroot part of the init-script got some major changes!" + ewarn "To enable the old behaviour (without using mount) uncomment the" + ewarn "CHROOT_NOMOUNT option in your /etc/conf.d/named config." + ewarn + ewarn "${CHROOT} already exists... some things might become overridden" + ewarn "press CTRL+C if you don't want to continue" + sleep 10 + fi + + echo; einfo "Setting up the chroot directory..." + + mkdir -m 0750 -p "${CHROOT}" || die + mkdir -m 0755 -p "${CHROOT}"/{dev,etc,var/log,run} || die + mkdir -m 0750 -p "${CHROOT}"/etc/bind || die + mkdir -m 0770 -p "${CHROOT}"/var/{bind,log/named,run/named} "${CHROOT}"/run/named/ || die + + chown root:named \ + "${CHROOT}" \ + "${CHROOT}"/var/{bind,log/named,run/named} \ + "${CHROOT}"/run/named/ \ + "${CHROOT}"/etc/bind \ + || die + + mknod "${CHROOT}"/dev/null c 1 3 || die + chmod 0666 "${CHROOT}"/dev/null || die + + mknod "${CHROOT}"/dev/zero c 1 5 || die + chmod 0666 "${CHROOT}"/dev/zero || die + + if [[ "${CHROOT_NOMOUNT:-0}" -ne 0 ]]; then + cp -a /etc/bind "${CHROOT}"/etc/ || die + cp -a /var/bind "${CHROOT}"/var/ || die + fi + + if [[ "${CHROOT_GEOIP:-0}" -eq 1 ]]; then + if use geoip; then + mkdir -m 0755 -p "${CHROOT}"/usr/share/GeoIP || die + elif use geoip2; then + mkdir -m 0755 -p "${CHROOT}"/usr/share/GeoIP2 || die + fi + fi + + elog "You may need to add the following line to your syslog-ng.conf:" + elog "source jail { unix-stream(\"${CHROOT}/dev/log\"); };" +} diff --git a/sdk_container/src/third_party/portage-stable/net-dns/c-ares/Manifest b/sdk_container/src/third_party/portage-stable/net-dns/c-ares/Manifest index 5c590a3e5d..9d82f5f4fe 100644 --- a/sdk_container/src/third_party/portage-stable/net-dns/c-ares/Manifest +++ b/sdk_container/src/third_party/portage-stable/net-dns/c-ares/Manifest @@ -1,4 +1,2 @@ -DIST c-ares-1.34.4.tar.gz 1001209 BLAKE2B 31b0f6820079105b44714dbd6074bbc31f0552a1387437dc43b8ec80dce9cdd6678a89734d32fcdf3fdd9358197d4b866b7b67286f2efc26463c178f049cdc54 SHA512 3285e14d94bc736d6caddfe7ad7e3c6a6e69d49b079c989bb3e8aba4da62c022e38229d1e691aaa030b7d3bcd89e458d203f260806149a71ad9adb31606eae02 -DIST c-ares-1.34.4.tar.gz.asc 228 BLAKE2B 9ceb0735dfdc200f34cfbf6b9b6af4ef3f8d8897478c695b179a76edfb126532420a42d3379006c1bb601660a703aa2775c4a585db90b51b2bfc2b0b89c4d1f8 SHA512 595f1980f61c10c01666b6c596a70b5312474b7a4432b045e0e57004d66c147c6f73643b258e04a0fdd81ff804bf9c36f51b1c95edb2c52e09829a6fcca5b468 DIST c-ares-1.34.5.tar.gz 1009261 BLAKE2B 5e8c262acf07cb387294170bba53618db1768436a3f7bf800eb31cf7b02ef8afc737122126c742424d4675f8c4944c730b8ba84028e6cee6bf65026cd2eeb56c SHA512 386709e9f405034cb16ba514f9792e89992be52b24a237e6c51f1032e4ca99a8c57b1c3038d6f0a205202a3bfb1246bb95ff0d5e6fc0ee2bba1cb17f6677f97f DIST c-ares-1.34.5.tar.gz.asc 228 BLAKE2B bb9364f7787c5286edd52d3821081618193c4c4c58782c3e3e592358b3e15ddc4e3abceb25f00969eaaa821705798b5e9eb528364b8f6d98f67a0285c4ad84f3 SHA512 5504670271b1dc32f5feeaf50c042d1cf1d173053c230706a0fec649d6fe8354ec6e75ef2b1c4158ed99a76a51d70e91799b1de19b284362b5080852790fcced diff --git a/sdk_container/src/third_party/portage-stable/net-dns/c-ares/c-ares-1.34.4.ebuild b/sdk_container/src/third_party/portage-stable/net-dns/c-ares/c-ares-1.34.4.ebuild deleted file mode 100644 index 5beae570fa..0000000000 --- a/sdk_container/src/third_party/portage-stable/net-dns/c-ares/c-ares-1.34.4.ebuild +++ /dev/null @@ -1,115 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# Both Daniel and Brad are listed as possible signers on the homepage -VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/bradhouse.asc -inherit edo flag-o-matic libtool multilib-minimal verify-sig - -DESCRIPTION="C library that resolves names asynchronously" -HOMEPAGE="https://c-ares.org/" -SRC_URI=" - https://github.com/c-ares/c-ares/releases/download/v${PV}/${P}.tar.gz - verify-sig? ( https://github.com/c-ares/c-ares/releases/download/v${PV}/${P}.tar.gz.asc ) -" - -# ISC for lib/{bitncmp.c,inet_ntop.c,inet_net_pton.c} (bug #912405) -LICENSE="MIT ISC" -# Subslot = SONAME of libcares.so.2 -SLOT="0/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" -IUSE="static-libs test" -RESTRICT="!test? ( test )" - -BDEPEND=" - test? ( dev-cpp/gtest ) - verify-sig? ( sec-keys/openpgp-keys-bradhouse ) -" - -DOCS=( AUTHORS README.md RELEASE-NOTES.md ) - -MULTILIB_WRAPPED_HEADERS=( - /usr/include/ares_build.h -) - -A__QA_CONFIG_IMPL_DECL_SKIP=( - # Checking for obsolete headers - malloc - calloc - free - - # Non-existent on Linux - closesocket - CloseSocket - ioctlsocket - bitncmp - ConvertInterfaceIndexToLuid - ConvertInterfaceLuidToNameA -) - -src_prepare() { - default - elibtoolize - - if [[ ${CHOST} == *-darwin* ]] ; then - # warnings are default, but enable -std=c90 which doesn't define - # 'bool' which is a type used/assumed in macOS system headers - sed -i -e 's/-std=c90/& -Dbool=int/' configure{.ac,} || die - # sysconfig integration requires deep framework compatibility - # and is not really desired in Prefix - sed -i -e 's/__APPLE__/__DISABLED__/' \ - src/lib/ares_sysconfig_mac.c || die - sed -i -e '/elif defined(__APPLE__)/s/__APPLE__/__DISABLED__/' \ - src/lib/ares_sysconfig.c || die - fi -} - -src_configure() { - use test && append-cxxflags -std=gnu++17 - multilib-minimal_src_configure -} - -multilib_src_configure() { - local myeconfargs=( - --enable-symbol-hiding - $(use_enable static-libs static) - $(use_enable test tests) - ) - - # Needed for running unit tests only - # Violates sandbox and tests pass fine without - export ares_cv_user_namespace=no - export ares_cv_uts_namespace=no - ECONF_SOURCE="${S}" econf "${myeconfargs[@]}" -} - -multilib_src_test() { - cd "${BUILD_DIR}"/test || die - - # We're skipping the "real" network tests with the filter - # see https://github.com/c-ares/c-ares/tree/main/test - local network_tests=( - # Most live tests have Live in the name - *Live* - # These don't but are still in ares-test-live.cc => live - *GetTCPSock* - *TimeoutValue* - *GetSock* - *GetSock_virtualized* - *VerifySocketFunctionCallback* - # Seems flaky, even run manually - # https://github.com/c-ares/c-ares/commit/9e542a8839f81c990bb0dff14beeaf9aa6bcc18d - *MockUDPMaxQueriesTest.GetHostByNameParallelLookups* - ) - - # The format for disabling test1, test2, and test3 looks like: - # -test1:test2:test3 - edo ./arestest --gtest_filter=-$(echo $(IFS=:; echo "${network_tests[*]}")) -} - -multilib_src_install_all() { - einstalldocs - - find "${ED}" -name "*.la" -delete || die -} diff --git a/sdk_container/src/third_party/portage-stable/net-firewall/nftables/nftables-1.1.5.ebuild b/sdk_container/src/third_party/portage-stable/net-firewall/nftables/nftables-1.1.5.ebuild index d80b3efc9f..e2430f32ac 100644 --- a/sdk_container/src/third_party/portage-stable/net-firewall/nftables/nftables-1.1.5.ebuild +++ b/sdk_container/src/third_party/portage-stable/net-firewall/nftables/nftables-1.1.5.ebuild @@ -22,7 +22,7 @@ else https://netfilter.org/projects/nftables/files/${P}.tar.xz verify-sig? ( https://netfilter.org/projects/nftables/files/${P}.tar.xz.sig ) " - KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86" + KEYWORDS="amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~sparc x86" BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-netfilter-20240415 )" fi diff --git a/sdk_container/src/third_party/portage-stable/net-libs/gnutls/files/gnutls-3.8.10-tls-migration-qemu-regression.patch b/sdk_container/src/third_party/portage-stable/net-libs/gnutls/files/gnutls-3.8.10-tls-migration-qemu-regression.patch new file mode 100644 index 0000000000..f3d3f05e45 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/net-libs/gnutls/files/gnutls-3.8.10-tls-migration-qemu-regression.patch @@ -0,0 +1,299 @@ +https://bugs.gentoo.org/961867 +https://issues.redhat.com/browse/RHEL-98672 +https://gitlab.com/gnutls/gnutls/-/issues/1717 +https://gitlab.com/gnutls/gnutls/-/merge_requests/1990 + +From 5376a0cabf94314316005e6bf411ffcc7628b386 Mon Sep 17 00:00:00 2001 +From: Daiki Ueno +Date: Tue, 22 Jul 2025 10:49:33 +0900 +Subject: [PATCH 1/3] key_update: fix state transition in KTLS code path + +Signed-off-by: Daiki Ueno +--- + lib/record.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/lib/record.c b/lib/record.c +index d37f79a550..ebc75addec 100644 +--- a/lib/record.c ++++ b/lib/record.c +@@ -2045,7 +2045,7 @@ ssize_t gnutls_record_send2(gnutls_session_t session, const void *data, + FALLTHROUGH; + case RECORD_SEND_KEY_UPDATE_3: + if (IS_KTLS_ENABLED(session, GNUTLS_KTLS_SEND)) { +- return _gnutls_ktls_send( ++ ret = _gnutls_ktls_send( + session, + session->internals.record_key_update_buffer.data, + session->internals.record_key_update_buffer +-- +GitLab + + +From 30c264b661d49d135ef342426c6c4cd853209c06 Mon Sep 17 00:00:00 2001 +From: Daiki Ueno +Date: Thu, 31 Jul 2025 15:34:48 +0900 +Subject: [PATCH 2/3] constate: switch epoch lookup to linear search + +The previous logic of epoch lookup was utilizing the fact that epoch +numbers are monotonically increasing and there are no gaps in between +after garbarge collection. That is, however, no longer true when a TLS +1.3 key update is happening in only one direction. + +This patch switches to using linear search instead, at the cost of +approx MAX_EPOCH_INDEX * 2 (= 8) comparison. + +Signed-off-by: Daiki Ueno +--- + lib/constate.c | 47 ++++++++++++++++------------------------------- + lib/gnutls_int.h | 3 --- + 2 files changed, 16 insertions(+), 34 deletions(-) + +diff --git a/lib/constate.c b/lib/constate.c +index ca253a2bea..b091d891ff 100644 +--- a/lib/constate.c ++++ b/lib/constate.c +@@ -932,17 +932,23 @@ static inline int epoch_resolve(gnutls_session_t session, + static inline record_parameters_st **epoch_get_slot(gnutls_session_t session, + uint16_t epoch) + { +- uint16_t epoch_index = epoch - session->security_parameters.epoch_min; ++ /* First look for a non-empty slot */ ++ for (size_t i = 0; i < MAX_EPOCH_INDEX; i++) { ++ record_parameters_st **slot = &session->record_parameters[i]; ++ if (*slot != NULL && (*slot)->epoch == epoch) ++ return slot; ++ } + +- if (epoch_index >= MAX_EPOCH_INDEX) { +- _gnutls_handshake_log( +- "Epoch %d out of range (idx: %d, max: %d)\n", +- (int)epoch, (int)epoch_index, MAX_EPOCH_INDEX); +- gnutls_assert(); +- return NULL; ++ /* Then look for an empty slot */ ++ for (size_t i = 0; i < MAX_EPOCH_INDEX; i++) { ++ record_parameters_st **slot = &session->record_parameters[i]; ++ if (*slot == NULL) ++ return slot; + } +- /* The slot may still be empty (NULL) */ +- return &session->record_parameters[epoch_index]; ++ ++ gnutls_assert(); ++ _gnutls_handshake_log("No slot available for epoch %u\n", epoch); ++ return NULL; + } + + int _gnutls_epoch_get(gnutls_session_t session, unsigned int epoch_rel, +@@ -1063,8 +1069,7 @@ static inline int epoch_alive(gnutls_session_t session, + + void _gnutls_epoch_gc(gnutls_session_t session) + { +- int i, j; +- unsigned int min_index = 0; ++ int i; + + _gnutls_record_log("REC[%p]: Start of epoch cleanup\n", session); + +@@ -1091,26 +1096,6 @@ void _gnutls_epoch_gc(gnutls_session_t session) + } + } + +- /* Look for contiguous NULLs at the start of the array */ +- for (i = 0; +- i < MAX_EPOCH_INDEX && session->record_parameters[i] == NULL; i++) +- ; +- min_index = i; +- +- /* Pick up the slack in the epoch window. */ +- if (min_index != 0) { +- for (i = 0, j = min_index; j < MAX_EPOCH_INDEX; i++, j++) { +- session->record_parameters[i] = +- session->record_parameters[j]; +- session->record_parameters[j] = NULL; +- } +- } +- +- /* Set the new epoch_min */ +- if (session->record_parameters[0] != NULL) +- session->security_parameters.epoch_min = +- session->record_parameters[0]->epoch; +- + gnutls_mutex_unlock(&session->internals.epoch_lock); + + _gnutls_record_log("REC[%p]: End of epoch cleanup\n", session); +diff --git a/lib/gnutls_int.h b/lib/gnutls_int.h +index 539486bc7d..e083520055 100644 +--- a/lib/gnutls_int.h ++++ b/lib/gnutls_int.h +@@ -876,9 +876,6 @@ typedef struct { + /* The epoch that the next handshake will initialize. */ + uint16_t epoch_next; + +- /* The epoch at index 0 of record_parameters. */ +- uint16_t epoch_min; +- + /* this is the ciphersuite we are going to use + * moved here from internals in order to be restored + * on resume; +-- +GitLab + + +From 1d830baac2f8a08a40b13e9eecfcc64ad032e7b5 Mon Sep 17 00:00:00 2001 +From: Daiki Ueno +Date: Sat, 19 Jul 2025 07:08:24 +0900 +Subject: [PATCH 3/3] key_update: rework the rekeying logic + +While RFC 8446 4.6.3 says that the sender of a KeyUpdate message +should only update its sending key, the previous implementation +updated both the sending and receiving keys, preventing that any +application data interleaved being decrypted. + +This splits the key update logic into 2 phases: when sending a +KeyUpdate, only update the sending key, and when receiving a +KeyUpdate, only update the receiving key. In both cases, KeyUpdate +messages are encrypted/decrypted with the old keys. + +Signed-off-by: Daiki Ueno +--- + lib/gnutls_int.h | 2 +- + lib/tls13/key_update.c | 72 +++++++++++++++++++++++++++--------------- + 2 files changed, 47 insertions(+), 27 deletions(-) + +diff --git a/lib/gnutls_int.h b/lib/gnutls_int.h +index e083520055..f3caea1170 100644 +--- a/lib/gnutls_int.h ++++ b/lib/gnutls_int.h +@@ -1672,7 +1672,7 @@ typedef struct { + } internals_st; + + /* Maximum number of epochs we keep around. */ +-#define MAX_EPOCH_INDEX 4 ++#define MAX_EPOCH_INDEX 16 + + #define reset_cand_groups(session) \ + session->internals.cand_ec_group = session->internals.cand_dh_group = \ +diff --git a/lib/tls13/key_update.c b/lib/tls13/key_update.c +index 41243651b5..beee1dc41a 100644 +--- a/lib/tls13/key_update.c ++++ b/lib/tls13/key_update.c +@@ -52,45 +52,47 @@ static inline int set_ktls_keys(gnutls_session_t session, + return 0; + } + +-static int update_keys(gnutls_session_t session, hs_stage_t stage) ++static int update_sending_key(gnutls_session_t session, hs_stage_t stage) + { + int ret; + +- ret = _tls13_update_secret(session, +- session->key.proto.tls13.temp_secret, +- session->key.proto.tls13.temp_secret_size); ++ _gnutls_epoch_bump(session); ++ ret = _gnutls_epoch_dup(session, EPOCH_WRITE_CURRENT); + if (ret < 0) + return gnutls_assert_val(ret); + +- _gnutls_epoch_bump(session); +- ret = _gnutls_epoch_dup(session, EPOCH_READ_CURRENT); ++ ret = _tls13_write_connection_state_init(session, stage); + if (ret < 0) + return gnutls_assert_val(ret); + +- /* If we send a key update during early start, only update our +- * write keys */ +- if (session->internals.recv_state == RECV_STATE_EARLY_START) { +- ret = _tls13_write_connection_state_init(session, stage); ++ if (IS_KTLS_ENABLED(session, GNUTLS_KTLS_SEND)) { ++ ret = set_ktls_keys(session, GNUTLS_KTLS_SEND); + if (ret < 0) + return gnutls_assert_val(ret); ++ } + +- if (IS_KTLS_ENABLED(session, GNUTLS_KTLS_SEND)) +- ret = set_ktls_keys(session, GNUTLS_KTLS_SEND); +- } else { +- ret = _tls13_connection_state_init(session, stage); +- if (ret < 0) +- return gnutls_assert_val(ret); ++ return 0; ++} + +- if (IS_KTLS_ENABLED(session, GNUTLS_KTLS_SEND) && +- stage == STAGE_UPD_OURS) +- ret = set_ktls_keys(session, GNUTLS_KTLS_SEND); +- else if (IS_KTLS_ENABLED(session, GNUTLS_KTLS_RECV) && +- stage == STAGE_UPD_PEERS) +- ret = set_ktls_keys(session, GNUTLS_KTLS_RECV); +- } ++static int update_receiving_key(gnutls_session_t session, hs_stage_t stage) ++{ ++ int ret; ++ ++ _gnutls_epoch_bump(session); ++ ret = _gnutls_epoch_dup(session, EPOCH_READ_CURRENT); ++ if (ret < 0) ++ return gnutls_assert_val(ret); ++ ++ ret = _tls13_read_connection_state_init(session, stage); + if (ret < 0) + return gnutls_assert_val(ret); + ++ if (IS_KTLS_ENABLED(session, GNUTLS_KTLS_RECV)) { ++ ret = set_ktls_keys(session, GNUTLS_KTLS_RECV); ++ if (ret < 0) ++ return gnutls_assert_val(ret); ++ } ++ + return 0; + } + +@@ -128,7 +130,13 @@ int _gnutls13_recv_key_update(gnutls_session_t session, gnutls_buffer_st *buf) + switch (buf->data[0]) { + case 0: + /* peer updated its key, not requested our key update */ +- ret = update_keys(session, STAGE_UPD_PEERS); ++ ret = _tls13_update_secret( ++ session, session->key.proto.tls13.temp_secret, ++ session->key.proto.tls13.temp_secret_size); ++ if (ret < 0) ++ return gnutls_assert_val(ret); ++ ++ ret = update_receiving_key(session, STAGE_UPD_PEERS); + if (ret < 0) + return gnutls_assert_val(ret); + +@@ -141,7 +149,13 @@ int _gnutls13_recv_key_update(gnutls_session_t session, gnutls_buffer_st *buf) + } + + /* peer updated its key, requested our key update */ +- ret = update_keys(session, STAGE_UPD_PEERS); ++ ret = _tls13_update_secret( ++ session, session->key.proto.tls13.temp_secret, ++ session->key.proto.tls13.temp_secret_size); ++ if (ret < 0) ++ return gnutls_assert_val(ret); ++ ++ ret = update_receiving_key(session, STAGE_UPD_PEERS); + if (ret < 0) + return gnutls_assert_val(ret); + +@@ -248,7 +262,13 @@ int gnutls_session_key_update(gnutls_session_t session, unsigned flags) + _gnutls_epoch_gc(session); + + /* it was completely sent, update the keys */ +- ret = update_keys(session, STAGE_UPD_OURS); ++ ret = _tls13_update_secret(session, ++ session->key.proto.tls13.temp_secret, ++ session->key.proto.tls13.temp_secret_size); ++ if (ret < 0) ++ return gnutls_assert_val(ret); ++ ++ ret = update_sending_key(session, STAGE_UPD_OURS); + if (ret < 0) + return gnutls_assert_val(ret); + +-- +GitLab 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 new file mode 100644 index 0000000000..4156212331 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/net-libs/gnutls/gnutls-3.8.10-r1.ebuild @@ -0,0 +1,167 @@ +# 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/gnutls.asc +inherit libtool multilib-minimal verify-sig + +DESCRIPTION="A secure communications library implementing the SSL, TLS and DTLS protocols" +HOMEPAGE="https://www.gnutls.org/" +SRC_URI="mirror://gnupg/gnutls/v$(ver_cut 1-2)/${P}.tar.xz" +SRC_URI+=" verify-sig? ( mirror://gnupg/gnutls/v$(ver_cut 1-2)/${P}.tar.xz.sig )" + +LICENSE="GPL-3 LGPL-2.1+" +# As of 3.8.0, the C++ library is header-only, but we won't drop the subslot +# component for it until libgnutls.so breaks ABI, to avoid pointless rebuilds. +# 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" +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 )" + +# >=nettle-3.10 as a workaround for bug #936011 +RDEPEND=" + >=dev-libs/libtasn1-4.9:=[${MULTILIB_USEDEP}] + dev-libs/libunistring:=[${MULTILIB_USEDEP}] + >=dev-libs/nettle-3.10:=[gmp,${MULTILIB_USEDEP}] + >=dev-libs/gmp-5.1.3-r1:=[${MULTILIB_USEDEP}] + brotli? ( >=app-arch/brotli-1.0.0:=[${MULTILIB_USEDEP}] ) + dane? ( >=net-dns/unbound-1.4.20:=[${MULTILIB_USEDEP}] ) + nls? ( >=virtual/libintl-0-r1:=[${MULTILIB_USEDEP}] ) + pkcs11? ( >=app-crypt/p11-kit-0.23.1[${MULTILIB_USEDEP}] ) + idn? ( >=net-dns/libidn2-0.16-r1:=[${MULTILIB_USEDEP}] ) + zlib? ( sys-libs/zlib[${MULTILIB_USEDEP}] ) + zstd? ( >=app-arch/zstd-1.3.0:=[${MULTILIB_USEDEP}] ) +" +DEPEND=" + ${RDEPEND} + test-full? ( sys-libs/libseccomp ) +" +BDEPEND=" + dev-build/gtk-doc-am + >=virtual/pkgconfig-0-r1 + doc? ( dev-util/gtk-doc ) + nls? ( sys-devel/gettext ) + test-full? ( + app-crypt/dieharder + || ( sys-libs/libfaketime >=app-misc/datefudge-1.22 ) + dev-libs/softhsm:2[-bindist(-)] + net-dialup/ppp + net-misc/socat + ) + verify-sig? ( >=sec-keys/openpgp-keys-gnutls-20240415 ) +" + +DOCS=( README.md doc/certtool.cfg ) + +HTML_DOCS=() + +QA_CONFIG_IMPL_DECL_SKIP=( + # gnulib FPs + MIN + alignof + static_assert +) + +PATCHES=( + "${FILESDIR}"/${PN}-3.8.10-tests.patch + "${FILESDIR}"/${PN}-3.8.10-tls-migration-qemu-regression.patch +) + +src_prepare() { + default + + # bug #520818 + export TZ=UTC + + use doc && HTML_DOCS+=( doc/gnutls.html ) + + # don't try to use system certificate store on macOS, it is + # confusingly ignoring our ca-certificates and more importantly + # fails to compile in certain configurations + sed -i -e 's/__APPLE__/__NO_APPLE__/' lib/system/certs.c || die + + # Fails with some combinations of USE="brotli zlib zstd" + # https://gitlab.com/gnutls/gnutls/-/issues/1721 + # https://gitlab.com/gnutls/gnutls/-/merge_requests/1980 + cat <<-EOF > tests/system-override-compress-cert.sh || die + #!/bin/sh + exit 77 + EOF + chmod +x tests/system-override-compress-cert.sh || die + + elibtoolize +} + +multilib_src_configure() { + LINGUAS="${LINGUAS//en/en@boldquot en@quot}" + + local libconf=() + + # TPM needs to be tested before being enabled + # Note that this may add a libltdl dep when enabled. Check configure.ac. + libconf+=( + --without-tpm + --without-tpm2 + ) + + # hardware-accel is disabled on OSX because the asm files force + # GNU-stack (as doesn't support that) and when that's removed ld + # complains about duplicate symbols + [[ ${CHOST} == *-darwin* ]] && libconf+=( --disable-hardware-acceleration ) + + # -fanalyzer substantially slows down the build and isn't useful for + # us. It's useful for upstream as it's static analysis, but it's not + # useful when just getting something built. + export gl_cv_warn_c__fanalyzer=no + + local myeconfargs=( + --disable-valgrind-tests + $(multilib_native_enable manpages) + $(multilib_native_use_enable doc gtk-doc) + $(multilib_native_use_enable doc) + $(multilib_native_use_enable test tests) + $(multilib_native_use_enable test-full full-test-suite) + $(multilib_native_use_enable test-full seccomp-tests) + $(multilib_native_use_enable tools) + $(use_enable cxx) + $(use_enable dane libdane) + $(use_enable nls) + $(use_enable openssl openssl-compatibility) + $(use_enable sslv2 ssl2-support) + $(use_enable sslv3 ssl3-support) + $(use_enable static-libs static) + $(use_enable tls-heartbeat heartbeat-support) + $(use_with brotli '' link) + $(use_with idn) + $(use_with pkcs11 p11-kit) + $(use_with zlib '' link) + $(use_with zstd '' link) + --disable-rpath + --with-default-trust-store-file="${EPREFIX}"/etc/ssl/certs/ca-certificates.crt + --with-unbound-root-key-file="${EPREFIX}"/etc/dnssec/root-anchors.txt + --without-included-libtasn1 + $("${S}/configure" --help | grep -o -- '--without-.*-prefix') + ) + + ECONF_SOURCE="${S}" econf "${libconf[@]}" "${myeconfargs[@]}" + + if [[ ${CHOST} == *-solaris* ]] ; then + # gnulib ends up defining its own pthread_mutexattr_gettype + # otherwise, which is causing versioning problems + echo "#define PTHREAD_IN_USE_DETECTION_HARD 1" >> config.h || die + fi +} + +multilib_src_install_all() { + einstalldocs + find "${ED}" -type f -name '*.la' -delete || die + + if use examples; then + docinto examples + dodoc doc/examples/*.c + fi +} diff --git a/sdk_container/src/third_party/portage-stable/net-libs/libtirpc/Manifest b/sdk_container/src/third_party/portage-stable/net-libs/libtirpc/Manifest index a0d59d4f49..dbc6179475 100644 --- a/sdk_container/src/third_party/portage-stable/net-libs/libtirpc/Manifest +++ b/sdk_container/src/third_party/portage-stable/net-libs/libtirpc/Manifest @@ -1,3 +1,3 @@ -DIST libtirpc-1.3.5.tar.bz2 565188 BLAKE2B 1ae1cc0be1c52bca8fbe2300159d9298b069b3f81adde7f50da3fb7049f9b9f628393dfe94e9276facfeea2b1ccdc9a52632fee4af432c36e457fd3ff2b0963c SHA512 c80a953671c5692294efe7425e41c7f12bd4c430f473f9ea71883168cb4a69111f0018122bd0e7982e18f4576e45d4977ce0790743382faae006c446813d2a4f DIST libtirpc-1.3.6.tar.bz2 566384 BLAKE2B 521e1e3d2ceefd668f1b0d52b7c0342b97952d322eeb7bf740bb1eb1fb88a14b0a2fce57f07a9fd3797d289f57f511085924bba3d8984f15c799468d30f47500 SHA512 f3ccc45f9de8d517ccc10dd4b68b844bbe71a2cb61ca5819995d97319353f7e24cfee205e09dddf65cf47605314176aee161091d7379b6113ee8d1f5077c93d0 +DIST libtirpc-1.3.7.tar.bz2 569442 BLAKE2B b6a42add32c1a8bef4d974bb6c527131c0215179a303360d902110b03ce2217280efcb8dcad3a4da00f7ab971a1376e0bc30d6e3ecf6f98f1d4c2161a9276f86 SHA512 50c0153bc72a3f9578eb7a9dc123ea531df83c455f19b03d2bc59563d8453fcd278a025eef05865d1218b2c9358a9152ee069ce0e4d11dfea4ca0a8a24221fad DIST libtirpc-glibc-nfs.tar.xz 8948 BLAKE2B 7316623d9f2b6928e296137fe2bf6794b208d549c2ffba9e4a35b47f7b04bf023798a09f38c02d039debf6adc466d7689cf3c8274d71a22eaff08729642c0a28 SHA512 90255bf0a27af16164e0710dd940778609925d473f4343093ff19d98cc4f23023788bf4edf0178eae1961afc0ba8b69b273de95b7d7e2afdb706701d8ba6f7ba diff --git a/sdk_container/src/third_party/portage-stable/net-libs/libtirpc/libtirpc-1.3.5.ebuild b/sdk_container/src/third_party/portage-stable/net-libs/libtirpc/libtirpc-1.3.7.ebuild similarity index 88% rename from sdk_container/src/third_party/portage-stable/net-libs/libtirpc/libtirpc-1.3.5.ebuild rename to sdk_container/src/third_party/portage-stable/net-libs/libtirpc/libtirpc-1.3.7.ebuild index b90b0a6a2b..5e56f8c45a 100644 --- a/sdk_container/src/third_party/portage-stable/net-libs/libtirpc/libtirpc-1.3.5.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}] )" @@ -35,7 +35,8 @@ src_prepare() { } multilib_src_configure() { - append-ldflags $(test-flags-CCLD -Wl,--undefined-version) + # bug #911863 + append-lfs-flags local myeconfargs=( $(use_enable kerberos gssapi) diff --git a/sdk_container/src/third_party/portage-stable/net-libs/nghttp2/Manifest b/sdk_container/src/third_party/portage-stable/net-libs/nghttp2/Manifest index e906164f47..77eefeaf0c 100644 --- a/sdk_container/src/third_party/portage-stable/net-libs/nghttp2/Manifest +++ b/sdk_container/src/third_party/portage-stable/net-libs/nghttp2/Manifest @@ -1,2 +1,3 @@ DIST nghttp2-1.65.0.tar.xz 1604848 BLAKE2B 8fb752f55936110a8b5c27873e7e262a0c84740beac46444a80596e25b256ca3a4b0f0cc97a91e104a0f1c59ac0304546310a2817af126efabd2ce26cfd0ee06 SHA512 e1ef685a425017474ea0412c8ad13a217a45a320322b3aee48e646be21457d9b1f374abb9f681f47595a0ad8feb07d076bd0aa3279d35c5c9b5b8c921d8dd39e DIST nghttp2-1.66.0.tar.xz 1743992 BLAKE2B 7b108f82b2ab4e5108a9220dbc57d6d894577464c2d64c5adb02c6f71f4c5d3d524b1c945ab016699236674501458c29d0186eaf2a7442bcb3f728df1075273c SHA512 23b4cae2bbd4b3c11c50093e2fc14f3b08241bb6a85c38409e9a1a328b81ad51f107179493a0ce4c6a767b557cafeca9ba638c491095639dcfd9a2d95fa8b80d +DIST nghttp2-1.67.1.tar.xz 1671408 BLAKE2B 748545e87dc1edd580b620566a8c3e565cbaa22b078afd8008e23c5d2929976354dbe89d78b6c375ee046d2ee310395e6154e812f782cf4dbd27b99cf034c730 SHA512 e1b50e963602c961dd839ba032216a6c6c22009c6be0aebecb3711cb6412e2a2caf96fe3fa2a6a1691134c12f8ce479c181825a3c8d2cf87a8e0b1aa40f0261a diff --git a/sdk_container/src/third_party/portage-stable/net-libs/nghttp2/nghttp2-1.67.1.ebuild b/sdk_container/src/third_party/portage-stable/net-libs/nghttp2/nghttp2-1.67.1.ebuild new file mode 100644 index 0000000000..60883face4 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/net-libs/nghttp2/nghttp2-1.67.1.ebuild @@ -0,0 +1,70 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Built with autotools rather than cmake to avoid circular dep (bug #951525) + +inherit multilib-minimal + +DESCRIPTION="HTTP/2 C Library" +HOMEPAGE="https://nghttp2.org/" + +if [[ ${PV} == 9999 ]] ; then + EGIT_REPO_URI="https://github.com/nghttp2/nghttp2.git" + inherit git-r3 +else + inherit autotools + SRC_URI="https://github.com/nghttp2/nghttp2/releases/download/v${PV}/${P}.tar.xz" + + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" +fi + +LICENSE="MIT" +SLOT="0/1.14" # 1. +IUSE="debug hpack-tools jemalloc systemd test utils xml" +RESTRICT="!test? ( test )" + +RDEPEND=" + hpack-tools? ( >=dev-libs/jansson-2.5:= ) + jemalloc? ( dev-libs/jemalloc:=[${MULTILIB_USEDEP}] ) + utils? ( + >=dev-libs/openssl-1.0.2:0=[-bindist(-),${MULTILIB_USEDEP}] + >=dev-libs/libev-4.15[${MULTILIB_USEDEP}] + net-dns/c-ares:=[${MULTILIB_USEDEP}] + >=sys-libs/zlib-1.2.3[${MULTILIB_USEDEP}] + ) + systemd? ( >=sys-apps/systemd-209 ) + xml? ( >=dev-libs/libxml2-2.7.7:2=[${MULTILIB_USEDEP}] ) +" +DEPEND="${RDEPEND}" +BDEPEND="virtual/pkgconfig" + +src_prepare() { + default + [[ ${PV} == 9999 ]] && eautoreconf +} + +multilib_src_configure() { + # TODO: enable HTTP3 + # requires quictls/openssl, libngtcp2, libngtcp2_crypto_quictls, libnghttp3 + local myeconfargs=( + --disable-examples + --disable-failmalloc + --disable-werror + --enable-threads + $(use_enable debug) + $(multilib_native_use_enable hpack-tools) + $(multilib_native_use_with hpack-tools jansson) + $(multilib_native_use_with jemalloc) + $(multilib_native_use_with systemd) + $(multilib_native_use_enable utils app) + $(multilib_native_use_with xml libxml2) + ) + ECONF_SOURCE="${S}" econf "${myeconfargs[@]}" +} + +multilib_src_install_all() { + einstalldocs + find "${ED}"/usr -type f -name '*.la' -delete || die +} 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 461e5eb313..1df434d028 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 ppc ppc64 ~riscv ~sparc x86" fi fi 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 5e1eb5151c..b63c12ee18 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 diff --git a/sdk_container/src/third_party/portage-stable/net-misc/openssh/Manifest b/sdk_container/src/third_party/portage-stable/net-misc/openssh/Manifest index 84b8056e36..0445960d52 100644 --- a/sdk_container/src/third_party/portage-stable/net-misc/openssh/Manifest +++ b/sdk_container/src/third_party/portage-stable/net-misc/openssh/Manifest @@ -1,5 +1,9 @@ DIST openssh-10.0p1.tar.gz 1972675 BLAKE2B 4ce353adf75aade8f4b2a223ad13e2f92cd23d1e60b4ee52bad0eaf036571229438cd9760dfa99c0e10fa09a8ac47b2bfb04eb183fb7b9287ac564ec75316a75 SHA512 2daa1fcf95793b23810142077e68ddfabdf3732b207ef4f033a027f72d733d0e9bcdb6f757e7f3a5934b972de05bfaae3baae381cfc7a400cd8ab4d4e277a0ed DIST openssh-10.0p1.tar.gz.asc 833 BLAKE2B 105fd1238c9923719fb7fcbafa55806e2e5053095422b95193438d4c536d1f3bae04a1fc674fe1fee8bc14abaa5ea41c4d25134f4fe677cdf1d761c009246f0c SHA512 6ab9deb4233ff159e55a18c9fc07d5ff8a41723dad74aa3d803e1476b585f5662aba34f8a7a1f5fe1d248f3ff3cd663f2c2fb8e399c6a4723b6215b0eb423d13 +DIST openssh-10.1p1.tar.gz 1972831 BLAKE2B 08864c9302935cde87eec9d736a90b0bcf23220349bf77cc177459715c567b6178722e9e5d8eea3d55eddb49fef09c187e0895e72236aede397e67674e10cd31 SHA512 9b88ac5b84461a0d4f6022b4dee294964487ea36d5ba5cb9c35d2edcba49a687c609ea30f272ebf924270a025cf2cd82677d0917e5d37334534cd5bee93452d9 +DIST openssh-10.1p1.tar.gz.asc 833 BLAKE2B c9df62728276464926ac7d28d54dd23a42bef150a9f64bfec14278d0e1817a876ee76b3329aca863997107bb8d4d43a694643f730249d9940d967b4c2a18fed3 SHA512 a4082bf8526d60094b5a3207995793c44448833b1cdd7ec91f04554fd8bddc1df3b45ee9ffe42de3bfc72d4968808834e289159e3c96f031e09a78da844641ae +DIST openssh-10.2p1.tar.gz 1974519 BLAKE2B 8c031b10b1642e21b46f7d1db84ba42692e378a54af3d8e5b5c8706c3a0a06d442a02ed8803063121e7ff325ea275cad4432b9eaa6a7f47a4d7cfad504953ab6 SHA512 66f3dd646179e71aaf41c33b6f14a207dc873d71d24f11c130a89dee317ee45398b818e5b94887b5913240964a38630d7bca3e481e0f1eff2e41d9e1cfdbdfc5 +DIST openssh-10.2p1.tar.gz.asc 833 BLAKE2B 34e1a697e9565f5d4e8139537e76e123512285662576f6f2b513ba129d5e42310c1997e70d7c69b2c4fe1c85f9323ef686b8f83f12a73c5a4f229ff855efd7c6 SHA512 f1f71700b1b0b2117aed505488b98b7ebb51ce26e53184b08df0b07aa2c5a1e54dc4d3cbcbe871b5ad849a2a0e22b02af318ff22a68c980ab53b04be03c9bf3c DIST openssh-9.8p1.tar.gz 1910393 BLAKE2B 3bf983c4ef5358054ed0104cd51d3e0069fbc2b80d8522d0df644d5508ec1d26a67bf061b1b5698d1cdf0d2cbba16b4cdca12a4ce30da24429094576a075e192 SHA512 95dec2f18e58eb47994f3de4430253e0665e185564b65088ca5f4108870e05feddef8cda8d3c0a4b75f18b98cc2c024df0e27de53b48c1a16da8da483cb8292a DIST openssh-9.8p1.tar.gz.asc 833 BLAKE2B 5291e8c03ab9a75acb44285cd7fc010f4a33551f142499624165dac708fc05a6d077df81555aa41037b45f6301e4e5db3161a7a23404473f8a233a877fc55cc3 SHA512 4df1f1be2c6ab7f3aebaedd0a773b0e8c8929abb30cd3415873ad55d012cfa113f792e888e5e772dd468c394aeb7e35d62893a514dbc0ab1a03acd79918657f7 DIST openssh-9.9p2.tar.gz 1944499 BLAKE2B 1b5bc09482b3a807ccfee52c86c6be3c363acf0c8e774862e0ae64f76bfeb4ce7cf29b3ed2f99c04c89bb4977da0cf50a7a175b15bf1d9925de1e03c66f8306d SHA512 4c6d839aa3189cd5254c745f2bd51cd3f468b02f8e427b8d7a16b9ad017888a41178d2746dc51fb2d3fec5be00e54b9ab7c32c472ca7dec57a1dea4fc9840278 diff --git a/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/10.0_p2/0001-upstream-fix-out-of-bounds-read.patch b/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/10.0_p2/0001-upstream-fix-out-of-bounds-read.patch new file mode 100644 index 0000000000..7cbeb90f3b --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/10.0_p2/0001-upstream-fix-out-of-bounds-read.patch @@ -0,0 +1,41 @@ +https://github.com/openssh/openssh-portable/commit/4b1f172fe91c253d09d75650981a3e0c87651fa3 + +From 4b1f172fe91c253d09d75650981a3e0c87651fa3 Mon Sep 17 00:00:00 2001 +From: "djm@openbsd.org" +Date: Wed, 30 Apr 2025 05:23:15 +0000 +Subject: [PATCH] upstream: fix a out-of-bounds read if the known_hosts file is + +truncated after the hostname. + +Reported by the OpenAI Security Research Team + +ok deraadt@ + +OpenBSD-Commit-ID: c0b516d7c80c4779a403826f73bcd8adbbc54ebd +--- + hostfile.c | 8 +++++++- + 1 file changed, 7 insertions(+), 1 deletion(-) + +diff --git a/hostfile.c b/hostfile.c +index c5669c70373..a4a5a9a5e3a 100644 +--- a/hostfile.c ++++ b/hostfile.c +@@ -1,4 +1,4 @@ +-/* $OpenBSD: hostfile.c,v 1.95 2023/02/21 06:48:18 dtucker Exp $ */ ++/* $OpenBSD: hostfile.c,v 1.96 2025/04/30 05:23:15 djm Exp $ */ + /* + * Author: Tatu Ylonen + * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland +@@ -810,6 +810,12 @@ hostkeys_foreach_file(const char *path, FILE *f, hostkeys_foreach_fn *callback, + /* Find the end of the host name portion. */ + for (cp2 = cp; *cp2 && *cp2 != ' ' && *cp2 != '\t'; cp2++) + ; ++ if (*cp2 == '\0') { ++ verbose_f("truncated line at %s:%lu", path, linenum); ++ if ((options & HKF_WANT_MATCH) == 0) ++ goto bad; ++ continue; ++ } + lineinfo.hosts = cp; + *cp2++ = '\0'; + diff --git a/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/10.0_p2/0002-upstream-fix-mistracking-of-MaxStartups.patch b/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/10.0_p2/0002-upstream-fix-mistracking-of-MaxStartups.patch new file mode 100644 index 0000000000..17a9b84281 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/10.0_p2/0002-upstream-fix-mistracking-of-MaxStartups.patch @@ -0,0 +1,94 @@ +https://github.com/openssh/openssh-portable/commit/78af391990b210ae0797c37c30719232cda61fef + +From 78af391990b210ae0797c37c30719232cda61fef Mon Sep 17 00:00:00 2001 +From: "djm@openbsd.org" +Date: Fri, 4 Jul 2025 09:51:01 +0000 +Subject: [PATCH] upstream: Fix mistracking of MaxStartups process exits in + some + +situations. At worst, this can cause all MaxStartups slots to fill and sshd +to refuse new connections. + +Diagnosis by xnor; ok dtucker@ + +OpenBSD-Commit-ID: 10273033055552557196730f898ed6308b36a78d +--- + sshd.c | 28 ++++++++++++++++------------ + 1 file changed, 16 insertions(+), 12 deletions(-) + +diff --git a/sshd.c b/sshd.c +index 4a93e29e4c0..d721a5de36a 100644 +--- a/sshd.c ++++ b/sshd.c +@@ -289,8 +289,10 @@ child_finish(struct early_child *child) + { + if (children_active == 0) + fatal_f("internal error: children_active underflow"); +- if (child->pipefd != -1) ++ if (child->pipefd != -1) { ++ srclimit_done(child->pipefd); + close(child->pipefd); ++ } + sshbuf_free(child->config); + sshbuf_free(child->keys); + free(child->id); +@@ -311,6 +313,7 @@ child_close(struct early_child *child, int force_final, int quiet) + if (!quiet) + debug_f("enter%s", force_final ? " (forcing)" : ""); + if (child->pipefd != -1) { ++ srclimit_done(child->pipefd); + close(child->pipefd); + child->pipefd = -1; + } +@@ -1039,7 +1042,6 @@ server_accept_loop(int *sock_in, int *sock_out, int *newsock, int *config_s, + if (ret <= 0) { + if (children[i].early) + listening--; +- srclimit_done(children[i].pipefd); + child_close(&(children[i]), 0, 0); + continue; + } +@@ -1078,23 +1080,19 @@ server_accept_loop(int *sock_in, int *sock_out, int *newsock, int *config_s, + } + /* FALLTHROUGH */ + case 0: +- /* child exited preauth */ ++ /* child closed pipe */ + if (children[i].early) + listening--; +- srclimit_done(children[i].pipefd); ++ debug3_f("child %lu for %s closed pipe", ++ (long)children[i].pid, children[i].id); + child_close(&(children[i]), 0, 0); + break; + case 1: + if (children[i].config) { + error_f("startup pipe %d (fd=%d)" +- " early read", i, children[i].pipefd); +- if (children[i].early) +- listening--; +- if (children[i].pid > 0) +- kill(children[i].pid, SIGTERM); +- srclimit_done(children[i].pipefd); +- child_close(&(children[i]), 0, 0); +- break; ++ " early read", ++ i, children[i].pipefd); ++ goto problem_child; + } + if (children[i].early && c == '\0') { + /* child has finished preliminaries */ +@@ -1114,6 +1112,12 @@ server_accept_loop(int *sock_in, int *sock_out, int *newsock, int *config_s, + "child %ld for %s in state %d", + (int)c, (long)children[i].pid, + children[i].id, children[i].early); ++ problem_child: ++ if (children[i].early) ++ listening--; ++ if (children[i].pid > 0) ++ kill(children[i].pid, SIGTERM); ++ child_close(&(children[i]), 0, 0); + } + break; + } + diff --git a/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/10.1_p1/0001-upstream-don-t-reuse-c-isatty-for-signalling-that-th.patch b/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/10.1_p1/0001-upstream-don-t-reuse-c-isatty-for-signalling-that-th.patch new file mode 100644 index 0000000000..6ba29a219c --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/10.1_p1/0001-upstream-don-t-reuse-c-isatty-for-signalling-that-th.patch @@ -0,0 +1,76 @@ +From 979cbc2c1e0c9cd2f60d45d8d1da69519ec425cf Mon Sep 17 00:00:00 2001 +From: "djm@openbsd.org" +Date: Tue, 7 Oct 2025 08:02:32 +0000 +Subject: [PATCH 1/6] upstream: don't reuse c->isatty for signalling that the + remote channel + +has a tty attached as this causes side effects, e.g. in channel_handle_rfd(). +bz3872 + +ok markus@ + +OpenBSD-Commit-ID: 4cd8a9f641498ca6089442e59bad0fd3dcbe85f8 +--- + channels.c | 9 +++++---- + channels.h | 3 ++- + 2 files changed, 7 insertions(+), 5 deletions(-) + +diff --git a/channels.c b/channels.c +index f1d7bcf34..80014ff34 100644 +--- a/channels.c ++++ b/channels.c +@@ -1,4 +1,4 @@ +-/* $OpenBSD: channels.c,v 1.451 2025/09/25 06:33:19 djm Exp $ */ ++/* $OpenBSD: channels.c,v 1.452 2025/10/07 08:02:32 djm Exp $ */ + /* + * Author: Tatu Ylonen + * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland +@@ -362,7 +362,7 @@ channel_classify(struct ssh *ssh, Channel *c) + { + struct ssh_channels *sc = ssh->chanctxt; + const char *type = c->xctype == NULL ? c->ctype : c->xctype; +- const char *classifier = c->isatty ? ++ const char *classifier = (c->isatty || c->remote_has_tty) ? + sc->bulk_classifier_tty : sc->bulk_classifier_notty; + + c->bulk = type != NULL && match_pattern_list(type, classifier, 0) == 1; +@@ -566,7 +566,7 @@ channel_new(struct ssh *ssh, char *ctype, int type, int rfd, int wfd, int efd, + void + channel_set_tty(struct ssh *ssh, Channel *c) + { +- c->isatty = 1; ++ c->remote_has_tty = 1; + channel_classify(ssh, c); + } + +@@ -1078,7 +1078,8 @@ channel_format_status(const Channel *c) + c->rfd, c->wfd, c->efd, c->sock, c->ctl_chan, + c->have_ctl_child_id ? "c" : "nc", c->ctl_child_id, + c->io_want, c->io_ready, +- c->isatty ? "T" : "", c->bulk ? "B" : "I"); ++ c->isatty ? "T" : (c->remote_has_tty ? "RT" : ""), ++ c->bulk ? "B" : "I"); + return ret; + } + +diff --git a/channels.h b/channels.h +index df7c7f364..7456541f8 100644 +--- a/channels.h ++++ b/channels.h +@@ -1,4 +1,4 @@ +-/* $OpenBSD: channels.h,v 1.161 2025/09/25 06:33:19 djm Exp $ */ ++/* $OpenBSD: channels.h,v 1.162 2025/10/07 08:02:32 djm Exp $ */ + + /* + * Author: Tatu Ylonen +@@ -145,6 +145,7 @@ struct Channel { + int ctl_chan; /* control channel (multiplexed connections) */ + uint32_t ctl_child_id; /* child session for mux controllers */ + int have_ctl_child_id;/* non-zero if ctl_child_id is valid */ ++ int remote_has_tty; /* remote side has a tty */ + int isatty; /* rfd is a tty */ + #ifdef _AIX + int wfd_isatty; /* wfd is a tty */ +-- +2.51.0 + diff --git a/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/10.1_p1/0002-Add-clock_gettime-compat-shim.patch b/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/10.1_p1/0002-Add-clock_gettime-compat-shim.patch new file mode 100644 index 0000000000..1c23ababba --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/10.1_p1/0002-Add-clock_gettime-compat-shim.patch @@ -0,0 +1,69 @@ +From 28a2788d609efe363b403432b08511c801d13667 Mon Sep 17 00:00:00 2001 +From: Darren Tucker +Date: Tue, 7 Oct 2025 20:04:40 +1100 +Subject: [PATCH 2/6] Add clock_gettime compat shim. + +This fixes the build on macOS prior to 10.12 Sierra, since it does not +have it. Found and tested by Sevan Janiyan. +--- + openbsd-compat/bsd-misc.c | 24 ++++++++++++++++++++++++ + openbsd-compat/bsd-misc.h | 8 ++++++++ + 2 files changed, 32 insertions(+) + +diff --git a/openbsd-compat/bsd-misc.c b/openbsd-compat/bsd-misc.c +index 983cd3fe6..2c196ec23 100644 +--- a/openbsd-compat/bsd-misc.c ++++ b/openbsd-compat/bsd-misc.c +@@ -494,6 +494,30 @@ localtime_r(const time_t *timep, struct tm *result) + } + #endif + ++#ifndef HAVE_CLOCK_GETTIME ++int ++clock_gettime(clockid_t clockid, struct timespec *ts) ++{ ++ struct timeval tv; ++ ++ if (clockid != CLOCK_REALTIME) { ++ errno = ENOSYS; ++ return -1; ++ } ++ if (ts == NULL) { ++ errno = EFAULT; ++ return -1; ++ } ++ ++ if (gettimeofday(&tv, NULL) == -1) ++ return -1; ++ ++ ts->tv_sec = tv.tv_sec; ++ ts->tv_nsec = (long)tv.tv_usec * 1000; ++ return 0; ++} ++#endif ++ + #ifdef ASAN_OPTIONS + const char *__asan_default_options(void) { + return ASAN_OPTIONS; +diff --git a/openbsd-compat/bsd-misc.h b/openbsd-compat/bsd-misc.h +index 2ad89cd83..8495f471c 100644 +--- a/openbsd-compat/bsd-misc.h ++++ b/openbsd-compat/bsd-misc.h +@@ -202,6 +202,14 @@ int flock(int, int); + struct tm *localtime_r(const time_t *, struct tm *); + #endif + ++#ifndef HAVE_CLOCK_GETTIME ++typedef int clockid_t; ++#ifndef CLOCK_REALTIME ++# define CLOCK_REALTIME 0 ++#endif ++int clock_gettime(clockid_t, struct timespec *); ++#endif ++ + #ifndef HAVE_REALPATH + #define realpath(x, y) (sftp_realpath((x), (y))) + #endif +-- +2.51.0 + diff --git a/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/10.1_p1/0003-Don-t-copy-native-host-keys-for-hostbased-test.patch b/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/10.1_p1/0003-Don-t-copy-native-host-keys-for-hostbased-test.patch new file mode 100644 index 0000000000..e863233a29 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/10.1_p1/0003-Don-t-copy-native-host-keys-for-hostbased-test.patch @@ -0,0 +1,27 @@ +From aefeee5bedcf117aa9278014eda5f099b5898a10 Mon Sep 17 00:00:00 2001 +From: Darren Tucker +Date: Tue, 7 Oct 2025 20:10:56 +1100 +Subject: [PATCH 3/6] Don't copy native host keys for hostbased test. + +Some github runners (notably macos-14) seem to have host keys where +public and private do not match, so generate our own keys for testing +purposes. +--- + .github/run_test.sh | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/.github/run_test.sh b/.github/run_test.sh +index aac9ce579..33c90ac29 100755 +--- a/.github/run_test.sh ++++ b/.github/run_test.sh +@@ -13,7 +13,6 @@ if [ ! -z "$SUDO" ] && [ ! -z "$TEST_SSH_HOSTBASED_AUTH" ]; then + hostname | $SUDO tee $sshconf/shosts.equiv >/dev/null + echo "EnableSSHKeysign yes" | $SUDO tee $sshconf/ssh_config >/dev/null + $SUDO mkdir -p $sshconf +- $SUDO cp -p /etc/ssh/ssh_host*key* $sshconf + $SUDO make install + for key in $sshconf/ssh_host*key*.pub; do + echo `hostname` `cat $key` | \ +-- +2.51.0 + diff --git a/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/10.1_p1/0004-Only-set-PAM_RHOST-if-the-remote-host-is-not-UNKNOWN.patch b/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/10.1_p1/0004-Only-set-PAM_RHOST-if-the-remote-host-is-not-UNKNOWN.patch new file mode 100644 index 0000000000..001280ab9c --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/10.1_p1/0004-Only-set-PAM_RHOST-if-the-remote-host-is-not-UNKNOWN.patch @@ -0,0 +1,32 @@ +From acb690b499e0ec2ce37869c26133615762f53cab Mon Sep 17 00:00:00 2001 +From: Daan De Meyer +Date: Mon, 20 Mar 2023 20:22:14 +0100 +Subject: [PATCH 4/6] Only set PAM_RHOST if the remote host is not "UNKNOWN" + +When using sshd's -i option with stdio that is not a AF_INET/AF_INET6 +socket, auth_get_canonical_hostname() returns "UNKNOWN" which is then +set as the value of PAM_RHOST, causing pam to try to do a reverse DNS +query of "UNKNOWN", which times out multiple times, causing a +substantial slowdown when logging in. + +To fix this, let's only set PAM_RHOST if the hostname is not "UNKNOWN". +--- + auth-pam.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/auth-pam.c b/auth-pam.c +index 5dee7601b..5591f094e 100644 +--- a/auth-pam.c ++++ b/auth-pam.c +@@ -758,7 +758,7 @@ sshpam_init(struct ssh *ssh, Authctxt *authctxt) + sshpam_laddr = get_local_ipaddr( + ssh_packet_get_connection_in(ssh)); + } +- if (sshpam_rhost != NULL) { ++ if (sshpam_rhost != NULL && strcmp(sshpam_rhost, "UNKNOWN") != 0) { + debug("PAM: setting PAM_RHOST to \"%s\"", sshpam_rhost); + sshpam_err = pam_set_item(sshpam_handle, PAM_RHOST, + sshpam_rhost); +-- +2.51.0 + diff --git a/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/10.1_p1/0005-Add-fcntl.h-to-includes.patch b/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/10.1_p1/0005-Add-fcntl.h-to-includes.patch new file mode 100644 index 0000000000..0874978ee8 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/10.1_p1/0005-Add-fcntl.h-to-includes.patch @@ -0,0 +1,29 @@ +From 9f0dd9505db695aab1148a977e2668666ad4d177 Mon Sep 17 00:00:00 2001 +From: Darren Tucker +Date: Tue, 7 Oct 2025 20:25:07 +1100 +Subject: [PATCH 5/6] Add fcntl.h to includes. + +From FreeBSD via bz#3874: "This was previously included due to nested +includes in Heimdal's headers. Without this, the build fails with an +error due to redefining AT_FDCWD." +--- + includes.h | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/includes.h b/includes.h +index 8f933568d..96cddbc26 100644 +--- a/includes.h ++++ b/includes.h +@@ -34,6 +34,9 @@ + #ifdef HAVE_ENDIAN_H + # include + #endif ++#ifdef HAVE_FCNTL_H ++# include ++#endif + #ifdef HAVE_TTYENT_H + # include + #endif +-- +2.51.0 + diff --git a/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/10.1_p1/0006-Use-calloc-for-sshkeys-if-mmap-is-not-supported.patch b/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/10.1_p1/0006-Use-calloc-for-sshkeys-if-mmap-is-not-supported.patch new file mode 100644 index 0000000000..4a952738d5 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/10.1_p1/0006-Use-calloc-for-sshkeys-if-mmap-is-not-supported.patch @@ -0,0 +1,68 @@ +From fabf4cd14108a60d9486f38ae58694d615592bc9 Mon Sep 17 00:00:00 2001 +From: Darren Tucker +Date: Tue, 7 Oct 2025 21:07:05 +1100 +Subject: [PATCH 6/6] Use calloc for sshkeys if mmap is not supported. + +Based on Github PR#597 from Mike Frysinger, any bugs added by me. +--- + configure.ac | 2 ++ + sshkey.c | 8 ++++++++ + 2 files changed, 10 insertions(+) + +diff --git a/configure.ac b/configure.ac +index 3eb6d4697..98f2e3e1c 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -536,6 +536,7 @@ AC_CHECK_HEADERS([ \ + nlist.h \ + poll.h \ + stdint.h \ ++ sys/mmap.h \ + sys/stat.h \ + sys/time.h \ + sys/un.h \ +@@ -2103,6 +2104,7 @@ AC_CHECK_FUNCS([ \ + memmove \ + memset_s \ + mkdtemp \ ++ mmap \ + ngetaddrinfo \ + nlist \ + nsleep \ +diff --git a/sshkey.c b/sshkey.c +index e17e929e0..206b72921 100644 +--- a/sshkey.c ++++ b/sshkey.c +@@ -723,6 +723,7 @@ sshkey_sk_cleanup(struct sshkey *k) + static int + sshkey_prekey_alloc(u_char **prekeyp, size_t len) + { ++#if defined(HAVE_MMAP) && defined(MAP_ANON) && defined(MAP_PRIVATE) + u_char *prekey; + + *prekeyp = NULL; +@@ -734,14 +735,21 @@ sshkey_prekey_alloc(u_char **prekeyp, size_t len) + #endif + *prekeyp = prekey; + return 0; ++#else ++ *prekeyp = calloc(1, len); ++#endif /* HAVE_MMAP et al */ + } + + static void + sshkey_prekey_free(void *prekey, size_t len) + { ++#if defined(HAVE_MMAP) && defined(MAP_ANON) && defined(MAP_PRIVATE) + if (prekey == NULL) + return; + munmap(prekey, len); ++#else ++ free(prekey); ++#endif /* HAVE_MMAP et al */ + } + + static void +-- +2.51.0 + diff --git a/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/9.8_p1/0001-Fix-detection-of-setres-id-on-GNU-Hurd.patch b/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/9.8_p1/0001-Fix-detection-of-setres-id-on-GNU-Hurd.patch new file mode 100644 index 0000000000..1001988825 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/9.8_p1/0001-Fix-detection-of-setres-id-on-GNU-Hurd.patch @@ -0,0 +1,36 @@ +From 20950a7c047ca08f9317d27866c06587ed51a338 Mon Sep 17 00:00:00 2001 +Message-ID: <20950a7c047ca08f9317d27866c06587ed51a338.1758727870.git.sam@gentoo.org> +From: Samuel Thibault +Date: Tue, 26 Mar 2024 22:15:08 +0100 +Subject: [PATCH 1/7] Fix detection of setres*id on GNU/Hurd + +Like Linux, proper _SOURCE macros need to be set to get declarations of +various standard functions, notably setres*id. Now that Debian is using +-Werror=implicit-function-declaration this is really required. While at +it, define other _SOURCE macros like on GNU/Linux, since GNU/Hurd uses +the same glibc. +--- + configure.ac | 7 +++++++ + 1 file changed, 7 insertions(+) + +diff --git a/configure.ac b/configure.ac +index 5a865f8e1..2eede34c3 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1348,6 +1348,13 @@ EOD + AC_DEFINE([BROKEN_SETVBUF], [1], + [LynxOS has broken setvbuf() implementation]) + ;; ++*-*-gnu*) ++ dnl GNU Hurd. Needs to be after the linux and the other *-gnu entries. ++ dnl Target SUSv3/POSIX.1-2001 plus BSD specifics. ++ dnl _DEFAULT_SOURCE is the new name for _BSD_SOURCE ++ dnl _GNU_SOURCE is needed for setres*id prototypes. ++ CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=600 -D_BSD_SOURCE -D_DEFAULT_SOURCE -D_GNU_SOURCE" ++ ;; + esac + + AC_MSG_CHECKING([compiler and flags for sanity]) +-- +2.51.0 + diff --git a/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/9.8_p1/0002-Add-9.8-branch-to-ci-status-page.patch b/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/9.8_p1/0002-Add-9.8-branch-to-ci-status-page.patch new file mode 100644 index 0000000000..cc74ec2d30 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/9.8_p1/0002-Add-9.8-branch-to-ci-status-page.patch @@ -0,0 +1,30 @@ +From 34f7a962f992a43e33b5b6e2dd71f1582433d551 Mon Sep 17 00:00:00 2001 +Message-ID: <34f7a962f992a43e33b5b6e2dd71f1582433d551.1758727870.git.sam@gentoo.org> +In-Reply-To: <20950a7c047ca08f9317d27866c06587ed51a338.1758727870.git.sam@gentoo.org> +References: <20950a7c047ca08f9317d27866c06587ed51a338.1758727870.git.sam@gentoo.org> +From: Darren Tucker +Date: Thu, 4 Jul 2024 20:12:26 +1000 +Subject: [PATCH 2/7] Add 9.8 branch to ci-status page. + +--- + .github/ci-status.md | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/.github/ci-status.md b/.github/ci-status.md +index fbf7c5fd6..4fa73894c 100644 +--- a/.github/ci-status.md ++++ b/.github/ci-status.md +@@ -6,6 +6,10 @@ master : + [![Fuzzing Status](https://oss-fuzz-build-logs.storage.googleapis.com/badges/openssh.svg)](https://bugs.chromium.org/p/oss-fuzz/issues/list?sort=-opened&can=1&q=proj:openssh) + [![Coverity Status](https://scan.coverity.com/projects/21341/badge.svg)](https://scan.coverity.com/projects/openssh-portable) + ++9.8 : ++[![C/C++ CI](https://github.com/openssh/openssh-portable/actions/workflows/c-cpp.yml/badge.svg?branch=V_9_8)](https://github.com/openssh/openssh-portable/actions/workflows/c-cpp.yml?query=branch:V_9_8) ++[![C/C++ CI self-hosted](https://github.com/openssh/openssh-portable-selfhosted/actions/workflows/selfhosted.yml/badge.svg?branch=V_9_8)](https://github.com/openssh/openssh-portable-selfhosted/actions/workflows/selfhosted.yml?query=branch:V_9_8) ++ + 9.7 : + [![C/C++ CI](https://github.com/openssh/openssh-portable/actions/workflows/c-cpp.yml/badge.svg?branch=V_9_7)](https://github.com/openssh/openssh-portable/actions/workflows/c-cpp.yml?query=branch:V_9_7) + [![C/C++ CI self-hosted](https://github.com/openssh/openssh-portable-selfhosted/actions/workflows/selfhosted.yml/badge.svg?branch=V_9_7)](https://github.com/openssh/openssh-portable-selfhosted/actions/workflows/selfhosted.yml?query=branch:V_9_7) +-- +2.51.0 + diff --git a/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/9.8_p1/0003-Cast-to-sockaddr-in-systemd-interface.patch b/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/9.8_p1/0003-Cast-to-sockaddr-in-systemd-interface.patch new file mode 100644 index 0000000000..aa7d593abf --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/9.8_p1/0003-Cast-to-sockaddr-in-systemd-interface.patch @@ -0,0 +1,29 @@ +From b35a64dd7d5278af859ff8cca1fbe42d2c308ac0 Mon Sep 17 00:00:00 2001 +Message-ID: +In-Reply-To: <20950a7c047ca08f9317d27866c06587ed51a338.1758727870.git.sam@gentoo.org> +References: <20950a7c047ca08f9317d27866c06587ed51a338.1758727870.git.sam@gentoo.org> +From: Darren Tucker +Date: Sun, 7 Jul 2024 18:46:19 +1000 +Subject: [PATCH 3/7] Cast to sockaddr * in systemd interface. + +Fixes build with musl libx. bz#3707. +--- + openbsd-compat/port-linux.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/openbsd-compat/port-linux.c b/openbsd-compat/port-linux.c +index 4c024c6d2..8adfec5a7 100644 +--- a/openbsd-compat/port-linux.c ++++ b/openbsd-compat/port-linux.c +@@ -366,7 +366,7 @@ ssh_systemd_notify(const char *fmt, ...) + error_f("socket \"%s\": %s", path, strerror(errno)); + goto out; + } +- if (connect(fd, &addr, sizeof(addr)) != 0) { ++ if (connect(fd, (struct sockaddr *)&addr, sizeof(addr)) != 0) { + error_f("socket \"%s\" connect: %s", path, strerror(errno)); + goto out; + } +-- +2.51.0 + diff --git a/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/9.8_p1/0004-upstream-correct-keyword-from-Yatao-Su-via-GHPR509.patch b/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/9.8_p1/0004-upstream-correct-keyword-from-Yatao-Su-via-GHPR509.patch new file mode 100644 index 0000000000..7d236829a5 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/9.8_p1/0004-upstream-correct-keyword-from-Yatao-Su-via-GHPR509.patch @@ -0,0 +1,29 @@ +From c21fc9d953f6d858ea0a9d7da38359d2eb397ed0 Mon Sep 17 00:00:00 2001 +Message-ID: +In-Reply-To: <20950a7c047ca08f9317d27866c06587ed51a338.1758727870.git.sam@gentoo.org> +References: <20950a7c047ca08f9317d27866c06587ed51a338.1758727870.git.sam@gentoo.org> +From: "djm@openbsd.org" +Date: Wed, 10 Jul 2024 21:58:34 +0000 +Subject: [PATCH 4/7] upstream: correct keyword; from Yatao Su via GHPR509 + +OpenBSD-Commit-ID: 81c778c76dea7ef407603caa157eb0c381c52ad2 +--- + sshd_config.5 | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/sshd_config.5 b/sshd_config.5 +index 1ab0f41d9..ce872de52 100644 +--- a/sshd_config.5 ++++ b/sshd_config.5 +@@ -1586,7 +1586,7 @@ accumulated. + .Pp + Penalties are enabled by default with the default settings listed below + but may disabled using the +-.Cm off ++.Cm no + keyword. + The defaults may be overridden by specifying one or more of the keywords below, + separated by whitespace. +-- +2.51.0 + diff --git a/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/9.8_p1/0005-support-sntrup761x25519-sha512-alias.patch b/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/9.8_p1/0005-support-sntrup761x25519-sha512-alias.patch new file mode 100644 index 0000000000..d61a90605d --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/9.8_p1/0005-support-sntrup761x25519-sha512-alias.patch @@ -0,0 +1,250 @@ +From 26f73db15e0eee558a11b42a9d794d78c87dd11e Mon Sep 17 00:00:00 2001 +Message-ID: <26f73db15e0eee558a11b42a9d794d78c87dd11e.1758727870.git.sam@gentoo.org> +In-Reply-To: <20950a7c047ca08f9317d27866c06587ed51a338.1758727870.git.sam@gentoo.org> +References: <20950a7c047ca08f9317d27866c06587ed51a338.1758727870.git.sam@gentoo.org> +From: Damien Miller +Date: Mon, 11 Aug 2025 16:40:24 +1000 +Subject: [PATCH 5/7] support sntrup761x25519-sha512 alias + +OpenSSH 9.8 supports the sntrup761x25519-sha512@openssh.com +key agreement algorithm. As part of standardisation, this algorithm +has been assigned the name sntrup761x25519-sha512. + +This commit enables the existing algorithm under this new name. +--- + configure | 3 +++ + kex-names.c | 2 ++ + kex.h | 1 + + moduli.0 | 2 +- + myproposal.h | 1 + + scp.0 | 2 +- + sftp-server.0 | 2 +- + sftp.0 | 2 +- + ssh-add.0 | 2 +- + ssh-agent.0 | 2 +- + ssh-keygen.0 | 2 +- + ssh-keyscan.0 | 2 +- + ssh-keysign.0 | 2 +- + ssh-pkcs11-helper.0 | 2 +- + ssh-sk-helper.0 | 2 +- + ssh.0 | 2 +- + ssh_config.0 | 2 +- + sshd.0 | 2 +- + sshd_config.0 | 6 +++--- + 19 files changed, 24 insertions(+), 17 deletions(-) + +diff --git a/configure b/configure +index 07d19fd30..32e38c4cb 100755 +--- a/configure ++++ b/configure +@@ -13317,6 +13317,9 @@ EOD + printf "%s\n" "#define BROKEN_SETVBUF 1" >>confdefs.h + + ;; ++*-*-gnu*) ++ CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=600 -D_BSD_SOURCE -D_DEFAULT_SOURCE -D_GNU_SOURCE" ++ ;; + esac + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking compiler and flags for sanity" >&5 +diff --git a/kex-names.c b/kex-names.c +index 339eb1c23..1869b8ee1 100644 +--- a/kex-names.c ++++ b/kex-names.c +@@ -77,6 +77,8 @@ static const struct kexalg kexalgs[] = { + { KEX_CURVE25519_SHA256, KEX_C25519_SHA256, 0, SSH_DIGEST_SHA256 }, + { KEX_CURVE25519_SHA256_OLD, KEX_C25519_SHA256, 0, SSH_DIGEST_SHA256 }, + #ifdef USE_SNTRUP761X25519 ++ { KEX_SNTRUP761X25519_SHA512_IANA, KEX_KEM_SNTRUP761X25519_SHA512, 0, ++ SSH_DIGEST_SHA512 }, + { KEX_SNTRUP761X25519_SHA512, KEX_KEM_SNTRUP761X25519_SHA512, 0, + SSH_DIGEST_SHA512 }, + #endif +diff --git a/kex.h b/kex.h +index 34665eb20..ed22b929f 100644 +--- a/kex.h ++++ b/kex.h +@@ -63,6 +63,7 @@ + #define KEX_CURVE25519_SHA256 "curve25519-sha256" + #define KEX_CURVE25519_SHA256_OLD "curve25519-sha256@libssh.org" + #define KEX_SNTRUP761X25519_SHA512 "sntrup761x25519-sha512@openssh.com" ++#define KEX_SNTRUP761X25519_SHA512_IANA "sntrup761x25519-sha512" + + #define COMP_NONE 0 + /* pre-auth compression (COMP_ZLIB) is only supported in the client */ +diff --git a/moduli.0 b/moduli.0 +index 057a018ef..90700a16f 100644 +--- a/moduli.0 ++++ b/moduli.0 +@@ -71,4 +71,4 @@ STANDARDS + M. Friedl, N. Provos, and W. Simpson, Diffie-Hellman Group Exchange for + the Secure Shell (SSH) Transport Layer Protocol, RFC 4419, March 2006. + +-OpenBSD 7.5 April 16, 2022 OpenBSD 7.5 ++OpenBSD 7.7 April 16, 2022 OpenBSD 7.7 +diff --git a/myproposal.h b/myproposal.h +index ee6e9f741..0528cd783 100644 +--- a/myproposal.h ++++ b/myproposal.h +@@ -25,6 +25,7 @@ + */ + + #define KEX_SERVER_KEX \ ++ "sntrup761x25519-sha512," \ + "sntrup761x25519-sha512@openssh.com," \ + "curve25519-sha256," \ + "curve25519-sha256@libssh.org," \ +diff --git a/scp.0 b/scp.0 +index e098ddf55..85d5f83d5 100644 +--- a/scp.0 ++++ b/scp.0 +@@ -229,4 +229,4 @@ CAVEATS + requires careful quoting of any characters that have special meaning to + the remote shell, such as quote characters. + +-OpenBSD 7.5 December 16, 2022 OpenBSD 7.5 ++OpenBSD 7.7 December 16, 2022 OpenBSD 7.7 +diff --git a/sftp-server.0 b/sftp-server.0 +index 23fdda399..273b69908 100644 +--- a/sftp-server.0 ++++ b/sftp-server.0 +@@ -95,4 +95,4 @@ HISTORY + AUTHORS + Markus Friedl + +-OpenBSD 7.5 July 27, 2021 OpenBSD 7.5 ++OpenBSD 7.7 July 27, 2021 OpenBSD 7.7 +diff --git a/sftp.0 b/sftp.0 +index c6a9e60c4..0476733c1 100644 +--- a/sftp.0 ++++ b/sftp.0 +@@ -435,4 +435,4 @@ SEE ALSO + T. Ylonen and S. Lehtinen, SSH File Transfer Protocol, draft-ietf-secsh- + filexfer-00.txt, January 2001, work in progress material. + +-OpenBSD 7.5 December 16, 2022 OpenBSD 7.5 ++OpenBSD 7.7 December 16, 2022 OpenBSD 7.7 +diff --git a/ssh-add.0 b/ssh-add.0 +index 30eed6672..20f1a88e2 100644 +--- a/ssh-add.0 ++++ b/ssh-add.0 +@@ -206,4 +206,4 @@ AUTHORS + created OpenSSH. Markus Friedl contributed the support for SSH protocol + versions 1.5 and 2.0. + +-OpenBSD 7.5 June 17, 2024 OpenBSD 7.5 ++OpenBSD 7.7 June 17, 2024 OpenBSD 7.7 +diff --git a/ssh-agent.0 b/ssh-agent.0 +index 2e4ef7b6e..238fa54e2 100644 +--- a/ssh-agent.0 ++++ b/ssh-agent.0 +@@ -137,4 +137,4 @@ AUTHORS + created OpenSSH. Markus Friedl contributed the support for SSH protocol + versions 1.5 and 2.0. + +-OpenBSD 7.5 August 10, 2023 OpenBSD 7.5 ++OpenBSD 7.7 August 10, 2023 OpenBSD 7.7 +diff --git a/ssh-keygen.0 b/ssh-keygen.0 +index a731a7fa8..13b032f46 100644 +--- a/ssh-keygen.0 ++++ b/ssh-keygen.0 +@@ -904,4 +904,4 @@ AUTHORS + created OpenSSH. Markus Friedl contributed the support for SSH protocol + versions 1.5 and 2.0. + +-OpenBSD 7.5 June 17, 2024 OpenBSD 7.5 ++OpenBSD 7.7 June 17, 2024 OpenBSD 7.7 +diff --git a/ssh-keyscan.0 b/ssh-keyscan.0 +index 110399094..cf0962c82 100644 +--- a/ssh-keyscan.0 ++++ b/ssh-keyscan.0 +@@ -120,4 +120,4 @@ AUTHORS + Davison added support for protocol version + 2. + +-OpenBSD 7.5 June 17, 2024 OpenBSD 7.5 ++OpenBSD 7.7 June 17, 2024 OpenBSD 7.7 +diff --git a/ssh-keysign.0 b/ssh-keysign.0 +index 577955d1b..ff3305809 100644 +--- a/ssh-keysign.0 ++++ b/ssh-keysign.0 +@@ -47,4 +47,4 @@ HISTORY + AUTHORS + Markus Friedl + +-OpenBSD 7.5 June 17, 2024 OpenBSD 7.5 ++OpenBSD 7.7 June 17, 2024 OpenBSD 7.7 +diff --git a/ssh-pkcs11-helper.0 b/ssh-pkcs11-helper.0 +index 564587259..4b1cb8d7d 100644 +--- a/ssh-pkcs11-helper.0 ++++ b/ssh-pkcs11-helper.0 +@@ -32,4 +32,4 @@ HISTORY + AUTHORS + Markus Friedl + +-OpenBSD 7.5 April 29, 2022 OpenBSD 7.5 ++OpenBSD 7.7 April 29, 2022 OpenBSD 7.7 +diff --git a/ssh-sk-helper.0 b/ssh-sk-helper.0 +index ea2117abd..4abc5e8a0 100644 +--- a/ssh-sk-helper.0 ++++ b/ssh-sk-helper.0 +@@ -31,4 +31,4 @@ HISTORY + AUTHORS + Damien Miller + +-OpenBSD 7.5 April 29, 2022 OpenBSD 7.5 ++OpenBSD 7.7 April 29, 2022 OpenBSD 7.7 +diff --git a/ssh.0 b/ssh.0 +index 78863b1b0..9c34e3e6e 100644 +--- a/ssh.0 ++++ b/ssh.0 +@@ -1016,4 +1016,4 @@ AUTHORS + created OpenSSH. Markus Friedl contributed the support for SSH protocol + versions 1.5 and 2.0. + +-OpenBSD 7.5 June 27, 2024 OpenBSD 7.5 ++OpenBSD 7.7 June 27, 2024 OpenBSD 7.7 +diff --git a/ssh_config.0 b/ssh_config.0 +index ef6c0936a..f9a82781b 100644 +--- a/ssh_config.0 ++++ b/ssh_config.0 +@@ -1428,4 +1428,4 @@ AUTHORS + created OpenSSH. Markus Friedl contributed the support for SSH protocol + versions 1.5 and 2.0. + +-OpenBSD 7.5 June 17, 2024 OpenBSD 7.5 ++OpenBSD 7.7 June 17, 2024 OpenBSD 7.7 +diff --git a/sshd.0 b/sshd.0 +index c7de2d311..eac127dcf 100644 +--- a/sshd.0 ++++ b/sshd.0 +@@ -682,4 +682,4 @@ AUTHORS + versions 1.5 and 2.0. Niels Provos and Markus Friedl contributed support + for privilege separation. + +-OpenBSD 7.5 June 17, 2024 OpenBSD 7.5 ++OpenBSD 7.7 June 17, 2024 OpenBSD 7.7 +diff --git a/sshd_config.0 b/sshd_config.0 +index 6883dda4b..ca030fcca 100644 +--- a/sshd_config.0 ++++ b/sshd_config.0 +@@ -950,8 +950,8 @@ DESCRIPTION + accumulated. + + Penalties are enabled by default with the default settings listed +- below but may disabled using the off keyword. The defaults may +- be overridden by specifying one or more of the keywords below, ++ below but may disabled using the no keyword. The defaults may be ++ overridden by specifying one or more of the keywords below, + separated by whitespace. All keywords accept arguments, e.g. + "crash:2m". + +@@ -1390,4 +1390,4 @@ AUTHORS + versions 1.5 and 2.0. Niels Provos and Markus Friedl contributed support + for privilege separation. + +-OpenBSD 7.5 June 24, 2024 OpenBSD 7.5 ++OpenBSD 7.7 June 24, 2024 OpenBSD 7.7 +-- +2.51.0 + diff --git a/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/9.8_p1/0006-back-out-unrelated-manpages-changes.patch b/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/9.8_p1/0006-back-out-unrelated-manpages-changes.patch new file mode 100644 index 0000000000..f5ca5ebacf --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/9.8_p1/0006-back-out-unrelated-manpages-changes.patch @@ -0,0 +1,206 @@ +From d1460a177431d034248b62b36240f634482e48de Mon Sep 17 00:00:00 2001 +Message-ID: +In-Reply-To: <20950a7c047ca08f9317d27866c06587ed51a338.1758727870.git.sam@gentoo.org> +References: <20950a7c047ca08f9317d27866c06587ed51a338.1758727870.git.sam@gentoo.org> +From: Damien Miller +Date: Wed, 13 Aug 2025 09:19:53 +1000 +Subject: [PATCH 6/7] back out unrelated manpages changes + +spotted by Colin Wilson +--- + configure | 3 --- + moduli.0 | 2 +- + scp.0 | 2 +- + sftp-server.0 | 2 +- + sftp.0 | 2 +- + ssh-add.0 | 2 +- + ssh-agent.0 | 2 +- + ssh-keygen.0 | 2 +- + ssh-keyscan.0 | 2 +- + ssh-keysign.0 | 2 +- + ssh-pkcs11-helper.0 | 2 +- + ssh-sk-helper.0 | 2 +- + ssh.0 | 2 +- + ssh_config.0 | 2 +- + sshd.0 | 2 +- + sshd_config.0 | 6 +++--- + 16 files changed, 17 insertions(+), 20 deletions(-) + +diff --git a/configure b/configure +index 32e38c4cb..07d19fd30 100755 +--- a/configure ++++ b/configure +@@ -13317,9 +13317,6 @@ EOD + printf "%s\n" "#define BROKEN_SETVBUF 1" >>confdefs.h + + ;; +-*-*-gnu*) +- CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=600 -D_BSD_SOURCE -D_DEFAULT_SOURCE -D_GNU_SOURCE" +- ;; + esac + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking compiler and flags for sanity" >&5 +diff --git a/moduli.0 b/moduli.0 +index 90700a16f..057a018ef 100644 +--- a/moduli.0 ++++ b/moduli.0 +@@ -71,4 +71,4 @@ STANDARDS + M. Friedl, N. Provos, and W. Simpson, Diffie-Hellman Group Exchange for + the Secure Shell (SSH) Transport Layer Protocol, RFC 4419, March 2006. + +-OpenBSD 7.7 April 16, 2022 OpenBSD 7.7 ++OpenBSD 7.5 April 16, 2022 OpenBSD 7.5 +diff --git a/scp.0 b/scp.0 +index 85d5f83d5..e098ddf55 100644 +--- a/scp.0 ++++ b/scp.0 +@@ -229,4 +229,4 @@ CAVEATS + requires careful quoting of any characters that have special meaning to + the remote shell, such as quote characters. + +-OpenBSD 7.7 December 16, 2022 OpenBSD 7.7 ++OpenBSD 7.5 December 16, 2022 OpenBSD 7.5 +diff --git a/sftp-server.0 b/sftp-server.0 +index 273b69908..23fdda399 100644 +--- a/sftp-server.0 ++++ b/sftp-server.0 +@@ -95,4 +95,4 @@ HISTORY + AUTHORS + Markus Friedl + +-OpenBSD 7.7 July 27, 2021 OpenBSD 7.7 ++OpenBSD 7.5 July 27, 2021 OpenBSD 7.5 +diff --git a/sftp.0 b/sftp.0 +index 0476733c1..c6a9e60c4 100644 +--- a/sftp.0 ++++ b/sftp.0 +@@ -435,4 +435,4 @@ SEE ALSO + T. Ylonen and S. Lehtinen, SSH File Transfer Protocol, draft-ietf-secsh- + filexfer-00.txt, January 2001, work in progress material. + +-OpenBSD 7.7 December 16, 2022 OpenBSD 7.7 ++OpenBSD 7.5 December 16, 2022 OpenBSD 7.5 +diff --git a/ssh-add.0 b/ssh-add.0 +index 20f1a88e2..30eed6672 100644 +--- a/ssh-add.0 ++++ b/ssh-add.0 +@@ -206,4 +206,4 @@ AUTHORS + created OpenSSH. Markus Friedl contributed the support for SSH protocol + versions 1.5 and 2.0. + +-OpenBSD 7.7 June 17, 2024 OpenBSD 7.7 ++OpenBSD 7.5 June 17, 2024 OpenBSD 7.5 +diff --git a/ssh-agent.0 b/ssh-agent.0 +index 238fa54e2..2e4ef7b6e 100644 +--- a/ssh-agent.0 ++++ b/ssh-agent.0 +@@ -137,4 +137,4 @@ AUTHORS + created OpenSSH. Markus Friedl contributed the support for SSH protocol + versions 1.5 and 2.0. + +-OpenBSD 7.7 August 10, 2023 OpenBSD 7.7 ++OpenBSD 7.5 August 10, 2023 OpenBSD 7.5 +diff --git a/ssh-keygen.0 b/ssh-keygen.0 +index 13b032f46..a731a7fa8 100644 +--- a/ssh-keygen.0 ++++ b/ssh-keygen.0 +@@ -904,4 +904,4 @@ AUTHORS + created OpenSSH. Markus Friedl contributed the support for SSH protocol + versions 1.5 and 2.0. + +-OpenBSD 7.7 June 17, 2024 OpenBSD 7.7 ++OpenBSD 7.5 June 17, 2024 OpenBSD 7.5 +diff --git a/ssh-keyscan.0 b/ssh-keyscan.0 +index cf0962c82..110399094 100644 +--- a/ssh-keyscan.0 ++++ b/ssh-keyscan.0 +@@ -120,4 +120,4 @@ AUTHORS + Davison added support for protocol version + 2. + +-OpenBSD 7.7 June 17, 2024 OpenBSD 7.7 ++OpenBSD 7.5 June 17, 2024 OpenBSD 7.5 +diff --git a/ssh-keysign.0 b/ssh-keysign.0 +index ff3305809..577955d1b 100644 +--- a/ssh-keysign.0 ++++ b/ssh-keysign.0 +@@ -47,4 +47,4 @@ HISTORY + AUTHORS + Markus Friedl + +-OpenBSD 7.7 June 17, 2024 OpenBSD 7.7 ++OpenBSD 7.5 June 17, 2024 OpenBSD 7.5 +diff --git a/ssh-pkcs11-helper.0 b/ssh-pkcs11-helper.0 +index 4b1cb8d7d..564587259 100644 +--- a/ssh-pkcs11-helper.0 ++++ b/ssh-pkcs11-helper.0 +@@ -32,4 +32,4 @@ HISTORY + AUTHORS + Markus Friedl + +-OpenBSD 7.7 April 29, 2022 OpenBSD 7.7 ++OpenBSD 7.5 April 29, 2022 OpenBSD 7.5 +diff --git a/ssh-sk-helper.0 b/ssh-sk-helper.0 +index 4abc5e8a0..ea2117abd 100644 +--- a/ssh-sk-helper.0 ++++ b/ssh-sk-helper.0 +@@ -31,4 +31,4 @@ HISTORY + AUTHORS + Damien Miller + +-OpenBSD 7.7 April 29, 2022 OpenBSD 7.7 ++OpenBSD 7.5 April 29, 2022 OpenBSD 7.5 +diff --git a/ssh.0 b/ssh.0 +index 9c34e3e6e..78863b1b0 100644 +--- a/ssh.0 ++++ b/ssh.0 +@@ -1016,4 +1016,4 @@ AUTHORS + created OpenSSH. Markus Friedl contributed the support for SSH protocol + versions 1.5 and 2.0. + +-OpenBSD 7.7 June 27, 2024 OpenBSD 7.7 ++OpenBSD 7.5 June 27, 2024 OpenBSD 7.5 +diff --git a/ssh_config.0 b/ssh_config.0 +index f9a82781b..ef6c0936a 100644 +--- a/ssh_config.0 ++++ b/ssh_config.0 +@@ -1428,4 +1428,4 @@ AUTHORS + created OpenSSH. Markus Friedl contributed the support for SSH protocol + versions 1.5 and 2.0. + +-OpenBSD 7.7 June 17, 2024 OpenBSD 7.7 ++OpenBSD 7.5 June 17, 2024 OpenBSD 7.5 +diff --git a/sshd.0 b/sshd.0 +index eac127dcf..c7de2d311 100644 +--- a/sshd.0 ++++ b/sshd.0 +@@ -682,4 +682,4 @@ AUTHORS + versions 1.5 and 2.0. Niels Provos and Markus Friedl contributed support + for privilege separation. + +-OpenBSD 7.7 June 17, 2024 OpenBSD 7.7 ++OpenBSD 7.5 June 17, 2024 OpenBSD 7.5 +diff --git a/sshd_config.0 b/sshd_config.0 +index ca030fcca..6883dda4b 100644 +--- a/sshd_config.0 ++++ b/sshd_config.0 +@@ -950,8 +950,8 @@ DESCRIPTION + accumulated. + + Penalties are enabled by default with the default settings listed +- below but may disabled using the no keyword. The defaults may be +- overridden by specifying one or more of the keywords below, ++ below but may disabled using the off keyword. The defaults may ++ be overridden by specifying one or more of the keywords below, + separated by whitespace. All keywords accept arguments, e.g. + "crash:2m". + +@@ -1390,4 +1390,4 @@ AUTHORS + versions 1.5 and 2.0. Niels Provos and Markus Friedl contributed support + for privilege separation. + +-OpenBSD 7.7 June 24, 2024 OpenBSD 7.7 ++OpenBSD 7.5 June 24, 2024 OpenBSD 7.5 +-- +2.51.0 + diff --git a/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/9.8_p1/0007-mention-sntrup761x25519-sha512-in-manpages.patch b/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/9.8_p1/0007-mention-sntrup761x25519-sha512-in-manpages.patch new file mode 100644 index 0000000000..d9a7a0143d --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/9.8_p1/0007-mention-sntrup761x25519-sha512-in-manpages.patch @@ -0,0 +1,48 @@ +From a38b48e77ccfe9528dd4a8516c114950fa7a111d Mon Sep 17 00:00:00 2001 +Message-ID: +In-Reply-To: <20950a7c047ca08f9317d27866c06587ed51a338.1758727870.git.sam@gentoo.org> +References: <20950a7c047ca08f9317d27866c06587ed51a338.1758727870.git.sam@gentoo.org> +From: Damien Miller +Date: Wed, 13 Aug 2025 09:16:34 +1000 +Subject: [PATCH 7/7] mention sntrup761x25519-sha512 in manpages + +Spotted by Colin Watson +--- + ssh_config.5 | 1 + + sshd_config.5 | 3 +++ + 2 files changed, 4 insertions(+) + +diff --git a/ssh_config.5 b/ssh_config.5 +index 2e1902283..9473f4692 100644 +--- a/ssh_config.5 ++++ b/ssh_config.5 +@@ -1281,6 +1281,7 @@ default set. + .Pp + The default is: + .Bd -literal -offset indent ++sntrup761x25519-sha512, + sntrup761x25519-sha512@openssh.com, + curve25519-sha256,curve25519-sha256@libssh.org, + ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521, +diff --git a/sshd_config.5 b/sshd_config.5 +index ce872de52..3c727f4d3 100644 +--- a/sshd_config.5 ++++ b/sshd_config.5 +@@ -1050,11 +1050,14 @@ ecdh-sha2-nistp384 + .It + ecdh-sha2-nistp521 + .It ++sntrup761x25519-sha512 ++.It + sntrup761x25519-sha512@openssh.com + .El + .Pp + The default is: + .Bd -literal -offset indent ++sntrup761x25519-sha512, + sntrup761x25519-sha512@openssh.com, + curve25519-sha256,curve25519-sha256@libssh.org, + ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521, +-- +2.51.0 + diff --git a/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/9.9_p1/0001-fix-utmpx-ifdef.patch b/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/9.9_p1/0001-fix-utmpx-ifdef.patch deleted file mode 100644 index 80597517dd..0000000000 --- a/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/9.9_p1/0001-fix-utmpx-ifdef.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 27996b32a8b0fe908effc469e5c7d496e40c6671 Mon Sep 17 00:00:00 2001 -Message-ID: <27996b32a8b0fe908effc469e5c7d496e40c6671.1730162536.git.sam@gentoo.org> -From: Christoph Ostarek -Date: Wed, 3 Jul 2024 12:46:59 +0200 -Subject: [PATCH 1/8] fix utmpx ifdef - -02e16ad95fb1f56ab004b01a10aab89f7103c55d did a copy-paste for -utmpx, but forgot to change the ifdef appropriately - -(cherry picked from commit c7fda601186ff28128cfe3eab9c9c0622de096e1) ---- - loginrec.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/loginrec.c b/loginrec.c -index 7460bb2c0..45f13dee8 100644 ---- a/loginrec.c -+++ b/loginrec.c -@@ -723,7 +723,7 @@ set_utmpx_time(struct logininfo *li, struct utmpx *utx) - void - construct_utmpx(struct logininfo *li, struct utmpx *utx) - { --# ifdef HAVE_ADDR_V6_IN_UTMP -+# ifdef HAVE_ADDR_V6_IN_UTMPX - struct sockaddr_in6 *sa6; - # endif - memset(utx, '\0', sizeof(*utx)); -@@ -769,7 +769,7 @@ construct_utmpx(struct logininfo *li, struct utmpx *utx) - if (li->hostaddr.sa.sa_family == AF_INET) - utx->ut_addr = li->hostaddr.sa_in.sin_addr.s_addr; - # endif --# ifdef HAVE_ADDR_V6_IN_UTMP -+# ifdef HAVE_ADDR_V6_IN_UTMPX - /* this is just a 128-bit IPv6 address */ - if (li->hostaddr.sa.sa_family == AF_INET6) { - sa6 = ((struct sockaddr_in6 *)&li->hostaddr.sa); --- -2.47.0 - diff --git a/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/9.9_p1/0002-build-construct_utmp-when-USE_BTMP-is-set.patch b/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/9.9_p1/0002-build-construct_utmp-when-USE_BTMP-is-set.patch deleted file mode 100644 index 814851b17c..0000000000 --- a/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/9.9_p1/0002-build-construct_utmp-when-USE_BTMP-is-set.patch +++ /dev/null @@ -1,40 +0,0 @@ -From c606840894ca805472ddbd4ebad4b0a6f231ccb5 Mon Sep 17 00:00:00 2001 -Message-ID: -In-Reply-To: <27996b32a8b0fe908effc469e5c7d496e40c6671.1730162536.git.sam@gentoo.org> -References: <27996b32a8b0fe908effc469e5c7d496e40c6671.1730162536.git.sam@gentoo.org> -From: Damien Miller -Date: Wed, 25 Sep 2024 11:13:05 +1000 -Subject: [PATCH 2/8] build construct_utmp() when USE_BTMP is set - -Fixes compile error on Void Linux/Musl - -(cherry picked from commit 2c12ae8cf9b0b7549ae097c4123abeda0ee63e5b) ---- - loginrec.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/loginrec.c b/loginrec.c -index 45f13dee8..7b1818b86 100644 ---- a/loginrec.c -+++ b/loginrec.c -@@ -614,7 +614,7 @@ line_abbrevname(char *dst, const char *src, int dstsize) - ** into account. - **/ - --#if defined(USE_UTMP) || defined (USE_WTMP) || defined (USE_LOGIN) -+#if defined(USE_BTMP) || defined(USE_UTMP) || defined (USE_WTMP) || defined (USE_LOGIN) - - /* build the utmp structure */ - void -@@ -698,7 +698,7 @@ construct_utmp(struct logininfo *li, - } - # endif - } --#endif /* USE_UTMP || USE_WTMP || USE_LOGIN */ -+#endif /* USE_BTMP || USE_UTMP || USE_WTMP || USE_LOGIN */ - - /** - ** utmpx utility functions --- -2.47.0 - diff --git a/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/9.9_p1/0003-gss-serv.c-needs-sys-param.h.patch b/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/9.9_p1/0003-gss-serv.c-needs-sys-param.h.patch deleted file mode 100644 index cac3a4140f..0000000000 --- a/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/9.9_p1/0003-gss-serv.c-needs-sys-param.h.patch +++ /dev/null @@ -1,30 +0,0 @@ -From d1e0cfefc3a0f2d371f280d270e9ebc2188950c6 Mon Sep 17 00:00:00 2001 -Message-ID: -In-Reply-To: <27996b32a8b0fe908effc469e5c7d496e40c6671.1730162536.git.sam@gentoo.org> -References: <27996b32a8b0fe908effc469e5c7d496e40c6671.1730162536.git.sam@gentoo.org> -From: Damien Miller -Date: Wed, 25 Sep 2024 11:15:45 +1000 -Subject: [PATCH 3/8] gss-serv.c needs sys/param.h - -From Void Linux - -(cherry picked from commit ff2cd1dd5711ff88efdf26662d6189d980439a1f) ---- - gss-serv.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/gss-serv.c b/gss-serv.c -index 00e3d118b..025a118f8 100644 ---- a/gss-serv.c -+++ b/gss-serv.c -@@ -29,6 +29,7 @@ - #ifdef GSSAPI - - #include -+#include - - #include - #include --- -2.47.0 - diff --git a/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/9.9_p1/0004-upstream-fix-regression-introduced-when-I-switched-t.patch b/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/9.9_p1/0004-upstream-fix-regression-introduced-when-I-switched-t.patch deleted file mode 100644 index 40583d31ca..0000000000 --- a/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/9.9_p1/0004-upstream-fix-regression-introduced-when-I-switched-t.patch +++ /dev/null @@ -1,296 +0,0 @@ -From dda58ae078f4cba21c3b874e81f1d28121636985 Mon Sep 17 00:00:00 2001 -Message-ID: -In-Reply-To: <27996b32a8b0fe908effc469e5c7d496e40c6671.1730162536.git.sam@gentoo.org> -References: <27996b32a8b0fe908effc469e5c7d496e40c6671.1730162536.git.sam@gentoo.org> -From: "djm@openbsd.org" -Date: Wed, 25 Sep 2024 01:24:04 +0000 -Subject: [PATCH 4/8] upstream: fix regression introduced when I switched the - "Match" - -criteria tokeniser to a more shell-like one. Apparently the old tokeniser -(accidentally?) allowed "Match criteria=argument" as well as the "Match -criteria argument" syntax that we tested for. - -People were using this syntax so this adds back support for -"Match criteria=argument" - -bz3739 ok dtucker - -OpenBSD-Commit-ID: d1eebedb8c902002b75b75debfe1eeea1801f58a -(cherry picked from commit 66878e12a207fa9746dee3e2bdcca29b704cf035) ---- - misc.c | 23 +++++++++++++++++++++- - misc.h | 3 ++- - readconf.c | 28 ++++++++++++++++++++++----- - servconf.c | 57 ++++++++++++++++++++++++++++++++++++++++-------------- - 4 files changed, 89 insertions(+), 22 deletions(-) - -diff --git a/misc.c b/misc.c -index afdf5142e..1b4b55c50 100644 ---- a/misc.c -+++ b/misc.c -@@ -1,4 +1,4 @@ --/* $OpenBSD: misc.c,v 1.196 2024/06/06 17:15:25 djm Exp $ */ -+/* $OpenBSD: misc.c,v 1.197 2024/09/25 01:24:04 djm Exp $ */ - /* - * Copyright (c) 2000 Markus Friedl. All rights reserved. - * Copyright (c) 2005-2020 Damien Miller. All rights reserved. -@@ -107,6 +107,27 @@ rtrim(char *s) - } - } - -+/* -+ * returns pointer to character after 'prefix' in 's' or otherwise NULL -+ * if the prefix is not present. -+ */ -+const char * -+strprefix(const char *s, const char *prefix, int ignorecase) -+{ -+ size_t prefixlen; -+ -+ if ((prefixlen = strlen(prefix)) == 0) -+ return s; -+ if (ignorecase) { -+ if (strncasecmp(s, prefix, prefixlen) != 0) -+ return NULL; -+ } else { -+ if (strncmp(s, prefix, prefixlen) != 0) -+ return NULL; -+ } -+ return s + prefixlen; -+} -+ - /* set/unset filedescriptor to non-blocking */ - int - set_nonblock(int fd) -diff --git a/misc.h b/misc.h -index 113403896..efecdf1ad 100644 ---- a/misc.h -+++ b/misc.h -@@ -1,4 +1,4 @@ --/* $OpenBSD: misc.h,v 1.109 2024/06/06 17:15:25 djm Exp $ */ -+/* $OpenBSD: misc.h,v 1.110 2024/09/25 01:24:04 djm Exp $ */ - - /* - * Author: Tatu Ylonen -@@ -56,6 +56,7 @@ struct ForwardOptions { - char *chop(char *); - void rtrim(char *); - void skip_space(char **); -+const char *strprefix(const char *, const char *, int); - char *strdelim(char **); - char *strdelimw(char **); - int set_nonblock(int); -diff --git a/readconf.c b/readconf.c -index 3d9cc6dbb..de42fb6ff 100644 ---- a/readconf.c -+++ b/readconf.c -@@ -1,4 +1,4 @@ --/* $OpenBSD: readconf.c,v 1.390 2024/09/15 00:57:36 djm Exp $ */ -+/* $OpenBSD: readconf.c,v 1.391 2024/09/25 01:24:04 djm Exp $ */ - /* - * Author: Tatu Ylonen - * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland -@@ -710,7 +710,7 @@ match_cfg_line(Options *options, const char *full_line, int *acp, char ***avp, - struct passwd *pw, const char *host_arg, const char *original_host, - int final_pass, int *want_final_pass, const char *filename, int linenum) - { -- char *arg, *oattrib, *attrib, *cmd, *host, *criteria; -+ char *arg, *oattrib, *attrib = NULL, *cmd, *host, *criteria; - const char *ruser; - int r, this_result, result = 1, attributes = 0, negate; - -@@ -731,7 +731,8 @@ match_cfg_line(Options *options, const char *full_line, int *acp, char ***avp, - - debug2("checking match for '%s' host %s originally %s", - full_line, host, original_host); -- while ((oattrib = attrib = argv_next(acp, avp)) != NULL) { -+ while ((oattrib = argv_next(acp, avp)) != NULL) { -+ attrib = xstrdup(oattrib); - /* Terminate on comment */ - if (*attrib == '#') { - argv_consume(acp); -@@ -777,9 +778,23 @@ match_cfg_line(Options *options, const char *full_line, int *acp, char ***avp, - this_result ? "" : "not ", oattrib); - continue; - } -+ -+ /* Keep this list in sync with below */ -+ if (strprefix(attrib, "host=", 1) != NULL || -+ strprefix(attrib, "originalhost=", 1) != NULL || -+ strprefix(attrib, "user=", 1) != NULL || -+ strprefix(attrib, "localuser=", 1) != NULL || -+ strprefix(attrib, "localnetwork=", 1) != NULL || -+ strprefix(attrib, "tagged=", 1) != NULL || -+ strprefix(attrib, "exec=", 1) != NULL) { -+ arg = strchr(attrib, '='); -+ *(arg++) = '\0'; -+ } else { -+ arg = argv_next(acp, avp); -+ } -+ - /* All other criteria require an argument */ -- if ((arg = argv_next(acp, avp)) == NULL || -- *arg == '\0' || *arg == '#') { -+ if (arg == NULL || *arg == '\0' || *arg == '#') { - error("Missing Match criteria for %s", attrib); - result = -1; - goto out; -@@ -856,6 +871,8 @@ match_cfg_line(Options *options, const char *full_line, int *acp, char ***avp, - criteria == NULL ? "" : criteria, - criteria == NULL ? "" : "\""); - free(criteria); -+ free(attrib); -+ attrib = NULL; - } - if (attributes == 0) { - error("One or more attributes required for Match"); -@@ -865,6 +882,7 @@ match_cfg_line(Options *options, const char *full_line, int *acp, char ***avp, - out: - if (result != -1) - debug2("match %sfound", result ? "" : "not "); -+ free(attrib); - free(host); - return result; - } -diff --git a/servconf.c b/servconf.c -index 89b8413e8..dd774f468 100644 ---- a/servconf.c -+++ b/servconf.c -@@ -1,4 +1,4 @@ --/* $OpenBSD: servconf.c,v 1.418 2024/09/15 03:09:44 djm Exp $ */ -+/* $OpenBSD: servconf.c,v 1.419 2024/09/25 01:24:04 djm Exp $ */ - /* - * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland - * All rights reserved -@@ -1033,7 +1033,7 @@ match_cfg_line(const char *full_line, int *acp, char ***avp, - int line, struct connection_info *ci) - { - int result = 1, attributes = 0, port; -- char *arg, *attrib; -+ char *arg, *attrib = NULL, *oattrib; - - if (ci == NULL) - debug3("checking syntax for 'Match %s'", full_line); -@@ -1047,7 +1047,8 @@ match_cfg_line(const char *full_line, int *acp, char ***avp, - ci->laddress ? ci->laddress : "(null)", ci->lport); - } - -- while ((attrib = argv_next(acp, avp)) != NULL) { -+ while ((oattrib = argv_next(acp, avp)) != NULL) { -+ attrib = xstrdup(oattrib); - /* Terminate on comment */ - if (*attrib == '#') { - argv_consume(acp); /* mark all arguments consumed */ -@@ -1062,11 +1063,13 @@ match_cfg_line(const char *full_line, int *acp, char ***avp, - *arg != '\0' && *arg != '#')) { - error("'all' cannot be combined with other " - "Match attributes"); -- return -1; -+ result = -1; -+ goto out; - } - if (arg != NULL && *arg == '#') - argv_consume(acp); /* consume remaining args */ -- return 1; -+ result = 1; -+ goto out; - } - /* Criterion "invalid-user" also has no argument */ - if (strcasecmp(attrib, "invalid-user") == 0) { -@@ -1078,11 +1081,26 @@ match_cfg_line(const char *full_line, int *acp, char ***avp, - debug("matched invalid-user at line %d", line); - continue; - } -+ -+ /* Keep this list in sync with below */ -+ if (strprefix(attrib, "user=", 1) != NULL || -+ strprefix(attrib, "group=", 1) != NULL || -+ strprefix(attrib, "host=", 1) != NULL || -+ strprefix(attrib, "address=", 1) != NULL || -+ strprefix(attrib, "localaddress=", 1) != NULL || -+ strprefix(attrib, "localport=", 1) != NULL || -+ strprefix(attrib, "rdomain=", 1) != NULL) { -+ arg = strchr(attrib, '='); -+ *(arg++) = '\0'; -+ } else { -+ arg = argv_next(acp, avp); -+ } -+ - /* All other criteria require an argument */ -- if ((arg = argv_next(acp, avp)) == NULL || -- *arg == '\0' || *arg == '#') { -+ if (arg == NULL || *arg == '\0' || *arg == '#') { - error("Missing Match criteria for %s", attrib); -- return -1; -+ result = -1; -+ goto out; - } - if (strcasecmp(attrib, "user") == 0) { - if (ci == NULL || (ci->test && ci->user == NULL)) { -@@ -1105,7 +1123,8 @@ match_cfg_line(const char *full_line, int *acp, char ***avp, - match_test_missing_fatal("Group", "user"); - switch (match_cfg_line_group(arg, line, ci->user)) { - case -1: -- return -1; -+ result = -1; -+ goto out; - case 0: - result = 0; - } -@@ -1141,7 +1160,8 @@ match_cfg_line(const char *full_line, int *acp, char ***avp, - result = 0; - break; - case -2: -- return -1; -+ result = -1; -+ goto out; - } - } else if (strcasecmp(attrib, "localaddress") == 0){ - if (ci == NULL || (ci->test && ci->laddress == NULL)) { -@@ -1166,13 +1186,15 @@ match_cfg_line(const char *full_line, int *acp, char ***avp, - result = 0; - break; - case -2: -- return -1; -+ result = -1; -+ goto out; - } - } else if (strcasecmp(attrib, "localport") == 0) { - if ((port = a2port(arg)) == -1) { - error("Invalid LocalPort '%s' on Match line", - arg); -- return -1; -+ result = -1; -+ goto out; - } - if (ci == NULL || (ci->test && ci->lport == -1)) { - result = 0; -@@ -1200,16 +1222,21 @@ match_cfg_line(const char *full_line, int *acp, char ***avp, - debug("user %.100s matched 'RDomain %.100s' at " - "line %d", ci->rdomain, arg, line); - } else { -- error("Unsupported Match attribute %s", attrib); -- return -1; -+ error("Unsupported Match attribute %s", oattrib); -+ result = -1; -+ goto out; - } -+ free(attrib); -+ attrib = NULL; - } - if (attributes == 0) { - error("One or more attributes required for Match"); - return -1; - } -- if (ci != NULL) -+ out: -+ if (ci != NULL && result != -1) - debug3("match %sfound", result ? "" : "not "); -+ free(attrib); - return result; - } - --- -2.47.0 - diff --git a/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/9.9_p1/0005-upstream-fix-previous-change-to-ssh_config-Match-whi.patch b/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/9.9_p1/0005-upstream-fix-previous-change-to-ssh_config-Match-whi.patch deleted file mode 100644 index 7495780afd..0000000000 --- a/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/9.9_p1/0005-upstream-fix-previous-change-to-ssh_config-Match-whi.patch +++ /dev/null @@ -1,70 +0,0 @@ -From 3e95023995e1d0249febab2b804f51b7673e07de Mon Sep 17 00:00:00 2001 -Message-ID: <3e95023995e1d0249febab2b804f51b7673e07de.1730162536.git.sam@gentoo.org> -In-Reply-To: <27996b32a8b0fe908effc469e5c7d496e40c6671.1730162536.git.sam@gentoo.org> -References: <27996b32a8b0fe908effc469e5c7d496e40c6671.1730162536.git.sam@gentoo.org> -From: "djm@openbsd.org" -Date: Thu, 26 Sep 2024 23:55:08 +0000 -Subject: [PATCH 5/8] upstream: fix previous change to ssh_config Match, which - broken on - -negated Matches; spotted by phessler@ ok deraadt@ - -OpenBSD-Commit-ID: b1c6acec66cd5bd1252feff1d02ad7129ced37c7 -(cherry picked from commit 19bcb2d90c6caf14abf386b644fb24eb7afab889) ---- - readconf.c | 14 +++++++------- - 1 file changed, 7 insertions(+), 7 deletions(-) - -diff --git a/readconf.c b/readconf.c -index de42fb6ff..9f5592698 100644 ---- a/readconf.c -+++ b/readconf.c -@@ -1,4 +1,4 @@ --/* $OpenBSD: readconf.c,v 1.391 2024/09/25 01:24:04 djm Exp $ */ -+/* $OpenBSD: readconf.c,v 1.392 2024/09/26 23:55:08 djm Exp $ */ - /* - * Author: Tatu Ylonen - * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland -@@ -710,7 +710,7 @@ match_cfg_line(Options *options, const char *full_line, int *acp, char ***avp, - struct passwd *pw, const char *host_arg, const char *original_host, - int final_pass, int *want_final_pass, const char *filename, int linenum) - { -- char *arg, *oattrib, *attrib = NULL, *cmd, *host, *criteria; -+ char *arg, *oattrib = NULL, *attrib = NULL, *cmd, *host, *criteria; - const char *ruser; - int r, this_result, result = 1, attributes = 0, negate; - -@@ -731,8 +731,8 @@ match_cfg_line(Options *options, const char *full_line, int *acp, char ***avp, - - debug2("checking match for '%s' host %s originally %s", - full_line, host, original_host); -- while ((oattrib = argv_next(acp, avp)) != NULL) { -- attrib = xstrdup(oattrib); -+ while ((attrib = argv_next(acp, avp)) != NULL) { -+ attrib = oattrib = xstrdup(attrib); - /* Terminate on comment */ - if (*attrib == '#') { - argv_consume(acp); -@@ -871,8 +871,8 @@ match_cfg_line(Options *options, const char *full_line, int *acp, char ***avp, - criteria == NULL ? "" : criteria, - criteria == NULL ? "" : "\""); - free(criteria); -- free(attrib); -- attrib = NULL; -+ free(oattrib); -+ oattrib = attrib = NULL; - } - if (attributes == 0) { - error("One or more attributes required for Match"); -@@ -882,7 +882,7 @@ match_cfg_line(Options *options, const char *full_line, int *acp, char ***avp, - out: - if (result != -1) - debug2("match %sfound", result ? "" : "not "); -- free(attrib); -+ free(oattrib); - free(host); - return result; - } --- -2.47.0 - diff --git a/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/9.9_p1/0006-upstream-fix-ML-KEM768x25519-KEX-on-big-endian-syste.patch b/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/9.9_p1/0006-upstream-fix-ML-KEM768x25519-KEX-on-big-endian-syste.patch deleted file mode 100644 index 7719f89aee..0000000000 --- a/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/9.9_p1/0006-upstream-fix-ML-KEM768x25519-KEX-on-big-endian-syste.patch +++ /dev/null @@ -1,99 +0,0 @@ -From 3c10bf179b0029e0412e4b0fecf2e31d53b4ef08 Mon Sep 17 00:00:00 2001 -Message-ID: <3c10bf179b0029e0412e4b0fecf2e31d53b4ef08.1730162536.git.sam@gentoo.org> -In-Reply-To: <27996b32a8b0fe908effc469e5c7d496e40c6671.1730162536.git.sam@gentoo.org> -References: <27996b32a8b0fe908effc469e5c7d496e40c6671.1730162536.git.sam@gentoo.org> -From: "djm@openbsd.org" -Date: Sun, 27 Oct 2024 02:06:01 +0000 -Subject: [PATCH 6/8] upstream: fix ML-KEM768x25519 KEX on big-endian systems; - spotted by - -jsg@ feedback/ok deraadt@ - -OpenBSD-Commit-ID: 26d81a430811672bc762687166986cad40d28cc0 -(cherry picked from commit 11f348196b3fb51c3d8d1f4f36db9d73f03149ed) ---- - libcrux_mlkem768_sha3.h | 8 +++++--- - mlkem768.sh | 17 ++++++++++++----- - 2 files changed, 17 insertions(+), 8 deletions(-) - -diff --git a/libcrux_mlkem768_sha3.h b/libcrux_mlkem768_sha3.h -index a82d60e83..b8ac1436f 100644 ---- a/libcrux_mlkem768_sha3.h -+++ b/libcrux_mlkem768_sha3.h -@@ -1,4 +1,5 @@ --/* $OpenBSD: libcrux_mlkem768_sha3.h,v 1.1 2024/09/02 12:13:56 djm Exp $ */ -+/* $OpenBSD: libcrux_mlkem768_sha3.h,v 1.2 2024/10/27 02:06:01 djm Exp $ */ -+ - /* Extracted from libcrux revision 84c5d87b3092c59294345aa269ceefe0eb97cc35 */ - - /* -@@ -160,18 +161,19 @@ static inline void Eurydice_slice_to_array3(uint8_t *dst_tag, char *dst_ok, - // CORE STUFF (conversions, endianness, ...) - - static inline void core_num__u64_9__to_le_bytes(uint64_t v, uint8_t buf[8]) { -+ v = htole64(v); - memcpy(buf, &v, sizeof(v)); - } - static inline uint64_t core_num__u64_9__from_le_bytes(uint8_t buf[8]) { - uint64_t v; - memcpy(&v, buf, sizeof(v)); -- return v; -+ return le64toh(v); - } - - static inline uint32_t core_num__u32_8__from_le_bytes(uint8_t buf[4]) { - uint32_t v; - memcpy(&v, buf, sizeof(v)); -- return v; -+ return le32toh(v); - } - - static inline uint32_t core_num__u8_6__count_ones(uint8_t x0) { -diff --git a/mlkem768.sh b/mlkem768.sh -index 2fdc28312..3d12b2ed8 100644 ---- a/mlkem768.sh -+++ b/mlkem768.sh -@@ -1,9 +1,10 @@ - #!/bin/sh --# $OpenBSD: mlkem768.sh,v 1.2 2024/09/04 05:11:33 djm Exp $ -+# $OpenBSD: mlkem768.sh,v 1.3 2024/10/27 02:06:01 djm Exp $ - # Placed in the Public Domain. - # - --WANT_LIBCRUX_REVISION="origin/main" -+#WANT_LIBCRUX_REVISION="origin/main" -+WANT_LIBCRUX_REVISION="84c5d87b3092c59294345aa269ceefe0eb97cc35" - - FILES=" - libcrux/libcrux-ml-kem/cg/eurydice_glue.h -@@ -47,6 +48,7 @@ echo '#define KRML_NOINLINE __attribute__((noinline, unused))' - echo '#define KRML_HOST_EPRINTF(...)' - echo '#define KRML_HOST_EXIT(x) fatal_f("internal error")' - echo -+ - for i in $FILES; do - echo "/* from $i */" - # Changes to all files: -@@ -56,11 +58,16 @@ for i in $FILES; do - -e 's/[ ]*$//' \ - $i | \ - case "$i" in -- # XXX per-file handling goes here. -+ */libcrux-ml-kem/cg/eurydice_glue.h) -+ # Replace endian functions with versions that work. -+ perl -0777 -pe 's/(static inline void core_num__u64_9__to_le_bytes.*\n)([^}]*\n)/\1 v = htole64(v);\n\2/' | -+ perl -0777 -pe 's/(static inline uint64_t core_num__u64_9__from_le_bytes.*?)return v;/\1return le64toh(v);/s' | -+ perl -0777 -pe 's/(static inline uint32_t core_num__u32_8__from_le_bytes.*?)return v;/\1return le32toh(v);/s' -+ ;; - # Default: pass through. - *) -- cat -- ;; -+ cat -+ ;; - esac - echo - done --- -2.47.0 - diff --git a/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/9.9_p1/0007-upstream-explicitly-include-endian.h.patch b/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/9.9_p1/0007-upstream-explicitly-include-endian.h.patch deleted file mode 100644 index d92d81f8d4..0000000000 --- a/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/9.9_p1/0007-upstream-explicitly-include-endian.h.patch +++ /dev/null @@ -1,37 +0,0 @@ -From f87403aba3e7926ab47f4c9a821300a705b070f2 Mon Sep 17 00:00:00 2001 -Message-ID: -In-Reply-To: <27996b32a8b0fe908effc469e5c7d496e40c6671.1730162536.git.sam@gentoo.org> -References: <27996b32a8b0fe908effc469e5c7d496e40c6671.1730162536.git.sam@gentoo.org> -From: "djm@openbsd.org" -Date: Sun, 27 Oct 2024 02:06:59 +0000 -Subject: [PATCH 7/8] upstream: explicitly include endian.h - -OpenBSD-Commit-ID: 13511fdef7535bdbc35b644c90090013da43a318 -(cherry picked from commit fe8d28a7ebbaa35cfc04a21263627f05c237e460) ---- - kexmlkem768x25519.c | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - -diff --git a/kexmlkem768x25519.c b/kexmlkem768x25519.c -index 679446e97..2b5d39608 100644 ---- a/kexmlkem768x25519.c -+++ b/kexmlkem768x25519.c -@@ -1,4 +1,4 @@ --/* $OpenBSD: kexmlkem768x25519.c,v 1.1 2024/09/02 12:13:56 djm Exp $ */ -+/* $OpenBSD: kexmlkem768x25519.c,v 1.2 2024/10/27 02:06:59 djm Exp $ */ - /* - * Copyright (c) 2023 Markus Friedl. All rights reserved. - * -@@ -34,6 +34,9 @@ - #include - #include - #include -+#ifdef HAVE_ENDIAN_H -+# include -+#endif - - #include "sshkey.h" - #include "kex.h" --- -2.47.0 - diff --git a/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/9.9_p1/0008-htole64-etc-for-systems-without-endian.h.patch b/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/9.9_p1/0008-htole64-etc-for-systems-without-endian.h.patch deleted file mode 100644 index 9799a82ea1..0000000000 --- a/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/9.9_p1/0008-htole64-etc-for-systems-without-endian.h.patch +++ /dev/null @@ -1,66 +0,0 @@ -From 88e0d4645af6e4d4fb1b0dd320b83dd83ca6e73c Mon Sep 17 00:00:00 2001 -Message-ID: <88e0d4645af6e4d4fb1b0dd320b83dd83ca6e73c.1730162536.git.sam@gentoo.org> -In-Reply-To: <27996b32a8b0fe908effc469e5c7d496e40c6671.1730162536.git.sam@gentoo.org> -References: <27996b32a8b0fe908effc469e5c7d496e40c6671.1730162536.git.sam@gentoo.org> -From: Damien Miller -Date: Sun, 27 Oct 2024 13:28:11 +1100 -Subject: [PATCH 8/8] htole64() etc for systems without endian.h - -(cherry picked from commit 33c5f384ae03a5d1a0bd46ca0fac3c62e4eaf784) ---- - configure.ac | 1 - - defines.h | 26 ++++++++++++++++++++++++++ - 2 files changed, 26 insertions(+), 1 deletion(-) - -diff --git a/configure.ac b/configure.ac -index 591d5a388..9053a9a2b 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -2013,7 +2013,6 @@ AC_CHECK_FUNCS([ \ - strtoll \ - strtoul \ - strtoull \ -- swap32 \ - sysconf \ - tcgetpgrp \ - timegm \ -diff --git a/defines.h b/defines.h -index ed860e78b..b02f2942a 100644 ---- a/defines.h -+++ b/defines.h -@@ -646,6 +646,32 @@ struct winsize { - # endif /* WORDS_BIGENDIAN */ - #endif /* BYTE_ORDER */ - -+#ifndef HAVE_ENDIAN_H -+# define openssh_swap32(v) \ -+ (uint32_t)(((uint32_t)(v) & 0xff) << 24 | \ -+ ((uint32_t)(v) & 0xff00) << 8 | \ -+ ((uint32_t)(v) & 0xff0000) >> 8 | \ -+ ((uint32_t)(v) & 0xff000000) >> 24) -+# define openssh_swap64(v) \ -+ (__uint64_t)((((__uint64_t)(v) & 0xff) << 56) | \ -+ ((__uint64_t)(v) & 0xff00ULL) << 40 | \ -+ ((__uint64_t)(v) & 0xff0000ULL) << 24 | \ -+ ((__uint64_t)(v) & 0xff000000ULL) << 8 | \ -+ ((__uint64_t)(v) & 0xff00000000ULL) >> 8 | \ -+ ((__uint64_t)(v) & 0xff0000000000ULL) >> 24 | \ -+ ((__uint64_t)(v) & 0xff000000000000ULL) >> 40 | \ -+ ((__uint64_t)(v) & 0xff00000000000000ULL) >> 56) -+# ifdef WORDS_BIGENDIAN -+# define le32toh(v) (openssh_swap32(v)) -+# define le64toh(v) (openssh_swap64(v)) -+# define htole64(v) (openssh_swap64(v)) -+# else -+# define le32toh(v) ((uint32_t)v) -+# define le64toh(v) ((uint64_t)v) -+# define htole64(v) ((uint64_t)v) -+# endif -+#endif -+ - /* Function replacement / compatibility hacks */ - - #if !defined(HAVE_GETADDRINFO) && (defined(HAVE_OGETADDRINFO) || defined(HAVE_NGETADDRINFO)) --- -2.47.0 - diff --git a/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/9.9_p2/0001-Check-for-le32toh-le64toh-htole64-individually.patch b/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/9.9_p2/0001-Check-for-le32toh-le64toh-htole64-individually.patch new file mode 100644 index 0000000000..ae9ca600d6 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/9.9_p2/0001-Check-for-le32toh-le64toh-htole64-individually.patch @@ -0,0 +1,87 @@ +From 4b8d141ec165aa29a48316768089cb03aed3aada Mon Sep 17 00:00:00 2001 +Message-ID: <4b8d141ec165aa29a48316768089cb03aed3aada.1758727915.git.sam@gentoo.org> +From: Darren Tucker +Date: Wed, 26 Feb 2025 18:16:03 +1100 +Subject: [PATCH 01/10] Check for le32toh, le64toh, htole64 individually. + +It appears that at least some versions of endian.h in glibc do not have +the latter two, so check for and replace each one individually. +bz#3794, ok djm@ +--- + configure.ac | 12 ++++++++++++ + defines.h | 28 +++++++++++++++++++++------- + 2 files changed, 33 insertions(+), 7 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 9053a9a2b..57a8d1007 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -536,6 +536,18 @@ AC_CHECK_HEADERS([ \ + wchar.h \ + ]) + ++AC_CHECK_DECLS([le32toh, le64toh, htole64], [], [], [ ++#ifdef HAVE_SYS_TYPES_H ++# include ++#endif ++#ifdef HAVE_STDINT_H ++# include ++#endif ++#ifdef HAVE_ENDIAN_H ++# include ++#endif ++]) ++ + # On some platforms (eg SunOS4) sys/audit.h requires sys/[time|types|label.h] + # to be included first. + AC_CHECK_HEADERS([sys/audit.h], [], [], [ +diff --git a/defines.h b/defines.h +index c1c21aba6..090f49f55 100644 +--- a/defines.h ++++ b/defines.h +@@ -646,7 +646,9 @@ struct winsize { + # endif /* WORDS_BIGENDIAN */ + #endif /* BYTE_ORDER */ + +-#ifndef HAVE_ENDIAN_H ++#if (defined(HAVE_DECL_LE32TOH) && HAVE_DECL_LE32TOH == 0) || \ ++ (defined(HAVE_DECL_LE64TOH) && HAVE_DECL_LE64TOH == 0) || \ ++ (defined(HAVE_DECL_HTOLE64) && HAVE_DECL_HTOLE64 == 0) + # define openssh_swap32(v) \ + (uint32_t)(((uint32_t)(v) & 0xff) << 24 | \ + ((uint32_t)(v) & 0xff00) << 8 | \ +@@ -662,13 +664,25 @@ struct winsize { + ((uint64_t)(v) & 0xff000000000000ULL) >> 40 | \ + ((uint64_t)(v) & 0xff00000000000000ULL) >> 56) + # ifdef WORDS_BIGENDIAN +-# define le32toh(v) (openssh_swap32(v)) +-# define le64toh(v) (openssh_swap64(v)) +-# define htole64(v) (openssh_swap64(v)) ++# if defined(HAVE_DECL_LE32TOH) && HAVE_DECL_LE32TOH == 0 ++# define le32toh(v) (openssh_swap32(v)) ++# endif ++# if defined(HAVE_DECL_LE64TOH) && HAVE_DECL_LE64TOH == 0 ++# define le64toh(v) (openssh_swap64(v)) ++# endif ++# if defined(HAVE_DECL_HTOLE64) && HAVE_DECL_HTOLE64 == 0 ++# define htole64(v) (openssh_swap64(v)) ++# endif + # else +-# define le32toh(v) ((uint32_t)v) +-# define le64toh(v) ((uint64_t)v) +-# define htole64(v) ((uint64_t)v) ++# if defined(HAVE_DECL_LE32TOH) && HAVE_DECL_LE32TOH == 0 ++# define le32toh(v) ((uint32_t)v) ++# endif ++# if defined(HAVE_DECL_LE64TOH) && HAVE_DECL_LE64TOH == 0 ++# define le64toh(v) ((uint64_t)v) ++# endif ++# if defined(HAVE_DECL_HTOLE64) && HAVE_DECL_HTOLE64 == 0 ++# define htole64(v) ((uint64_t)v) ++# endif + # endif + #endif + +-- +2.51.0 + diff --git a/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/9.9_p2/0002-Update-autoconf-files-for-endian.h-change.patch b/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/9.9_p2/0002-Update-autoconf-files-for-endian.h-change.patch new file mode 100644 index 0000000000..778ffba81c --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/9.9_p2/0002-Update-autoconf-files-for-endian.h-change.patch @@ -0,0 +1,118 @@ +From de4bcb51c893d81a741d4fac37c10107738a952f Mon Sep 17 00:00:00 2001 +Message-ID: +In-Reply-To: <4b8d141ec165aa29a48316768089cb03aed3aada.1758727915.git.sam@gentoo.org> +References: <4b8d141ec165aa29a48316768089cb03aed3aada.1758727915.git.sam@gentoo.org> +From: Darren Tucker +Date: Wed, 26 Feb 2025 18:25:33 +1100 +Subject: [PATCH 02/10] Update autoconf files for endian.h change. + +--- + config.h.in | 12 +++++++++++ + configure | 60 +++++++++++++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 72 insertions(+) + +diff --git a/config.h.in b/config.h.in +index 14bee6087..c841417f4 100644 +--- a/config.h.in ++++ b/config.h.in +@@ -363,10 +363,22 @@ + don't. */ + #undef HAVE_DECL_HOWMANY + ++/* Define to 1 if you have the declaration of `htole64', and to 0 if you ++ don't. */ ++#undef HAVE_DECL_HTOLE64 ++ + /* Define to 1 if you have the declaration of `h_errno', and to 0 if you + don't. */ + #undef HAVE_DECL_H_ERRNO + ++/* Define to 1 if you have the declaration of `le32toh', and to 0 if you ++ don't. */ ++#undef HAVE_DECL_LE32TOH ++ ++/* Define to 1 if you have the declaration of `le64toh', and to 0 if you ++ don't. */ ++#undef HAVE_DECL_LE64TOH ++ + /* Define to 1 if you have the declaration of `loginfailed', and to 0 if you + don't. */ + #undef HAVE_DECL_LOGINFAILED +diff --git a/configure b/configure +index b4d33b7cd..ec1de26c2 100755 +--- a/configure ++++ b/configure +@@ -11325,6 +11325,65 @@ then : + fi + + ++ac_fn_check_decl "$LINENO" "le32toh" "ac_cv_have_decl_le32toh" " ++#ifdef HAVE_SYS_TYPES_H ++# include ++#endif ++#ifdef HAVE_STDINT_H ++# include ++#endif ++#ifdef HAVE_ENDIAN_H ++# include ++#endif ++ ++" "$ac_c_undeclared_builtin_options" "CFLAGS" ++if test "x$ac_cv_have_decl_le32toh" = xyes ++then : ++ ac_have_decl=1 ++else $as_nop ++ ac_have_decl=0 ++fi ++printf "%s\n" "#define HAVE_DECL_LE32TOH $ac_have_decl" >>confdefs.h ++ac_fn_check_decl "$LINENO" "le64toh" "ac_cv_have_decl_le64toh" " ++#ifdef HAVE_SYS_TYPES_H ++# include ++#endif ++#ifdef HAVE_STDINT_H ++# include ++#endif ++#ifdef HAVE_ENDIAN_H ++# include ++#endif ++ ++" "$ac_c_undeclared_builtin_options" "CFLAGS" ++if test "x$ac_cv_have_decl_le64toh" = xyes ++then : ++ ac_have_decl=1 ++else $as_nop ++ ac_have_decl=0 ++fi ++printf "%s\n" "#define HAVE_DECL_LE64TOH $ac_have_decl" >>confdefs.h ++ac_fn_check_decl "$LINENO" "htole64" "ac_cv_have_decl_htole64" " ++#ifdef HAVE_SYS_TYPES_H ++# include ++#endif ++#ifdef HAVE_STDINT_H ++# include ++#endif ++#ifdef HAVE_ENDIAN_H ++# include ++#endif ++ ++" "$ac_c_undeclared_builtin_options" "CFLAGS" ++if test "x$ac_cv_have_decl_htole64" = xyes ++then : ++ ac_have_decl=1 ++else $as_nop ++ ac_have_decl=0 ++fi ++printf "%s\n" "#define HAVE_DECL_HTOLE64 $ac_have_decl" >>confdefs.h ++ ++ + # On some platforms (eg SunOS4) sys/audit.h requires sys/[time|types|label.h] + # to be included first. + ac_fn_c_check_header_compile "$LINENO" "sys/audit.h" "ac_cv_header_sys_audit_h" " +@@ -27710,3 +27769,4 @@ if test "$AUDIT_MODULE" = "bsm" ; then + echo "WARNING: BSM audit support is currently considered EXPERIMENTAL." + echo "See the Solaris section in README.platform for details." + fi ++ +-- +2.51.0 + diff --git a/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/9.9_p2/0003-Rebuild-config-files-if-Makefile-changes.patch b/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/9.9_p2/0003-Rebuild-config-files-if-Makefile-changes.patch new file mode 100644 index 0000000000..ad90441cef --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/9.9_p2/0003-Rebuild-config-files-if-Makefile-changes.patch @@ -0,0 +1,30 @@ +From ef95df4089f0dba640671ca6acfb876a78794b83 Mon Sep 17 00:00:00 2001 +Message-ID: +In-Reply-To: <4b8d141ec165aa29a48316768089cb03aed3aada.1758727915.git.sam@gentoo.org> +References: <4b8d141ec165aa29a48316768089cb03aed3aada.1758727915.git.sam@gentoo.org> +From: Darren Tucker +Date: Sat, 1 Mar 2025 10:28:59 +1100 +Subject: [PATCH 03/10] Rebuild config files if Makefile changes. + +This ensures paths are updated if they are changed by re-running configure. +Patch from rapier at psc.edu. +--- + Makefile.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Makefile.in b/Makefile.in +index 4243006b0..fc7a1a354 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -267,7 +267,7 @@ $(MANPAGES): $(MANPAGES_IN) + $(FIXPATHSCMD) $${manpage} | $(FIXALGORITHMSCMD) > $@; \ + fi + +-$(CONFIGFILES): $(CONFIGFILES_IN) ++$(CONFIGFILES): $(CONFIGFILES_IN) Makefile + conffile=`echo $@ | sed 's/.out$$//'`; \ + $(FIXPATHSCMD) $(srcdir)/$${conffile} > $@ + +-- +2.51.0 + diff --git a/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/9.9_p2/0004-include-__builtin_popcount-replacement-function.patch b/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/9.9_p2/0004-include-__builtin_popcount-replacement-function.patch new file mode 100644 index 0000000000..6d0c87adb8 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/9.9_p2/0004-include-__builtin_popcount-replacement-function.patch @@ -0,0 +1,92 @@ +From 3b4adf2018ae8fdd48623b6b5ede182319a76b8f Mon Sep 17 00:00:00 2001 +Message-ID: <3b4adf2018ae8fdd48623b6b5ede182319a76b8f.1758727915.git.sam@gentoo.org> +In-Reply-To: <4b8d141ec165aa29a48316768089cb03aed3aada.1758727915.git.sam@gentoo.org> +References: <4b8d141ec165aa29a48316768089cb03aed3aada.1758727915.git.sam@gentoo.org> +From: Damien Miller +Date: Sun, 2 Mar 2025 22:06:53 +1100 +Subject: [PATCH 04/10] include __builtin_popcount replacement function + +Some systems/compilers lack __builtin_popcount(), so replace it as +necessary. Reported by Dennis Clarke; ok dtucker@ +--- + configure.ac | 13 +++++++++++++ + libcrux_mlkem768_sha3.h | 8 ++++++-- + mlkem768.sh | 10 +++++++++- + 3 files changed, 28 insertions(+), 3 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 57a8d1007..dbe189066 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -2041,6 +2041,19 @@ AC_CHECK_FUNCS([ \ + warn \ + ]) + ++AC_MSG_CHECKING([whether compiler supports __builtin_popcount]) ++AC_LINK_IFELSE([AC_LANG_PROGRAM([[ ++ #include ++ ]], ++ [[ int x = 123, y; ++ y = __builtin_popcount(123); ++ exit(y == 6 ? 0 : -1); ]])], ++ [ AC_MSG_RESULT([yes]) ], [ ++ AC_MSG_RESULT([no]) ++ AC_DEFINE([MISSING_BUILTIN_POPCOUNT], [1], [Define if your compiler lacks __builtin_popcount]) ++ ] ++) ++ + AC_CHECK_DECLS([bzero, memmem]) + + dnl Wide character support. +diff --git a/libcrux_mlkem768_sha3.h b/libcrux_mlkem768_sha3.h +index b8ac1436f..885e82baf 100644 +--- a/libcrux_mlkem768_sha3.h ++++ b/libcrux_mlkem768_sha3.h +@@ -177,10 +177,14 @@ static inline uint32_t core_num__u32_8__from_le_bytes(uint8_t buf[4]) { + } + + static inline uint32_t core_num__u8_6__count_ones(uint8_t x0) { +-#ifdef _MSC_VER ++#if defined(_MSC_VER) + return __popcnt(x0); +-#else ++#elif !defined(MISSING_BUILTIN_POPCOUNT) + return __builtin_popcount(x0); ++#else ++ const uint8_t v[16] = { 0, 1, 1, 2, 1, 2, 2, 3, 1, 2, 2, 3, 2, 3, 3, 4 }; ++ return v[x0 & 0xf] + v[(x0 >> 4) & 0xf]; ++ + #endif + } + +diff --git a/mlkem768.sh b/mlkem768.sh +index 3d12b2ed8..cbc3d14da 100644 +--- a/mlkem768.sh ++++ b/mlkem768.sh +@@ -49,6 +49,11 @@ echo '#define KRML_HOST_EPRINTF(...)' + echo '#define KRML_HOST_EXIT(x) fatal_f("internal error")' + echo + ++__builtin_popcount_replacement=' ++ const uint8_t v[16] = { 0, 1, 1, 2, 1, 2, 2, 3, 1, 2, 2, 3, 2, 3, 3, 4 }; ++ return v[x0 & 0xf] + v[(x0 >> 4) & 0xf]; ++' ++ + for i in $FILES; do + echo "/* from $i */" + # Changes to all files: +@@ -62,7 +67,10 @@ for i in $FILES; do + # Replace endian functions with versions that work. + perl -0777 -pe 's/(static inline void core_num__u64_9__to_le_bytes.*\n)([^}]*\n)/\1 v = htole64(v);\n\2/' | + perl -0777 -pe 's/(static inline uint64_t core_num__u64_9__from_le_bytes.*?)return v;/\1return le64toh(v);/s' | +- perl -0777 -pe 's/(static inline uint32_t core_num__u32_8__from_le_bytes.*?)return v;/\1return le32toh(v);/s' ++ perl -0777 -pe 's/(static inline uint32_t core_num__u32_8__from_le_bytes.*?)return v;/\1return le32toh(v);/s' | ++ # Compat for popcount. ++ perl -0777 -pe 's/\#ifdef (_MSC_VER)(.*?return __popcnt\(x0\);)/\#if defined(\1)\2/s' | ++ perl -0777 -pe "s/\\#else(\\n\\s+return __builtin_popcount\\(x0\\);)/\\#elif !defined(MISSING_BUILTIN_POPCOUNT)\\1\\n#else$__builtin_popcount_replacement/s" + ;; + # Default: pass through. + *) +-- +2.51.0 + diff --git a/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/9.9_p2/0005-upstream-fix-PerSourcePenalty-incorrectly-using-cras.patch b/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/9.9_p2/0005-upstream-fix-PerSourcePenalty-incorrectly-using-cras.patch new file mode 100644 index 0000000000..a2c7e98087 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/9.9_p2/0005-upstream-fix-PerSourcePenalty-incorrectly-using-cras.patch @@ -0,0 +1,32 @@ +From d58ae05bb7838e1fdae967752f06b0b2471a63f5 Mon Sep 17 00:00:00 2001 +Message-ID: +In-Reply-To: <4b8d141ec165aa29a48316768089cb03aed3aada.1758727915.git.sam@gentoo.org> +References: <4b8d141ec165aa29a48316768089cb03aed3aada.1758727915.git.sam@gentoo.org> +From: "djm@openbsd.org" +Date: Sun, 2 Mar 2025 22:44:00 +0000 +Subject: [PATCH 05/10] upstream: fix PerSourcePenalty incorrectly using + "crash" penalty when + +LoginGraceTime was exceeded. Reported by irwin AT princeton.edu via bz3797 + +OpenBSD-Commit-ID: 1ba3e490a5a9451359618c550d995380af454d25 +--- + srclimit.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/srclimit.c b/srclimit.c +index 33116fa52..c63a462e2 100644 +--- a/srclimit.c ++++ b/srclimit.c +@@ -386,7 +386,7 @@ srclimit_penalise(struct xaddr *addr, int penalty_type) + reason = "penalty: connection prohibited by RefuseConnection"; + break; + case SRCLIMIT_PENALTY_GRACE_EXCEEDED: +- penalty_secs = penalty_cfg.penalty_crash; ++ penalty_secs = penalty_cfg.penalty_grace; + reason = "penalty: exceeded LoginGraceTime"; + break; + default: +-- +2.51.0 + diff --git a/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/9.9_p2/0006-regenerate-configure-config.h.in.patch b/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/9.9_p2/0006-regenerate-configure-config.h.in.patch new file mode 100644 index 0000000000..8ba648a421 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/9.9_p2/0006-regenerate-configure-config.h.in.patch @@ -0,0 +1,80 @@ +From 7d5b6c7ec3c597a6d57f64d0db925142bccd38a3 Mon Sep 17 00:00:00 2001 +Message-ID: <7d5b6c7ec3c597a6d57f64d0db925142bccd38a3.1758727915.git.sam@gentoo.org> +In-Reply-To: <4b8d141ec165aa29a48316768089cb03aed3aada.1758727915.git.sam@gentoo.org> +References: <4b8d141ec165aa29a48316768089cb03aed3aada.1758727915.git.sam@gentoo.org> +From: Damien Miller +Date: Mon, 3 Mar 2025 14:21:12 +1100 +Subject: [PATCH 06/10] regenerate configure, config.h.in + +--- + config.h.in | 3 +++ + configure | 35 ++++++++++++++++++++++++++++++++++- + 2 files changed, 37 insertions(+), 1 deletion(-) + +diff --git a/config.h.in b/config.h.in +index c841417f4..57f63355b 100644 +--- a/config.h.in ++++ b/config.h.in +@@ -1748,6 +1748,9 @@ + /* Set this to your mail directory if you do not have _PATH_MAILDIR */ + #undef MAIL_DIRECTORY + ++/* Define if your compiler lacks __builtin_popcount */ ++#undef MISSING_BUILTIN_POPCOUNT ++ + /* Need setpgrp to for controlling tty */ + #undef NEED_SETPGRP + +diff --git a/configure b/configure +index ec1de26c2..a18079da2 100755 +--- a/configure ++++ b/configure +@@ -16785,6 +16785,40 @@ then : + fi + + ++{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether compiler supports __builtin_popcount" >&5 ++printf %s "checking whether compiler supports __builtin_popcount... " >&6; } ++cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++ #include ++ ++int ++main (void) ++{ ++ int x = 123, y; ++ y = __builtin_popcount(123); ++ exit(y == 6 ? 0 : -1); ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_link "$LINENO" ++then : ++ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 ++printf "%s\n" "yes" >&6; } ++else $as_nop ++ ++ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++printf "%s\n" "no" >&6; } ++ ++printf "%s\n" "#define MISSING_BUILTIN_POPCOUNT 1" >>confdefs.h ++ ++ ++ ++fi ++rm -f core conftest.err conftest.$ac_objext conftest.beam \ ++ conftest$ac_exeext conftest.$ac_ext ++ + ac_fn_check_decl "$LINENO" "bzero" "ac_cv_have_decl_bzero" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" + if test "x$ac_cv_have_decl_bzero" = xyes + then : +@@ -27769,4 +27803,3 @@ if test "$AUDIT_MODULE" = "bsm" ; then + echo "WARNING: BSM audit support is currently considered EXPERIMENTAL." + echo "See the Solaris section in README.platform for details." + fi +- +-- +2.51.0 + diff --git a/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/9.9_p2/0007-upstream-Prime-caches-for-DNS-names-needed-for-tests.patch b/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/9.9_p2/0007-upstream-Prime-caches-for-DNS-names-needed-for-tests.patch new file mode 100644 index 0000000000..45ae5eb784 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/9.9_p2/0007-upstream-Prime-caches-for-DNS-names-needed-for-tests.patch @@ -0,0 +1,44 @@ +From be8026caf9da985638c762c353c397c0922be233 Mon Sep 17 00:00:00 2001 +Message-ID: +In-Reply-To: <4b8d141ec165aa29a48316768089cb03aed3aada.1758727915.git.sam@gentoo.org> +References: <4b8d141ec165aa29a48316768089cb03aed3aada.1758727915.git.sam@gentoo.org> +From: "dtucker@openbsd.org" +Date: Tue, 11 Mar 2025 11:46:44 +0000 +Subject: [PATCH 07/10] upstream: Prime caches for DNS names needed for tests. + +When running the SSHFP tests, particularly on an ephemeral VM, the first +query or two can fail for some reason, presumably because something isn't +fully initialized or something. To work around this, issue queries for the +names we'll need before we need them. + +OpenBSD-Regress-ID: 900841133540e7dead253407db5a874a6ed09eca +--- + regress/sshfp-connect.sh | 8 +++++++- + 1 file changed, 7 insertions(+), 1 deletion(-) + +diff --git a/regress/sshfp-connect.sh b/regress/sshfp-connect.sh +index f78646922..3c73a35d0 100644 +--- a/regress/sshfp-connect.sh ++++ b/regress/sshfp-connect.sh +@@ -1,4 +1,4 @@ +-# $OpenBSD: sshfp-connect.sh,v 1.4 2021/09/01 00:50:27 dtucker Exp $ ++# $OpenBSD: sshfp-connect.sh,v 1.5 2025/03/11 11:46:44 dtucker Exp $ + # Placed in the Public Domain. + + # This test requires external setup and thus is skipped unless +@@ -29,6 +29,12 @@ if ! $SSH -Q key-plain | grep ssh-rsa >/dev/null; then + elif [ -z "${TEST_SSH_SSHFP_DOMAIN}" ]; then + skip "TEST_SSH_SSHFP_DOMAIN not set." + else ++ # Prime any DNS caches and resolvers. ++ for i in sshtest sshtest-sha1 sshtest-sha256; do ++ host -t sshfp ${i}.${TEST_SSH_SSHFP_DOMAIN} >/dev/null 2>&1 ++ host -t sshfp ${i}-bad.${TEST_SSH_SSHFP_DOMAIN} >/dev/null 2>&1 ++ done ++ + # Set RSA host key to match fingerprints above. + mv $OBJ/sshd_proxy $OBJ/sshd_proxy.orig + $SUDO cp $SRC/rsa_openssh.prv $OBJ/host.ssh-rsa +-- +2.51.0 + diff --git a/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/9.9_p2/0008-MacOS-12-runners-are-deprecated-replace-with-15.patch b/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/9.9_p2/0008-MacOS-12-runners-are-deprecated-replace-with-15.patch new file mode 100644 index 0000000000..f66f88bba7 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/9.9_p2/0008-MacOS-12-runners-are-deprecated-replace-with-15.patch @@ -0,0 +1,41 @@ +From aab12549a939d07f638df486f910544c6b11b972 Mon Sep 17 00:00:00 2001 +Message-ID: +In-Reply-To: <4b8d141ec165aa29a48316768089cb03aed3aada.1758727915.git.sam@gentoo.org> +References: <4b8d141ec165aa29a48316768089cb03aed3aada.1758727915.git.sam@gentoo.org> +From: Darren Tucker +Date: Thu, 17 Oct 2024 19:18:23 +1100 +Subject: [PATCH 08/10] MacOS 12 runners are deprecated, replace with 15. + +--- + .github/workflows/c-cpp.yml | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/.github/workflows/c-cpp.yml b/.github/workflows/c-cpp.yml +index c179f73d1..c49aa5ee8 100644 +--- a/.github/workflows/c-cpp.yml ++++ b/.github/workflows/c-cpp.yml +@@ -17,9 +17,9 @@ jobs: + target: + - ubuntu-20.04 + - ubuntu-22.04 +- - macos-12 + - macos-13 + - macos-14 ++ - macos-15 + - windows-2019 + - windows-2022 + config: [default] +@@ -100,9 +100,9 @@ jobs: + - { target: ubuntu-22.04, config: selinux } + - { target: ubuntu-22.04, config: kitchensink } + - { target: ubuntu-22.04, config: without-openssl } +- - { target: macos-12, config: pam } + - { target: macos-13, config: pam } + - { target: macos-14, config: pam } ++ - { target: macos-15, config: pam } + runs-on: ${{ matrix.target }} + steps: + - name: set cygwin git params +-- +2.51.0 + diff --git a/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/9.9_p2/0009-upstream-Remove-redundant-field-of-definition-check.patch b/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/9.9_p2/0009-upstream-Remove-redundant-field-of-definition-check.patch new file mode 100644 index 0000000000..0daf93d329 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/9.9_p2/0009-upstream-Remove-redundant-field-of-definition-check.patch @@ -0,0 +1,51 @@ +From 8e4bd6ebdbde0ff22e0c1c1f1a134ef255af7595 Mon Sep 17 00:00:00 2001 +Message-ID: <8e4bd6ebdbde0ff22e0c1c1f1a134ef255af7595.1758727915.git.sam@gentoo.org> +In-Reply-To: <4b8d141ec165aa29a48316768089cb03aed3aada.1758727915.git.sam@gentoo.org> +References: <4b8d141ec165aa29a48316768089cb03aed3aada.1758727915.git.sam@gentoo.org> +From: "tb@openbsd.org" +Date: Tue, 3 Dec 2024 15:53:51 +0000 +Subject: [PATCH 09/10] upstream: Remove redundant field of definition check + +This will allow us to get rid of EC_GROUP_method_of() in the near future. + +ok djm + +OpenBSD-Commit-ID: b4a3d2e00990cf5c2ec6881c21ddca67327c2df8 +--- + sshkey.c | 13 ------------- + 1 file changed, 13 deletions(-) + +diff --git a/sshkey.c b/sshkey.c +index 1db83788d..44be674d1 100644 +--- a/sshkey.c ++++ b/sshkey.c +@@ -2708,14 +2708,6 @@ sshkey_ec_validate_public(const EC_GROUP *group, const EC_POINT *public) + * EC_POINT_oct2point then the caller will need to explicitly check. + */ + +- /* +- * We shouldn't ever hit this case because bignum_get_ecpoint() +- * refuses to load GF2m points. +- */ +- if (EC_METHOD_get_field_type(EC_GROUP_method_of(group)) != +- NID_X9_62_prime_field) +- goto out; +- + /* Q != infinity */ + if (EC_POINT_is_at_infinity(group, public)) + goto out; +@@ -2815,11 +2807,6 @@ sshkey_dump_ec_point(const EC_GROUP *group, const EC_POINT *point) + fprintf(stderr, "%s: BN_new failed\n", __func__); + goto out; + } +- if (EC_METHOD_get_field_type(EC_GROUP_method_of(group)) != +- NID_X9_62_prime_field) { +- fprintf(stderr, "%s: group is not a prime field\n", __func__); +- goto out; +- } + if (EC_POINT_get_affine_coordinates_GFp(group, point, + x, y, NULL) != 1) { + fprintf(stderr, "%s: EC_POINT_get_affine_coordinates_GFp\n", +-- +2.51.0 + diff --git a/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/9.9_p2/0010-upstream-Check-if-dbclient-supports-SHA1-before-tryi.patch b/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/9.9_p2/0010-upstream-Check-if-dbclient-supports-SHA1-before-tryi.patch new file mode 100644 index 0000000000..11cd63dfe7 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/9.9_p2/0010-upstream-Check-if-dbclient-supports-SHA1-before-tryi.patch @@ -0,0 +1,64 @@ +From 3eeda15eb9d3b9f2fd762ba3493ba88abe6bbcd9 Mon Sep 17 00:00:00 2001 +Message-ID: <3eeda15eb9d3b9f2fd762ba3493ba88abe6bbcd9.1758727915.git.sam@gentoo.org> +In-Reply-To: <4b8d141ec165aa29a48316768089cb03aed3aada.1758727915.git.sam@gentoo.org> +References: <4b8d141ec165aa29a48316768089cb03aed3aada.1758727915.git.sam@gentoo.org> +From: "dtucker@openbsd.org" +Date: Tue, 11 Mar 2025 07:42:08 +0000 +Subject: [PATCH 10/10] upstream: Check if dbclient supports SHA1 before trying + SHA1-based + +KEX. + +Dropbear 2025.87 removed SHA1 support by default, which means +diffie-hellman-group14-sha1 is not available. Unfortunately there isn't a +flag to query supported KEX, so instead check MACs and if it doesn't have +SHA1 methods, assuming SHA1 based KEXes are likewise not available. Spotted +by anton@. + +OpenBSD-Regress-ID: acfa8e26c001cb18b9fb81a27271c3b51288d304 +--- + regress/dropbear-kex.sh | 17 ++++++++++++----- + 1 file changed, 12 insertions(+), 5 deletions(-) + +diff --git a/regress/dropbear-kex.sh b/regress/dropbear-kex.sh +index d9f1b32c0..72717fbb7 100644 +--- a/regress/dropbear-kex.sh ++++ b/regress/dropbear-kex.sh +@@ -1,4 +1,4 @@ +-# $OpenBSD: dropbear-kex.sh,v 1.3 2024/06/19 10:10:46 dtucker Exp $ ++# $OpenBSD: dropbear-kex.sh,v 1.4 2025/03/11 07:42:08 dtucker Exp $ + # Placed in the Public Domain. + + tid="dropbear kex" +@@ -10,8 +10,14 @@ fi + cp $OBJ/sshd_proxy $OBJ/sshd_proxy.bak + + kex="curve25519-sha256 curve25519-sha256@libssh.org" +-if $SSH -Q kex | grep 'diffie-hellman-group14-sha1'; then +- kex="$kex diffie-hellman-group14-sha256 diffie-hellman-group14-sha1" ++if $SSH -Q kex | grep 'diffie-hellman-group14-sha256' >/dev/null; then ++ kex="$kex diffie-hellman-group14-sha256" ++fi ++# There's no flag to query KEX, so if MACs does not contain SHA1, assume ++# there's also SHA1-based KEX methods either. ++if $SSH -Q kex | grep 'diffie-hellman-group14-sha1' >/dev/null && \ ++ $DBCLIENT -m help hst 2>&1 | grep -- '-sha1' >/dev/null ; then ++ kex="$kex diffie-hellman-group14-sha1" + fi + + for k in $kex; do +@@ -19,8 +25,9 @@ for k in $kex; do + rm -f ${COPY} + # dbclient doesn't have switch for kex, so force in server + (cat $OBJ/sshd_proxy.bak; echo "KexAlgorithms $k") >$OBJ/sshd_proxy +- env HOME=$OBJ dbclient -y -i $OBJ/.dropbear/id_ed25519 2>$OBJ/dbclient.log \ +- -J "$OBJ/ssh_proxy.sh" somehost cat ${DATA} > ${COPY} ++ env HOME=$OBJ \ ++ ${DBCLIENT} -y -i $OBJ/.dropbear/id_ed25519 2>$OBJ/dbclient.log \ ++ -J "$OBJ/ssh_proxy.sh" somehost cat ${DATA} > ${COPY} + if [ $? -ne 0 ]; then + fail "ssh cat $DATA failed" + fi +-- +2.51.0 + diff --git a/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/openssh-9.8_p1-musl-connect.patch b/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/openssh-9.8_p1-musl-connect.patch deleted file mode 100644 index c0546e747a..0000000000 --- a/sdk_container/src/third_party/portage-stable/net-misc/openssh/files/openssh-9.8_p1-musl-connect.patch +++ /dev/null @@ -1,14 +0,0 @@ -https://bugzilla.mindrot.org/show_bug.cgi?id=3707 -https://bugs.gentoo.org/935353 ---- a/openbsd-compat/port-linux.c -+++ b/openbsd-compat/port-linux.c -@@ -366,7 +366,7 @@ ssh_systemd_notify(const char *fmt, ...) - error_f("socket \"%s\": %s", path, strerror(errno)); - goto out; - } -- if (connect(fd, &addr, sizeof(addr)) != 0) { -+ if (connect(fd, (struct sockaddr *)&addr, sizeof(addr)) != 0) { - error_f("socket \"%s\" connect: %s", path, strerror(errno)); - goto out; - } - diff --git a/sdk_container/src/third_party/portage-stable/net-misc/openssh/openssh-9.9_p2.ebuild b/sdk_container/src/third_party/portage-stable/net-misc/openssh/openssh-10.0_p2.ebuild similarity index 95% rename from sdk_container/src/third_party/portage-stable/net-misc/openssh/openssh-9.9_p2.ebuild rename to sdk_container/src/third_party/portage-stable/net-misc/openssh/openssh-10.0_p2.ebuild index 86005039f3..9eee63dbdd 100644 --- a/sdk_container/src/third_party/portage-stable/net-misc/openssh/openssh-9.9_p2.ebuild +++ b/sdk_container/src/third_party/portage-stable/net-misc/openssh/openssh-10.0_p2.ebuild @@ -11,7 +11,7 @@ inherit user-info flag-o-matic autotools optfeature pam systemd toolchain-funcs # Make it more portable between straight releases # and _p? releases. -PARCH=${P/_} +PARCH=${PN}-10.0p1 DESCRIPTION="Port of OpenBSD's free SSH release" HOMEPAGE="https://www.openssh.com/" @@ -19,19 +19,21 @@ SRC_URI=" mirror://openbsd/OpenSSH/portable/${PARCH}.tar.gz verify-sig? ( mirror://openbsd/OpenSSH/portable/${PARCH}.tar.gz.asc ) " -S="${WORKDIR}/${PARCH}" +if [[ ${PV} != 10.0_p2 ]] ; then + die "Please restore the old S/PATCHES. 10.0_p2 had a workaround that should be dropped." +fi +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 legacy-ciphers libedit livecd pam +pie security-key selinux +ssl static test xmss" +IUSE="abi_mips_n32 audit debug kerberos ldns libedit livecd pam security-key selinux +ssl static test xmss" RESTRICT="!test? ( test )" REQUIRED_USE=" ldns? ( ssl ) - pie? ( !static ) static? ( !kerberos !pam ) xmss? ( ssl ) test? ( ssl ) @@ -83,9 +85,8 @@ PATCHES=( "${FILESDIR}/${PN}-9.6_p1-fix-xmss-c99.patch" "${FILESDIR}/${PN}-9.7_p1-config-tweaks.patch" # Backports from upstream release branch - #"${FILESDIR}/${PV}" + "${FILESDIR}/${PV}" # Our own backports - "${FILESDIR}/${PN}-9.9_p1-x-forwarding-slow.patch" ) pkg_pretend() { @@ -192,22 +193,25 @@ src_configure() { # Clang (bug #872548), ICEs on m68k (bug #920350, gcc PR113086, # gcc PR104820, gcc PR104817, gcc PR110934)). # - # Furthermore, OSSH_CHECK_CFLAG_COMPILE does not use AC_CACHE_CHECK, - # so we cannot just disable -fzero-call-used-regs=used. + # Furthermore, OSSH_CHECK_CFLAG_COMPILE does not use AC_CACHE_CHECK + # util 10.1_p1, so we cannot just disable -fzero-call-used-regs=used. # # Therefore, just pass --without-hardening, given it doesn't negate # our already hardened toolchain defaults, and avoids adding flags # which are known-broken in both Clang and GCC and haven't been # proven reliable. --without-hardening + --without-pie + --without-stackprotect + + # wtmpdb not yet packaged + --without-wtmpdb $(use_with audit audit linux) $(use_with kerberos kerberos5 "${EPREFIX}"/usr) $(use_with ldns) - $(use_enable legacy-ciphers dsa-keys) $(use_with libedit) $(use_with pam) - $(use_with pie) $(use_with selinux) $(use_with security-key security-key-builtin) $(use_with ssl openssl) @@ -219,10 +223,6 @@ src_configure() { myconf+=( --disable-utmp --disable-wtmp ) fi - # Workaround for Clang 15 miscompilation with -fzero-call-used-regs=all - # bug #869839 (https://github.com/llvm/llvm-project/issues/57692) - tc-is-clang && myconf+=( --without-hardening ) - econf "${myconf[@]}" } @@ -299,7 +299,7 @@ src_test() { if [[ ${shell} == */nologin ]] || [[ ${shell} == */false ]] ; then ewarn "Running the full OpenSSH testsuite requires a usable shell for the 'portage'" ewarn "user, so we will run a subset only." - tests+=( interop-tests ) + tests+=( interop-tests file-tests unit ) else tests+=( tests ) fi @@ -315,6 +315,8 @@ src_install() { dobin contrib/ssh-copy-id newinitd "${FILESDIR}"/sshd-r1.initd sshd newconfd "${FILESDIR}"/sshd-r1.confd sshd + exeinto /etc/user/init.d + newexe "${FILESDIR}"/ssh-agent.initd ssh-agent if use pam; then newpamd "${FILESDIR}"/sshd.pam_include.2 sshd diff --git a/sdk_container/src/third_party/portage-stable/net-misc/openssh/openssh-10.1_p1-r1.ebuild b/sdk_container/src/third_party/portage-stable/net-misc/openssh/openssh-10.1_p1-r1.ebuild new file mode 100644 index 0000000000..9d9f389b16 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/net-misc/openssh/openssh-10.1_p1-r1.ebuild @@ -0,0 +1,432 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Remember to check the upstream release/stable branches for patches +# to backport! See https://marc.info/?l=openssh-unix-dev&m=172723798122122&w=2. + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/openssh.org.asc +inherit user-info flag-o-matic autotools optfeature pam systemd toolchain-funcs verify-sig eapi9-ver + +# Make it more portable between straight releases +# and _p? releases. +PARCH=${P/_} + +DESCRIPTION="Port of OpenBSD's free SSH release" +HOMEPAGE="https://www.openssh.com/" +SRC_URI=" + mirror://openbsd/OpenSSH/portable/${PARCH}.tar.gz + verify-sig? ( mirror://openbsd/OpenSSH/portable/${PARCH}.tar.gz.asc ) +" +S="${WORKDIR}/${PARCH}" + +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" +# 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" + +RESTRICT="!test? ( test )" + +REQUIRED_USE=" + ldns? ( ssl ) + static? ( !kerberos !pam ) + test? ( ssl ) +" + +LIB_DEPEND=" + audit? ( sys-process/audit[static-libs(+)] ) + ldns? ( + net-libs/ldns[static-libs(+)] + net-libs/ldns[ecdsa(+),ssl(+)] + ) + libedit? ( dev-libs/libedit:=[static-libs(+)] ) + security-key? ( >=dev-libs/libfido2-1.5.0:=[static-libs(+)] ) + selinux? ( >=sys-libs/libselinux-1.28[static-libs(+)] ) + ssl? ( >=dev-libs/openssl-1.1.1l-r1:0=[static-libs(+)] ) + virtual/libcrypt:=[static-libs(+)] + >=sys-libs/zlib-1.2.3:=[static-libs(+)] +" +RDEPEND=" + acct-group/sshd + acct-user/sshd + !static? ( ${LIB_DEPEND//\[static-libs(+)]} ) + pam? ( sys-libs/pam ) + kerberos? ( virtual/krb5 ) +" +DEPEND=" + ${RDEPEND} + virtual/os-headers + kernel_linux? ( !prefix-guest? ( >=sys-kernel/linux-headers-5.1 ) ) + static? ( ${LIB_DEPEND} ) +" +RDEPEND=" + ${RDEPEND} + !net-misc/openssh-contrib + pam? ( >=sys-auth/pambase-20081028 ) + !prefix? ( sys-apps/shadow ) +" +BDEPEND=" + dev-build/autoconf + virtual/pkgconfig + verify-sig? ( sec-keys/openpgp-keys-openssh ) +" + +PATCHES=( + "${FILESDIR}/${PN}-9.4_p1-Allow-MAP_NORESERVE-in-sandbox-seccomp-filter-maps.patch" + "${FILESDIR}/${PN}-9.7_p1-config-tweaks.patch" + # Backports from upstream release branch + "${FILESDIR}/${PV}" + # Our own backports +) + +pkg_pretend() { + local i enabled_eol_flags disabled_eol_flags + for i in hpn sctp X509; do + if has_version "net-misc/openssh[${i}]"; then + enabled_eol_flags+="${i}," + disabled_eol_flags+="-${i}," + fi + done + + if [[ -n ${enabled_eol_flags} && ${OPENSSH_EOL_USE_FLAGS_I_KNOW_WHAT_I_AM_DOING} != yes ]]; then + # Skip for binary packages entirely because of environment saving, bug #907892 + [[ ${MERGE_TYPE} == binary ]] && return + + ewarn "net-misc/openssh does not support USE='${enabled_eol_flags%,}' anymore." + ewarn "The Base system team *STRONGLY* recommends you not rely on this functionality," + ewarn "since these USE flags required third-party patches that often trigger bugs" + ewarn "and are of questionable provenance." + ewarn + ewarn "If you must continue relying on this functionality, switch to" + ewarn "net-misc/openssh-contrib. You will have to remove net-misc/openssh from your" + ewarn "world file first: 'emerge --deselect net-misc/openssh'" + ewarn + ewarn "In order to prevent loss of SSH remote login access, we will abort the build." + ewarn "Whether you proceed with disabling the USE flags or switch to the -contrib" + ewarn "variant, when re-emerging you will have to set" + ewarn + ewarn " OPENSSH_EOL_USE_FLAGS_I_KNOW_WHAT_I_AM_DOING=yes" + + die "Building net-misc/openssh[${disabled_eol_flags%,}] without OPENSSH_EOL_USE_FLAGS_I_KNOW_WHAT_I_AM_DOING=yes" + fi + + # Make sure people who are using tcp wrappers are notified of its removal. #531156 + if grep -qs '^ *sshd *:' "${EROOT}"/etc/hosts.{allow,deny} ; then + ewarn "Sorry, but openssh no longer supports tcp-wrappers, and it seems like" + ewarn "you're trying to use it. Update your ${EROOT}/etc/hosts.{allow,deny} please." + fi +} + +src_prepare() { + # don't break .ssh/authorized_keys2 for fun + sed -i '/^AuthorizedKeysFile/s:^:#:' sshd_config || die + + [[ -d ${WORKDIR}/patches ]] && PATCHES+=( "${WORKDIR}"/patches ) + + default + + # These tests are currently incompatible with PORTAGE_TMPDIR/sandbox + sed -e '/\t\tpercent \\/ d' \ + -i regress/Makefile || die + + tc-export PKG_CONFIG + local sed_args=( + -e "s:-lcrypto:$(${PKG_CONFIG} --libs openssl):" + # Disable fortify flags ... our gcc does this for us + -e 's:-D_FORTIFY_SOURCE=2::' + ) + + # _XOPEN_SOURCE causes header conflicts on Solaris + [[ ${CHOST} == *-solaris* ]] && sed_args+=( + -e 's/-D_XOPEN_SOURCE//' + ) + sed -i "${sed_args[@]}" configure{.ac,} || die + + eautoreconf +} + +src_configure() { + addwrite /dev/ptmx + + use debug && append-cppflags -DSANDBOX_SECCOMP_FILTER_DEBUG + use static && append-ldflags -static + + if [[ ${CHOST} == *-solaris* ]] ; then + # Solaris' glob.h doesn't have things like GLOB_TILDE, configure + # doesn't check for this, so force the replacement to be put in + # place + append-cppflags -DBROKEN_GLOB + fi + + # use replacement, RPF_ECHO_ON doesn't exist here + [[ ${CHOST} == *-darwin* ]] && export ac_cv_func_readpassphrase=no + + local myconf=( + --with-ldflags="${LDFLAGS}" + --disable-strip + --with-pid-dir="${EPREFIX}"$(usex kernel_linux '' '/var')/run + --sysconfdir="${EPREFIX}"/etc/ssh + --libexecdir="${EPREFIX}"/usr/$(get_libdir)/misc + --datadir="${EPREFIX}"/usr/share/openssh + --with-privsep-path="${EPREFIX}"/var/empty + --with-privsep-user=sshd + # optional at runtime; guarantee a known path + --with-xauth="${EPREFIX}"/usr/bin/xauth + + # --with-hardening adds the following in addition to flags we + # already set in our toolchain: + # * -ftrapv (which is broken with GCC anyway), + # * -ftrivial-auto-var-init=zero (which is nice, but not the end of + # the world to not have) + # * -fzero-call-used-regs=used (history of miscompilations with + # Clang (bug #872548), ICEs on m68k (bug #920350, gcc PR113086, + # gcc PR104820, gcc PR104817, gcc PR110934)). + # + # Furthermore, OSSH_CHECK_CFLAG_COMPILE did not use AC_CACHE_CHECK + # until 10.1_p1, so we couldn't disable -fzero-call-used-regs=used. + # + # Therefore, just pass --without-hardening, given it doesn't negate + # our already hardened toolchain defaults, and avoids adding flags + # which are known-broken in both Clang and GCC and haven't been + # proven reliable. + --without-hardening + --without-pie + --without-stackprotect + + # wtmpdb not yet packaged + --without-wtmpdb + + $(use_with audit audit linux) + $(use_with kerberos kerberos5 "${EPREFIX}"/usr) + $(use_with ldns) + $(use_with libedit) + $(use_with pam) + $(use_with selinux) + $(use_with security-key security-key-builtin) + $(use_with ssl openssl) + $(use_with ssl ssl-engine) + ) + + if use elibc_musl; then + # musl defines bogus values for UTMP_FILE and WTMP_FILE (bug #753230) + myconf+=( --disable-utmp --disable-wtmp ) + fi + + econf "${myconf[@]}" +} + +create_config_dropins() { + local locale_vars=( + # These are language variables that POSIX defines. + # http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap08.html#tag_08_02 + LANG LC_ALL LC_COLLATE LC_CTYPE LC_MESSAGES LC_MONETARY LC_NUMERIC LC_TIME + + # These are the GNU extensions. + # https://www.gnu.org/software/autoconf/manual/html_node/Special-Shell-Variables.html + LANGUAGE LC_ADDRESS LC_IDENTIFICATION LC_MEASUREMENT LC_NAME LC_PAPER LC_TELEPHONE + ) + + mkdir -p "${WORKDIR}"/etc/ssh/ssh{,d}_config.d || die + + cat <<-EOF > "${WORKDIR}"/etc/ssh/ssh_config.d/9999999gentoo.conf || die + # Send locale environment variables (bug #367017) + SendEnv ${locale_vars[*]} + + # Send COLORTERM to match TERM (bug #658540) + SendEnv COLORTERM + EOF + + cat <<-EOF > "${WORKDIR}"/etc/ssh/ssh_config.d/9999999gentoo-security.conf || die + RevokedHostKeys "${EPREFIX}/etc/ssh/ssh_revoked_hosts" + EOF + + cat <<-EOF > "${WORKDIR}"/etc/ssh/ssh_revoked_hosts || die + # https://github.blog/2023-03-23-we-updated-our-rsa-ssh-host-key/ + ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ== + EOF + + cat <<-EOF > "${WORKDIR}"/etc/ssh/sshd_config.d/9999999gentoo.conf || die + # Allow client to pass locale environment variables (bug #367017) + AcceptEnv ${locale_vars[*]} + + # Allow client to pass COLORTERM to match TERM (bug #658540) + AcceptEnv COLORTERM + EOF + + cat <<-EOF > "${WORKDIR}"/etc/ssh/sshd_config.d/9999999gentoo-subsystem.conf || die + # override default of no subsystems + Subsystem sftp ${EPREFIX}/usr/$(get_libdir)/misc/sftp-server + EOF + + if use pam ; then + cat <<-EOF > "${WORKDIR}"/etc/ssh/sshd_config.d/9999999gentoo-pam.conf || die + UsePAM yes + # This interferes with PAM. + PasswordAuthentication no + # PAM can do its own handling of MOTD. + PrintMotd no + PrintLastLog no + EOF + fi + + if use livecd ; then + cat <<-EOF > "${WORKDIR}"/etc/ssh/sshd_config.d/9999999gentoo-livecd.conf || die + # Allow root login with password on livecds. + PermitRootLogin Yes + EOF + fi +} + +src_compile() { + default + create_config_dropins +} + +src_test() { + local tests=( compat-tests ) + local shell=$(egetshell "${UID}") + if [[ ${shell} == */nologin ]] || [[ ${shell} == */false ]] ; then + ewarn "Running the full OpenSSH testsuite requires a usable shell for the 'portage'" + ewarn "user, so we will run a subset only." + tests+=( interop-tests file-tests unit ) + else + tests+=( tests ) + fi + + local -x SUDO= SSH_SK_PROVIDER= TEST_SSH_UNSAFE_PERMISSIONS=1 + mkdir -p "${HOME}"/.ssh || die + emake -j1 "${tests[@]}" /dev/null 2>&1; then + ewarn "The ebuild will now attempt to restart OpenSSH to avoid" + ewarn "bricking the running instance. See bug #709748." + ebegin "Attempting to restart openssh via 'systemctl try-restart sshd'" + systemctl try-restart sshd + eend $? + elif [[ -d /run/openrc ]]; then + # We don't check for sshd -t here because the OpenRC init script + # has a stop_pre() which does checkconfig, i.e. we defer to it + # to give nicer output for a failed sanity check. + ewarn "The ebuild will now attempt to restart OpenSSH to avoid" + ewarn "bricking the running instance. See bug #709748." + ebegin "Attempting to restart openssh via 'rc-service -q --ifstarted --nodeps sshd restart'" + rc-service -q --ifstarted --nodeps sshd restart + eend $? + fi +} diff --git a/sdk_container/src/third_party/portage-stable/net-misc/openssh/openssh-10.2_p1.ebuild b/sdk_container/src/third_party/portage-stable/net-misc/openssh/openssh-10.2_p1.ebuild new file mode 100644 index 0000000000..52c568cdd3 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/net-misc/openssh/openssh-10.2_p1.ebuild @@ -0,0 +1,432 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Remember to check the upstream release/stable branches for patches +# to backport! See https://marc.info/?l=openssh-unix-dev&m=172723798122122&w=2. + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/openssh.org.asc +inherit user-info flag-o-matic autotools optfeature pam systemd toolchain-funcs verify-sig eapi9-ver + +# Make it more portable between straight releases +# and _p? releases. +PARCH=${P/_} + +DESCRIPTION="Port of OpenBSD's free SSH release" +HOMEPAGE="https://www.openssh.com/" +SRC_URI=" + mirror://openbsd/OpenSSH/portable/${PARCH}.tar.gz + verify-sig? ( mirror://openbsd/OpenSSH/portable/${PARCH}.tar.gz.asc ) +" +S="${WORKDIR}/${PARCH}" + +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" +# 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" + +RESTRICT="!test? ( test )" + +REQUIRED_USE=" + ldns? ( ssl ) + static? ( !kerberos !pam ) + test? ( ssl ) +" + +LIB_DEPEND=" + audit? ( sys-process/audit[static-libs(+)] ) + ldns? ( + net-libs/ldns[static-libs(+)] + net-libs/ldns[ecdsa(+),ssl(+)] + ) + libedit? ( dev-libs/libedit:=[static-libs(+)] ) + security-key? ( >=dev-libs/libfido2-1.5.0:=[static-libs(+)] ) + selinux? ( >=sys-libs/libselinux-1.28[static-libs(+)] ) + ssl? ( >=dev-libs/openssl-1.1.1l-r1:0=[static-libs(+)] ) + virtual/libcrypt:=[static-libs(+)] + >=sys-libs/zlib-1.2.3:=[static-libs(+)] +" +RDEPEND=" + acct-group/sshd + acct-user/sshd + !static? ( ${LIB_DEPEND//\[static-libs(+)]} ) + pam? ( sys-libs/pam ) + kerberos? ( virtual/krb5 ) +" +DEPEND=" + ${RDEPEND} + virtual/os-headers + kernel_linux? ( !prefix-guest? ( >=sys-kernel/linux-headers-5.1 ) ) + static? ( ${LIB_DEPEND} ) +" +RDEPEND=" + ${RDEPEND} + !net-misc/openssh-contrib + pam? ( >=sys-auth/pambase-20081028 ) + !prefix? ( sys-apps/shadow ) +" +BDEPEND=" + dev-build/autoconf + virtual/pkgconfig + verify-sig? ( sec-keys/openpgp-keys-openssh ) +" + +PATCHES=( + "${FILESDIR}/${PN}-9.4_p1-Allow-MAP_NORESERVE-in-sandbox-seccomp-filter-maps.patch" + "${FILESDIR}/${PN}-9.7_p1-config-tweaks.patch" + # Backports from upstream release branch + #"${FILESDIR}/${PV}" + # Our own backports +) + +pkg_pretend() { + local i enabled_eol_flags disabled_eol_flags + for i in hpn sctp X509; do + if has_version "net-misc/openssh[${i}]"; then + enabled_eol_flags+="${i}," + disabled_eol_flags+="-${i}," + fi + done + + if [[ -n ${enabled_eol_flags} && ${OPENSSH_EOL_USE_FLAGS_I_KNOW_WHAT_I_AM_DOING} != yes ]]; then + # Skip for binary packages entirely because of environment saving, bug #907892 + [[ ${MERGE_TYPE} == binary ]] && return + + ewarn "net-misc/openssh does not support USE='${enabled_eol_flags%,}' anymore." + ewarn "The Base system team *STRONGLY* recommends you not rely on this functionality," + ewarn "since these USE flags required third-party patches that often trigger bugs" + ewarn "and are of questionable provenance." + ewarn + ewarn "If you must continue relying on this functionality, switch to" + ewarn "net-misc/openssh-contrib. You will have to remove net-misc/openssh from your" + ewarn "world file first: 'emerge --deselect net-misc/openssh'" + ewarn + ewarn "In order to prevent loss of SSH remote login access, we will abort the build." + ewarn "Whether you proceed with disabling the USE flags or switch to the -contrib" + ewarn "variant, when re-emerging you will have to set" + ewarn + ewarn " OPENSSH_EOL_USE_FLAGS_I_KNOW_WHAT_I_AM_DOING=yes" + + die "Building net-misc/openssh[${disabled_eol_flags%,}] without OPENSSH_EOL_USE_FLAGS_I_KNOW_WHAT_I_AM_DOING=yes" + fi + + # Make sure people who are using tcp wrappers are notified of its removal. #531156 + if grep -qs '^ *sshd *:' "${EROOT}"/etc/hosts.{allow,deny} ; then + ewarn "Sorry, but openssh no longer supports tcp-wrappers, and it seems like" + ewarn "you're trying to use it. Update your ${EROOT}/etc/hosts.{allow,deny} please." + fi +} + +src_prepare() { + # don't break .ssh/authorized_keys2 for fun + sed -i '/^AuthorizedKeysFile/s:^:#:' sshd_config || die + + [[ -d ${WORKDIR}/patches ]] && PATCHES+=( "${WORKDIR}"/patches ) + + default + + # These tests are currently incompatible with PORTAGE_TMPDIR/sandbox + sed -e '/\t\tpercent \\/ d' \ + -i regress/Makefile || die + + tc-export PKG_CONFIG + local sed_args=( + -e "s:-lcrypto:$(${PKG_CONFIG} --libs openssl):" + # Disable fortify flags ... our gcc does this for us + -e 's:-D_FORTIFY_SOURCE=2::' + ) + + # _XOPEN_SOURCE causes header conflicts on Solaris + [[ ${CHOST} == *-solaris* ]] && sed_args+=( + -e 's/-D_XOPEN_SOURCE//' + ) + sed -i "${sed_args[@]}" configure{.ac,} || die + + eautoreconf +} + +src_configure() { + addwrite /dev/ptmx + + use debug && append-cppflags -DSANDBOX_SECCOMP_FILTER_DEBUG + use static && append-ldflags -static + + if [[ ${CHOST} == *-solaris* ]] ; then + # Solaris' glob.h doesn't have things like GLOB_TILDE, configure + # doesn't check for this, so force the replacement to be put in + # place + append-cppflags -DBROKEN_GLOB + fi + + # use replacement, RPF_ECHO_ON doesn't exist here + [[ ${CHOST} == *-darwin* ]] && export ac_cv_func_readpassphrase=no + + local myconf=( + --with-ldflags="${LDFLAGS}" + --disable-strip + --with-pid-dir="${EPREFIX}"$(usex kernel_linux '' '/var')/run + --sysconfdir="${EPREFIX}"/etc/ssh + --libexecdir="${EPREFIX}"/usr/$(get_libdir)/misc + --datadir="${EPREFIX}"/usr/share/openssh + --with-privsep-path="${EPREFIX}"/var/empty + --with-privsep-user=sshd + # optional at runtime; guarantee a known path + --with-xauth="${EPREFIX}"/usr/bin/xauth + + # --with-hardening adds the following in addition to flags we + # already set in our toolchain: + # * -ftrapv (which is broken with GCC anyway), + # * -ftrivial-auto-var-init=zero (which is nice, but not the end of + # the world to not have) + # * -fzero-call-used-regs=used (history of miscompilations with + # Clang (bug #872548), ICEs on m68k (bug #920350, gcc PR113086, + # gcc PR104820, gcc PR104817, gcc PR110934)). + # + # Furthermore, OSSH_CHECK_CFLAG_COMPILE did not use AC_CACHE_CHECK + # until 10.1_p1, so we couldn't disable -fzero-call-used-regs=used. + # + # Therefore, just pass --without-hardening, given it doesn't negate + # our already hardened toolchain defaults, and avoids adding flags + # which are known-broken in both Clang and GCC and haven't been + # proven reliable. + --without-hardening + --without-pie + --without-stackprotect + + # wtmpdb not yet packaged + --without-wtmpdb + + $(use_with audit audit linux) + $(use_with kerberos kerberos5 "${EPREFIX}"/usr) + $(use_with ldns) + $(use_with libedit) + $(use_with pam) + $(use_with selinux) + $(use_with security-key security-key-builtin) + $(use_with ssl openssl) + $(use_with ssl ssl-engine) + ) + + if use elibc_musl; then + # musl defines bogus values for UTMP_FILE and WTMP_FILE (bug #753230) + myconf+=( --disable-utmp --disable-wtmp ) + fi + + econf "${myconf[@]}" +} + +create_config_dropins() { + local locale_vars=( + # These are language variables that POSIX defines. + # http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap08.html#tag_08_02 + LANG LC_ALL LC_COLLATE LC_CTYPE LC_MESSAGES LC_MONETARY LC_NUMERIC LC_TIME + + # These are the GNU extensions. + # https://www.gnu.org/software/autoconf/manual/html_node/Special-Shell-Variables.html + LANGUAGE LC_ADDRESS LC_IDENTIFICATION LC_MEASUREMENT LC_NAME LC_PAPER LC_TELEPHONE + ) + + mkdir -p "${WORKDIR}"/etc/ssh/ssh{,d}_config.d || die + + cat <<-EOF > "${WORKDIR}"/etc/ssh/ssh_config.d/9999999gentoo.conf || die + # Send locale environment variables (bug #367017) + SendEnv ${locale_vars[*]} + + # Send COLORTERM to match TERM (bug #658540) + SendEnv COLORTERM + EOF + + cat <<-EOF > "${WORKDIR}"/etc/ssh/ssh_config.d/9999999gentoo-security.conf || die + RevokedHostKeys "${EPREFIX}/etc/ssh/ssh_revoked_hosts" + EOF + + cat <<-EOF > "${WORKDIR}"/etc/ssh/ssh_revoked_hosts || die + # https://github.blog/2023-03-23-we-updated-our-rsa-ssh-host-key/ + ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ== + EOF + + cat <<-EOF > "${WORKDIR}"/etc/ssh/sshd_config.d/9999999gentoo.conf || die + # Allow client to pass locale environment variables (bug #367017) + AcceptEnv ${locale_vars[*]} + + # Allow client to pass COLORTERM to match TERM (bug #658540) + AcceptEnv COLORTERM + EOF + + cat <<-EOF > "${WORKDIR}"/etc/ssh/sshd_config.d/9999999gentoo-subsystem.conf || die + # override default of no subsystems + Subsystem sftp ${EPREFIX}/usr/$(get_libdir)/misc/sftp-server + EOF + + if use pam ; then + cat <<-EOF > "${WORKDIR}"/etc/ssh/sshd_config.d/9999999gentoo-pam.conf || die + UsePAM yes + # This interferes with PAM. + PasswordAuthentication no + # PAM can do its own handling of MOTD. + PrintMotd no + PrintLastLog no + EOF + fi + + if use livecd ; then + cat <<-EOF > "${WORKDIR}"/etc/ssh/sshd_config.d/9999999gentoo-livecd.conf || die + # Allow root login with password on livecds. + PermitRootLogin Yes + EOF + fi +} + +src_compile() { + default + create_config_dropins +} + +src_test() { + local tests=( compat-tests ) + local shell=$(egetshell "${UID}") + if [[ ${shell} == */nologin ]] || [[ ${shell} == */false ]] ; then + ewarn "Running the full OpenSSH testsuite requires a usable shell for the 'portage'" + ewarn "user, so we will run a subset only." + tests+=( interop-tests file-tests unit ) + else + tests+=( tests ) + fi + + local -x SUDO= SSH_SK_PROVIDER= TEST_SSH_UNSAFE_PERMISSIONS=1 + mkdir -p "${HOME}"/.ssh || die + emake -j1 "${tests[@]}" /dev/null 2>&1; then + ewarn "The ebuild will now attempt to restart OpenSSH to avoid" + ewarn "bricking the running instance. See bug #709748." + ebegin "Attempting to restart openssh via 'systemctl try-restart sshd'" + systemctl try-restart sshd + eend $? + elif [[ -d /run/openrc ]]; then + # We don't check for sshd -t here because the OpenRC init script + # has a stop_pre() which does checkconfig, i.e. we defer to it + # to give nicer output for a failed sanity check. + ewarn "The ebuild will now attempt to restart OpenSSH to avoid" + ewarn "bricking the running instance. See bug #709748." + ebegin "Attempting to restart openssh via 'rc-service -q --ifstarted --nodeps sshd restart'" + rc-service -q --ifstarted --nodeps sshd restart + eend $? + fi +} diff --git a/sdk_container/src/third_party/portage-stable/net-misc/openssh/openssh-9.8_p1-r3.ebuild b/sdk_container/src/third_party/portage-stable/net-misc/openssh/openssh-9.8_p1-r4.ebuild similarity index 99% rename from sdk_container/src/third_party/portage-stable/net-misc/openssh/openssh-9.8_p1-r3.ebuild rename to sdk_container/src/third_party/portage-stable/net-misc/openssh/openssh-9.8_p1-r4.ebuild index a2850bed23..6063b9758c 100644 --- a/sdk_container/src/third_party/portage-stable/net-misc/openssh/openssh-9.8_p1-r3.ebuild +++ b/sdk_container/src/third_party/portage-stable/net-misc/openssh/openssh-9.8_p1-r4.ebuild @@ -79,8 +79,9 @@ PATCHES=( "${FILESDIR}/${PN}-9.4_p1-Allow-MAP_NORESERVE-in-sandbox-seccomp-filter-maps.patch" "${FILESDIR}/${PN}-9.6_p1-fix-xmss-c99.patch" "${FILESDIR}/${PN}-9.7_p1-config-tweaks.patch" - "${FILESDIR}/${PN}-9.8_p1-musl-connect.patch" "${FILESDIR}/${PN}-9.8_p1-inetd.patch" + # Backports from upstream release branch + "${FILESDIR}/${PV}" ) pkg_pretend() { diff --git a/sdk_container/src/third_party/portage-stable/net-misc/openssh/openssh-9.9_p2-r3.ebuild b/sdk_container/src/third_party/portage-stable/net-misc/openssh/openssh-9.9_p2-r4.ebuild similarity index 99% rename from sdk_container/src/third_party/portage-stable/net-misc/openssh/openssh-9.9_p2-r3.ebuild rename to sdk_container/src/third_party/portage-stable/net-misc/openssh/openssh-9.9_p2-r4.ebuild index 358011e40e..2c2aa6bbe8 100644 --- a/sdk_container/src/third_party/portage-stable/net-misc/openssh/openssh-9.9_p2-r3.ebuild +++ b/sdk_container/src/third_party/portage-stable/net-misc/openssh/openssh-9.9_p2-r4.ebuild @@ -83,7 +83,7 @@ PATCHES=( "${FILESDIR}/${PN}-9.6_p1-fix-xmss-c99.patch" "${FILESDIR}/${PN}-9.7_p1-config-tweaks.patch" # Backports from upstream release branch - #"${FILESDIR}/${PV}" + "${FILESDIR}/${PV}" # Our own backports "${FILESDIR}/${PN}-9.9_p1-x-forwarding-slow.patch" ) diff --git a/sdk_container/src/third_party/portage-stable/net-misc/passt/passt-2025.06.11.ebuild b/sdk_container/src/third_party/portage-stable/net-misc/passt/passt-2025.06.11.ebuild index a941cda9b2..278b5c3a34 100644 --- a/sdk_container/src/third_party/portage-stable/net-misc/passt/passt-2025.06.11.ebuild +++ b/sdk_container/src/third_party/portage-stable/net-misc/passt/passt-2025.06.11.ebuild @@ -16,7 +16,7 @@ if [[ ${PV} == 9999* ]]; then else SRC_URI="https://passt.top/passt/snapshot/passt-${RELEASE_COMMIT}.tar.xz -> ${P}.tar.xz" S="${WORKDIR}/${PN}-${RELEASE_COMMIT}" - KEYWORDS="~amd64 ~arm64 ~loong ~riscv" + KEYWORDS="amd64 arm64 ~loong ~riscv" fi LICENSE="BSD GPL-2+" diff --git a/sdk_container/src/third_party/portage-stable/net-vpn/wireguard-tools/wireguard-tools-1.0.20250521.ebuild b/sdk_container/src/third_party/portage-stable/net-vpn/wireguard-tools/wireguard-tools-1.0.20250521-r1.ebuild similarity index 98% rename from sdk_container/src/third_party/portage-stable/net-vpn/wireguard-tools/wireguard-tools-1.0.20250521.ebuild rename to sdk_container/src/third_party/portage-stable/net-vpn/wireguard-tools/wireguard-tools-1.0.20250521-r1.ebuild index bdc12b17e4..e8e8b305cd 100644 --- a/sdk_container/src/third_party/portage-stable/net-vpn/wireguard-tools/wireguard-tools-1.0.20250521.ebuild +++ b/sdk_container/src/third_party/portage-stable/net-vpn/wireguard-tools/wireguard-tools-1.0.20250521-r1.ebuild @@ -59,6 +59,7 @@ pkg_setup() { wg_quick_optional_config_nob IP_NF_RAW wg_quick_optional_config_nob IP6_NF_FILTER wg_quick_optional_config_nob IP_NF_FILTER + wg_quick_optional_config_nob IP_NF_MANGLE fi fi get_version diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/alpha/package.use.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/alpha/package.use.mask index f306de1110..8a7c039145 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/alpha/package.use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/alpha/package.use.mask @@ -1,6 +1,14 @@ # Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# PPN-SD (2025-10-04) +# media-libs/libemf is not keyworded here +app-office/dia wmf + +# Philipp Rösner (2025-09-23) +# media-libs/zxingcpp is not keyworded here +app-text/mupdf barcode + # Andreas Sturmlechner (2025-08-29) # dev-perl/Template-GD is not keyworded here. Bug #661634 dev-perl/Template-Toolkit gd 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 1cfea98e2a..fac132b4b8 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,15 @@ #--- END OF EXAMPLES --- +# Michał Górny (2025-09-28) +# Unmask on amd64 for wider testing. +sci-libs/flexiblas -system-blas +sci-libs/lapack -flexiblas +virtual/blas -flexiblas +virtual/cblas -flexiblas +virtual/lapack -flexiblas +virtual/lapacke -flexiblas + # Nicolas PARLANT (2025-09-20) # Require dev-libs/libtsm, keyworded here >=media-gfx/fbida-2.14_p20241216 -fbcon diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/amd64/x32/package.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/amd64/x32/package.mask index 6eace04b13..ff057e3649 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/amd64/x32/package.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/amd64/x32/package.mask @@ -1,6 +1,10 @@ # Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# Mario Haustein (2025-10-06) +# Requires qtwebengine +media-radio/qlog + # Jay Faulkner (2025-06-01) # Requires >=net-libs/nodejs-18[npm] dev-util/claude-code 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 4540152e7d..d941cf8316 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,19 @@ # Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# PPN-SD (2025-10-04) +# media-libs/libemf is not keyworded here +app-office/dia wmf + +# Michał Górny (2025-10-03) +# Now keyworded on arm too. +sci-libs/flexiblas -system-blas +sci-libs/lapack -flexiblas +virtual/blas -flexiblas +virtual/cblas -flexiblas +virtual/lapack -flexiblas +virtual/lapacke -flexiblas + # Michał Górny (2025-09-12) # These BLAS/LAPACK providers are keyworded here. sci-libs/flexiblas -openblas diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/arm/package.use.stable.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/arm/package.use.stable.mask index 4305c41e73..921a8bf7a0 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/arm/package.use.stable.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/arm/package.use.stable.mask @@ -43,7 +43,6 @@ app-admin/syslog-ng grpc # Destabilize dev-db/redis for ~arm due to a lack of security stabilization # almost one year to this this date. bug 915548#c6 dev-libs/hiredis test -dev-python/redis test # Matt Turner (2023-10-30) # libei not stable yet 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 9ea638ed48..e7af54732f 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,19 @@ # Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# PPN-SD (2025-10-04) +# media-libs/libemf is not keyworded here +app-office/dia wmf + +# Michał Górny (2025-10-03) +# Now keyworded on arm64 too. +sci-libs/flexiblas -system-blas +sci-libs/lapack -flexiblas +virtual/blas -flexiblas +virtual/cblas -flexiblas +virtual/lapack -flexiblas +virtual/lapacke -flexiblas + # Sasha Finkelstein (2025-09-17) # Arm64-specific ABI app-emulation/wine-staging -arm64ec 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 acd27fc6d8..c2cdb61387 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,16 @@ # Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# 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. +sci-libs/flexiblas system-blas +sci-libs/lapack flexiblas +virtual/blas flexiblas +virtual/cblas flexiblas +virtual/lapack flexiblas +virtual/lapacke flexiblas + # Sasha Finkelstein (2025-09-17) # Arm64-specific ABI that does not make sense anywhere else app-emulation/wine-proton arm64ec @@ -156,12 +166,6 @@ sys-kernel/installkernel grub # Requires dev-libs/level-zero. dev-lang/ispc gpu -# Nowa Ammerlaan (2023-12-18) -# Experimental and only available on a subset of architectures -sys-kernel/gentoo-kernel generic-uki -sys-kernel/gentoo-kernel-bin generic-uki -sys-kernel/vanilla-kernel generic-uki - # Ionen Wolkens (2023-12-02) # dev-qt/qtwebengine:6 and dev-qt/qtremoteobjects:6 have few keywords. dev-python/pyqt6 pdfium remoteobjects 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 e5bfe2955a..d3ad6fa37e 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 @@ -1,6 +1,10 @@ # Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# Alfred Wingate (2025-09-20) +# Experimental and only available on a subset of architectures +generic-uki + # Sam James (2025-09-19) # libquadmath from GCC is only available on some arches # https://gcc.gnu.org/PR96016 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 dffb6c5b40..05e7d6cd92 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/hppa/package.use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/hppa/package.use.mask @@ -4,6 +4,14 @@ # NOTE: When masking a USE flag due to missing keywords, please file a keyword # request bug for the hppa arch. +# PPN-SD (2025-10-04) +# media-libs/libemf is not keyworded here +app-office/dia wmf + +# Philipp Rösner (2025-09-23) +# media-libs/zxingcpp is not keyworded here +app-text/mupdf barcode + # Andreas Sturmlechner (2025-08-29) # dev-perl/Template-GD is not keyworded here. Bug #661634 dev-perl/Template-Toolkit gd diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/loong/package.use.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/loong/package.use.mask index d0acaf72f4..074bd3ae8c 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/loong/package.use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/loong/package.use.mask @@ -1,6 +1,10 @@ # Copyright 2022-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# PPN-SD (2025-10-04) +# media-libs/libemf is not keyworded here +app-office/dia wmf + # Michał Górny (2025-09-12) # These BLAS/LAPACK providers are keyworded here. sci-libs/flexiblas -openblas 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 4da21f1878..f836ad0bea 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 +# Philipp Rösner (2025-09-23) +# media-libs/zxingcpp is not keyworded here +app-text/mupdf barcode + # Eli Schwartz (2025-09-05) # dev-python/sphinx-tabs is not keyworded. dev-python/anyio doc diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/package.use.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/package.use.mask index bef8f2a8e4..e561c65393 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/package.use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/package.use.mask @@ -1,6 +1,15 @@ # Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# Michał Górny (2025-10-03) +# Now keyworded on ppc* too. +sci-libs/flexiblas -system-blas +sci-libs/lapack -flexiblas +virtual/blas -flexiblas +virtual/cblas -flexiblas +virtual/lapack -flexiblas +virtual/lapacke -flexiblas + # Andreas Sturmlechner (2025-08-16) # dev-games/ogre is not keyworded here >=dev-games/mygui-3.4.1 ogre diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc32/package.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc32/package.mask index 7efe88bfad..39e66010ec 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc32/package.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc32/package.mask @@ -5,10 +5,6 @@ # MySQL is marked -ppc (bug #761715) because of a failing static assert. dev-db/mysql -# Sam James (2024-12-10) -# Crashes in libuv (bug #941738) ->=dev-build/cmake-3.29 - # Sam James (2024-03-23) # llvm-runtimes/openmp does not support ppc32 (bug #907213). llvm-runtimes/openmp diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc64/64le/package.use.force b/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc64/64le/package.use.force index 3a750ec50b..3ea666673b 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc64/64le/package.use.force +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc64/64le/package.use.force @@ -8,6 +8,7 @@ dev-java/openjdk:8 system-bootstrap dev-java/openjdk:11 system-bootstrap dev-java/openjdk:17 system-bootstrap dev-java/openjdk:21 system-bootstrap +dev-java/openjdk:25 system-bootstrap # Michał Górny (2021-02-19) # We have ready-to-use configs here. diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc64/64ul/package.use.force b/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc64/64ul/package.use.force index fbff0a723e..74734d9094 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc64/64ul/package.use.force +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/powerpc/ppc64/64ul/package.use.force @@ -8,3 +8,4 @@ dev-java/openjdk:8 -system-bootstrap dev-java/openjdk:11 -system-bootstrap dev-java/openjdk:17 -system-bootstrap dev-java/openjdk:21 -system-bootstrap +dev-java/openjdk:25 -system-bootstrap diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/ppc/package.use.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/ppc/package.use.mask index de157efc5e..119e23607d 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/ppc/package.use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/ppc/package.use.mask @@ -1,6 +1,10 @@ # Copyright 2023-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# Philipp Rösner (2025-09-23) +# media-libs/zxingcpp is not keyworded here +app-text/mupdf barcode + # Zero_Chaos (2025-09-05) # Needs app-misc/mosquitto, which is not keyworded net-wireless/kismet mqtt 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 1b99d7eab9..9a62f24c5e 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,15 @@ # Copyright 2019-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# Jakov Smolić (2025-10-05) +# These packages are keyworded on riscv +sci-libs/flexiblas -system-blas +sci-libs/lapack -flexiblas +virtual/blas -flexiblas +virtual/cblas -flexiblas +virtual/lapack -flexiblas +virtual/lapacke -flexiblas + # Michał Górny (2025-09-12) # These BLAS/LAPACK providers are keyworded here. sci-libs/flexiblas -openblas 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 197a767a78..3056411a43 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 +# Andreas Sturmlechner (2025-09-23) +# media-libs/zxingcpp is not keyworded here. +app-text/mupdf barcode + # Andreas Sturmlechner (2025-08-29) # dev-perl/Template-GD is not keyworded here. Bug #661634 dev-perl/Template-Toolkit gd diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/sparc/package.use.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/sparc/package.use.mask index 6b345f4999..2f71a58901 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/sparc/package.use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/sparc/package.use.mask @@ -1,6 +1,10 @@ # Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# Philipp Rösner (2025-09-23) +# media-libs/zxingcpp is not keyworded here +app-text/mupdf barcode + # Michał Górny (2025-08-21) # Requires dev-python/qtconsole. dev-python/ipython gui diff --git a/sdk_container/src/third_party/portage-stable/profiles/arch/x86/package.use.mask b/sdk_container/src/third_party/portage-stable/profiles/arch/x86/package.use.mask index 8c1e0b73bf..f4ab93ee3d 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/arch/x86/package.use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/arch/x86/package.use.mask @@ -1,6 +1,20 @@ # Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# Michał Górny (2025-10-03) +# Now keyworded on x86 too. +sci-libs/flexiblas -system-blas +sci-libs/lapack -flexiblas +virtual/blas -flexiblas +virtual/cblas -flexiblas +virtual/lapack -flexiblas +virtual/lapacke -flexiblas + +# Cristian Othón Martínez Vera (2025-10-02) +# Michael Palimaka (2018-10-12) +# Unmask arch-specific USE flag available on x86 + (2025-09-20) # Require dev-libs/libtsm, keyworded here >=media-gfx/fbida-2.14_p20241216 -fbcon @@ -377,10 +391,6 @@ app-admin/conserver -freeipmi # Requires dev-db/mongodb which has dropped x86 support dev-php/pecl-mongodb test -# Michael Palimaka (2018-10-12) -# Unmask arch-specific USE flag available on x86 -net-analyzer/testssl -bundled-openssl - # Jan Ziak <0xe2.0x9a.0x9b@gmail.com> (2018-03-14) # Expose SVGA backend for x86 users app-emulation/fuse -backend-svga 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 3dc31380bf..8f203780d7 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 QEMU_SOFTMMU_TARGETS QEMU_USER_TARGETS RUBY_TARGETS SANE_BACKENDS 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 RUST_SYSROOTS QEMU_SOFTMMU_TARGETS QEMU_USER_TARGETS RUBY_TARGETS SANE_BACKENDS RUST_SYSROOTS 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.force b/sdk_container/src/third_party/portage-stable/profiles/base/package.use.force index 7badc70693..b99cd9c46b 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 @@ -82,6 +82,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.90.0 llvm_slot_20 +dev-lang/rust-bin:1.90.0 llvm_slot_20 dev-lang/rust:1.89.0 llvm_slot_20 dev-lang/rust-bin:1.89.0 llvm_slot_20 dev-lang/rust:1.88.0 llvm_slot_20 @@ -196,6 +198,7 @@ dev-java/openjdk:8 system-bootstrap dev-java/openjdk:11 system-bootstrap dev-java/openjdk:17 system-bootstrap dev-java/openjdk:21 system-bootstrap +dev-java/openjdk:25 system-bootstrap # Michał Górny (2021-11-04) # Enable all LLVM targets unconditionally. Unfortunately, disabling 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 b481ed9f3d..794f537d80 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/base/package.use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/base/package.use.mask @@ -6,6 +6,25 @@ # New entries go on top. +# 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 + +# Volkmar W. Pogatzki (2025-10-03) +# No suitable versions of dev-libs/protobuf available. +=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 +# link to LP64 LAPACK. To support this properly, we either need to +# ensure matching index64 flags along the whole chain of dependencies, +# or support only ILP64 LAPACK implementations that use suffixed +# symbols (so there are no symbol collisions). Given the flag was only +# really added to test if ILP64 packaging works, mask it for the time +# being. +dev-python/numpy index64 + # Nicolas PARLANT (2025-09-20) # Require dev-libs/libtsm, only keyworded on amd64 and x86 >=media-gfx/fbida-2.14_p20241216 fbcon 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 7b79d5ed0a..ee94a171de 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. +# Sam James (2025-10-10) +# Needs not-yet-stable GCC 15. +dev-lang/python tail-call-interp + # Andreas Sturmlechner (2025-05-06) # USE=experimental is not stable by definition media-libs/zxing-cpp experimental diff --git a/sdk_container/src/third_party/portage-stable/profiles/base/use.stable.mask b/sdk_container/src/third_party/portage-stable/profiles/base/use.stable.mask index ac29d2e0b8..671e307c69 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/base/use.stable.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/base/use.stable.mask @@ -4,6 +4,11 @@ # New entries go on top. # Please use the same syntax as in use.mask. + +# Patrick Lauer (2025-10-07) +# Postgres:18 is not stable yet +postgres_targets_postgres18 + # Alfredo Tupone (1025-05-01) # gcc:15 is not stable yet ada_target_gcc_15 @@ -21,8 +26,6 @@ ruby_targets_ruby34 # Python implementations without stable keywords. python_targets_python3_14t python_single_target_python3_14t -python_targets_python3_14 -python_single_target_python3_14 python_targets_python3_13t python_single_target_python3_13t python_targets_pypy3_11 diff --git a/sdk_container/src/third_party/portage-stable/profiles/default/linux/amd64/23.0/desktop/gnome/systemd/package.use.stable.mask b/sdk_container/src/third_party/portage-stable/profiles/default/linux/amd64/23.0/desktop/gnome/systemd/package.use.stable.mask deleted file mode 100644 index 3800841b7b..0000000000 --- a/sdk_container/src/third_party/portage-stable/profiles/default/linux/amd64/23.0/desktop/gnome/systemd/package.use.stable.mask +++ /dev/null @@ -1,8 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -# Nowa Ammerlaan (2023-12-18) -# This is still experimental, prebuilt images may not boot on all systems. -sys-kernel/gentoo-kernel generic-uki -sys-kernel/gentoo-kernel-bin generic-uki -sys-kernel/vanilla-kernel generic-uki diff --git a/sdk_container/src/third_party/portage-stable/profiles/default/linux/amd64/23.0/desktop/systemd/package.use.mask b/sdk_container/src/third_party/portage-stable/profiles/default/linux/amd64/23.0/desktop/gnome/systemd/use.mask similarity index 52% rename from sdk_container/src/third_party/portage-stable/profiles/default/linux/amd64/23.0/desktop/systemd/package.use.mask rename to sdk_container/src/third_party/portage-stable/profiles/default/linux/amd64/23.0/desktop/gnome/systemd/use.mask index a0ca2047e2..b09adf4bab 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/default/linux/amd64/23.0/desktop/systemd/package.use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/default/linux/amd64/23.0/desktop/gnome/systemd/use.mask @@ -1,8 +1,6 @@ # Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -# Nowa Ammerlaan (2024-12-30) +# Alfred Wingate (2024-09-20) # Generic images are built with systemd and only available on arm64 and amd64 -sys-kernel/gentoo-kernel -generic-uki -sys-kernel/gentoo-kernel-bin -generic-uki -sys-kernel/vanilla-kernel -generic-uki +-generic-uki diff --git a/sdk_container/src/third_party/portage-stable/profiles/default/linux/amd64/23.0/desktop/plasma/systemd/package.use.stable.mask b/sdk_container/src/third_party/portage-stable/profiles/default/linux/amd64/23.0/desktop/plasma/systemd/package.use.stable.mask deleted file mode 100644 index 3800841b7b..0000000000 --- a/sdk_container/src/third_party/portage-stable/profiles/default/linux/amd64/23.0/desktop/plasma/systemd/package.use.stable.mask +++ /dev/null @@ -1,8 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -# Nowa Ammerlaan (2023-12-18) -# This is still experimental, prebuilt images may not boot on all systems. -sys-kernel/gentoo-kernel generic-uki -sys-kernel/gentoo-kernel-bin generic-uki -sys-kernel/vanilla-kernel generic-uki diff --git a/sdk_container/src/third_party/portage-stable/profiles/default/linux/amd64/23.0/desktop/gnome/systemd/package.use.mask b/sdk_container/src/third_party/portage-stable/profiles/default/linux/amd64/23.0/desktop/plasma/systemd/use.mask similarity index 52% rename from sdk_container/src/third_party/portage-stable/profiles/default/linux/amd64/23.0/desktop/gnome/systemd/package.use.mask rename to sdk_container/src/third_party/portage-stable/profiles/default/linux/amd64/23.0/desktop/plasma/systemd/use.mask index a0ca2047e2..6f37145506 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/default/linux/amd64/23.0/desktop/gnome/systemd/package.use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/default/linux/amd64/23.0/desktop/plasma/systemd/use.mask @@ -1,8 +1,6 @@ # Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -# Nowa Ammerlaan (2024-12-30) +# Alfred Wingate (2025-09-20) # Generic images are built with systemd and only available on arm64 and amd64 -sys-kernel/gentoo-kernel -generic-uki -sys-kernel/gentoo-kernel-bin -generic-uki -sys-kernel/vanilla-kernel -generic-uki +-generic-uki diff --git a/sdk_container/src/third_party/portage-stable/profiles/default/linux/amd64/23.0/desktop/systemd/package.use.stable.mask b/sdk_container/src/third_party/portage-stable/profiles/default/linux/amd64/23.0/desktop/systemd/package.use.stable.mask deleted file mode 100644 index 3800841b7b..0000000000 --- a/sdk_container/src/third_party/portage-stable/profiles/default/linux/amd64/23.0/desktop/systemd/package.use.stable.mask +++ /dev/null @@ -1,8 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -# Nowa Ammerlaan (2023-12-18) -# This is still experimental, prebuilt images may not boot on all systems. -sys-kernel/gentoo-kernel generic-uki -sys-kernel/gentoo-kernel-bin generic-uki -sys-kernel/vanilla-kernel generic-uki diff --git a/sdk_container/src/third_party/portage-stable/profiles/default/linux/amd64/23.0/no-multilib/systemd/package.use.mask b/sdk_container/src/third_party/portage-stable/profiles/default/linux/amd64/23.0/desktop/systemd/use.mask similarity index 52% rename from sdk_container/src/third_party/portage-stable/profiles/default/linux/amd64/23.0/no-multilib/systemd/package.use.mask rename to sdk_container/src/third_party/portage-stable/profiles/default/linux/amd64/23.0/desktop/systemd/use.mask index a0ca2047e2..6f37145506 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/default/linux/amd64/23.0/no-multilib/systemd/package.use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/default/linux/amd64/23.0/desktop/systemd/use.mask @@ -1,8 +1,6 @@ # Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -# Nowa Ammerlaan (2024-12-30) +# Alfred Wingate (2025-09-20) # Generic images are built with systemd and only available on arm64 and amd64 -sys-kernel/gentoo-kernel -generic-uki -sys-kernel/gentoo-kernel-bin -generic-uki -sys-kernel/vanilla-kernel -generic-uki +-generic-uki diff --git a/sdk_container/src/third_party/portage-stable/profiles/default/linux/amd64/23.0/no-multilib/systemd/package.use.stable.mask b/sdk_container/src/third_party/portage-stable/profiles/default/linux/amd64/23.0/no-multilib/systemd/package.use.stable.mask deleted file mode 100644 index 3800841b7b..0000000000 --- a/sdk_container/src/third_party/portage-stable/profiles/default/linux/amd64/23.0/no-multilib/systemd/package.use.stable.mask +++ /dev/null @@ -1,8 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -# Nowa Ammerlaan (2023-12-18) -# This is still experimental, prebuilt images may not boot on all systems. -sys-kernel/gentoo-kernel generic-uki -sys-kernel/gentoo-kernel-bin generic-uki -sys-kernel/vanilla-kernel generic-uki diff --git a/sdk_container/src/third_party/portage-stable/profiles/default/linux/amd64/23.0/desktop/plasma/systemd/package.use.mask b/sdk_container/src/third_party/portage-stable/profiles/default/linux/amd64/23.0/no-multilib/systemd/use.mask similarity index 52% rename from sdk_container/src/third_party/portage-stable/profiles/default/linux/amd64/23.0/desktop/plasma/systemd/package.use.mask rename to sdk_container/src/third_party/portage-stable/profiles/default/linux/amd64/23.0/no-multilib/systemd/use.mask index a0ca2047e2..6f37145506 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/default/linux/amd64/23.0/desktop/plasma/systemd/package.use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/default/linux/amd64/23.0/no-multilib/systemd/use.mask @@ -1,8 +1,6 @@ # Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -# Nowa Ammerlaan (2024-12-30) +# Alfred Wingate (2025-09-20) # Generic images are built with systemd and only available on arm64 and amd64 -sys-kernel/gentoo-kernel -generic-uki -sys-kernel/gentoo-kernel-bin -generic-uki -sys-kernel/vanilla-kernel -generic-uki +-generic-uki diff --git a/sdk_container/src/third_party/portage-stable/profiles/default/linux/amd64/23.0/systemd/package.use.mask b/sdk_container/src/third_party/portage-stable/profiles/default/linux/amd64/23.0/systemd/package.use.mask deleted file mode 100644 index a0ca2047e2..0000000000 --- a/sdk_container/src/third_party/portage-stable/profiles/default/linux/amd64/23.0/systemd/package.use.mask +++ /dev/null @@ -1,8 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -# Nowa Ammerlaan (2024-12-30) -# Generic images are built with systemd and only available on arm64 and amd64 -sys-kernel/gentoo-kernel -generic-uki -sys-kernel/gentoo-kernel-bin -generic-uki -sys-kernel/vanilla-kernel -generic-uki diff --git a/sdk_container/src/third_party/portage-stable/profiles/default/linux/amd64/23.0/systemd/package.use.stable.mask b/sdk_container/src/third_party/portage-stable/profiles/default/linux/amd64/23.0/systemd/package.use.stable.mask deleted file mode 100644 index 3800841b7b..0000000000 --- a/sdk_container/src/third_party/portage-stable/profiles/default/linux/amd64/23.0/systemd/package.use.stable.mask +++ /dev/null @@ -1,8 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -# Nowa Ammerlaan (2023-12-18) -# This is still experimental, prebuilt images may not boot on all systems. -sys-kernel/gentoo-kernel generic-uki -sys-kernel/gentoo-kernel-bin generic-uki -sys-kernel/vanilla-kernel generic-uki diff --git a/sdk_container/src/third_party/portage-stable/profiles/default/linux/amd64/23.0/systemd/use.mask b/sdk_container/src/third_party/portage-stable/profiles/default/linux/amd64/23.0/systemd/use.mask new file mode 100644 index 0000000000..6f37145506 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/profiles/default/linux/amd64/23.0/systemd/use.mask @@ -0,0 +1,6 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +# Alfred Wingate (2025-09-20) +# Generic images are built with systemd and only available on arm64 and amd64 +-generic-uki diff --git a/sdk_container/src/third_party/portage-stable/profiles/default/linux/arm64/23.0/desktop/gnome/systemd/package.use.mask b/sdk_container/src/third_party/portage-stable/profiles/default/linux/arm64/23.0/desktop/gnome/systemd/package.use.mask deleted file mode 100644 index a0ca2047e2..0000000000 --- a/sdk_container/src/third_party/portage-stable/profiles/default/linux/arm64/23.0/desktop/gnome/systemd/package.use.mask +++ /dev/null @@ -1,8 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -# Nowa Ammerlaan (2024-12-30) -# Generic images are built with systemd and only available on arm64 and amd64 -sys-kernel/gentoo-kernel -generic-uki -sys-kernel/gentoo-kernel-bin -generic-uki -sys-kernel/vanilla-kernel -generic-uki diff --git a/sdk_container/src/third_party/portage-stable/profiles/default/linux/arm64/23.0/desktop/gnome/systemd/package.use.stable.mask b/sdk_container/src/third_party/portage-stable/profiles/default/linux/arm64/23.0/desktop/gnome/systemd/package.use.stable.mask deleted file mode 100644 index 3800841b7b..0000000000 --- a/sdk_container/src/third_party/portage-stable/profiles/default/linux/arm64/23.0/desktop/gnome/systemd/package.use.stable.mask +++ /dev/null @@ -1,8 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -# Nowa Ammerlaan (2023-12-18) -# This is still experimental, prebuilt images may not boot on all systems. -sys-kernel/gentoo-kernel generic-uki -sys-kernel/gentoo-kernel-bin generic-uki -sys-kernel/vanilla-kernel generic-uki diff --git a/sdk_container/src/third_party/portage-stable/profiles/default/linux/arm64/23.0/desktop/gnome/systemd/use.mask b/sdk_container/src/third_party/portage-stable/profiles/default/linux/arm64/23.0/desktop/gnome/systemd/use.mask new file mode 100644 index 0000000000..6f37145506 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/profiles/default/linux/arm64/23.0/desktop/gnome/systemd/use.mask @@ -0,0 +1,6 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +# Alfred Wingate (2025-09-20) +# Generic images are built with systemd and only available on arm64 and amd64 +-generic-uki diff --git a/sdk_container/src/third_party/portage-stable/profiles/default/linux/arm64/23.0/desktop/plasma/systemd/package.use.mask b/sdk_container/src/third_party/portage-stable/profiles/default/linux/arm64/23.0/desktop/plasma/systemd/package.use.mask deleted file mode 100644 index a0ca2047e2..0000000000 --- a/sdk_container/src/third_party/portage-stable/profiles/default/linux/arm64/23.0/desktop/plasma/systemd/package.use.mask +++ /dev/null @@ -1,8 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -# Nowa Ammerlaan (2024-12-30) -# Generic images are built with systemd and only available on arm64 and amd64 -sys-kernel/gentoo-kernel -generic-uki -sys-kernel/gentoo-kernel-bin -generic-uki -sys-kernel/vanilla-kernel -generic-uki diff --git a/sdk_container/src/third_party/portage-stable/profiles/default/linux/arm64/23.0/desktop/plasma/systemd/package.use.stable.mask b/sdk_container/src/third_party/portage-stable/profiles/default/linux/arm64/23.0/desktop/plasma/systemd/package.use.stable.mask deleted file mode 100644 index 3800841b7b..0000000000 --- a/sdk_container/src/third_party/portage-stable/profiles/default/linux/arm64/23.0/desktop/plasma/systemd/package.use.stable.mask +++ /dev/null @@ -1,8 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -# Nowa Ammerlaan (2023-12-18) -# This is still experimental, prebuilt images may not boot on all systems. -sys-kernel/gentoo-kernel generic-uki -sys-kernel/gentoo-kernel-bin generic-uki -sys-kernel/vanilla-kernel generic-uki diff --git a/sdk_container/src/third_party/portage-stable/profiles/default/linux/arm64/23.0/desktop/plasma/systemd/use.mask b/sdk_container/src/third_party/portage-stable/profiles/default/linux/arm64/23.0/desktop/plasma/systemd/use.mask new file mode 100644 index 0000000000..6f37145506 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/profiles/default/linux/arm64/23.0/desktop/plasma/systemd/use.mask @@ -0,0 +1,6 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +# Alfred Wingate (2025-09-20) +# Generic images are built with systemd and only available on arm64 and amd64 +-generic-uki diff --git a/sdk_container/src/third_party/portage-stable/profiles/default/linux/arm64/23.0/desktop/systemd/package.use.mask b/sdk_container/src/third_party/portage-stable/profiles/default/linux/arm64/23.0/desktop/systemd/package.use.mask deleted file mode 100644 index a0ca2047e2..0000000000 --- a/sdk_container/src/third_party/portage-stable/profiles/default/linux/arm64/23.0/desktop/systemd/package.use.mask +++ /dev/null @@ -1,8 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -# Nowa Ammerlaan (2024-12-30) -# Generic images are built with systemd and only available on arm64 and amd64 -sys-kernel/gentoo-kernel -generic-uki -sys-kernel/gentoo-kernel-bin -generic-uki -sys-kernel/vanilla-kernel -generic-uki diff --git a/sdk_container/src/third_party/portage-stable/profiles/default/linux/arm64/23.0/desktop/systemd/package.use.stable.mask b/sdk_container/src/third_party/portage-stable/profiles/default/linux/arm64/23.0/desktop/systemd/package.use.stable.mask deleted file mode 100644 index 3800841b7b..0000000000 --- a/sdk_container/src/third_party/portage-stable/profiles/default/linux/arm64/23.0/desktop/systemd/package.use.stable.mask +++ /dev/null @@ -1,8 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -# Nowa Ammerlaan (2023-12-18) -# This is still experimental, prebuilt images may not boot on all systems. -sys-kernel/gentoo-kernel generic-uki -sys-kernel/gentoo-kernel-bin generic-uki -sys-kernel/vanilla-kernel generic-uki diff --git a/sdk_container/src/third_party/portage-stable/profiles/default/linux/arm64/23.0/desktop/systemd/use.mask b/sdk_container/src/third_party/portage-stable/profiles/default/linux/arm64/23.0/desktop/systemd/use.mask new file mode 100644 index 0000000000..6f37145506 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/profiles/default/linux/arm64/23.0/desktop/systemd/use.mask @@ -0,0 +1,6 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +# Alfred Wingate (2025-09-20) +# Generic images are built with systemd and only available on arm64 and amd64 +-generic-uki diff --git a/sdk_container/src/third_party/portage-stable/profiles/default/linux/arm64/23.0/systemd/package.use.mask b/sdk_container/src/third_party/portage-stable/profiles/default/linux/arm64/23.0/systemd/package.use.mask deleted file mode 100644 index a0ca2047e2..0000000000 --- a/sdk_container/src/third_party/portage-stable/profiles/default/linux/arm64/23.0/systemd/package.use.mask +++ /dev/null @@ -1,8 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -# Nowa Ammerlaan (2024-12-30) -# Generic images are built with systemd and only available on arm64 and amd64 -sys-kernel/gentoo-kernel -generic-uki -sys-kernel/gentoo-kernel-bin -generic-uki -sys-kernel/vanilla-kernel -generic-uki diff --git a/sdk_container/src/third_party/portage-stable/profiles/default/linux/arm64/23.0/systemd/package.use.stable.mask b/sdk_container/src/third_party/portage-stable/profiles/default/linux/arm64/23.0/systemd/package.use.stable.mask deleted file mode 100644 index 3800841b7b..0000000000 --- a/sdk_container/src/third_party/portage-stable/profiles/default/linux/arm64/23.0/systemd/package.use.stable.mask +++ /dev/null @@ -1,8 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -# Nowa Ammerlaan (2023-12-18) -# This is still experimental, prebuilt images may not boot on all systems. -sys-kernel/gentoo-kernel generic-uki -sys-kernel/gentoo-kernel-bin generic-uki -sys-kernel/vanilla-kernel generic-uki diff --git a/sdk_container/src/third_party/portage-stable/profiles/default/linux/arm64/23.0/systemd/use.mask b/sdk_container/src/third_party/portage-stable/profiles/default/linux/arm64/23.0/systemd/use.mask new file mode 100644 index 0000000000..6f37145506 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/profiles/default/linux/arm64/23.0/systemd/use.mask @@ -0,0 +1,6 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +# Alfred Wingate (2025-09-20) +# Generic images are built with systemd and only available on arm64 and amd64 +-generic-uki diff --git a/sdk_container/src/third_party/portage-stable/profiles/desc/postgres_targets.desc b/sdk_container/src/third_party/portage-stable/profiles/desc/postgres_targets.desc index 88c8728d65..ba979b37d2 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/desc/postgres_targets.desc +++ b/sdk_container/src/third_party/portage-stable/profiles/desc/postgres_targets.desc @@ -1,10 +1,8 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # This file contains descriptions of POSTGRES_TARGETS USE_EXPAND flags. -postgres12 - Build against PostgreSQL 12 -postgres13 - Build against PostgreSQL 13 postgres14 - Build against PostgreSQL 14 postgres15 - Build against PostgreSQL 15 postgres16 - Build against PostgreSQL 16 diff --git a/sdk_container/src/third_party/portage-stable/profiles/desc/rust_sysroots.desc b/sdk_container/src/third_party/portage-stable/profiles/desc/rust_sysroots.desc new file mode 100644 index 0000000000..fe9fcdacf5 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/profiles/desc/rust_sysroots.desc @@ -0,0 +1,5 @@ +# Copyright 2025 Gentoo Authors. +# Distributed under the terms of the GNU General Public License v2 + +bpf - Berkeley Packet Filter target +wasm - WebAssembly target 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 2f2743a2dd..5c534d769c 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 @@ -58,6 +58,7 @@ net-libs/webkit-gtk:6 wayland dev-libs/libportal wayland gnome-extra/tecla wayland gnome-base/gnome-shell wayland +gnome-base/nautilus 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 0e745d5299..d9c16f9721 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,14 @@ # Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# PPN-SD (2025-10-08) +# Binary bazel is compiled against glibc +>=app-i18n/mozc-2.31.5851.102 + +# Michał Górny (2025-09-28) +# Required DT_AUXILIARY support in the dynamic linker. +=sci-libs/blas-lapack-aux-wrappers-0 + # PPN-SD (2025-07-28) # Bundled pcap-thread, not ported to musl # bug #713498, https://github.com/DNS-OARC/pcap-thread/issues/128 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 b614000e3c..5fedd43b8d 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 @@ -125,12 +125,6 @@ sys-kernel/installkernel -systemd # Requires dev-libs/level-zero. dev-lang/ispc gpu -# Nowa Ammerlaan (2023-12-18) -# Requires systemd -sys-kernel/gentoo-kernel generic-uki -sys-kernel/gentoo-kernel-bin generic-uki -sys-kernel/vanilla-kernel generic-uki - # Guillaume Seren (2023-11-29) # execinfo.h required for server. games-board/cockatrice server diff --git a/sdk_container/src/third_party/portage-stable/profiles/features/musl/use.mask b/sdk_container/src/third_party/portage-stable/profiles/features/musl/use.mask index 376c8c1f67..60602202f1 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/features/musl/use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/features/musl/use.mask @@ -5,6 +5,10 @@ -elibc_musl elibc_glibc +# Alfred Wingate (2025-09-20) +# Requires systemd +generic-uki + # Sam James (2025-07-12) # dev-debug/dtrace and dev-debug/systemtap don't work on musl dtrace 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 f04044f54a..eb8611c873 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 @@ -1,6 +1,16 @@ # Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# Sam James (2025-10-06) +# Rewritten in Rust. +>=app-misc/task-3 + +# Azamat H. Hackimov (2025-09-22) +# app-i18n/libchewing was ported to Rust. +>=app-i18n/ibus-chewing-2.1.7 +>=app-i18n/libchewing-0.10.3 +dev-build/corrosion + # Patrick McLean (2025-09-16) # New version is rewritten in rust >=app-misc/asciinema-3.0.0 @@ -390,7 +400,7 @@ gnome-extra/gnome-browser-connector gnome-extra/gnome-tweaks gnome-extra/sushi >=media-gfx/libimagequant-4 -media-gfx/gimp +=media-libs/libopenraw-0.3.2 media-plugins/gimp-lqr media-video/rav1e @@ -413,3 +423,5 @@ virtual/rust www-apps/radicale >=x11-themes/adwaita-icon-theme-3.36 x11-themes/adwaita-icon-theme-legacy +>=gui-libs/gtk-4.20.1 +>=dev-cpp/gtkmm-4.20 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 75ab1bc8e5..34f7d1593a 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/features/wd40/package.use.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/features/wd40/package.use.mask @@ -1,6 +1,10 @@ # Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# Alfred Wingate (2025-09-15) # Tests require dev-python/paramiko. dev-python/dulwich test 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 9c9aad12e2..a43f1664a1 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,12 @@ #--- END OF EXAMPLES --- +# 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 +# to migrate out of it. +dev-python/passlib + # Andreas Sturmlechner (2025-08-20) # Qt5 upstream OSS support ended on 2020-12-08. Public availability of # commercial 5.15 LTS releases is delayed by 1 year since then. The final 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 561cf6b398..59e7264074 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/package.mask +++ b/sdk_container/src/third_party/portage-stable/profiles/package.mask @@ -36,17 +36,251 @@ #--- END OF EXAMPLES --- +# Andreas Sturmlechner (2025-10-12) +# Dead upstream, depends on Qt5. +# Bug #949899, #953384. Removal on 2025-11-11. +games-puzzle/colorcode + +# Andreas Sturmlechner (2025-10-12) +# Dead upstream, broken with CMake-4, no one else packaging this anymore. +# Bug #958051. Removal on 2025-11-11. +sci-electronics/Stage + +# Michał Górny (2025-10-12) +# Requires Rust with RUST_SYSROOTS=bpf, which isn't currently supported +# by dev-lang/rust-bin. Also needs net-proxy/mitmproxy-linux updates. +>=dev-util/bpf-linker-0.9.15-r1 + +# Andreas Sturmlechner (2025-10-11) +# Stuck forever in 5.x because in 6.x it was rewritten around proprietary +# aqlprofile. A potential future 7.x package would require packaging from +# scratch with several additional new package dependencies. +# Bugs #904074, #952456. Removal on 2025-11-10. +dev-util/rocprofiler + +# Hans de Graaff (2025-10-10) +# No longer supported upstream since 2025-04-01. Use Rails 7.2 or newer +# instead. Masked for removal on 2025-11-10). +dev-ruby/activerecord:7.0 +dev-ruby/actioncable:7.0 +dev-ruby/actionview:7.0 +dev-ruby/activejob:7.0 +dev-ruby/activesupport:7.0 +dev-ruby/activestorage:7.0 +dev-ruby/actionpack:7.0 +dev-ruby/activemodel:7.0 +dev-ruby/actionmailer:7.0 +dev-ruby/actionmailbox:7.0 +dev-ruby/actiontext:7.0 +dev-ruby/rails:7.0 +dev-ruby/railties:7.0 +dev-ruby/haml:5 + +# Volkmar W. Pogatzki (2025-10-02) +# Nothing depends on it. +# Removal: 2025-11-01. Bug #961199 +net-libs/NativeThread + +# Ionen Wolkens (2025-10-07) +# Masked for testing the new .0 version and leave time for packages +# to catch up on support. Will likely be kept masked until 6.10.1 +# is released unless there is a notable reason to need this earlier. +# +# If wanted, feel welcome to add `dev-qt/*:6/6.10.0` to package.unmask +# and report issues. +# +# 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/pyside-6.10.0* +=dev-qt/qt-docs-6.10.0* +=dev-qt/qt3d-6.10.0* +=dev-qt/qt5compat-6.10.0* +=dev-qt/qtbase-6.10.0* +=dev-qt/qtcharts-6.10.0* +=dev-qt/qtconnectivity-6.10.0* +=dev-qt/qtdeclarative-6.10.0* +=dev-qt/qtgraphs-6.10.0* +=dev-qt/qthttpserver-6.10.0* +=dev-qt/qtimageformats-6.10.0* +=dev-qt/qtlanguageserver-6.10.0* +=dev-qt/qtlocation-6.10.0* +=dev-qt/qtmultimedia-6.10.0* +=dev-qt/qtnetworkauth-6.10.0* +=dev-qt/qtpositioning-6.10.0* +=dev-qt/qtquick3d-6.10.0* +=dev-qt/qtquicktimeline-6.10.0* +=dev-qt/qtremoteobjects-6.10.0* +=dev-qt/qtscxml-6.10.0* +=dev-qt/qtsensors-6.10.0* +=dev-qt/qtserialbus-6.10.0* +=dev-qt/qtserialport-6.10.0* +=dev-qt/qtshadertools-6.10.0* +=dev-qt/qtspeech-6.10.0* +=dev-qt/qtsvg-6.10.0* +=dev-qt/qttools-6.10.0* +=dev-qt/qttranslations-6.10.0* +=dev-qt/qtvirtualkeyboard-6.10.0* +=dev-qt/qtwayland-6.10.0* +=dev-qt/qtwebchannel-6.10.0* +=dev-qt/qtwebengine-6.10.0* +=dev-qt/qtwebsockets-6.10.0* +=dev-qt/qtwebview-6.10.0* + +# Michał Górny (2025-10-06) +# Refcount errors that trigger crashes in dev-python/moto +# and dev-python/ipyparallel tests. +=dev-python/pymongo-4.15.3 +=dev-python/pymongo-4.15.2 + +# Sam James (2025-10-05) +# Fails to build with to-be-stabled CMake 4, Qt 5, no upstream release in +# 5 years (despite much activity), and a bunch of other open bugs in need +# of attention. +# 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 +>=dev-libs/gobject-introspection-1.86.0 +>=dev-libs/gobject-introspection-common-1.86.0 +>=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 - -# Ionen Wolkens (2025-09-18) -# No revdeps left, in-tree version is broken with cmake4, and is a pain -# to maintain due to its overly custom cmake usage. Also outdated given -# the latest version was unusable with its old revdep (been breaking API -# somewhat often). Removal on 2025-10-18. Bug #963014 -dev-cpp/rapidyaml +=sys-kernel/linux-firmware-20251011 # Andreas Sturmlechner (2025-09-16) # Appears dead upstream w/ last release from 2016, no reponse to Qt5 EOL @@ -89,18 +323,6 @@ sys-apps/edid-decode # Removal on 2025-10-12 net-wireless/mdk -# Andreas Sturmlechner (2025-09-09) -# Packaged version is very outdated, was already broken by libxml2-2.12, -# now once more by libxml2-2.14. Bugs #739362, #829005, #923828, #955798. -# Removal on 2025-10-09. -games-rpg/manaplus - -# Andreas Sturmlechner (2025-09-09) -# Broken by dev-libs/libxml2-2.14.2, abandoned by upstream, almost no one -# else is packaging this. Bugs #955705, 955817. Removal on 2025-10-09. -net-news/rsstool -x11-misc/xcave - # Michał Górny (2025-09-06) # Abandoned. Incompatible with py3.14. Last release in 2020. # No revdeps left. @@ -120,22 +342,6 @@ dev-python/locket dev-python/partd dev-python/spur -# Andreas Sturmlechner (2025-09-05) -# Qt5-based library without revdeps. Needs a dedicated maintainer. -# Bug #955270. Removal on 2025-10-05. -sci-libs/silo - -# Andreas Sturmlechner (2025-09-01) -# EAPI-7 cmake.eclass, no revdeps, no one else is packaging this. -# Bugs #951888, #957258. Removal on 2025-10-01. -net-analyzer/nipper -net-libs/libnipper - -# Andreas Sturmlechner (2025-09-01) -# EAPI-7 cmake.eclass, no revdeps, no one else is packaging this. -# Bugs #952062, #957253. Removal on 2025-10-01. -sci-mathematics/diagrtb - # 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 @@ -143,145 +349,14 @@ sci-mathematics/diagrtb # Removal on 2025-10-01. Bug #956814. app-vim/voom -# Andreas Sturmlechner (2025-08-31) -# Qt5-based library without revdeps. Removal on 2025-09-30. -dev-libs/grantlee - -# Michał Górny (2025-08-30) -# Multiple cases of test suite breakage. -# https://github.com/pytest-dev/pytest-rerunfailures/issues/303 -=dev-python/pytest-rerunfailures-16.0 - # Andreas Sturmlechner (2025-08-29) # Obsolete transitional meta package. Bug #961795. Removal on 2025-09-28. media-sound/pulseaudio -# Andreas Sturmlechner (2025-08-29) -# More than a dozen pending bugs, still stuck on python3_11 and EAPI-7. -# If you need this, raise your hand by fixing most of the bugs. -# I guess dev-lang/swi-prolog would be the alternative to switch to. -# Bugs #929405, #957228, #957433. Removal on 2025-09-28. -dev-lang/yap - -# Arthur Zamarin (2025-08-29) -# EAPI=7, maintainer-needed, gentoo last distro to package it. If you -# really need this tool, you can use 'openssl dgst -md4 -provider legacy' -# instead. -# Removal on 2025-09-28. Bugs #962124, #729162. -app-crypt/md4sum - -# Andreas Sturmlechner (2025-08-29) -# A version bump pending since 2020, Qt5-based and stuck on EAPI-7. -# This package needs a maintainer. Step up if you need this, try to make -# sense of upstream's repositories and contact them about the need to port -# to Qt6. Bugs #759976, #910052, #961794. Removal on 2025-09-28. -app-text/djview - -# Mike Pagano (2025-08-28) -# Long unmaintained upstream (20+ years since last release). -# Does not compile. -# Bug #962110 -# Removal on 2025-09-28. -media-gfx/zgv - -# Arthur Zamarin (2025-08-28) -# EAPI=7, fails to compile, unmaintained in gentoo since git transition, -# library with no rev-deps. -# Removal on 2025-09-27. Bugs #962066, #886470, #735672, #630248. -dev-cpp/metslib - -# Arthur Zamarin (2025-08-28) -# EAPI=7, maintainer-needed, Gentoo is last distro to package it, -# unmaintained in Gentoo since 2016. -# Removal on 2025-09-27. Bug #962064. -app-misc/glastree - -# Andreas Sturmlechner (2025-08-27) -# EAPI-7 cmake.eclass straggler sci-libs/ libraries without revdeps. -# If you need them, raise your hand by doing the necessary EAPI-8 porting. -# Removal on 2025-09-26. -sci-libs/clapack -sci-libs/cminpack -sci-libs/coinor-cppad -sci-libs/exodusii -sci-libs/fcl -sci-libs/kim-api -sci-libs/libccd -sci-libs/neartree -sci-libs/nemesis -sci-libs/orocos_kdl - -# Andreas Sturmlechner (2025-08-27) -# EAPI-7 cmake.eclass straggler dev-libs/ libraries without revdeps. -# If you need them, raise your hand by doing the necessary EAPI-8 porting. -# Bugs #957252, #957234. Removal on 2025-09-26. -dev-libs/libdynd -dev-libs/libflatarray -dev-libs/redis-ipc - -# Andreas Sturmlechner (2025-08-27) -# EAPI-7 cmake.eclass straggler libraries without revdeps. -# If you need them, raise your hand by doing the necessary EAPI-8 porting. -# Bugs #957225, #957238. Removal on 2025-09-26. -dev-cpp/cpp-hocon -dev-libs/leatherman - -# Andreas Sturmlechner (2025-08-27) -# EAPI-7 cmake.eclass library without any revdeps. -# Removal on 2025-09-26. -dev-cpp/robin-hood-hashing - -# Andreas Sturmlechner (2025-08-27) -# Only translation commits since 2020, still Qt5-based. Worse, packaged -# version in Gentoo is from 2016, no one bothered to bump it since then. -# Really needs a package maintainer while upstream is looking into Qt6. -# Bug #955260. Removal on 2025-09-26. -media-sound/fmit - -# Andreas Sturmlechner (2025-08-27) -# Qt5 based, still EAPI-7, last commit in upstream repo 7 years ago. -# Alternatives are games-emulation/mednafen or, from guru overlay, -# games-emulation/RetroArch. Bugs #953641, #957257, #879693. -# Removal on 2025-09-26. -games-emulation/yabause - -# Andreas Sturmlechner (2025-08-27) -# Qt5 based, last release >3 years ago and no commits since then. -# Bug #953258. Removal on 2025-09-26 -x11-terms/cool-retro-term - -# Andreas Sturmlechner (2025-08-27) -# Qt5 based and still EAPI-7, last release from 2016, broken Qt6 "support" -# in upstream repo. Needs someone to pick up the pieces of upstream's -# porting effort. Bugs #953885, #955828, #957574. Removal on 2025-09-26. -sci-calculators/speedcrunch - -# Arthur Zamarin (2025-08-22) -# maintainer-needed, depends on Qt5, no upstream activity since 2017. -# Removal on 2025-09-21. Bugs #961889, #960823. -x11-misc/fracplanet - -# James Le Cuirot (2025-08-21) -# The required Direct3D 9 feature is being dropped from Mesa. Use DXVK or -# WineD3D instead. Removal on 2025-09-21. -app-emulation/gallium-nine-standalone - # Michał Górny (2025-08-21) # Version yanked due to "unintended change in behavior". =dev-python/click-8.2.2 -# Hans de Graaff (2025-08-08) -# ruby-openid fails tests and is archived upstream. Last release 6 years -# ago. rack-openid is the only reverse dependency. -# Removal on 2025-09-08 -dev-ruby/rack-openid -dev-ruby/ruby-openid - -# Volkmar W. Pogatzki (2025-08-07) -# Unused java library, pinned to virtual/jdk:1.8. -# Removal on 2025-09-07. -dev-java/jide-oss - # Eli Schwartz (2025-07-18) # End of life software. Relies on a commercial internet service which removed # suppor for the old APIs this package needs. Impossible to use anymore. @@ -338,8 +413,8 @@ virtual/perl-Unicode-Normalize # Sam James (2025-06-08) # Masked for testing (bug #957583). -=sys-devel/gettext-0.25* -=dev-libs/libintl-0.25* +>=sys-devel/gettext-0.24 +>=dev-libs/libintl-0.24 # Michał Górny (2025-06-07) # Destabilized due to unresolved test failures. If you need this @@ -351,6 +426,7 @@ virtual/perl-Unicode-Normalize # > Connecting to github.com|20.26.156.215|:443... connected. # > ERROR: cannot verify github.com's certificate, issued by 'CN=Sectigo ECC Domain Validation Secure Server CA,O=Sectigo Limited,L=Salford,ST=Greater Manchester,C=GB': # > Unable to locally verify the issuer's authority. +# See bug #963400. =app-misc/ca-certificates-20250419.3.112 # Sam James (2025-05-26) @@ -361,10 +437,6 @@ virtual/perl-Unicode-Normalize # Severe memory leak (bug #953874) =app-i18n/ibus-anthy-1.5.17 -# Sam James (2025-05-22) -# Introduces REQUIRED_USE that needs more discussion (bug #956402) -=media-gfx/gimp-3.0.2-r2 - # Alfred Wingate (2025-05-17) # Masked for testing dev-db/mysql:8.4 @@ -563,11 +635,6 @@ app-emulation/virtualbox-kvm (2024-09-22) -# Upstream testing release; fails some tests as well here -# Beware that if you upgrade to it, you may need to reset your keyrings. ->=app-crypt/gnupg-2.5 - # Fabian Groffen (2024-09-02) # exim_tinydb utility crashes due to invalid free() (used in startup script) =mail-mta/exim-4.98 @@ -576,25 +643,6 @@ app-emulation/virtualbox-kvm # The symbol versioning "fix" breaks anything built with 3.0.0. >=dev-libs/libassuan-3.0.1 -# Sam James (2024-03-28) -# Newer 5.4.x releases were signed by a potentially compromised upstream maintainer. -# There is no evidence that these releases contain malicious code, but masked -# out of an abundance of caution. See bug #928134. -sec-keys/openpgp-keys-jiatan -~app-arch/xz-utils-5.4.3 -~app-arch/xz-utils-5.4.4 -~app-arch/xz-utils-5.4.5 -~app-arch/xz-utils-5.4.6 - -# Sam James (2024-03-28) -# Backdoor discovered in release tarballs. DOWNGRADE NOW. -# https://www.openwall.com/lists/oss-security/2024/03/29/4 -# https://bugs.gentoo.org/928134 -~app-arch/xz-utils-5.5.1_alpha -~app-arch/xz-utils-5.5.2_beta -~app-arch/xz-utils-5.6.0 -~app-arch/xz-utils-5.6.1 - # Sam James (2023-12-14) # Gentoo's kernel maintainers have decided to discontinue gentoo-sources and # gentoo-kernel for old kernel LTS branches because of the resources to require diff --git a/sdk_container/src/third_party/portage-stable/profiles/prefix/darwin/macos/10.13/x64/gcc/parent b/sdk_container/src/third_party/portage-stable/profiles/prefix/darwin/macos/10.13/x64/gcc/parent index fceecddb55..5ebbfd24d6 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/prefix/darwin/macos/10.13/x64/gcc/parent +++ b/sdk_container/src/third_party/portage-stable/profiles/prefix/darwin/macos/10.13/x64/gcc/parent @@ -1,2 +1,2 @@ .. -../../../features/fsf-gcc-ld64 +../../../features/fsf-gcc-nold diff --git a/sdk_container/src/third_party/portage-stable/profiles/prefix/darwin/macos/10.14/x64/gcc/parent b/sdk_container/src/third_party/portage-stable/profiles/prefix/darwin/macos/10.14/x64/gcc/parent index fceecddb55..5ebbfd24d6 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/prefix/darwin/macos/10.14/x64/gcc/parent +++ b/sdk_container/src/third_party/portage-stable/profiles/prefix/darwin/macos/10.14/x64/gcc/parent @@ -1,2 +1,2 @@ .. -../../../features/fsf-gcc-ld64 +../../../features/fsf-gcc-nold diff --git a/sdk_container/src/third_party/portage-stable/profiles/prefix/darwin/macos/10.15/x64/gcc/parent b/sdk_container/src/third_party/portage-stable/profiles/prefix/darwin/macos/10.15/x64/gcc/parent index fceecddb55..5ebbfd24d6 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/prefix/darwin/macos/10.15/x64/gcc/parent +++ b/sdk_container/src/third_party/portage-stable/profiles/prefix/darwin/macos/10.15/x64/gcc/parent @@ -1,2 +1,2 @@ .. -../../../features/fsf-gcc-ld64 +../../../features/fsf-gcc-nold diff --git a/sdk_container/src/third_party/portage-stable/profiles/prefix/darwin/macos/11.0/x64/gcc/parent b/sdk_container/src/third_party/portage-stable/profiles/prefix/darwin/macos/11.0/x64/gcc/parent index fceecddb55..5ebbfd24d6 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/prefix/darwin/macos/11.0/x64/gcc/parent +++ b/sdk_container/src/third_party/portage-stable/profiles/prefix/darwin/macos/11.0/x64/gcc/parent @@ -1,2 +1,2 @@ .. -../../../features/fsf-gcc-ld64 +../../../features/fsf-gcc-nold diff --git a/sdk_container/src/third_party/portage-stable/profiles/prefix/darwin/macos/12.0/x64/gcc/parent b/sdk_container/src/third_party/portage-stable/profiles/prefix/darwin/macos/12.0/x64/gcc/parent index fceecddb55..5ebbfd24d6 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/prefix/darwin/macos/12.0/x64/gcc/parent +++ b/sdk_container/src/third_party/portage-stable/profiles/prefix/darwin/macos/12.0/x64/gcc/parent @@ -1,2 +1,2 @@ .. -../../../features/fsf-gcc-ld64 +../../../features/fsf-gcc-nold diff --git a/sdk_container/src/third_party/portage-stable/profiles/prefix/darwin/macos/13.0/x64/gcc/parent b/sdk_container/src/third_party/portage-stable/profiles/prefix/darwin/macos/13.0/x64/gcc/parent index fceecddb55..5ebbfd24d6 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/prefix/darwin/macos/13.0/x64/gcc/parent +++ b/sdk_container/src/third_party/portage-stable/profiles/prefix/darwin/macos/13.0/x64/gcc/parent @@ -1,2 +1,2 @@ .. -../../../features/fsf-gcc-ld64 +../../../features/fsf-gcc-nold diff --git a/sdk_container/src/third_party/portage-stable/profiles/prefix/darwin/macos/14.0/x64/gcc/parent b/sdk_container/src/third_party/portage-stable/profiles/prefix/darwin/macos/14.0/x64/gcc/parent index fceecddb55..5ebbfd24d6 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/prefix/darwin/macos/14.0/x64/gcc/parent +++ b/sdk_container/src/third_party/portage-stable/profiles/prefix/darwin/macos/14.0/x64/gcc/parent @@ -1,2 +1,2 @@ .. -../../../features/fsf-gcc-ld64 +../../../features/fsf-gcc-nold diff --git a/sdk_container/src/third_party/portage-stable/profiles/prefix/darwin/macos/15.0/x64/gcc/parent b/sdk_container/src/third_party/portage-stable/profiles/prefix/darwin/macos/15.0/x64/gcc/parent index fceecddb55..5ebbfd24d6 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/prefix/darwin/macos/15.0/x64/gcc/parent +++ b/sdk_container/src/third_party/portage-stable/profiles/prefix/darwin/macos/15.0/x64/gcc/parent @@ -1,2 +1,2 @@ .. -../../../features/fsf-gcc-ld64 +../../../features/fsf-gcc-nold diff --git a/sdk_container/src/third_party/portage-stable/profiles/prefix/darwin/macos/26.0/x64/gcc/parent b/sdk_container/src/third_party/portage-stable/profiles/prefix/darwin/macos/26.0/x64/gcc/parent index fceecddb55..5ebbfd24d6 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/prefix/darwin/macos/26.0/x64/gcc/parent +++ b/sdk_container/src/third_party/portage-stable/profiles/prefix/darwin/macos/26.0/x64/gcc/parent @@ -1,2 +1,2 @@ .. -../../../features/fsf-gcc-ld64 +../../../features/fsf-gcc-nold diff --git a/sdk_container/src/third_party/portage-stable/profiles/profiles.desc b/sdk_container/src/third_party/portage-stable/profiles/profiles.desc index ca10765d04..ec29730f7f 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/profiles.desc +++ b/sdk_container/src/third_party/portage-stable/profiles/profiles.desc @@ -552,6 +552,7 @@ x64-macos prefix/darwin/macos/12.0/x64/gcc exp x64-macos prefix/darwin/macos/13.0/x64/gcc exp x64-macos prefix/darwin/macos/14.0/x64/gcc exp x64-macos prefix/darwin/macos/15.0/x64/gcc exp +x64-macos prefix/darwin/macos/26.0/x64/gcc exp arm64-macos prefix/darwin/macos/11.0/arm64 exp arm64-macos prefix/darwin/macos/11.0/arm64/gcc exp arm64-macos prefix/darwin/macos/12.0/arm64 exp @@ -559,6 +560,7 @@ arm64-macos prefix/darwin/macos/12.0/arm64/gcc exp arm64-macos prefix/darwin/macos/13.0/arm64/gcc exp arm64-macos prefix/darwin/macos/14.0/arm64/gcc exp arm64-macos prefix/darwin/macos/15.0/arm64/gcc exp +arm64-macos prefix/darwin/macos/26.0/arm64/gcc exp # Solaris Profiles x64-solaris prefix/sunos/solaris/5.11/x64 exp diff --git a/sdk_container/src/third_party/portage-stable/profiles/targets/desktop/gnome/package.use.force b/sdk_container/src/third_party/portage-stable/profiles/targets/desktop/gnome/package.use.force new file mode 100644 index 0000000000..b7a87347d0 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/profiles/targets/desktop/gnome/package.use.force @@ -0,0 +1 @@ +app-misc/localsearch landlock diff --git a/sdk_container/src/third_party/portage-stable/profiles/targets/desktop/plasma/package.use b/sdk_container/src/third_party/portage-stable/profiles/targets/desktop/plasma/package.use index def5d38c4d..fccc61ecf8 100644 --- a/sdk_container/src/third_party/portage-stable/profiles/targets/desktop/plasma/package.use +++ b/sdk_container/src/third_party/portage-stable/profiles/targets/desktop/plasma/package.use @@ -49,8 +49,9 @@ net-firewall/nftables json python xtables sys-libs/zlib minizip # Keep existing defaults after dropping IUSE=phonon from make.defaults -kde-apps/kio-extras phonon -kde-apps/marble phonon +> init.cfg || die + require_valgrind_() + { + skip_ "requires a working valgrind" + } + EOF + + # TODO: in future (>9.4?), we may want to wire up USE=systemd: + # still experimental at the moment, but: + # https://git.savannah.gnu.org/cgit/coreutils.git/commit/?id=85edb4afbd119fb69a0d53e1beb71f46c9525dd0 + local myconf=( + --with-packager="Gentoo" + --with-packager-version="${PVR} (p${PATCH_VER:-0})" + --with-packager-bug-reports="https://bugs.gentoo.org/" + # kill/uptime - procps + # groups/su - shadow + # hostname - net-tools + --enable-install-program="arch,$(usev hostname),$(usev kill)" + --enable-no-install-program="groups,$(usev !hostname),$(usev !kill),su,uptime" + $(usev !caps --disable-libcap) + $(use_enable nls) + $(use_enable acl) + $(use_enable multicall single-binary) + $(use_enable xattr) + $(use_with gmp libgmp) + $(use_with openssl) + ) + + if use gmp ; then + myconf+=( --with-libgmp-prefix="${ESYSROOT}"/usr ) + fi + + if tc-is-cross-compiler && [[ ${CHOST} == *linux* ]] ; then + # bug #311569 + export fu_cv_sys_stat_statfs2_bsize=yes + # bug #416629 + export gl_cv_func_realpath_works=yes + fi + + # bug #409919 + export gl_cv_func_mknod_works=yes + + if use static ; then + append-ldflags -static + # bug #321821 + sed -i '/elf_sys=yes/s:yes:no:' configure || die + fi + + if ! use selinux ; then + # bug #301782 + export ac_cv_{header_selinux_{context,flash,selinux}_h,search_setfilecon}=no + fi + + econf "${myconf[@]}" +} + +src_test() { + # Non-root tests will fail if the full path isn't + # accessible to non-root users + chmod -R go-w "${WORKDIR}" || die + chmod a+rx "${WORKDIR}" || die + + # coreutils tests like to do `mount` and such with temp dirs, + # so make sure: + # - /etc/mtab is writable (bug #265725) + # - /dev/loop* can be mounted (bug #269758) + mkdir -p "${T}"/mount-wrappers || die + mkwrap() { + local w ww + for w in "${@}" ; do + ww="${T}/mount-wrappers/${w}" + cat <<-EOF > "${ww}" + #!${EPREFIX}/bin/sh + exec env SANDBOX_WRITE="\${SANDBOX_WRITE}:/etc/mtab:/dev/loop" $(type -P ${w}) "\$@" + EOF + chmod a+rx "${ww}" || die + done + } + mkwrap mount umount + + addwrite /dev/full + + local -x RUN_{VERY_,}EXPENSIVE_TESTS=$(usex test-full yes no) + #local -x COREUTILS_GROUPS="portage wheel" + local -x PATH="${T}/mount-wrappers:${PATH}" + local -x gl_public_submodule_commit= + + local xfail_tests=() + + if [[ -n ${SANDBOX_ACTIVE} ]]; then + xfail_tests+=( + # bug #629660 + # Commented out again in 9.6 as it XPASSes on linux-6.12.10 + # with sandbox-2.43 on tmpfs. Let's see if it lasts.. + #tests/dd/no-allocate.sh + + # bug #675802 + tests/env/env-S + tests/env/env-S.pl + + # We have a patch which fixes this (bug #259876) + #tests/touch/not-owner + #tests/touch/not-owner.sh + ) + fi + + # This test is flaky (bug #910640). + cat > tests/tty/tty-eof.pl <<-EOF || die + #!/usr/bin/perl + exit 77; + EOF + + # We set DISABLE_HARD_ERRORS because some of the tests hard error-out + # because of sandbox. They're skipped above but DISABLE_HARD_ERRORS is needed + # to downgrade them to FAIL. + emake -k check \ + VERBOSE=yes \ + DISABLE_HARD_ERRORS=yes \ + XFAIL_TESTS="${xfail_tests[*]}" +} + +src_install() { + default + + insinto /etc + newins src/dircolors.hin DIR_COLORS + + if use split-usr ; then + cd "${ED}"/usr/bin || die + dodir /bin + + # Move critical binaries into /bin (required by FHS) + local fhs="cat chgrp chmod chown cp date dd df echo false ln ls + mkdir mknod mv pwd rm rmdir stty sync true uname" + mv ${fhs} ../../bin/ || die "Could not move FHS bins!" + + if use hostname ; then + mv hostname ../../bin/ || die + fi + + if use kill ; then + mv kill ../../bin/ || die + fi + + # Move critical binaries into /bin (common scripts) + # (Why are these required for booting?) + local com="basename chroot cut dir dirname du env expr head mkfifo + mktemp readlink seq sleep sort tail touch tr tty vdir wc yes" + mv ${com} ../../bin/ || die "Could not move common bins!" + + # Create a symlink for uname in /usr/bin/ since autotools require it. + # (Other than uname, we need to figure out why we are + # creating symlinks for these in /usr/bin instead of leaving + # the files there in the first place...) + local x + for x in ${com} uname ; do + dosym ../../bin/${x} /usr/bin/${x} + done + fi +} + +pkg_postinst() { + ewarn "Make sure you run 'hash -r' in your active shells." + ewarn "You should also re-source your shell settings for LS_COLORS" + ewarn " changes, such as: source /etc/profile" +} diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/coreutils/coreutils-9.7_p20250918.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/coreutils/coreutils-9.8.ebuild similarity index 99% rename from sdk_container/src/third_party/portage-stable/sys-apps/coreutils/coreutils-9.7_p20250918.ebuild rename to sdk_container/src/third_party/portage-stable/sys-apps/coreutils/coreutils-9.8.ebuild index 60795e4d14..5bd5cd7fe6 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/coreutils/coreutils-9.7_p20250918.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-apps/coreutils/coreutils-9.8.ebuild @@ -116,6 +116,7 @@ src_prepare() { # TODO: past 2025, we may need to add our own hack for bug #907474. local PATCHES=( # Upstream patches + "${FILESDIR}"/${PN}-9.8-no-pclmul.patch ) if ! use vanilla && [[ -d "${WORKDIR}"/${MY_PATCH} ]] ; then diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/coreutils/files/coreutils-9.8-basenc-base58.patch b/sdk_container/src/third_party/portage-stable/sys-apps/coreutils/files/coreutils-9.8-basenc-base58.patch new file mode 100644 index 0000000000..d8ccb11a81 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-apps/coreutils/files/coreutils-9.8-basenc-base58.patch @@ -0,0 +1,137 @@ +https://cgit.git.savannah.gnu.org/cgit/coreutils.git/commit/?id=2ef53e5b0477f9d9361a11a471d704a96b1c99b8 +(Dropped the test to avoid autoreconf.) + +From 2ef53e5b0477f9d9361a11a471d704a96b1c99b8 Mon Sep 17 00:00:00 2001 +From: Pádraig Brady +Date: Tue, 23 Sep 2025 15:38:51 +0100 +Subject: basenc: --base58: fix buffer overflow with input > 15MB + +base58_length() operated naively on an int +which resulted in an overflow to a negative number +for any input > 2^31-1/138, i.e. 15,561,475 bytes. + +* src/basenc.c (base_length): Change input and output +parameter types from int to idx_t since this needs to +cater for the full input size in the base58 case. +(base58_length): Likewise. Also reorder the calculation +to be less exact, but doing the division first +to minimize the chance of overflow (which now on 64 bit +would only happen for inputs > around 6 Exa bytes). +* tests/basenc/basenc-large.sh: Add a new test, +that triggers with valgrind or ASAN. +* tests/local.mk: Reference the new test. +* NEWS: Mention the bug fix. +--- + src/basenc.c | 43 +++++++++++++++++++++++++------------------ + 4 files changed, 58 insertions(+), 18 deletions(-) + create mode 100755 tests/basenc/basenc-large.sh + +diff --git a/src/basenc.c b/src/basenc.c +index 1fb7a16f5..ae55f8e32 100644 +--- a/src/basenc.c ++++ b/src/basenc.c +@@ -253,7 +253,7 @@ static_assert (DEC_BLOCKSIZE % 12 == 0); /* Complete encoded blocks are used. */ + static_assert (DEC_BLOCKSIZE % 40 == 0); /* complete encoded blocks for base32*/ + static_assert (DEC_BLOCKSIZE % 12 == 0); /* complete encoded blocks for base64*/ + +-static int (*base_length) (int i); ++static idx_t (*base_length) (idx_t len); + static int (*required_padding) (int i); + static bool (*isubase) (unsigned char ch); + static void (*base_encode) (char const *restrict in, idx_t inlen, +@@ -427,8 +427,8 @@ decode_ctx_finalize (struct base_decode_context *ctx, + + #if BASE_TYPE == 42 + +-static int +-base64_length_wrapper (int len) ++static idx_t ++base64_length_wrapper (idx_t len) + { + return BASE64_LENGTH (len); + } +@@ -526,8 +526,8 @@ base64url_decode_ctx_wrapper (struct base_decode_context *ctx, + + + +-static int +-base32_length_wrapper (int len) ++static idx_t ++base32_length_wrapper (idx_t len) + { + return BASE32_LENGTH (len); + } +@@ -740,8 +740,8 @@ isubase16 (unsigned char ch) + return ch < sizeof base16_to_int && 0 <= base16_to_int[ch]; + } + +-static int +-base16_length (int len) ++static idx_t ++base16_length (idx_t len) + { + return len * 2; + } +@@ -820,13 +820,14 @@ base16_decode_ctx (struct base_decode_context *ctx, + + + +- +-static int +-z85_length (int len) ++ATTRIBUTE_PURE ++static idx_t ++z85_length (idx_t len) + { + /* Z85 does not allow padding, so no need to round to highest integer. */ +- int outlen = (len * 5) / 4; +- return outlen; ++ idx_t z85_len = (len * 5) / 4; ++ affirm (0 <= z85_len); ++ return z85_len; + } + + static bool +@@ -1015,8 +1016,8 @@ isubase2 (unsigned char ch) + return ch == '0' || ch == '1'; + } + +-static int +-base2_length (int len) ++static idx_t ++base2_length (idx_t len) + { + return len * 8; + } +@@ -1206,12 +1207,17 @@ isubase58 (unsigned char ch) + } + + +-static int +-base58_length (int len) ++ATTRIBUTE_PURE ++static idx_t ++base58_length (idx_t len) + { + /* Base58 output length is approximately log(256)/log(58), +- so ensure we've enough place for that + NUL. */ +- return (len * 138) / 100 + 1; ++ which is approximately len * 138 / 100, ++ which is at most ((len + 100 - 1) / 100) * 138 ++ +1 to ensure we've enough place for NUL */ ++ idx_t base58_len = ((len + 99) / 100) * 138 + 1; ++ affirm (0 < base58_len); ++ return base58_len; + } + + +@@ -1268,6 +1274,7 @@ base58_encode (char const* data, size_t data_len, + if (data_len - zeros) + { + mpz_import (num, data_len - zeros, 1, 1, 0, 0, data + zeros); ++ affirm (mpz_sizeinbase (num, 58) + 1 <= *outlen); + for (p = mpz_get_str (p, 58, num); *p; p++) + *p = gmp_to_base58[to_uchar (*p)]; + } +-- +cgit v1.2.3 diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/coreutils/files/coreutils-9.8-no-pclmul.patch b/sdk_container/src/third_party/portage-stable/sys-apps/coreutils/files/coreutils-9.8-no-pclmul.patch new file mode 100644 index 0000000000..4242ae752a --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-apps/coreutils/files/coreutils-9.8-no-pclmul.patch @@ -0,0 +1,18 @@ +https://bugs.gentoo.org/959467 +https://debbugs.gnu.org/79491 + +GL_CRC_X86_64_PCLMUL in effect overrides the earlier configure check which +sets USE_PCLMUL_CRC32, so -mno-pclmul leads to a build failure. Just use +the coreutils config check result for now. + +Thanks to Ionen Wolkens for the investigation and +workaround. +--- a/src/cksum.c ++++ b/src/cksum.c +@@ -145,5 +145,5 @@ + pclmul_supported (void) + { +-# if USE_PCLMUL_CRC32 || GL_CRC_X86_64_PCLMUL ++# if USE_PCLMUL_CRC32 + bool pclmul_enabled = (0 < __builtin_cpu_supports ("pclmul") + && 0 < __builtin_cpu_supports ("avx")); diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/coreutils/files/coreutils-9.8-tail-offset.patch b/sdk_container/src/third_party/portage-stable/sys-apps/coreutils/files/coreutils-9.8-tail-offset.patch new file mode 100644 index 0000000000..44b7334b54 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-apps/coreutils/files/coreutils-9.8-tail-offset.patch @@ -0,0 +1,35 @@ +https://cgit.git.savannah.gnu.org/cgit/coreutils.git/commit/?id=914972e80dbf82aac9ffe3ff1f67f1028e1a788b +(Dropped the test to avoid autoreconf.) + +From 914972e80dbf82aac9ffe3ff1f67f1028e1a788b Mon Sep 17 00:00:00 2001 +From: Hannes Braun +Date: Wed, 24 Sep 2025 21:20:49 +0200 +Subject: tail: fix tailing larger number of lines in regular files + +* src/tail.c (file_lines): Seek to the previous block instead of the +beginning (or a little before) of the block that was just scanned. +Otherwise, the same block is read and scanned (at least partially) +again. This bug was introduced by commit v9.7-219-g976f8abc1. +* tests/tail/basic-seek.sh: Add a new test. +* tests/local.mk: Reference the new test. +* NEWS: mention the bug fix. +--- + src/tail.c | 2 +- + tests/local.mk | 1 + + tests/tail/basic-seek.sh | 28 ++++++++++++++++++++++++++++ + 4 files changed, 34 insertions(+), 1 deletion(-) + create mode 100755 tests/tail/basic-seek.sh + +diff --git a/src/tail.c b/src/tail.c +index b8bef1d91..c7779c77d 100644 +--- a/src/tail.c ++++ b/src/tail.c +@@ -596,7 +596,7 @@ file_lines (char const *prettyname, int fd, struct stat const *sb, + goto free_buffer; + } + +- pos = xlseek (fd, -bufsize, SEEK_CUR, prettyname); ++ pos = xlseek (fd, -(bufsize + bytes_read), SEEK_CUR, prettyname); + bytes_read = read (fd, buffer, bufsize); + if (bytes_read < 0) + { diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/dbus/files/dbus-1.15.8-enable-elogind.patch b/sdk_container/src/third_party/portage-stable/sys-apps/dbus/files/dbus-1.15.8-enable-elogind.patch deleted file mode 100644 index 543eac5b30..0000000000 --- a/sdk_container/src/third_party/portage-stable/sys-apps/dbus/files/dbus-1.15.8-enable-elogind.patch +++ /dev/null @@ -1,65 +0,0 @@ -https://gitlab.freedesktop.org/dbus/dbus/-/merge_requests/53 -https://bugs.gentoo.org/599494 - -Especially see https://bugs.gentoo.org/599494#c21 - this functionality isn't -particularly required. The only known consumer at the moment is hplip. ---- a/dbus/dbus-userdb-util.c -+++ b/dbus/dbus-userdb-util.c -@@ -41,6 +41,9 @@ - #ifdef HAVE_SYSTEMD - #include - #endif -+#ifdef HAVE_ELOGIND -+#include -+#endif - - /** - * @addtogroup DBusInternalsUtils -@@ -67,7 +70,7 @@ dbus_bool_t - _dbus_is_console_user (dbus_uid_t uid, - DBusError *error) - { --#ifdef HAVE_SYSTEMD -+#if defined(HAVE_SYSTEMD) || defined(HAVE_ELOGIND) - /* check if we have logind */ - if (access ("/run/systemd/seats/", F_OK) >= 0) - { ---- a/dbus/meson.build -+++ b/dbus/meson.build -@@ -23,6 +23,7 @@ dbus_dependencies = [ - threads, - network_libs, - systemd, -+ elogind, - valgrind.partial_dependency(compile_args: true), - ] - ---- a/meson.build -+++ b/meson.build -@@ -478,6 +478,10 @@ if use_launchd - endif - endif - -+elogind = dependency('libelogind', version: '>=209', required: get_option('elogind')) -+use_elogind = elogind.found() -+config.set('HAVE_ELOGIND', use_elogind) -+ - systemd = dependency('libsystemd', version: '>=209', required: get_option('systemd')) - use_systemd = systemd.found() - config.set('HAVE_SYSTEMD', use_systemd) ---- a/meson_options.txt -+++ b/meson_options.txt -@@ -244,6 +244,13 @@ option( - description: 'Systemd at_console support' - ) - -+option( -+ 'elogind', -+ type: 'feature', -+ value: 'auto', -+ description: 'elogind at_console support' -+) -+ - option( - 'test_socket_dir', - type: 'string', diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/file/file-5.46-r3.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/file/file-5.46-r3.ebuild index d2be80d87a..32b2f77f58 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/file/file-5.46-r3.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-apps/file/file-5.46-r3.ebuild @@ -18,7 +18,7 @@ else SRC_URI="https://astron.com/pub/file/${P}.tar.gz" SRC_URI+=" verify-sig? ( https://astron.com/pub/file/${P}.tar.gz.asc )" - 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" BDEPEND="verify-sig? ( sec-keys/openpgp-keys-file )" fi diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/gawk/gawk-5.3.2.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/gawk/gawk-5.3.2.ebuild index 0e093d24a5..0b053c5b73 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/gawk/gawk-5.3.2.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-apps/gawk/gawk-5.3.2.ebuild @@ -32,7 +32,7 @@ else 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+" +LICENSE="GPL-3+ pma? ( AGPL-3+ )" SLOT="0" # The gawk docs claim MPFR support is "on parole" and may be removed, # https://www.gnu.org/software/gawk/manual/html_node/MPFR-On-Parole.html diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/gentoo-functions/Manifest b/sdk_container/src/third_party/portage-stable/sys-apps/gentoo-functions/Manifest index 55fca55965..0e736900d5 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/gentoo-functions/Manifest +++ b/sdk_container/src/third_party/portage-stable/sys-apps/gentoo-functions/Manifest @@ -1,3 +1,2 @@ DIST gentoo-functions-0.19.tar.bz2 12079 BLAKE2B be0a3a54d4dee1755866047b670a69cd6fec368239123c3f0c08180b79a33c20147bca0e35e568faef6877513551e731bdf0c181aeb0460f6574d2d708219373 SHA512 2674d3fe5724cc6d685ae58bf0ee33f4a1bdba2c5e5809cfb193fd0a710d4678c2d9392c2c62d2321cf455f524950266dc1629ab684fe46632d179e539d5a39e -DIST gentoo-functions-1.7.3.tar.bz2 29623 BLAKE2B e37fcaf7ca70eda4507f8b539ad37c989a3a6d28d2a063aa1650f60f8cbb28b00103ffea0f1221fd4e8379d4066bca1fd5aeee30073eed6274cfaaaa277bee84 SHA512 4c5d5c9e8b93e366c5483e8777dfdc15afc6764110cc69f751bb5cc1e335dd70e0952017ea55f1be70fcd5120f07708b1601638c97132f53acde8b3f5a4afe34 DIST gentoo-functions-1.7.4.tar.bz2 29565 BLAKE2B dd05aaee9c078ef6b623950c120b7e9aa7056a1e02248a098a9b33e69109fa5a642221a2209a55570590e8101f4ec82e727602dce543977670dd7d49f789429e SHA512 184809eb684465639bc2d404c421e33153ffcac3fe985123e5f5815863c427c9e4f6155713a2c0b69006a4afbefc114211f4a4216f49e726a198938d43fcd395 diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/gentoo-functions/gentoo-functions-1.7.3.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/gentoo-functions/gentoo-functions-1.7.3.ebuild deleted file mode 100644 index 320c82e6df..0000000000 --- a/sdk_container/src/third_party/portage-stable/sys-apps/gentoo-functions/gentoo-functions-1.7.3.ebuild +++ /dev/null @@ -1,49 +0,0 @@ -# Copyright 2014-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit meson - -DESCRIPTION="Base functions required by all Gentoo systems" -HOMEPAGE="https://gitweb.gentoo.org/proj/gentoo-functions.git" - -if [[ ${PV} == 9999* ]]; then - inherit git-r3 - EGIT_REPO_URI="https://anongit.gentoo.org/git/proj/gentoo-functions.git" -else - SRC_URI="https://gitweb.gentoo.org/proj/gentoo-functions.git/snapshot/${P}.tar.bz2" - 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-2" -SLOT="0" -IUSE="test" -RESTRICT="!test? ( test )" - -src_configure() { - local emesonargs=( - # Deliberately avoid /usr as consumers assume we're at /lib/gentoo. - --prefix="${EPREFIX:-/}" - --mandir="${EPREFIX}/usr/share/man" - $(meson_use test tests) - ) - - meson_src_configure -} - -src_install() { - meson_src_install - - if [[ ${EPREFIX} ]]; then - while read -r; do - if [[ ${REPLY} == $'\t'genfun_prefix= ]]; then - printf '\tgenfun_prefix=%q\n' "${EPREFIX}" - else - printf '%s\n' "${REPLY}" - fi || ! break - done < "${ED}/lib/gentoo/functions.sh" > "${T}/functions.sh" \ - && mv -- "${T}/functions.sh" "${ED}/lib/gentoo/functions.sh" \ - || die - fi -} diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/hwdata/Manifest b/sdk_container/src/third_party/portage-stable/sys-apps/hwdata/Manifest index 9da4c37cf9..884105a216 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/hwdata/Manifest +++ b/sdk_container/src/third_party/portage-stable/sys-apps/hwdata/Manifest @@ -1,3 +1,4 @@ DIST hwdata-0.391.tar.gz 2479872 BLAKE2B 478d60635f338770751bf4b437f33ba0666b4c3d70d9c726c8e124c44e6d6f5a96ba96b63ae64a151732ca7607676aaccefc7a61c89cee584696b699b3234019 SHA512 9b831a7546ac6ca457b92bf438ba84d6487980b15a304af78ba8738cc456e02a62b1d19a849573ed596c85a3fbbc88ca305e5e4c665f27e8d75454be41d708f0 DIST hwdata-0.398.tar.gz 2531820 BLAKE2B 415cf2e0e1735c4b0a2186421e85186f20ae3b165a8224923ef24471b98f3f923484072702c2f0c21dffe98ad2144459e14f2829b77c110e2397141da2bde676 SHA512 ede23b1acf25444ed859d296ebd29cf630da3b07203ec49e536fda0726c3af04afcdcd4a45b142931036e9650780c29011e0c7e2f0fb23a8fdb9b48bcd2e0caa DIST hwdata-0.399.tar.gz 2531799 BLAKE2B d4acfe75acf4e4a2feb43f9ebdbb013be8c85f70f292a54f0e058801266b53c03d82e4efa45dc25dcfcdfac8416b37eebb3c50448eb3291837762db3d1526137 SHA512 2a4ea986e5eae4c909ec875df2eecee120fb003fdfff0061649e6c88bb79d42cd9555f551933d3eab41375d5dd9937a1c0d6276b89b10ede7598cb133633ca2e +DIST hwdata-0.400.tar.gz 2531836 BLAKE2B 40adc56864974dc68fd407980b3a071d2715d3aac80ec8812ad955bbd5462cef92a7dc4bf156c4e8da0395b53da29430db815f522cc8fcef1098cd33540828e5 SHA512 4aabdcb05b7c412f9c307f24f58fd1710cac6dc62f763b8c7eb490a2b2b02d6060cafba2de157ba43326b7259fa15653557525fdefb104db075e78980ce1833f diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/hwdata/hwdata-0.400.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/hwdata/hwdata-0.400.ebuild new file mode 100644 index 0000000000..145dcd2deb --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-apps/hwdata/hwdata-0.400.ebuild @@ -0,0 +1,28 @@ +# Copyright 2022-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit edo + +DESCRIPTION="Hardware identification and configuration data" +HOMEPAGE="https://github.com/vcrhonek/hwdata" +SRC_URI="https://github.com/vcrhonek/hwdata/archive/refs/tags/v${PV}.tar.gz -> ${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" + +RESTRICT="test" + +src_configure() { + # configure is not compatible with econf + local conf=( + ./configure + --prefix="${EPREFIX}/usr" + --libdir="${EPREFIX}/lib" + --datadir="${EPREFIX}/usr/share" + ) + + edo "${conf[@]}" +} diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/iproute2/Manifest b/sdk_container/src/third_party/portage-stable/sys-apps/iproute2/Manifest index c22d935423..c9032e6d40 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/iproute2/Manifest +++ b/sdk_container/src/third_party/portage-stable/sys-apps/iproute2/Manifest @@ -1,6 +1,3 @@ -DIST iproute2-6.11.0.tar.xz 923736 BLAKE2B 1a360d7cb9a70f5cde184abe934f2d08e9c0d2196c4ec10015636af3984abe2738d9dd8d6c7a69569fc7449e9933829f4eccd593ab8c041ce7b6385adaed63cc SHA512 06bedd7ae573fe5cf9c72af698987ba03e53dc6fce5f41813bf5bb155b683490e5c75cc835ce5ba4509e491eb6138e96da162204c28ea1b3d80887107997a3b3 -DIST iproute2-6.12.0.tar.xz 925392 BLAKE2B 95aee769662e21c8c6223d09ee0ec365fcdeb7a10d01e89e33aa3039a6dfac11401cbdca4bf436544fc05ed709ad90871ac91eaf17dc553d7ca157b98577a7b7 SHA512 dbd6afb8162a6086e4be9045b8dc53aa563bd4b7abaf43ee13cd7d493730ff0b90e6985f68c6f42d64f4af6a692d0589e0cefd2f24045ec1c10418cfb73940b2 -DIST iproute2-6.13.0.tar.xz 927416 BLAKE2B bbebc44d1a7e35c410869a2a5884df09698ea3950acd126e5736a938718d40e57d539ff88ecd7827cbdf2f9481c3d728fff3948a61c2ba3e1483c5b7a7616577 SHA512 2e392a8ddc3d7662c3a72bba1c845587df85b7afc6efabf7df0ec2830bb1d4b16cac5bfb7a43dc3ac73adf0ea3fe3670824674d4f32209c6d1aa638a7cb7cd6c -DIST iproute2-6.14.0.tar.xz 929092 BLAKE2B 18bd180c608b657694f4713bf915d45006c97a7206a3260ac52149d4c976422e1949ada425d4989c5a7e327e3d8eb45ea990de25f3645bb1308ac2531bf834d2 SHA512 e79049bdca0e0381f0a93a40e4d597ce59fb509dabc6e8b04a510ff9953f091c67577d6faa62967bd197bf62ab6e56d928558270a1390621431acb237b77fa46 DIST iproute2-6.15.0.tar.xz 930908 BLAKE2B 50247f293e194601bd138418e55e2dc63421d2a5da863973e9ff78f2c76ba051350523559f2b7b7983af05a827f292135353adbf6c857ea32b7071f69940f73f SHA512 1a438941cd939e1c8e32cfe8c40e6fd826c89185f1bb0c623eaad7380a66afd9fa9e0d7cdc5e5b193d2761b7dbdc78fd0811537eecc500be633730c32ff55ad4 DIST iproute2-6.16.0.tar.xz 931124 BLAKE2B d1c66f4d63edd6fa2701c92dbc47f8c4388d6a660d541d528e3463e8e261fda64df4a7f8930f510718c71ee82438b5c4859f072eb08c8ff1e4d1d65223108005 SHA512 88930ea1a3a901594a69dc04e533bfd1de0f5b79f176dedb45f11f01035bd680edccc8e04e56d0922ee430580581c646473a3baa941254739878f7ab946f17df +DIST iproute2-6.17.0.tar.xz 940952 BLAKE2B 49b88fd1eaea34376b086be02e72505ca62f52f3c53f3ee29cd273532521fabe8d38062277852dcc69f78b86b9460b213bbeedc9c51ce20d3bb1fd35d86b6fc8 SHA512 3d83d49233c1d984f15d285a46e2ec0eeb820c7cb84cfc84866921f37e8a57d31bc3953be07e8c79ed6079f326a25c3a85f591b0d67f9f689c0c70ccdb0fef77 diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/iproute2/files/iproute2-6.10.0-musl-1.patch b/sdk_container/src/third_party/portage-stable/sys-apps/iproute2/files/iproute2-6.10.0-musl-1.patch deleted file mode 100644 index c1b7788deb..0000000000 --- a/sdk_container/src/third_party/portage-stable/sys-apps/iproute2/files/iproute2-6.10.0-musl-1.patch +++ /dev/null @@ -1,41 +0,0 @@ -From fbbe03cbc4fa8c801967aac2e2c444e93b2ca96a Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Andreas=20K=2E=20H=C3=BCttel?= -Date: Sun, 4 Aug 2024 16:22:07 +0200 -Subject: [PATCH 1/2] libnetlink.h: Include explicitly for musl -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -The code added in "f_flower: implement pfcp opts" uses h2be64, -defined in endian.h. While this is pulled in around some corners -for glibc (see below), that's not the case for musl and an -explicit include is required there. - -. /usr/include/libmnl/libmnl.h -.. /usr/include/sys/socket.h -... /usr/include/bits/socket.h -.... /usr/include/sys/types.h -..... /usr/include/endian.h - -Fixes: 976dca372 ("f_flower: implement pfcp opts") -Bug: https://bugs.gentoo.org/936234 -Signed-off-by: Andreas K. Hüttel ---- - include/libnetlink.h | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/include/libnetlink.h b/include/libnetlink.h -index 30f0c2d2..7074e913 100644 ---- a/include/libnetlink.h -+++ b/include/libnetlink.h -@@ -4,6 +4,7 @@ - - #include - #include -+#include - #include - #include - #include --- -2.44.2 - diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/iproute2/files/iproute2-6.11.0-musl-fixes.patch b/sdk_container/src/third_party/portage-stable/sys-apps/iproute2/files/iproute2-6.11.0-musl-fixes.patch deleted file mode 100644 index cc1370a3a6..0000000000 --- a/sdk_container/src/third_party/portage-stable/sys-apps/iproute2/files/iproute2-6.11.0-musl-fixes.patch +++ /dev/null @@ -1,35 +0,0 @@ -From https://bugs.gentoo.org/939811 -From: Holger Hoffstätte - ---- a/bridge/mst.c -+++ b/bridge/mst.c -@@ -4,8 +4,6 @@ - */ - - #include --#include --#include - - #include "libnetlink.h" - #include "json_print.h" -@@ -13,6 +11,9 @@ - - #include "br_common.h" - -+#include -+#include -+ - #define MST_ID_LEN 9 - - #define __stringify_1(x...) #x ---- a/include/json_print.h -+++ b/include/json_print.h -@@ -11,6 +11,8 @@ - #include "json_writer.h" - #include "color.h" - -+struct timeval; -+ - #define _IS_JSON_CONTEXT(type) (is_json_context() && (type & PRINT_JSON || type & PRINT_ANY)) - #define _IS_FP_CONTEXT(type) (!is_json_context() && (type & PRINT_FP || type & PRINT_ANY)) - diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/iproute2/files/iproute2-6.12.0-musl-3.patch b/sdk_container/src/third_party/portage-stable/sys-apps/iproute2/files/iproute2-6.12.0-musl-3.patch deleted file mode 100644 index 37eeb84aa3..0000000000 --- a/sdk_container/src/third_party/portage-stable/sys-apps/iproute2/files/iproute2-6.12.0-musl-3.patch +++ /dev/null @@ -1,37 +0,0 @@ -https://github.com/iproute2/iproute2/pull/71 - -From cdc6a1759ea1858d65fdbbfe825999b3d4ed377e Mon Sep 17 00:00:00 2001 -From: David Seifert -Date: Sun, 8 Dec 2024 13:19:14 +0100 -Subject: [PATCH] musl: include for PATH_MAX macro - -https://bugs.gentoo.org/946088 ---- - ip/iplink.c | 1 + - ip/ipnetns.c | 1 + - 2 files changed, 2 insertions(+) - -diff --git a/ip/iplink.c b/ip/iplink.c -index aa2332fcc..27863b981 100644 ---- a/ip/iplink.c -+++ b/ip/iplink.c -@@ -21,6 +21,7 @@ - #include - #include - #include -+#include - #include - - #include "rt_names.h" -diff --git a/ip/ipnetns.c b/ip/ipnetns.c -index 5c9434009..de16b2790 100644 ---- a/ip/ipnetns.c -+++ b/ip/ipnetns.c -@@ -15,6 +15,7 @@ - #include - #include - #include -+#include - #include - - #include diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/iproute2/iproute2-6.11.0-r2.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/iproute2/iproute2-6.11.0-r2.ebuild deleted file mode 100644 index 33103fa221..0000000000 --- a/sdk_container/src/third_party/portage-stable/sys-apps/iproute2/iproute2-6.11.0-r2.ebuild +++ /dev/null @@ -1,215 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit edo toolchain-funcs flag-o-matic - -if [[ ${PV} == 9999 ]] ; then - EGIT_REPO_URI="https://git.kernel.org/pub/scm/linux/kernel/git/shemminger/iproute2.git" - 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" -fi - -DESCRIPTION="kernel routing and traffic control utilities" -HOMEPAGE="https://wiki.linuxfoundation.org/networking/iproute2" - -LICENSE="GPL-2" -SLOT="0" -IUSE="atm berkdb bpf caps elf +iptables minimal nfs selinux" -# Needs root -RESTRICT="test" - -# We could make libmnl optional, but it's tiny, so eh -RDEPEND=" - !minimal? ( net-libs/libmnl:= ) - atm? ( net-dialup/linux-atm ) - berkdb? ( sys-libs/db:= ) - bpf? ( >=dev-libs/libbpf-0.6:= ) - caps? ( sys-libs/libcap ) - elf? ( virtual/libelf:= ) - iptables? ( >=net-firewall/iptables-1.4.20:= ) - nfs? ( net-libs/libtirpc:= ) - selinux? ( sys-libs/libselinux ) -" -# We require newer linux-headers for ipset support (bug #549948) and some defines (bug #553876) -DEPEND=" - ${RDEPEND} - >=sys-kernel/linux-headers-3.16 -" -BDEPEND=" - app-arch/xz-utils - >=sys-devel/bison-2.4 - app-alternatives/lex - virtual/pkgconfig -" - -PATCHES=( - "${FILESDIR}"/${PN}-6.10.0-musl-1.patch # bug #936234 - "${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 - "${FILESDIR}"/${PN}-6.8.0-disable-libbsd-fallback.patch # bug #911727 - "${FILESDIR}"/${PN}-6.11.0-musl-fixes.patch # bug #939811 -) - -src_prepare() { - default - - # Fix version if necessary - local versionfile="include/version.h" - if [[ ${PV} != 9999 ]] && ! grep -Fq "${PV}" ${versionfile} ; then - einfo "Fixing version string" - sed -i "s@\"[[:digit:]\.]\+\"@\"${PV}\"@" \ - ${versionfile} || die - fi - - # echo -n is not POSIX compliant - sed -i 's@echo -n@printf@' configure || die - - sed -i \ - -e '/^CC :\?=/d' \ - -e "/^LIBDIR/s:=.*:=/$(get_libdir):" \ - -e "s|-O2|${CFLAGS} ${CPPFLAGS}|" \ - -e "/^HOSTCC/s:=.*:= $(tc-getBUILD_CC):" \ - -e "/^DBM_INCLUDE/s:=.*:=${T}:" \ - Makefile || die - - # Build against system headers - rm -r include/netinet || die #include/linux include/ip{,6}tables{,_common}.h include/libiptc - sed -i 's:TCPI_OPT_ECN_SEEN:16:' misc/ss.c || die - - if use minimal ; then - sed -i -e '/^SUBDIRS=/s:=.*:=lib tc ip:' Makefile || die - fi -} - -src_configure() { - tc-export AR CC PKG_CONFIG - - # This sure is ugly. Should probably move into toolchain-funcs at some point. - local setns - pushd "${T}" >/dev/null || die - printf '#include \nint main(){return setns(0, 0);}\n' > test.c || die - if ${CC} ${CFLAGS} ${CPPFLAGS} -D_GNU_SOURCE ${LDFLAGS} test.c >&/dev/null ; then - setns=y - else - setns=n - fi - - echo 'int main(){return 0;}' > test.c || die - if ! ${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} test.c -lresolv >&/dev/null ; then - sed -i '/^LDLIBS/s:-lresolv::' "${S}"/Makefile || die - fi - popd >/dev/null || die - - # build system does not pass CFLAGS to LDFLAGS, as is recommended by GCC upstream - # https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#index-flto - # https://bugs.gentoo.org/929233 - append-ldflags ${CFLAGS} - - # run "configure" script first which will create "config.mk"... - # Using econf breaks since 5.14.0 (a9c3d70d902a0473ee5c13336317006a52ce8242) - eval "local -a EXTRA_ECONF=(${EXTRA_ECONF})" - edo ./configure --libbpf_force $(usex bpf on off) "${EXTRA_ECONF[@]}" - - # Remove the definitions made by configure and allow them to be overridden - # by USE flags below. - # We have to do the cheesy only-sed-if-disabled because otherwise - # the *_FLAGS etc stuff found by configure will be used but result - # in a broken build. - if ! use berkdb ; then - sed -i -e '/HAVE_BERKELEY_DB/d' config.mk || die - fi - - if ! use caps ; then - sed -i -e '/HAVE_CAP/d' config.mk || die - fi - - if use minimal ; then - sed -i -e '/HAVE_MNL/d' config.mk || die - fi - - if ! use elf ; then - sed -i -e '/HAVE_ELF/d' config.mk || die - fi - - if ! use nfs ; then - sed -i -e '/HAVE_RPC/d' config.mk || die - fi - - if ! use selinux ; then - sed -i -e '/HAVE_SELINUX/d' config.mk || die - fi - - # ...Now switch on/off requested features via USE flags - # this is only useful if the test did not set other things, per bug #643722 - # Keep in sync with ifs above, or refactor to be unified. - cat <<-EOF >> config.mk - TC_CONFIG_ATM := $(usex atm y n) - TC_CONFIG_XT := $(usex iptables y n) - TC_CONFIG_NO_XT := $(usex iptables n y) - # We've locked in recent enough kernel headers, bug #549948 - TC_CONFIG_IPSET := y - HAVE_BERKELEY_DB := $(usex berkdb y n) - HAVE_CAP := $(usex caps y n) - HAVE_MNL := $(usex minimal n y) - HAVE_ELF := $(usex elf y n) - HAVE_RPC := $(usex nfs y n) - HAVE_SELINUX := $(usex selinux y n) - IP_CONFIG_SETNS := ${setns} - # Use correct iptables dir, bug #144265, bug #293709 - IPT_LIB_DIR := $(use iptables && ${PKG_CONFIG} xtables --variable=xtlibdir) - EOF -} - -src_compile() { - emake V=1 NETNS_RUN_DIR=/run/netns -} - -src_test() { - emake check -} - -src_install() { - if use minimal ; then - into / - dosbin tc/tc - dobin ip/ip - return 0 - fi - - emake \ - DESTDIR="${D}" \ - PREFIX="${EPREFIX}/usr" \ - LIBDIR="${EPREFIX}"/$(get_libdir) \ - SBINDIR="${EPREFIX}"/sbin \ - CONFDIR="${EPREFIX}"/etc/iproute2 \ - DOCDIR="${EPREFIX}"/usr/share/doc/${PF} \ - MANDIR="${EPREFIX}"/usr/share/man \ - ARPDDIR="${EPREFIX}"/var/lib/arpd \ - install - - dodir /bin - mv "${ED}"/{s,}bin/ip || die # bug #330115 - mv "${ED}"/{s,}bin/ss || die # bug #547264 - - dolib.a lib/libnetlink.a - insinto /usr/include - doins include/libnetlink.h - - # Collides with net-analyzer/ifstat - # https://bugs.gentoo.org/868321 - mv "${ED}"/sbin/ifstat{,-iproute2} || die - - if use berkdb ; then - keepdir /var/lib/arpd - # bug #47482, arpd doesn't need to be in /sbin - dodir /usr/bin - mv "${ED}"/sbin/arpd "${ED}"/usr/bin/ || die - elif [[ -d "${ED}"/var/lib/arpd ]]; then - rmdir --ignore-fail-on-non-empty -p "${ED}"/var/lib/arpd || die - fi -} diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/iproute2/iproute2-6.12.0.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/iproute2/iproute2-6.12.0.ebuild deleted file mode 100644 index 73c7a16e2e..0000000000 --- a/sdk_container/src/third_party/portage-stable/sys-apps/iproute2/iproute2-6.12.0.ebuild +++ /dev/null @@ -1,215 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit edo toolchain-funcs flag-o-matic - -if [[ ${PV} == 9999 ]] ; then - EGIT_REPO_URI="https://git.kernel.org/pub/scm/linux/kernel/git/shemminger/iproute2.git" - 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" -fi - -DESCRIPTION="kernel routing and traffic control utilities" -HOMEPAGE="https://wiki.linuxfoundation.org/networking/iproute2" - -LICENSE="GPL-2" -SLOT="0" -IUSE="atm berkdb bpf caps elf +iptables minimal nfs selinux" -# Needs root -RESTRICT="test" - -# We could make libmnl optional, but it's tiny, so eh -RDEPEND=" - !minimal? ( net-libs/libmnl:= ) - atm? ( net-dialup/linux-atm ) - berkdb? ( sys-libs/db:= ) - bpf? ( >=dev-libs/libbpf-0.6:= ) - caps? ( sys-libs/libcap ) - elf? ( virtual/libelf:= ) - iptables? ( >=net-firewall/iptables-1.4.20:= ) - nfs? ( net-libs/libtirpc:= ) - selinux? ( sys-libs/libselinux ) -" -# We require newer linux-headers for ipset support (bug #549948) and some defines (bug #553876) -DEPEND=" - ${RDEPEND} - >=sys-kernel/linux-headers-3.16 -" -BDEPEND=" - app-arch/xz-utils - >=sys-devel/bison-2.4 - app-alternatives/lex - virtual/pkgconfig -" - -PATCHES=( - "${FILESDIR}"/${PN}-6.10.0-musl-1.patch # bug #936234 - "${FILESDIR}"/${PN}-6.10.0-musl-2.patch # bug #926341 - "${FILESDIR}"/${PN}-6.12.0-musl-3.patch # bug #946088 - "${FILESDIR}"/${PN}-6.9.0-mtu.patch # bug #291907 - "${FILESDIR}"/${PN}-6.8.0-configure-nomagic-nolibbsd.patch # bug #643722 & #911727 - "${FILESDIR}"/${PN}-6.8.0-disable-libbsd-fallback.patch # bug #911727 -) - -src_prepare() { - default - - # Fix version if necessary - local versionfile="include/version.h" - if [[ ${PV} != 9999 ]] && ! grep -Fq "${PV}" ${versionfile} ; then - einfo "Fixing version string" - sed -i "s@\"[[:digit:]\.]\+\"@\"${PV}\"@" \ - ${versionfile} || die - fi - - # echo -n is not POSIX compliant - sed -i 's@echo -n@printf@' configure || die - - sed -i \ - -e '/^CC :\?=/d' \ - -e "/^LIBDIR/s:=.*:=/$(get_libdir):" \ - -e "s|-O2|${CFLAGS} ${CPPFLAGS}|" \ - -e "/^HOSTCC/s:=.*:= $(tc-getBUILD_CC):" \ - -e "/^DBM_INCLUDE/s:=.*:=${T}:" \ - Makefile || die - - # Build against system headers - rm -r include/netinet || die #include/linux include/ip{,6}tables{,_common}.h include/libiptc - sed -i 's:TCPI_OPT_ECN_SEEN:16:' misc/ss.c || die - - if use minimal ; then - sed -i -e '/^SUBDIRS=/s:=.*:=lib tc ip:' Makefile || die - fi -} - -src_configure() { - tc-export AR CC PKG_CONFIG - - # This sure is ugly. Should probably move into toolchain-funcs at some point. - local setns - pushd "${T}" >/dev/null || die - printf '#include \nint main(){return setns(0, 0);}\n' > test.c || die - if ${CC} ${CFLAGS} ${CPPFLAGS} -D_GNU_SOURCE ${LDFLAGS} test.c >&/dev/null ; then - setns=y - else - setns=n - fi - - echo 'int main(){return 0;}' > test.c || die - if ! ${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} test.c -lresolv >&/dev/null ; then - sed -i '/^LDLIBS/s:-lresolv::' "${S}"/Makefile || die - fi - popd >/dev/null || die - - # build system does not pass CFLAGS to LDFLAGS, as is recommended by GCC upstream - # https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#index-flto - # https://bugs.gentoo.org/929233 - append-ldflags ${CFLAGS} - - # run "configure" script first which will create "config.mk"... - # Using econf breaks since 5.14.0 (a9c3d70d902a0473ee5c13336317006a52ce8242) - eval "local -a EXTRA_ECONF=(${EXTRA_ECONF})" - edo ./configure --libbpf_force $(usex bpf on off) "${EXTRA_ECONF[@]}" - - # Remove the definitions made by configure and allow them to be overridden - # by USE flags below. - # We have to do the cheesy only-sed-if-disabled because otherwise - # the *_FLAGS etc stuff found by configure will be used but result - # in a broken build. - if ! use berkdb ; then - sed -i -e '/HAVE_BERKELEY_DB/d' config.mk || die - fi - - if ! use caps ; then - sed -i -e '/HAVE_CAP/d' config.mk || die - fi - - if use minimal ; then - sed -i -e '/HAVE_MNL/d' config.mk || die - fi - - if ! use elf ; then - sed -i -e '/HAVE_ELF/d' config.mk || die - fi - - if ! use nfs ; then - sed -i -e '/HAVE_RPC/d' config.mk || die - fi - - if ! use selinux ; then - sed -i -e '/HAVE_SELINUX/d' config.mk || die - fi - - # ...Now switch on/off requested features via USE flags - # this is only useful if the test did not set other things, per bug #643722 - # Keep in sync with ifs above, or refactor to be unified. - cat <<-EOF >> config.mk - TC_CONFIG_ATM := $(usex atm y n) - TC_CONFIG_XT := $(usex iptables y n) - TC_CONFIG_NO_XT := $(usex iptables n y) - # We've locked in recent enough kernel headers, bug #549948 - TC_CONFIG_IPSET := y - HAVE_BERKELEY_DB := $(usex berkdb y n) - HAVE_CAP := $(usex caps y n) - HAVE_MNL := $(usex minimal n y) - HAVE_ELF := $(usex elf y n) - HAVE_RPC := $(usex nfs y n) - HAVE_SELINUX := $(usex selinux y n) - IP_CONFIG_SETNS := ${setns} - # Use correct iptables dir, bug #144265, bug #293709 - IPT_LIB_DIR := $(use iptables && ${PKG_CONFIG} xtables --variable=xtlibdir) - EOF -} - -src_compile() { - emake V=1 NETNS_RUN_DIR=/run/netns -} - -src_test() { - emake check -} - -src_install() { - if use minimal ; then - into / - dosbin tc/tc - dobin ip/ip - return 0 - fi - - emake \ - DESTDIR="${D}" \ - PREFIX="${EPREFIX}/usr" \ - LIBDIR="${EPREFIX}"/$(get_libdir) \ - SBINDIR="${EPREFIX}"/sbin \ - CONFDIR="${EPREFIX}"/etc/iproute2 \ - DOCDIR="${EPREFIX}"/usr/share/doc/${PF} \ - MANDIR="${EPREFIX}"/usr/share/man \ - ARPDDIR="${EPREFIX}"/var/lib/arpd \ - install - - dodir /bin - mv "${ED}"/{s,}bin/ip || die # bug #330115 - mv "${ED}"/{s,}bin/ss || die # bug #547264 - - dolib.a lib/libnetlink.a - insinto /usr/include - doins include/libnetlink.h - - # Collides with net-analyzer/ifstat - # https://bugs.gentoo.org/868321 - mv "${ED}"/sbin/ifstat{,-iproute2} || die - - if use berkdb ; then - keepdir /var/lib/arpd - # bug #47482, arpd doesn't need to be in /sbin - dodir /usr/bin - mv "${ED}"/sbin/arpd "${ED}"/usr/bin/ || die - elif [[ -d "${ED}"/var/lib/arpd ]]; then - rmdir --ignore-fail-on-non-empty -p "${ED}"/var/lib/arpd || die - fi -} diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/iproute2/iproute2-6.13.0.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/iproute2/iproute2-6.13.0.ebuild deleted file mode 100644 index 2f70fe23a1..0000000000 --- a/sdk_container/src/third_party/portage-stable/sys-apps/iproute2/iproute2-6.13.0.ebuild +++ /dev/null @@ -1,213 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit edo toolchain-funcs flag-o-matic - -if [[ ${PV} == 9999 ]] ; then - EGIT_REPO_URI="https://git.kernel.org/pub/scm/linux/kernel/git/shemminger/iproute2.git" - 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" -fi - -DESCRIPTION="kernel routing and traffic control utilities" -HOMEPAGE="https://wiki.linuxfoundation.org/networking/iproute2" - -LICENSE="GPL-2" -SLOT="0" -IUSE="atm berkdb bpf caps elf +iptables minimal nfs selinux" -# Needs root -RESTRICT="test" - -# We could make libmnl optional, but it's tiny, so eh -RDEPEND=" - !minimal? ( net-libs/libmnl:= ) - atm? ( net-dialup/linux-atm ) - berkdb? ( sys-libs/db:= ) - bpf? ( >=dev-libs/libbpf-0.6:= ) - caps? ( sys-libs/libcap ) - elf? ( virtual/libelf:= ) - iptables? ( >=net-firewall/iptables-1.4.20:= ) - nfs? ( net-libs/libtirpc:= ) - selinux? ( sys-libs/libselinux ) -" -# We require newer linux-headers for ipset support (bug #549948) and some defines (bug #553876) -DEPEND=" - ${RDEPEND} - >=sys-kernel/linux-headers-3.16 -" -BDEPEND=" - app-arch/xz-utils - >=sys-devel/bison-2.4 - app-alternatives/lex - virtual/pkgconfig -" - -PATCHES=( - "${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 - "${FILESDIR}"/${PN}-6.8.0-disable-libbsd-fallback.patch # bug #911727 -) - -src_prepare() { - default - - # Fix version if necessary - local versionfile="include/version.h" - if [[ ${PV} != 9999 ]] && ! grep -Fq "${PV}" ${versionfile} ; then - einfo "Fixing version string" - sed -i "s@\"[[:digit:]\.]\+\"@\"${PV}\"@" \ - ${versionfile} || die - fi - - # echo -n is not POSIX compliant - sed -i 's@echo -n@printf@' configure || die - - sed -i \ - -e '/^CC :\?=/d' \ - -e "/^LIBDIR/s:=.*:=/$(get_libdir):" \ - -e "s|-O2|${CFLAGS} ${CPPFLAGS}|" \ - -e "/^HOSTCC/s:=.*:= $(tc-getBUILD_CC):" \ - -e "/^DBM_INCLUDE/s:=.*:=${T}:" \ - Makefile || die - - # Build against system headers - rm -r include/netinet || die #include/linux include/ip{,6}tables{,_common}.h include/libiptc - sed -i 's:TCPI_OPT_ECN_SEEN:16:' misc/ss.c || die - - if use minimal ; then - sed -i -e '/^SUBDIRS=/s:=.*:=lib tc ip:' Makefile || die - fi -} - -src_configure() { - tc-export AR CC PKG_CONFIG - - # This sure is ugly. Should probably move into toolchain-funcs at some point. - local setns - pushd "${T}" >/dev/null || die - printf '#include \nint main(){return setns(0, 0);}\n' > test.c || die - if ${CC} ${CFLAGS} ${CPPFLAGS} -D_GNU_SOURCE ${LDFLAGS} test.c >&/dev/null ; then - setns=y - else - setns=n - fi - - echo 'int main(){return 0;}' > test.c || die - if ! ${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} test.c -lresolv >&/dev/null ; then - sed -i '/^LDLIBS/s:-lresolv::' "${S}"/Makefile || die - fi - popd >/dev/null || die - - # build system does not pass CFLAGS to LDFLAGS, as is recommended by GCC upstream - # https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#index-flto - # https://bugs.gentoo.org/929233 - append-ldflags ${CFLAGS} - - # run "configure" script first which will create "config.mk"... - # Using econf breaks since 5.14.0 (a9c3d70d902a0473ee5c13336317006a52ce8242) - eval "local -a EXTRA_ECONF=(${EXTRA_ECONF})" - edo ./configure --libbpf_force $(usex bpf on off) "${EXTRA_ECONF[@]}" - - # Remove the definitions made by configure and allow them to be overridden - # by USE flags below. - # We have to do the cheesy only-sed-if-disabled because otherwise - # the *_FLAGS etc stuff found by configure will be used but result - # in a broken build. - if ! use berkdb ; then - sed -i -e '/HAVE_BERKELEY_DB/d' config.mk || die - fi - - if ! use caps ; then - sed -i -e '/HAVE_CAP/d' config.mk || die - fi - - if use minimal ; then - sed -i -e '/HAVE_MNL/d' config.mk || die - fi - - if ! use elf ; then - sed -i -e '/HAVE_ELF/d' config.mk || die - fi - - if ! use nfs ; then - sed -i -e '/HAVE_RPC/d' config.mk || die - fi - - if ! use selinux ; then - sed -i -e '/HAVE_SELINUX/d' config.mk || die - fi - - # ...Now switch on/off requested features via USE flags - # this is only useful if the test did not set other things, per bug #643722 - # Keep in sync with ifs above, or refactor to be unified. - cat <<-EOF >> config.mk - TC_CONFIG_ATM := $(usex atm y n) - TC_CONFIG_XT := $(usex iptables y n) - TC_CONFIG_NO_XT := $(usex iptables n y) - # We've locked in recent enough kernel headers, bug #549948 - TC_CONFIG_IPSET := y - HAVE_BERKELEY_DB := $(usex berkdb y n) - HAVE_CAP := $(usex caps y n) - HAVE_MNL := $(usex minimal n y) - HAVE_ELF := $(usex elf y n) - HAVE_RPC := $(usex nfs y n) - HAVE_SELINUX := $(usex selinux y n) - IP_CONFIG_SETNS := ${setns} - # Use correct iptables dir, bug #144265, bug #293709 - IPT_LIB_DIR := $(use iptables && ${PKG_CONFIG} xtables --variable=xtlibdir) - EOF -} - -src_compile() { - emake V=1 NETNS_RUN_DIR=/run/netns -} - -src_test() { - emake check -} - -src_install() { - if use minimal ; then - into / - dosbin tc/tc - dobin ip/ip - return 0 - fi - - emake \ - DESTDIR="${D}" \ - PREFIX="${EPREFIX}/usr" \ - LIBDIR="${EPREFIX}"/$(get_libdir) \ - SBINDIR="${EPREFIX}"/sbin \ - CONFDIR="${EPREFIX}"/etc/iproute2 \ - DOCDIR="${EPREFIX}"/usr/share/doc/${PF} \ - MANDIR="${EPREFIX}"/usr/share/man \ - ARPDDIR="${EPREFIX}"/var/lib/arpd \ - install - - dodir /bin - mv "${ED}"/{s,}bin/ip || die # bug #330115 - mv "${ED}"/{s,}bin/ss || die # bug #547264 - - dolib.a lib/libnetlink.a - insinto /usr/include - doins include/libnetlink.h - - # Collides with net-analyzer/ifstat - # https://bugs.gentoo.org/868321 - mv "${ED}"/sbin/ifstat{,-iproute2} || die - - if use berkdb ; then - keepdir /var/lib/arpd - # bug #47482, arpd doesn't need to be in /sbin - dodir /usr/bin - mv "${ED}"/sbin/arpd "${ED}"/usr/bin/ || die - elif [[ -d "${ED}"/var/lib/arpd ]]; then - rmdir --ignore-fail-on-non-empty -p "${ED}"/var/lib/arpd || die - fi -} diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/iproute2/iproute2-6.14.0.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/iproute2/iproute2-6.17.0.ebuild similarity index 97% rename from sdk_container/src/third_party/portage-stable/sys-apps/iproute2/iproute2-6.14.0.ebuild rename to sdk_container/src/third_party/portage-stable/sys-apps/iproute2/iproute2-6.17.0.ebuild index c85303511b..24b326f4fb 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/iproute2/iproute2-6.14.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" @@ -88,6 +88,9 @@ src_configure() { tc-export AR CC PKG_CONFIG lto-guarantee-fat + tc-export_build_env + export CBUILD_CFLAGS=${BUILD_CFLAGS} + # This sure is ugly. Should probably move into toolchain-funcs at some point. local setns pushd "${T}" >/dev/null || die 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 6adb714292..eba1c29c09 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,4 +1,2 @@ DIST locale-gen-2.23.tar.bz2 7664 BLAKE2B a529b62fbb840c9352f06e8f5c80fc764425a2619dc69cc820f550a026d391788d5e2cfeeb46a8b5b9716da63340b4fce57a5b523edd4196ee1219c1200cb752 SHA512 c1245caadb04403c535a836f19bc410d0f04b5c0e297ea5be9852e6d71e08e528071ae769d63d31a677dda8fdd618b4c4d581ed525cf8786b82d8f37636db754 -DIST locale-gen-3.4.tar.bz2 21116 BLAKE2B 97739bd3be34407639fbe77b9538e792dd1b94ba9a0612262f8df0a0cb70c3b513e1348470d5350a2ad0a2e92ac7287921c62b32c72815c82f43a271a8d3cdda SHA512 38ec6801142be282e25ff913e78ca48dce5faecd5bfa0187cd85065622195c746b63ccc05b9818b7a1240b8d01f38c8ca8fa45737d6ac5ae0ac41675c1b49584 -DIST locale-gen-3.7.tar.bz2 17496 BLAKE2B 44f894c5c54974c1e7ae00179092f1489f818c3306b1ad6fc15b7a13cb4d72bfad9910f6acc26af589a4a0469a4b0d36c5885546267e667851379aefcccddeea SHA512 ae187e939ee8cd0e70561b271de4f6e8bbe9fef6c27bfe024f468eb32a74f4260c50bea85c8dabec6b675e3d1ed2d1f7a7fbb560ee6537082dd6aa85c772aea8 DIST locale-gen-3.8.tar.bz2 17593 BLAKE2B 0197096021286f47f4e289ee5c4cbf0220264b5784c101df567c0a5dc81a0a83999e8306e8ab72e47f4f35f92d0f7e7e40589ff3c74936e22c56e3b5a172fb15 SHA512 6e802283bce6a927ed020d3011a9bc4a81ef017d728a698fa6a8c74887895a87d225cdbe23cf18798a12f2e58beacfdd6ba5e3990d74ebafb4b2ba5986d35720 diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/locale-gen/locale-gen-3.4.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/locale-gen/locale-gen-3.4.ebuild deleted file mode 100644 index c380120ac9..0000000000 --- a/sdk_container/src/third_party/portage-stable/sys-apps/locale-gen/locale-gen-3.4.ebuild +++ /dev/null @@ -1,57 +0,0 @@ -# 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 - ! -Date: Mon, 15 Sep 2025 11:38:52 -0400 -Subject: [PATCH] ensure GNU tar is used in most places - -Portage makes certain assumptions in various places, such as --xattrs -enabling FEATURES=xattr and its lack *unconditionally* disabling it. Or, ---wildcard existing. - -PMS mandates "GNU Tar" be used to extract files in `unpack`, and a -recent fix went "all in" and used GNU Tar options to improve the -function. - -All this is quite reasonable, but nowhere have we ever enforced that -"gtar" is used. libarchive is a valid app-alternatives/tar, on Gentoo, -has been broken subtly in the past, and now breaks src_unpack. - -emerge-webrsync alone has "is_gnu" support code introduced since commit -23ce89c761c080e7d3163165dded94241a9a9eea, so leave it alone. - -Fixes: 3e89139fae34c9bd2e2b4c0490512f71d1d78546 -Signed-off-by: Eli Schwartz ---- - -diffstat limited to 3.0.69.1 regression fix only - - bin/phase-helpers.sh | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/bin/phase-helpers.sh b/bin/phase-helpers.sh -index 02b1aea4e..47c6f8167 100644 ---- a/bin/phase-helpers.sh -+++ b/bin/phase-helpers.sh -@@ -480,17 +480,17 @@ unpack() { - unrar x -idq -o+ "${srcdir}${f}" - ;; - tar.bz|tar.bz2|tbz|tbz2) -- tar -I "${bzip2_cmd-bzip2} -c" -xof "${srcdir}${f}" -+ gtar -I "${bzip2_cmd-bzip2} -c" -xof "${srcdir}${f}" - ;; - tar|tar.*|tgz) - # GNU tar recognises various file suffixes, for - # which it is able to execute the appropriate - # decompressor. They are documented by the - # (info) manual for the -a option. -- tar --warning=decompress-program -xof "${srcdir}${f}" -+ gtar --warning=decompress-program -xof "${srcdir}${f}" - ;; - txz) -- tar -xJof "${srcdir}${f}" -+ gtar -xJof "${srcdir}${f}" - ;; - xz) - xz -dc -- "${srcdir}${f}" > "${basename%.*}" --- -2.49.1 - diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/portage/files/portage-3.0.69.1-unbound.patch b/sdk_container/src/third_party/portage-stable/sys-apps/portage/files/portage-3.0.69.1-unbound.patch deleted file mode 100644 index e4dc5cb300..0000000000 --- a/sdk_container/src/third_party/portage-stable/sys-apps/portage/files/portage-3.0.69.1-unbound.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 05b422928735492d0448fbcb6b56f03aadc53eef Mon Sep 17 00:00:00 2001 -From: Eli Schwartz -Date: Mon, 15 Sep 2025 12:10:18 -0400 -Subject: [PATCH] fix crash when using binhost due to using conditionally - defined variable - -extra_info didn't always exist, so if you get http 304 but no -Last-Modified, portage errors out with: - -``` - File "/usr/lib/python3.13/site-packages/portage/dbapi/bintree.py", line 1519, in _populate_remote - "up-to-date", extra_info - ^^^^^^^^^^ -UnboundLocalError: cannot access local variable 'extra_info' where it is not associated with a value -``` - -Fixes: c83466a50efdee2cac81a5ed6a660c11b9ac746e -Signed-off-by: Eli Schwartz ---- - lib/portage/dbapi/bintree.py | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/lib/portage/dbapi/bintree.py b/lib/portage/dbapi/bintree.py -index f88d5e0aa..ebd0ec08c 100644 ---- a/lib/portage/dbapi/bintree.py -+++ b/lib/portage/dbapi/bintree.py -@@ -1506,6 +1506,7 @@ class binarytree: - if ( - hasattr(err, "code") and err.code == 304 - ): # not modified (since local_timestamp) -+ extra_info = "" - if hasattr(err, "headers") and err.headers.get( - "Last-Modified", "" - ): --- -2.49.1 - diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/portage/portage-3.0.69.1-r1.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/portage/portage-3.0.69.3.ebuild similarity index 98% rename from sdk_container/src/third_party/portage-stable/sys-apps/portage/portage-3.0.69.1-r1.ebuild rename to sdk_container/src/third_party/portage-stable/sys-apps/portage/portage-3.0.69.3.ebuild index 392499aab7..b6b8f7f4ea 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/portage/portage-3.0.69.1-r1.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-apps/portage/portage-3.0.69.3.ebuild @@ -90,11 +90,6 @@ PDEPEND=" ) " -PATCHES=( - "${FILESDIR}"/${P}-gtar.patch - "${FILESDIR}"/${P}-unbound.patch -) - pkg_pretend() { local CONFIG_CHECK="~IPC_NS ~PID_NS ~NET_NS ~UTS_NS" 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 a8fbec75a3..955617938e 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 @@ -2,3 +2,5 @@ DIST pv-1.9.31.tar.gz 417551 BLAKE2B 6018abe674834f45312faa5ce07b49e11258e29fffc DIST pv-1.9.31.tar.gz.asc 691 BLAKE2B 7b5b998341db887b14c56fc080d87cb4abb186b4df2c8def638822889a734436fe0c4c132396415bbc0dcb0754f76d0456bb667533ef7ed92ed0c09a62522e8b SHA512 549a3bb3f4f404b3a6e407663ba335e3d4e14303185654771c974335ed5e7ac46dbba71bbf4f26e640217829e58a0da8d6fa139b02f426b60ab074ec97084374 DIST pv-1.9.34.tar.gz 416551 BLAKE2B aa2d56408a96de9b472a3ef5215a270c3c993543dc72b980948ffd2f6f6181bf69beaf911df284ea934c43d5053ada57a35e3dc43de08a184dca89fa75e945e5 SHA512 c590e376d33f49d8bb0d4463a54bb8c5a8dd25737f2d413f83c53c64cf6cb6d5ad977ff907fb6a8d8004ee371d35de08d3a5fb312b07a6c7237565e0bc55a104 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 diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/pv/metadata.xml b/sdk_container/src/third_party/portage-stable/sys-apps/pv/metadata.xml index 11cd72aff5..28c1111298 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/pv/metadata.xml +++ b/sdk_container/src/third_party/portage-stable/sys-apps/pv/metadata.xml @@ -6,6 +6,6 @@ Sam James - a-j-wood/pv + ivarch/pv diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/pv/pv-1.9.31.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/pv/pv-1.9.31.ebuild index 3aa589acc3..1e973ddc14 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/pv/pv-1.9.31.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-apps/pv/pv-1.9.31.ebuild @@ -7,10 +7,10 @@ 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://www.ivarch.com/programs/pv.shtml https://codeberg.org/a-j-wood/pv" +HOMEPAGE="https://www.ivarch.com/programs/pv.shtml https://codeberg.org/ivarch/pv" if [[ ${PV} == 9999 ]] ; then - EGIT_REPO_URI="https://codeberg.org/a-j-wood/pv" + EGIT_REPO_URI="https://codeberg.org/ivarch/pv" inherit autotools git-r3 else SRC_URI=" diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/pv/pv-1.9.34.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/pv/pv-1.9.34.ebuild index f97acc81f9..a0768d49f3 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/pv/pv-1.9.34.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-apps/pv/pv-1.9.34.ebuild @@ -10,7 +10,7 @@ DESCRIPTION="Pipe Viewer: a tool for monitoring the progress of data through a p HOMEPAGE="https://ivarch.com/p/pv https://codeberg.org/ivarch/pv" if [[ ${PV} == 9999 ]] ; then - EGIT_REPO_URI="https://codeberg.org/a-j-wood/pv" + EGIT_REPO_URI="https://codeberg.org/ivarch/pv" inherit autotools git-r3 else SRC_URI=" diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/pv/pv-1.9.42.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/pv/pv-1.9.42.ebuild new file mode 100644 index 0000000000..718c9249a2 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-apps/pv/pv-1.9.42.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/pv/pv-9999.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/pv/pv-9999.ebuild index b66bc7a457..718c9249a2 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/pv/pv-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-apps/pv/pv-9999.ebuild @@ -10,7 +10,7 @@ DESCRIPTION="Pipe Viewer: a tool for monitoring the progress of data through a p HOMEPAGE="https://ivarch.com/p/pv https://codeberg.org/ivarch/pv" if [[ ${PV} == 9999 ]] ; then - EGIT_REPO_URI="https://codeberg.org/a-j-wood/pv" + EGIT_REPO_URI="https://codeberg.org/ivarch/pv" inherit autotools git-r3 else SRC_URI=" @@ -27,7 +27,7 @@ IUSE="debug ncurses nls" RDEPEND="ncurses? ( sys-libs/ncurses:= )" DEPEND="${RDEPEND}" -BDEPEND="verify-sig? ( sec-keys/openpgp-keys-pv )" +BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-pv-20251012 )" pkg_setup() { if use kernel_linux; then diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/shadow/shadow-4.14.8-r1.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/shadow/shadow-4.14.8-r1.ebuild new file mode 100644 index 0000000000..f9c36e78f8 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-apps/shadow/shadow-4.14.8-r1.ebuild @@ -0,0 +1,291 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Upstream sometimes pushes releases as pre-releases before marking them +# official. Don't keyword the pre-releases! +# Check https://github.com/shadow-maint/shadow/releases. + +inherit libtool pam user-info verify-sig + +DESCRIPTION="Utilities to deal with user accounts" +HOMEPAGE="https://github.com/shadow-maint/shadow" +SRC_URI="https://github.com/shadow-maint/shadow/releases/download/${PV}/${P}.tar.xz" +SRC_URI+=" verify-sig? ( https://github.com/shadow-maint/shadow/releases/download/${PV}/${P}.tar.xz.asc )" + +LICENSE="BSD GPL-2" +# Subslot is for libsubid's SONAME. +SLOT="0/4" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +IUSE="acl audit cracklib nls pam selinux skey split-usr su systemd xattr" +# Taken from the man/Makefile.am file. +LANGS=( cs da de es fi fr hu id it ja ko pl pt_BR ru sv tr zh_CN zh_TW ) + +REQUIRED_USE="?? ( cracklib pam )" + +COMMON_DEPEND=" + virtual/libcrypt:= + acl? ( sys-apps/acl:= ) + audit? ( >=sys-process/audit-2.6:= ) + cracklib? ( >=sys-libs/cracklib-2.7-r3:= ) + nls? ( virtual/libintl ) + pam? ( sys-libs/pam:= ) + skey? ( sys-auth/skey:= ) + selinux? ( + >=sys-libs/libselinux-1.28:= + sys-libs/libsemanage:= + ) + systemd? ( sys-apps/systemd:= ) + xattr? ( sys-apps/attr:= ) + !/s:^:#:" \ + "${ED}"/etc/login.defs || die + else + sed -i -r \ + -e "/^#?${opt}\>/s:.*:${opt} ${val}:" \ + "${ED}"/etc/login.defs + fi + local res=$(grep "^${comment}${opt}\>" "${ED}"/etc/login.defs) + einfo "${res:-Unable to find ${opt} in /etc/login.defs}" +} + +src_install() { + emake DESTDIR="${D}" suidperms=4755 install + + fowners :shadow /usr/bin/{chage,expiry} + fperms u-s,g+s /usr/bin/{chage,expiry} + + # 4.9 regression: https://github.com/shadow-maint/shadow/issues/389 + emake DESTDIR="${D}" -C man install + + find "${ED}" -name '*.la' -type f -delete || die + + insinto /etc + if ! use pam ; then + insopts -m0600 + doins etc/login.access etc/limits + fi + + # needed for 'useradd -D' + insinto /etc/default + insopts -m0600 + doins "${FILESDIR}"/default/useradd + + if use split-usr ; then + # move passwd to / to help recover broke systems #64441 + # We cannot simply remove this or else net-misc/scponly + # and other tools will break because of hardcoded passwd + # location + dodir /bin + mv "${ED}"/usr/bin/passwd "${ED}"/bin/ || die + dosym ../../bin/passwd /usr/bin/passwd + fi + + cd "${S}" || die + insinto /etc + insopts -m0644 + newins etc/login.defs login.defs + + set_login_opt CREATE_HOME yes + if ! use pam ; then + set_login_opt MAIL_CHECK_ENAB no + set_login_opt SU_WHEEL_ONLY yes + set_login_opt CRACKLIB_DICTPATH /usr/lib/cracklib_dict + set_login_opt LOGIN_RETRIES 3 + set_login_opt ENCRYPT_METHOD SHA512 + set_login_opt CONSOLE + else + dopamd "${FILESDIR}"/pam.d-include/shadow + + for x in chsh chfn ; do + newpamd "${FILESDIR}"/pam.d-include/passwd ${x} + done + + for x in chpasswd newusers ; do + newpamd "${FILESDIR}"/pam.d-include/chpasswd ${x} + done + + newpamd "${FILESDIR}"/pam.d-include/shadow-r1 groupmems + + # Comment out login.defs options that pam hates + local opt sed_args=() + for opt in \ + CHFN_AUTH \ + CONSOLE \ + CRACKLIB_DICTPATH \ + ENV_HZ \ + ENVIRON_FILE \ + FAILLOG_ENAB \ + FTMP_FILE \ + LASTLOG_ENAB \ + MAIL_CHECK_ENAB \ + MOTD_FILE \ + NOLOGINS_FILE \ + OBSCURE_CHECKS_ENAB \ + PASS_ALWAYS_WARN \ + PASS_CHANGE_TRIES \ + PASS_MIN_LEN \ + PORTTIME_CHECKS_ENAB \ + QUOTAS_ENAB \ + SU_WHEEL_ONLY + do + set_login_opt ${opt} + sed_args+=( -e "/^#${opt}\>/b pamnote" ) + done + sed -i "${sed_args[@]}" \ + -e 'b exit' \ + -e ': pamnote; i# NOTE: This setting should be configured via /etc/pam.d/ and not in this file.' \ + -e ': exit' \ + "${ED}"/etc/login.defs || die + + # Remove manpages that pam will install for us + # and/or don't apply when using pam + find "${ED}"/usr/share/man -type f \ + '(' -name 'limits.5*' -o -name 'suauth.5*' ')' \ + -delete + + # Remove pam.d files provided by pambase. + rm "${ED}"/etc/pam.d/{login,passwd} || die + if use su ; then + rm "${ED}"/etc/pam.d/su || die + fi + fi + + # Remove manpages that are handled by other packages + find "${ED}"/usr/share/man -type f \ + '(' -name id.1 -o -name getspnam.3 ')' \ + -delete || die + + if ! use su ; then + find "${ED}"/usr/share/man -type f -name su.1 -delete || die + fi + + cd "${S}" || die + dodoc ChangeLog NEWS TODO + newdoc README README.download + cd doc || die + dodoc HOWTO README* WISHLIST *.txt + + if use elibc_musl; then + QA_CONFIG_IMPL_DECL_SKIP+=( sgetsgent ) + fi +} + +pkg_preinst() { + rm -f "${EROOT}"/etc/pam.d/system-auth.new \ + "${EROOT}/etc/login.defs.new" +} + +pkg_postinst() { + # Missing entries from /etc/passwd can cause odd system blips. + # See bug #829872. + if ! pwck -r -q -R "${EROOT:-/}" &>/dev/null ; then + ewarn "Running 'pwck' returned errors. Please run it manually to fix any errors." + fi + + local group=shadow + + if [[ -n ${ROOT} ]]; then + # Resolve to a group id using ${ROOT}/etc/passwd + group=$(egetent group shadow | cut -d: -f3) + if [[ -n ${group} ]]; then + chgrp "${group}" "${EROOT}"/usr/bin/{chage,expiry} && + chmod g+s "${EROOT}"/usr/bin/{chage,expiry} + fi + fi + + # Enable shadow groups. + if [[ ! -f "${EROOT}"/etc/gshadow ]] ; then + if grpck -r -R "${EROOT:-/}" 2>/dev/null ; then + grpconv -R "${EROOT:-/}" + if [[ -n ${group} ]]; then + chgrp "${group}" "${EROOT}"/etc/gshadow && + chmod g+r "${EROOT}"/etc/gshadow + fi + else + ewarn "Running 'grpck' returned errors. Please run it by hand, and then" + ewarn "run 'grpconv' afterwards!" + fi + fi + + [[ ! -f "${EROOT}"/etc/subgid ]] && + touch "${EROOT}"/etc/subgid + [[ ! -f "${EROOT}"/etc/subuid ]] && + touch "${EROOT}"/etc/subuid + + einfo "The 'adduser' symlink to 'useradd' has been dropped." +} diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/shadow/shadow-4.14.8.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/shadow/shadow-4.14.8.ebuild index 152675a2c3..582d2920ae 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/shadow/shadow-4.14.8.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-apps/shadow/shadow-4.14.8.ebuild @@ -122,7 +122,7 @@ set_login_opt() { } src_install() { - emake DESTDIR="${D}" suidperms=4711 install + emake DESTDIR="${D}" suidperms=4755 install # 4.9 regression: https://github.com/shadow-maint/shadow/issues/389 emake DESTDIR="${D}" -C man install diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/texinfo/texinfo-7.2-r2.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/texinfo/texinfo-7.2-r4.ebuild similarity index 89% rename from sdk_container/src/third_party/portage-stable/sys-apps/texinfo/texinfo-7.2-r2.ebuild rename to sdk_container/src/third_party/portage-stable/sys-apps/texinfo/texinfo-7.2-r4.ebuild index bc65406689..c037309598 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/texinfo/texinfo-7.2-r2.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-apps/texinfo/texinfo-7.2-r4.ebuild @@ -27,7 +27,7 @@ elif [[ $(ver_cut 3) -ge 90 || $(ver_cut 4) -ge 90 ]] ; then REGEN_BDEPEND="" else SRC_URI="mirror://gnu/${PN}/${P}.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" + 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" REGEN_BDEPEND="" fi @@ -36,6 +36,7 @@ SLOT="0" IUSE="nls +standalone static" RDEPEND=" + || ( app-doc/info-manual >=app-editors/emacs-26:* ) >=sys-libs/ncurses-5.2-r2:= standalone? ( >=dev-lang/perl-5.8.1 ) !standalone? ( @@ -50,6 +51,10 @@ BDEPEND=" nls? ( >=sys-devel/gettext-0.19.6 ) " +PATCHES=( + "${FILESDIR}"/${PN}-7.2-perl-5.42.patch +) + src_prepare() { default diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/texinfo/texinfo-9999.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/texinfo/texinfo-9999.ebuild index 724e75f27d..ba64360cd0 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/texinfo/texinfo-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-apps/texinfo/texinfo-9999.ebuild @@ -36,6 +36,7 @@ SLOT="0" IUSE="nls +standalone static" RDEPEND=" + || ( app-doc/info-manual >=app-editors/emacs-26:* ) >=sys-libs/ncurses-5.2-r2:= standalone? ( >=dev-lang/perl-5.8.1 ) !standalone? ( diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/util-linux/Manifest b/sdk_container/src/third_party/portage-stable/sys-apps/util-linux/Manifest index c00ba3889a..72434a7377 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/util-linux/Manifest +++ b/sdk_container/src/third_party/portage-stable/sys-apps/util-linux/Manifest @@ -2,3 +2,5 @@ DIST util-linux-2.40.4.tar.sign 833 BLAKE2B 7ed5fe555bc5fe11e99081190e73d0784e91 DIST util-linux-2.40.4.tar.xz 8848216 BLAKE2B 37c095d0ab97d54dd5a35160dd4d7d3ac683c19c799d57dac3a2e850a824160470e8654fbc77752cad9a9b1198cd1aa6594e8fa66f498c653c8a9f34ef0203e8 SHA512 0024955056ba7b4c54040a917f9919f49692e57ba6d42d17a6c29c1eefe88bf48b1214a545072b71c468829a63a8f15237f49733e9127c134e11126d1e435124 DIST util-linux-2.41.1.tar.sign 833 BLAKE2B ee9d199bf6e073d1c55ee99e9b8e997e59b0c7dd1cf0ee4fa1799540887c473e23a87704a2095c461fd52aea0c765e011504d19c87a681709a96475bd5bc3e35 SHA512 0cf22edee77269142738d6e7587381be3ddc443a1c524e398c1867849297919b27ef18f5bab0b721c890d7cad93cb6dbbe6c89b099d7aa688840711852867101 DIST util-linux-2.41.1.tar.xz 9606156 BLAKE2B 0734e461837d825a8c0f770061cc005cef9238beea15dd900283481bcec66a971492a898cd44581e889fd1af25cf631e16a687d3f0df0a86a8caa15e7f45c935 SHA512 12cf37ab2d62d0378b16a40e0194ef7131ef1ad06737cca3f169cfc04b9da08a4233076c819b30705e8fb2c3b8d91a1d83aac4f036ce58b9cf5928f545e511a2 +DIST util-linux-2.41.2.tar.sign 833 BLAKE2B b2fbccf627769f6d49ada61176be28d3badad6834a5c4d0e90d4838372b6072bdfdfcfb6f144221e59ced68ac9281720f40b20795b878bc29cff1de14ccfb9e7 SHA512 05ecccd24fbeea38a8579907629264550a309cfdfa63fa6eab756c0fc3cd182e9764101731424c1421d1ed950c2c1e41cf210abcd9c2837323c657292cdc9a0d +DIST util-linux-2.41.2.tar.xz 9612488 BLAKE2B 96cf8022a2d727df373f717fcca750e4f3ffd365f50af35cb805fecb7fa39962dea134fab7efdb9dfdc5aa6ac721e758e2ea40254e21d3fd9e9e5e4b2d25aa91 SHA512 696c87e7cf185acc9b4b969ddade6155ea2945ae494eaecfd7b1f35d9607166cb09be79878fb793dd31b4d4dcac8c9be4be76af3886185db7ae8b58c303fb0cf 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 new file mode 100644 index 0000000000..269b1dff4b --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-apps/util-linux/util-linux-2.41.2.ebuild @@ -0,0 +1,467 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{11..14} ) +TMPFILES_OPTIONAL=1 + +inherit toolchain-funcs libtool flag-o-matic bash-completion-r1 \ + pam python-r1 multilib-minimal multiprocessing systemd tmpfiles + +MY_PV="${PV/_/-}" +MY_P="${PN}-${MY_PV}" + +DESCRIPTION="Various useful Linux utilities" +HOMEPAGE="https://www.kernel.org/pub/linux/utils/util-linux/ https://github.com/util-linux/util-linux" + +if [[ ${PV} == 9999 ]] ; then + EGIT_REPO_URI="https://git.kernel.org/pub/scm/utils/util-linux/util-linux.git" + inherit autotools git-r3 +else + VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/karelzak.asc + inherit verify-sig + + if [[ ${PV} != *_rc* ]] ; then + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~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" + SRC_URI+=" verify-sig? ( https://www.kernel.org/pub/linux/utils/util-linux/v${PV:0:4}/${MY_P}.tar.sign )" +fi + +S="${WORKDIR}/${MY_P}" + +LICENSE="GPL-2 GPL-3 LGPL-2.1 BSD-4 MIT public-domain" +SLOT="0" +IUSE="audit build caps +cramfs cryptsetup fdformat +hardlink kill +logger magic ncurses nls pam python +readline rtas selinux slang static-libs +su +suid systemd test tty-helpers udev unicode uuidd" + +# Most lib deps here are related to programs rather than our libs, +# so we rarely need to specify ${MULTILIB_USEDEP}. +RDEPEND=" + virtual/libcrypt:= + audit? ( >=sys-process/audit-2.6:= ) + caps? ( sys-libs/libcap-ng ) + cramfs? ( sys-libs/zlib:= ) + cryptsetup? ( >=sys-fs/cryptsetup-2.1.0 ) + hardlink? ( dev-libs/libpcre2:= ) + ncurses? ( + sys-libs/ncurses:=[unicode(+)?] + magic? ( sys-apps/file:0= ) + ) + nls? ( virtual/libintl[${MULTILIB_USEDEP}] ) + pam? ( sys-libs/pam ) + python? ( ${PYTHON_DEPS} ) + readline? ( sys-libs/readline:0= ) + rtas? ( sys-libs/librtas ) + selinux? ( >=sys-libs/libselinux-2.2.2-r4[${MULTILIB_USEDEP}] ) + slang? ( sys-libs/slang ) + !build? ( + systemd? ( sys-apps/systemd ) + udev? ( virtual/libudev:= ) + ) +" +BDEPEND=" + virtual/pkgconfig + nls? ( + app-text/po4a + sys-devel/gettext + ) + test? ( app-alternatives/bc ) +" +DEPEND=" + ${RDEPEND} + virtual/os-headers + acct-group/root +" +RDEPEND+=" + hardlink? ( !app-arch/hardlink ) + logger? ( !>=app-admin/sysklogd-2.0[logger] ) + kill? ( + !sys-apps/coreutils[kill] + !sys-process/procps[kill] + ) + su? ( + !=sys-apps/shadow-4.7-r2[su] + ) + uuidd? ( + acct-user/uuidd + systemd? ( virtual/tmpfiles ) + ) + !net-wireless/rfkill +" + +if [[ ${PV} == 9999 ]] ; then + # Required for man-page generation + BDEPEND+=" dev-ruby/asciidoctor" +else + BDEPEND+=" verify-sig? ( >=sec-keys/openpgp-keys-karelzak-20230517 )" +fi + +REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} ) su? ( pam )" +RESTRICT="!test? ( test )" + +pkg_pretend() { + if use su && ! use suid ; then + elog "su will be installed as suid despite USE=-suid (bug #832092)" + elog "To use su without suid, see e.g. Portage's suidctl feature." + fi +} + +src_unpack() { + if [[ ${PV} == 9999 ]] ; then + git-r3_src_unpack + return + fi + + # Upstream sign the decompressed .tar + if use verify-sig; then + einfo "Unpacking ${MY_P}.tar.xz ..." + verify-sig_verify_detached - "${DISTDIR}"/${MY_P}.tar.sign \ + < <(xz -cd "${DISTDIR}"/${MY_P}.tar.xz | tee >(tar -xf -)) + assert "Unpack failed" + else + default + fi +} + +src_prepare() { + default + + if use test ; then + # Known-failing tests + local known_failing_tests=( + # Subtest 'options-maximum-size-8192' fails + hardlink/options + + # Fails in sandbox + # re ioctl_ns: https://github.com/util-linux/util-linux/issues/2967 + lsns/ioctl_ns + lsfd/mkfds-inotify + lsfd/mkfds-symlink + lsfd/mkfds-rw-character-device + # Fails with network-sandbox at least in nspawn + lsfd/option-inet + utmp/last-ipv6 + + # Fails with permission errors in nspawn + fadvise/drop + fincore/count + + # Flaky + rename/subdir + + # Permission issues on /dev/random + lsfd/mkfds-eventpoll + lsfd/column-xmode + + # Hangs on some machines + script/replay + ) + + # debug prints confuse the tests which look for a diff + # in output + if has_version "=app-shells/bash-5.3_alpha*" ; then + known_failing_tests+=( + lsfd/column-ainodeclass + lsfd/mkfds-netlink-protocol + lsfd/column-type + lsfd/mkfds-eventfd + lsfd/mkfds-signalfd + lsfd/mkfds-mqueue + lsfd/mkfds-tcp6 + lsfd/mkfds-tcp + lsfd/filter-floating-point-nums + lsfd/mkfds-unix-stream-requiring-sockdiag + lsfd/mkfds-unix-dgram + lsfd/mkfds-directory + lsfd/mkfds-pty + lsfd/mkfds-pipe-no-fork + lsfd/mkfds-unix-stream + lsfd/mkfds-ro-regular-file + lsfd/mkfds-timerfd + lsfd/mkfds-udp + lsfd/mkfds-udp6 + ) + fi + + local known_failing_test + for known_failing_test in "${known_failing_tests[@]}" ; do + einfo "Removing known-failing test: ${known_failing_test}" + rm tests/ts/${known_failing_test} || die + done + fi + + if [[ ${PV} == 9999 ]] ; then + po/update-potfiles + eautoreconf + else + elibtoolize + fi +} + +python_configure() { + local myeconfargs=( + "${commonargs[@]}" + --disable-all-programs + --disable-bash-completion + --without-systemdsystemunitdir + --with-python + --enable-libblkid + --enable-libmount + --enable-pylibmount + ) + + mkdir "${BUILD_DIR}" || die + pushd "${BUILD_DIR}" >/dev/null || die + ECONF_SOURCE="${S}" econf "${myeconfargs[@]}" + popd >/dev/null || die +} + +multilib_src_configure() { + # The scanf test in a run-time test which fails while cross-compiling. + # Blindly assume a POSIX setup since we require libmount, and libmount + # itself fails when the scanf test fails. bug #531856 + tc-is-cross-compiler && export scanf_cv_alloc_modifier=ms + + # bug #485486 + export ac_cv_header_security_pam_misc_h=$(multilib_native_usex pam) + # bug #545042 + export ac_cv_header_security_pam_appl_h=$(multilib_native_usex pam) + + # Undo bad ncurses handling by upstream. Fall back to pkg-config. + # bug #601530 + export NCURSES6_CONFIG=false NCURSES5_CONFIG=false + export NCURSESW6_CONFIG=false NCURSESW5_CONFIG=false + + # Avoid automagic dependency on ppc* + export ac_cv_lib_rtas_rtas_get_sysparm=$(usex rtas) + + # configure args shared by python and non-python builds + local commonargs=( + --localstatedir="${EPREFIX}/var" + --runstatedir="${EPREFIX}/run" + --enable-fs-paths-extra="${EPREFIX}/usr/sbin:${EPREFIX}/bin:${EPREFIX}/usr/bin" + ) + + local myeconfargs=( + "${commonargs[@]}" + --with-bashcompletiondir="$(get_bashcompdir)" + --without-python + $(multilib_native_use_enable suid makeinstall-chown) + $(multilib_native_use_enable suid makeinstall-setuid) + $(multilib_native_use_with readline) + $(multilib_native_use_with slang) + $(multilib_native_usex ncurses "$(use_with magic libmagic)" '--without-libmagic') + $(multilib_native_usex ncurses "$(use_with unicode ncursesw)" '--without-ncursesw') + $(multilib_native_usex ncurses "$(use_with !unicode ncurses)" '--without-ncurses') + $(multilib_native_use_with audit) + $(tc-has-tls || echo --disable-tls) + $(use_enable nls) + $(use_enable nls poman) + $(use_enable unicode widechar) + $(use_enable static-libs static) + $(use_with ncurses tinfo) + $(use_with selinux) + $(multilib_native_use_enable uuidd) + + # TODO: Wire this up (bug #931118) + --without-econf + + # TODO: Wire this up (bug #931297) + # TODO: investigate build failure w/ 2.40.1_rc1 + --disable-liblastlog2 + --disable-pam-lastlog2 + ) + + if use build ; then + myeconfargs+=( + --without-systemd + --without-udev + ) + else + myeconfargs+=( + $(multilib_native_use_with systemd) + $(multilib_native_use_with udev) + ) + fi + + if multilib_is_native_abi ; then + myeconfargs+=( + --disable-chfn-chsh + --disable-login + --disable-newgrp + --disable-nologin + --disable-pylibmount + --disable-raw + --disable-vipw + --enable-agetty + --enable-bash-completion + --enable-line + --enable-partx + --enable-rename + --enable-rfkill + --enable-schedutils + --with-systemdsystemunitdir="$(systemd_get_systemunitdir)" + --with-tmpfilesdir="${EPREFIX}"/usr/lib/tmpfiles.d + $(use_enable caps setpriv) + $(use_enable cramfs) + $(use_enable fdformat) + $(use_enable hardlink) + $(use_enable kill) + $(use_enable logger) + $(use_enable ncurses pg) + $(use_enable su) + $(use_enable tty-helpers mesg) + $(use_enable tty-helpers wall) + $(use_enable tty-helpers write) + $(use_with cryptsetup) + ) + if [[ ${PV} == *9999 ]] ; then + myeconfargs+=( --enable-asciidoc ) + else + # Upstream is shipping pre-generated man-pages for releases + myeconfargs+=( --disable-asciidoc ) + fi + else + myeconfargs+=( + --disable-all-programs + --disable-asciidoc + --disable-bash-completion + --without-systemdsystemunitdir + --disable-poman + + # build libraries + --enable-libuuid + --enable-libblkid + --enable-libsmartcols + --enable-libfdisk + --enable-libmount + + # Support uuidd for non-native libuuid + $(use_enable uuidd libuuid-force-uuidd) + ) + fi + + ECONF_SOURCE="${S}" econf "${myeconfargs[@]}" + + if multilib_is_native_abi && use python ; then + python_foreach_impl python_configure + fi +} + +src_configure() { + append-lfs-flags + + # Workaround for bug #961040 (gcc PR120006) + if tc-is-gcc && [[ $(gcc-major-version) == 15 && $(gcc-minor-version) -lt 2 ]] ; then + append-flags -fno-ipa-pta + fi + + multilib-minimal_src_configure +} + +python_compile() { + pushd "${BUILD_DIR}" >/dev/null || die + emake all + popd >/dev/null || die +} + +multilib_src_compile() { + emake all + + if multilib_is_native_abi && use python ; then + python_foreach_impl python_compile + fi +} + +python_test() { + pushd "${BUILD_DIR}" >/dev/null || die + emake check TS_OPTS="--parallel=$(makeopts_jobs) --nonroot" + popd >/dev/null || die +} + +multilib_src_test() { + emake check TS_OPTS="--parallel=$(makeopts_jobs) --nonroot" + if multilib_is_native_abi && use python ; then + python_foreach_impl python_test + fi +} + +python_install() { + pushd "${BUILD_DIR}" >/dev/null || die + emake DESTDIR="${D}" install + python_optimize + popd >/dev/null || die +} + +multilib_src_install() { + if multilib_is_native_abi && use python ; then + python_foreach_impl python_install + fi + + # This needs to be called AFTER python_install call, bug #689190 + # XXX: -j1 as temporary workaround for bug #931301 + emake DESTDIR="${D}" install -j1 +} + +multilib_src_install_all() { + dodoc AUTHORS NEWS README* Documentation/{TODO,*.txt,releases/*} + + dosym hexdump /usr/bin/hd + newman - hd.1 <<< '.so man1/hexdump.1' + + # e2fsprogs-libs didn't install .la files, and .pc work fine + find "${ED}" -name "*.la" -delete || die + + if use pam ; then + # See https://github.com/util-linux/util-linux/blob/master/Documentation/PAM-configuration.txt + newpamd "${FILESDIR}/runuser.pamd" runuser + newpamd "${FILESDIR}/runuser-l.pamd" runuser-l + + newpamd "${FILESDIR}/su-l.pamd" su-l + fi + + if use su && ! use suid ; then + # Always force suid su, even when USE=-suid, as su is useless + # for the overwhelming-majority case without suid. + # Users who wish to truly have a no-suid su can strip it out + # via e.g. Portage's suidctl or some other hook. + # See bug #832092 + fperms u+s /bin/su + fi + + if use uuidd; then + newinitd "${FILESDIR}/uuidd.initd" uuidd + fi + + # Note: + # Bash completion for "runuser" command is provided by same file which + # would also provide bash completion for "su" command. However, we don't + # use "su" command from this package. + # This triggers a known QA warning which we ignore for now to magically + # keep bash completion for "su" command which shadow package does not + # provide. + + local ver=$(tools/git-version-gen .tarballversion) + local major=$(ver_cut 1 ${ver}) + local minor=$(ver_cut 2 ${ver}) + local release=$(ver_cut 3 ${ver}) + export QA_PKGCONFIG_VERSION="${major}.${minor}.${release:-0}" +} + +pkg_postinst() { + if ! use tty-helpers ; then + elog "The mesg/wall/write tools have been disabled due to USE=-tty-helpers." + fi + + if [[ -z ${REPLACING_VERSIONS} ]] ; then + elog "The agetty util now clears the terminal by default. You" + elog "might want to add --noclear to your /etc/inittab lines." + fi + + if use systemd && use uuidd; then + tmpfiles_process uuidd-tmpfiles.conf + fi +} diff --git a/sdk_container/src/third_party/portage-stable/sys-auth/polkit/files/polkit-126-dbusmock.patch b/sdk_container/src/third_party/portage-stable/sys-auth/polkit/files/polkit-126-dbusmock.patch new file mode 100644 index 0000000000..b11c85b3e0 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-auth/polkit/files/polkit-126-dbusmock.patch @@ -0,0 +1,99 @@ +https://github.com/polkit-org/polkit/commit/690e6972ffe30473dacbfaa81158f5507cef99f6 +https://github.com/polkit-org/polkit/commit/247952425829e41a47e83b2e433b9703713739f5 + +From 690e6972ffe30473dacbfaa81158f5507cef99f6 Mon Sep 17 00:00:00 2001 +From: Jan Rybar +Date: Wed, 1 Oct 2025 13:23:45 +0200 +Subject: [PATCH] DBusMock: CI broken after stop_dbus() removal + +Because stop_dbus() was removed from DBusMock implementation, nothing +actually stops the system bus in testing environment in the wrapper.py +child process, hence the test times out into failure. +Adding simple kill() in atexit() is sufficient, but the +original implementation in DBusMock seemed more graceful, so it was +pulled back in. +--- + test/wrapper.py | 34 +++++++++++++++++++++++++++++++++- + 1 file changed, 33 insertions(+), 1 deletion(-) + +diff --git a/test/wrapper.py b/test/wrapper.py +index 14f4abdb..dc62f702 100755 +--- a/test/wrapper.py ++++ b/test/wrapper.py +@@ -5,6 +5,8 @@ + import os + import subprocess + import sys ++import signal ++import time + + import dbus + import dbus.mainloop.glib +@@ -36,6 +38,36 @@ def setup_test_namespace(data_dir): + print("Python 3.12 is required for os.unshare(), skipping") + sys.exit(77) + ++ ++def stop_dbus(pid: int) -> None: ++ """Stop a D-Bus daemon ++ ++ If DBus daemon is not explicitly killed in the testing environment ++ the test times out and reports as failed. ++ This is a backport of a function dropped from DBusMock source (99c4800e9eed). ++ """ ++ signal.signal(signal.SIGTERM, signal.SIG_IGN) ++ for _ in range(50): ++ try: ++ os.kill(pid, signal.SIGTERM) ++ os.waitpid(pid, os.WNOHANG) ++ except ChildProcessError: ++ break ++ except OSError as e: ++ if e.errno == errno.ESRCH: ++ break ++ raise ++ time.sleep(0.1) ++ else: ++ sys.stderr.write("ERROR: timed out waiting for bus process to terminate\n") ++ os.kill(pid, signal.SIGKILL) ++ try: ++ os.waitpid(pid, 0) ++ except ChildProcessError: ++ pass ++ signal.signal(signal.SIGTERM, signal.SIG_DFL) ++ ++ + if __name__ == "__main__": + parser = argparse.ArgumentParser() + parser.add_argument("test_executable", +@@ -51,7 +83,7 @@ def setup_test_namespace(data_dir): + if args.mock_dbus: + dbus.mainloop.glib.DBusGMainLoop(set_as_default=True) + dbusmock.DBusTestCase.start_system_bus() +- atexit.register(dbusmock.DBusTestCase.stop_dbus, dbusmock.DBusTestCase.system_bus_pid) ++ atexit.register(stop_dbus, dbusmock.DBusTestCase.system_bus_pid) + + print(f"Executing '{args.test_executable}'") + sys.stdout.flush() + +From 247952425829e41a47e83b2e433b9703713739f5 Mon Sep 17 00:00:00 2001 +From: Jan Rybar +Date: Sun, 5 Oct 2025 16:40:30 +0200 +Subject: [PATCH] Missed 'errno' import in wrapper + +--- + test/wrapper.py | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/test/wrapper.py b/test/wrapper.py +index dc62f70..9547720 100755 +--- a/test/wrapper.py ++++ b/test/wrapper.py +@@ -7,6 +7,7 @@ + import sys + import signal + import time ++import errno + + import dbus + import dbus.mainloop.glib diff --git a/sdk_container/src/third_party/portage-stable/sys-auth/polkit/polkit-126-r2.ebuild b/sdk_container/src/third_party/portage-stable/sys-auth/polkit/polkit-126-r2.ebuild index ff2c61d770..0746d9cecf 100644 --- a/sdk_container/src/third_party/portage-stable/sys-auth/polkit/polkit-126-r2.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-auth/polkit/polkit-126-r2.ebuild @@ -83,6 +83,7 @@ QA_MULTILIB_PATHS=" PATCHES=( "${FILESDIR}"/${P}-elogind.patch + "${FILESDIR}"/${P}-dbusmock.patch ) python_check_deps() { diff --git a/sdk_container/src/third_party/portage-stable/sys-auth/sssd/files/sssd-2.9.7-kerberos-1-22.patch b/sdk_container/src/third_party/portage-stable/sys-auth/sssd/files/sssd-2.9.7-kerberos-1-22.patch new file mode 100644 index 0000000000..28475db413 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-auth/sssd/files/sssd-2.9.7-kerberos-1-22.patch @@ -0,0 +1,14 @@ +diff --git a/src/external/pac_responder.m4 b/src/external/pac_responder.m4 +index 90727185b..3501b6b71 100644 +--- a/src/external/pac_responder.m4 ++++ b/src/external/pac_responder.m4 +@@ -23,7 +23,8 @@ then + Kerberos\ 5\ release\ 1.18* | \ + Kerberos\ 5\ release\ 1.19* | \ + Kerberos\ 5\ release\ 1.20* | \ +- Kerberos\ 5\ release\ 1.21*) ++ Kerberos\ 5\ release\ 1.21* | \ ++ Kerberos\ 5\ release\ 1.22*) + krb5_version_ok=yes + AC_MSG_RESULT([yes]) + ;; diff --git a/sdk_container/src/third_party/portage-stable/sys-auth/sssd/sssd-2.11.1.ebuild b/sdk_container/src/third_party/portage-stable/sys-auth/sssd/sssd-2.11.1.ebuild index b1613694ac..525ddb890f 100644 --- a/sdk_container/src/third_party/portage-stable/sys-auth/sssd/sssd-2.11.1.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-auth/sssd/sssd-2.11.1.ebuild @@ -110,6 +110,7 @@ CONFIG_CHECK="~KEYS" PATCHES=( "${FILESDIR}/${PN}-2.8.2-krb5_pw_locked.patch" "${FILESDIR}/${PN}-2.9.6-conditional-python-install.patch" + "${FILESDIR}/${PN}-2.9.7-kerberos-1-22.patch" "${FILESDIR}/${PN}-2.10.0_beta2-fix-systemd-systemconfdir.patch" ) diff --git a/sdk_container/src/third_party/portage-stable/sys-auth/sssd/sssd-2.9.7.ebuild b/sdk_container/src/third_party/portage-stable/sys-auth/sssd/sssd-2.9.7.ebuild index 268d2ff2e1..78043d407a 100644 --- a/sdk_container/src/third_party/portage-stable/sys-auth/sssd/sssd-2.9.7.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-auth/sssd/sssd-2.9.7.ebuild @@ -102,6 +102,7 @@ CONFIG_CHECK="~KEYS" PATCHES=( "${FILESDIR}/${PN}-2.8.2-krb5_pw_locked.patch" "${FILESDIR}/${PN}-2.9.6-conditional-python-install.patch" + "${FILESDIR}/${PN}-2.9.7-kerberos-1-22.patch" ) MULTILIB_WRAPPED_HEADERS=( diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/crossdev/Manifest b/sdk_container/src/third_party/portage-stable/sys-devel/crossdev/Manifest index 502baef8f0..1d6909d039 100644 --- a/sdk_container/src/third_party/portage-stable/sys-devel/crossdev/Manifest +++ b/sdk_container/src/third_party/portage-stable/sys-devel/crossdev/Manifest @@ -1,6 +1,3 @@ -DIST crossdev-20240921.tar.xz 31008 BLAKE2B 9daeabcbeefa32624d71b86c5ddeb1f6bf6ccdf4e6f590bf7517388d4d68b73ae2651ca09d122f128f002568127bd5d7d767db9d6c043e5330b62c3104929848 SHA512 6b7f0bce309d2b0a8fdf9b28cf72098de9dafaf7f338a8308e94e2068cefc15cd2407eee39a9eeb0ea0a1bc46569cedc69a51bb01f140faebe374b660cb1cdf6 -DIST crossdev-20241202.tar.xz 33032 BLAKE2B 74ec859e1ae5f816397349c18f8bd98d8fae2f4de471112d70621767733a6c91dfffaabb33afc4bdabf5bed31b83a0cdf8afaffaba3e0df95f70d43cf249fb94 SHA512 c6a8c534135aa15b2005546d3f006953570de1e54ae3d3170c71bed62f044c2db79412ecde3b91fd85fca92e7c996762ba086db29c6132f6f1d9e9a48f1e79ea -DIST crossdev-20241215.tar.xz 33028 BLAKE2B 3b33284f55fe41a45bfeea1dbc273a828eeceada38d4274f9fcaab06a1d9b342efaa0fcad407bb5a5d921515acc18dac0e4923240e2610a425f7c508b6274ecd SHA512 84960b518767aacc7400cfa32d36b15492dd5e3908c36c0f513470fdfbaedde04d24aecaf0f5020bf69cd7c2095da1cc2961ae090e90340a176292299bbfaf25 -DIST crossdev-20250106.tar.xz 33124 BLAKE2B 45992cd29a6dd48f97d871ba5f4b09b18797c76389a5839c7b02e23b765556561f9b442d594a6bed58ff670e69d4efc27f37cdb1f6bb1722fd1d18e0bc50cc5f SHA512 8d9cdb194f3477dcbe605c4f8126be013e9193acb716e2b12e8f51f826087bbac3f50b44268c150d4e9f86b78182a0b4b323634b0040f0a815dc4a075c662c75 DIST crossdev-20250410.tar.xz 33292 BLAKE2B b4c41757ff705866fb3c7420e10d1325977937c50801600002639984dd39b90ebf4fadbde5a09bae02eba2ca17261db32f5275b1599858b2b7c961e3eb85d82f SHA512 aa6c1657d23c96b6109e49ac517dd9550d731f0af508359be55fa8c641675bd4205223eb492e7c94fd69dd86999124d7d0f4766cf1bc17a3dd953f457bf85c9b DIST crossdev-20250622.tar.xz 33316 BLAKE2B 6e91e757174ce6b5c5f6ec5276725e0432f061ea7c21b0c215998d453deed285c422c1f25c313c80de2d2fe86a00751fbb516f40b63f1bcc25602d3eb0353351 SHA512 bdba3da3724d56b43e0d307b4f9fc00f9680ec541a9397d91f92d237980f7e4b300618e8e8484ee8410ecfd3b0c8854d54057ddb646e2182e407e21c503b9fa9 +DIST crossdev-20251008.tar.xz 33852 BLAKE2B 4b689da747d73eb592cd6a1b0913084e28ab9882762a24c3fe90b845247ad13fad2c5e61a9d05312607716dfa464b7f1647eb731def555010bdc9bcdaaffe2a4 SHA512 414f45ede604dd6a770bec9032619f153d585d03a4f967e34b46253fcfaa7cace495f3ddbb00921b5efa4f2e3a6b68db9e15117559e557048203b273a0d29a3e diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/crossdev/crossdev-20240921.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/crossdev/crossdev-20240921.ebuild deleted file mode 100644 index 3b1ed1fd94..0000000000 --- a/sdk_container/src/third_party/portage-stable/sys-devel/crossdev/crossdev-20240921.ebuild +++ /dev/null @@ -1,40 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI="8" - -if [[ ${PV} == "99999999" ]] ; then - inherit git-r3 - EGIT_REPO_URI=" - https://anongit.gentoo.org/git/proj/crossdev.git - https://github.com/gentoo/crossdev - " -else - SRC_URI="https://dev.gentoo.org/~chewi/distfiles/${CATEGORY}/${PN}/${P}.tar.xz" - KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" -fi - -DESCRIPTION="Gentoo Cross-toolchain generator" -HOMEPAGE="https://wiki.gentoo.org/wiki/Project:Crossdev" - -LICENSE="GPL-2" -SLOT="0" - -RDEPEND=" - >=sys-apps/portage-2.1 - app-shells/bash - sys-apps/gentoo-functions - sys-apps/config-site -" -BDEPEND="app-arch/xz-utils" - -src_install() { - default - - if [[ ${PV} == "99999999" ]] ; then - sed -i "s:@CDEVPV@:${EGIT_VERSION}:" "${ED}"/usr/bin/crossdev || die - fi - - dodir /usr/share/config.site.d - mv "${ED}"/usr/share/config.site{,.d/80crossdev.conf} || die -} diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/crossdev/crossdev-20241202.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/crossdev/crossdev-20241202.ebuild deleted file mode 100644 index 82b2f724c5..0000000000 --- a/sdk_container/src/third_party/portage-stable/sys-devel/crossdev/crossdev-20241202.ebuild +++ /dev/null @@ -1,40 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI="8" - -if [[ ${PV} == "99999999" ]] ; then - inherit git-r3 - EGIT_REPO_URI=" - https://anongit.gentoo.org/git/proj/crossdev.git - https://github.com/gentoo/crossdev - " -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="Gentoo Cross-toolchain generator" -HOMEPAGE="https://wiki.gentoo.org/wiki/Project:Crossdev" - -LICENSE="GPL-2" -SLOT="0" - -RDEPEND=" - >=sys-apps/portage-2.1 - app-shells/bash - sys-apps/gentoo-functions - sys-apps/config-site -" -BDEPEND="app-arch/xz-utils" - -src_install() { - default - - if [[ ${PV} == "99999999" ]] ; then - sed -i "s:@CDEVPV@:${EGIT_VERSION}:" "${ED}"/usr/bin/crossdev || die - fi - - dodir /usr/share/config.site.d - mv "${ED}"/usr/share/config.site{,.d/80crossdev.conf} || die -} diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/crossdev/crossdev-20241215.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/crossdev/crossdev-20241215.ebuild deleted file mode 100644 index 82b2f724c5..0000000000 --- a/sdk_container/src/third_party/portage-stable/sys-devel/crossdev/crossdev-20241215.ebuild +++ /dev/null @@ -1,40 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI="8" - -if [[ ${PV} == "99999999" ]] ; then - inherit git-r3 - EGIT_REPO_URI=" - https://anongit.gentoo.org/git/proj/crossdev.git - https://github.com/gentoo/crossdev - " -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="Gentoo Cross-toolchain generator" -HOMEPAGE="https://wiki.gentoo.org/wiki/Project:Crossdev" - -LICENSE="GPL-2" -SLOT="0" - -RDEPEND=" - >=sys-apps/portage-2.1 - app-shells/bash - sys-apps/gentoo-functions - sys-apps/config-site -" -BDEPEND="app-arch/xz-utils" - -src_install() { - default - - if [[ ${PV} == "99999999" ]] ; then - sed -i "s:@CDEVPV@:${EGIT_VERSION}:" "${ED}"/usr/bin/crossdev || die - fi - - dodir /usr/share/config.site.d - mv "${ED}"/usr/share/config.site{,.d/80crossdev.conf} || die -} diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/crossdev/crossdev-20250106.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/crossdev/crossdev-20251008.ebuild similarity index 79% rename from sdk_container/src/third_party/portage-stable/sys-devel/crossdev/crossdev-20250106.ebuild rename to sdk_container/src/third_party/portage-stable/sys-devel/crossdev/crossdev-20251008.ebuild index 82b2f724c5..5494e3601b 100644 --- a/sdk_container/src/third_party/portage-stable/sys-devel/crossdev/crossdev-20250106.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-devel/crossdev/crossdev-20251008.ebuild @@ -3,6 +3,8 @@ EAPI="8" +inherit toolchain-funcs + if [[ ${PV} == "99999999" ]] ; then inherit git-r3 EGIT_REPO_URI=" @@ -11,7 +13,7 @@ if [[ ${PV} == "99999999" ]] ; then " 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" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" fi DESCRIPTION="Gentoo Cross-toolchain generator" @@ -29,10 +31,14 @@ RDEPEND=" BDEPEND="app-arch/xz-utils" src_install() { + tc-export PKG_CONFIG # Bug 955822 + default if [[ ${PV} == "99999999" ]] ; then sed -i "s:@CDEVPV@:${EGIT_VERSION}:" "${ED}"/usr/bin/crossdev || die + else + sed -i "s:@CDEVPV@:${PV}:" "${ED}"/usr/bin/crossdev || die fi dodir /usr/share/config.site.d 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 58b19de9d1..09200522b9 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 @@ -1,51 +1,51 @@ DIST gcc-10.5.0-musl-patches-2.tar.xz 3452 BLAKE2B 5387e516d07d81477b3f39b8b3bd986bf861d32cd25dc5481c97bd3620d00c918c5661e86857f66dbf28a655401a53e43417f638c443e44cbfdbf5e950caac4d SHA512 86f2ce31cc4fc4fb5a6043fb527bf822d895e1a6220652024f78a1cbd5a962edb6be8dc5f43c32053e075f39bb2350ea8f14e7d57e0473dd2933a7b44676bde5 DIST gcc-10.5.0-patches-7.tar.xz 19600 BLAKE2B b3b168b76ca320f3d2469cff4521554264c45b5bc8e1e1509c53d5ac890233ca6c6a1da8c769d5ef387b524bad905cace4f05d6cd5a13d20a792b425710f0a68 SHA512 96eea70a487ef5648956aea136b0fa82bd88bea1b3ccfcc9b5735da1036e3fe0b3663edb09bbae4c53ddd84466695c70f04a5f8609cb8317a5bc1e91f04add63 DIST gcc-10.5.0.tar.xz 77846412 BLAKE2B 9b71761f4015649514677784443886e59733ac3845f7dfaa4343f46327d36c08c403c444b9e492b870ac0b3f2e3568f972b7700a0ef05a497fb4066079b3143b SHA512 d86dbc18b978771531f4039465e7eb7c19845bf607dc513c97abf8e45ffe1086a99d98f83dfb7b37204af22431574186de9d5ff80c8c3c3a98dbe3983195bffd -DIST gcc-11.5.0-musl-patches-3.tar.xz 4232 BLAKE2B 414e1b7e42cf50012d2d2513fc70f1fd41771f28ee3061fd0ea34e8c5d9ba09f2dc7ccc56ab5cd9fe494ce7a1f57cebf3d208bedbe5f6053a08909267a3d9b9f SHA512 02889bb0b5a80dfd2cf48343598d38b4e4e8e179164697265baefb4acc1cadeac6a1e64d90cc0ef0b5473524cfcd36e6d94c0a15d91ea45d8fb6e3e41c7b4cd9 +DIST gcc-11.5.0-musl-patches-4.tar.xz 5280 BLAKE2B 3e256c29c2e48f20aa4db023b303befaeb53b048b31297fc74050b5e614c81b800ecea3b1e63cbd0b77cab234ce65dfcee476735aa319e8d671cdfe2e290a6c4 SHA512 810baa4023e8e9a01608914c9f397be0e55bcf089b07abb6f3c97d7614abfdd96a577f18f801616978584b17e0b721317fa5b454663fef3cddabe4bcc3442349 DIST gcc-11.5.0-patches-2.tar.xz 14372 BLAKE2B f8e032c9f016f636f20f014a8d6c70ea6fa8620fb6022351a44750c00288d78c6bfe565d19468f172ae7fc66c49eacf8448f028679fc36aaa6f63551faf47391 SHA512 c02c3c78896c4a700670240c6e2765c58abec20d6c2d9f7abfa10b17958193d69b9f81b48544923960de42b0ce9c0a71738574a2462c96589d1c821b0e49b7b5 DIST gcc-11.5.0.tar.xz 82399864 BLAKE2B f4a61faad32aac9e9cb553c1a1a011df0a057f6e2cac92a13cc7e285d08191dd4a117f41a8faac2359c0e2a16f954c7fef354dda9df8c63bff1c5cefda82602c SHA512 88f17d5a5e69eeb53aaf0a9bc9daab1c4e501d145b388c5485ebeb2cc36178fbb2d3e49ebef4a8c007a05e88471a06b97cf9b08870478249f77fbfa3d4abd9a8 DIST gcc-12-20250528.tar.xz 79942548 BLAKE2B 3c500796a34ccd863da451de4084cc90d404c9b8d41caccde11a840bc25cf949669ea9b4d4ae58899962aeb37e14ec947068238787a0019bbf22e62135a001ca SHA512 aa4e0583b308b8ada43c209edee54f97606683e1e7dad8e0250a6c77591e8cb2520258973822a91f3a45261a46a0b2e3783214ae6e004eed90cdf3a2faec479c DIST gcc-12.4.0-musl-patches-1.tar.xz 3068 BLAKE2B e5e39c24934072ea89e4467d0dc5196f3dadfb5ffba0c856d051648a2fbf57d434a57e95227cdf2b8cea45f0f5555aec2bc372d2f6cb0b69efd87831d248d364 SHA512 b9db204845a25be043d76cae826d42eebeeb4f9be7c3049af6fe7601a552bedfd24731156a6a36b4b5e2e2af656a589a5c556d2b0b3ded33ba290a773ee87c62 -DIST gcc-12.4.0-musl-patches-3.tar.xz 3480 BLAKE2B ef230799427c10455b33e36fab1d8df4bb20d0964ca2ba05e0caaefae044ad57473eaa0bfdd499fb0eebde7f870abd9c94b04bd1234a2f4c01fe329dab25ffdb SHA512 b10c061aa135c568e404d23e3f7f14a28bb7d14cd9a5d6a60b13b93a53d7f1d4180c027326754adf3ef1aafb87758371d276435b324c41eac64440619d32922a +DIST gcc-12.4.0-musl-patches-4.tar.xz 4524 BLAKE2B 04a26a9e44b61379caaec7b1f7f002811786a75016fca242b05d9871a51f3350ce4e67f784a7e20d2f8965390a3f01fe5eea3a4c04494d7f8ff1c39e444c0048 SHA512 8f45b0e6da2e30dce01addb4259a0f8002e441019789b45711a6dcb47023c824a89e5f851e816113ef6caa2b491c640006f3fc3a96bc8c6ce9ce7749bf2162a6 DIST gcc-12.4.0-patches-3.tar.xz 14140 BLAKE2B cc73805b2c1f9f6a8d96b2a31d79ce0034ebc3ef1976e78e8ec4f2649c33cef48acee943773de5e03b891128f37e4d72c07d7f4c0bd6d473e484a4b6a9df9f25 SHA512 a93c6bc7d2bd1d7b80bfc6b16c042ac6d3cb6e15cada16041baa48b8023d857b4a1557f4620c46646136daece6566655523010366411aa9fad671398efb03b6f DIST gcc-12.4.0-patches-4.tar.xz 15648 BLAKE2B eec4a40233d396ef4d22901cd06b75a78800531e0c6f3d7d765b0b4ba0bbcf7d966112cfc73289245f209a931432c9d7c276c636c8c19ae79cfbf9b6d4a8fa17 SHA512 fb5d5a0433480dca0752e50448f9d2608c8df8579d9963a31bab15379e14cbc1ff2fcd37da8601b536b219f7b6b4f0364bc2cc8de07cbf468e81aae12910f862 DIST gcc-12.5.0.tar.xz 85897368 BLAKE2B df2f87b407c5572d3590e9868a7597b98bc913669054e517fb2eb9ed82f635df6735a5cab0eab30ebec694e39e552806d837233f0ffe02aa90f5d8b61352c34f SHA512 c76020e4c844b53485502cb8a4e295221c9d37487d66c9f4559031fb14c85de20602e6387310005386cb0ef25e55067d2cfef141423bb445f3b77e7456a23533 DIST gcc-13-20241220.tar.xz 84504500 BLAKE2B 60d6dcdcafa36399a0c0de7fef3a4eb4ca8e0b6780cd31c9eace2965c53115205bf64e8247b833a4375c1e3ad2d94820b5bdc97a4689be95d8ab55a676afa689 SHA512 10fe009dc3b8872b24350e4fb999f71b848bd5a03e48e8292f76e6eca3dbdef8383a3b13b813aada983ebdbe3ecab1642961b3210cd1e0063a86655a44493017 DIST gcc-13-20250807.tar.xz 84575936 BLAKE2B cac8022c6c6d31fa1d741589b9a7c7fd60eb5fb9b44921b1be8beec1bed5846f769ecbdbd7950ed4de23de69c553b22944038edd92f0e76dc24154720a21f015 SHA512 2d5b59e2e18c02d49d8adadb3c62a45700016828a3dd170c276bfccebb6d15e05cf494fa523447a38e04e6b963c35467c8fb6a699da7cd39bb319f639cd9bf56 -DIST gcc-13-20250904.tar.xz 84591864 BLAKE2B 6464ca72d5b452d51e6d39d8907d27636247a57954f39c3fc715800e2541e212c35070f0da731375c2ae73157f2bb8d4b99e7b06809691043583b877ba84a81b SHA512 2d953936416421f23229a6abd85674ee13caf28f597235354417fc4d8d05292b51f0b5438166678bbdd86dbc085178695b87375a5c9bda04aab01578f19a6915 -DIST gcc-13-20250911.tar.xz 84581124 BLAKE2B 84710c019119108fd7d5c0d1f7952b8269202a9905dfdba9e73da61fd02d4ef95d62af0a579d5e3a2e05df28c51cbc76fdbeb4ea9559268176b9a325520f3c6d SHA512 c403eebf11203f4c6f047db43ce33e81ba35fb689d35a2049a3987c8a43c704276b10777920c7b6dc462aa7f54d1c96f6a0d2b19fa1afe93635455307952326a -DIST gcc-13-20250918.tar.xz 84593984 BLAKE2B 9d853b50bc0823e72780004af73cc7f9556cf762352e5ef678d7b26086bf2f669e2b6ca46d93e2750871058f46c5f1064def31d4602d2a1635da89ddd71b6926 SHA512 cfafbba5f5c419d6f33deb4f015008138ab2691e64e37b01fc39ba7db2d5adfee56fdc8996136ab80d7229191cc700c18536949972ffe6d1e8fe095f7b168124 +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.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 -DIST gcc-13.3.0-musl-patches-2.tar.xz 5176 BLAKE2B ab84c6f29cabb72d2f0cf477e6e8aa4450ffdee7fae59b0e66cbdd8c82b3046306b4aa3d5412d3fdb21362547f2f42e5acecc08c08f8acabf68b983898e8267c SHA512 01c92db81e7f757446516fd5544e134b4a7d6379af2d471efa50112fe38a7fb7dc3389b0a580f7f0fa418267e903824ddd8421772e6dc8f39b80c274bcc1d37e +DIST gcc-13.3.0-musl-patches-3.tar.xz 8556 BLAKE2B 6f990c1337c6b52d61a5bfb54c2d17304cd8175470c065dbb81734edf7f6363cae2bc4a515bb941e045b838423cf1f9ad01df375044a6e4696b71da9dba2bc66 SHA512 1bbe4117f0b0dc0dad97fae187559d357872391410b54ae88903cc8a3ec244353b964291efe8e9ba420fd9e43134303b932804afa3450049aa3c30e4d5234123 DIST gcc-13.3.0-patches-2.tar.xz 44440 BLAKE2B ebde73f6c3cd1a5fdc5bbce36414a59dda0925cba9d422d3689fc9c14fece44ee2391982a674411aa99bf47ffd49200f3ce51cc908beb8298adfff78e709a84c SHA512 eb56e0d7e69b5c3cca21f4cbff21c1204cf64ede7e66d689f45cf5ff37de8a59f24eb1f4b30d9c4222fd4126654fe4ffc146851f504761014995553c1202e8fd DIST gcc-13.3.0-patches-5.tar.xz 52820 BLAKE2B 73759dc576aab9e5f66dc7f9a1e8eb1b79a98bdb85bfdac9d611baa82c85a5f433d5031876c6e0ee2f02dd1d874da1661b0dd0f05906b118502f17bfaf16eb1a SHA512 4e6b626a562657f2d928324b412d5033464c09d283ad3a2ebfebbb5245bffb09c2532318325c4c16f4206df5cede6758fe1031c55e64dfb9b9ea08ef2c1e90af DIST gcc-13.3.0-patches-8.tar.xz 57472 BLAKE2B 85976f7313340ce7a2cd9e7fa67e6d69ca377741d435d113148d2b9083ce99ea720ecd0658149300c16a67ef368fcc8893756b86fcce31ba7ca899d509cbb2c9 SHA512 fd70e1309e4c8d321a81be1a228358db00369d1bd3e5d1fc6405c408b95494230cf70004cf1702e8c1e594f028aa35ffa67059f8f91a32699c69ff0de105e06a DIST gcc-13.3.0-patches-9.tar.xz 69080 BLAKE2B 4933533a19c54972b18f91749ea6ac2f9f9963de8ebea1f16bfd7617fdea2e5f1df29b564c090c32ba6c53feee2f1f9107dfcf96e42050fc701f30bfa8a4c606 SHA512 4a8125f5021c5dff526ecd9bebeff7cfa4aa7d6dace23eacbfda54ea5bdc468d17503a0d8072f8561a72c887f8ce294c648fa802210a0d7e04aee8a585968ea3 DIST gcc-13.4.0.tar.xz 88530720 BLAKE2B abbba220652d6e84c59554e754207be91d1250d7751c09163e3166a9da8c7eb4d538785697bb3aea65a8a433e8b82f9a969cf09bb0ecc5aa4a27c964f0acd7e8 SHA512 9b4b83ecf51ef355b868608b8d257b2fa435c06d2719cb86657a7c2c2a0828ff4ce04e9bac1055bbcad8ed5b4da524cafaef654785e23a50233d95d89201e35f DIST gcc-14-20250801.tar.xz 88323948 BLAKE2B 1d47af7340faeed133a1d55bed8a788e4a7e0d12741d80a4345053fae1e95aa57ba4a24361c130080539242e5e5a7f2076827fdd3f2be383ad8d739443c3c885 SHA512 4034c9cfc0eb64239fc2149709d2d9d5055cd11ee5ea2284c61ed3d230f812bc1d8899ead339940b579610b65e1939eaf8ec05a2e26a50cb2c2c5a802a3437ff -DIST gcc-14-20250905.tar.xz 88344720 BLAKE2B 1f7ca2b5052cfbc7b4ff07ba40ade0b07c58941214bff06c1d7798beb805c06d7f3eb98e9f472846093b5c17c559995fe95ccb64f5fbfecc26c30fefd3433dc9 SHA512 2a1e4c5424abef81c2f6d6b67f84c41d0d0447b0e54bd0f15aa4bdd7ce52aa89793f83f2e0bc7ddf6d51a61cdeaf581d3f88dfde482f61e9c970ec031fb77b4e -DIST gcc-14-20250912.tar.xz 88324944 BLAKE2B fa9f2c9d5a1bab9f67a3fb3d6d31b701ca1194235952e0810f5c8d4bd97c37e5a432699dbb7fb572fc9c0b3f7ad18f717e48afc7a6ce2229835f4a3735e5cbf7 SHA512 2bccfb74477bacd985f34773b502bf89e17707e7a7a4633daa7b7cf23dca9424858476ed0f2a26c9297fc588365e21fdde91d4a627c49816ee94aaa329a15de7 -DIST gcc-14-20250919.tar.xz 88338676 BLAKE2B c5b82d9a970b8700d288e7cb5afdb3f7954edf1a7c3572daea467fd7d7b6e78af65cc638c0ab9daf2ab7e9f677736bb1271c7186f52c889f8adb05ee1293aa62 SHA512 a9aa79def7c59cfaf89eb9a782d0d4f690cb82dfd00eccf18eab6b583cea2af676bbc03ce5af292ee417040451a990c05c0db598c5a913d58621ff539196c0a4 +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.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-1.tar.xz 3468 BLAKE2B c576bc2b2c2ce742395ff32451a6a0737bc35ba02109f39249c449840e9cfda6ae709293b04e17ba85c9edc529114f7d77fe55f2ef559020af391c90885df054 SHA512 8b964188ac5cea5fe5ada35871268d836c4d4805affa8a06e43cc32c9a2c5386bf5eff2971ba311678eaa08885854aeda627dd15d292e67154c7691ce6fce49c +DIST gcc-14.3.0-musl-patches-2.tar.xz 6888 BLAKE2B e2f9ce6d445b7ced8f78c18585887422ffdd32356368a456a7cfde5a1854515b32546c1d25a2ab8637ee62d04a2c0bda1afc8d53c44e5c80c12499918c3c18fc SHA512 0b59d228213024cd93d9ffbd4ae5947021db2dc71bd320cc0e4ccf523d39f72e61be25c1a49a343729fe7b9abf7181503de3e650b255d80ab6d969d0de317d19 DIST gcc-14.3.0-patches-4.tar.xz 28116 BLAKE2B 5804f10b40befad1cb9eab4e536377c08aed8c54d3de27f188ae2d52fa7c082a529ad9cb64f9574087afe74e64138c9fc918d653bd2c1d062b8b68d5c7ab640d SHA512 75ee4895efea0131107cf664a0f9fd10f38da0d0f93704e1920778e07f1a860d872a97e1e528f8e1ab754cca25948bb09c444b80cc04f5ae3a516336290bb99c DIST gcc-14.3.0.tar.xz 95212220 BLAKE2B 11c0e549b2e9b4bbbe4cd64782032d2ec783b3db8d4aa538ebd0a0c9760d8e521c32007891a608b081bc6dd353d4eb23030c5e2b9fe9a20c4894a8455dde47b6 SHA512 cb4e3259640721bbd275c723fe4df53d12f9b1673afb3db274c22c6aa457865dccf2d6ea20b4fd4c591f6152e6d4b87516c402015900f06ce9d43af66d3b7a93 -DIST gcc-15-20250906.tar.xz 92313708 BLAKE2B ee0589098a885b42fba147f87c779530a7d56e208d9b04dc053eaedfe481ced14a4887420b4945f5931f07484557518997143a076e75e45df3b1a5a641207558 SHA512 b344c1f20e54eb6e7ef81e521d9cff8839e0145574001f44aba5c034e53711805bf0089441ad1286d032be10679bdd346af05731b7c16631dc56adcfd5500eac -DIST gcc-15-20250913.tar.xz 92315696 BLAKE2B aaefe723bf003a301b13f2bda9ee8a1c81702e8b3d0f1bd0dac8bc7847db9f30b0a2a67991a18bf7a66a07201f012e6bd68930f48f358dc4f5b0831bc36b9a47 SHA512 545448193042308c0cf728aa39084e2a4b1b09150cbc4222b31bfe5e307454ae255b46adf7ffd64ce64df7808ed7a2a09b3392e2ade615ee70e258c937a26d3e -DIST gcc-15-20250920.tar.xz 92330572 BLAKE2B 78c3da1dd698e63c5ef7716655ce499ee21cc83edb5df14a70fd66221089424417c104bf685993121bae1c2126bd1c0c4307b49b080a3d76d4bc0c2ac87a6e70 SHA512 190e212070008f6955ba260f7bccbf722032e4f56119fab419f7873bfcbc6cc27c3949f41981006827bfee0ce783178287e61f89a10e3e0025cecbf74a0ddd23 -DIST gcc-15.1.0-musl-patches-1.tar.xz 3036 BLAKE2B f7e8b794feb3c30252dd3e35b990c8a134d337e285a2778ad5575b04667cf01040bf4187252151cd57097cd6d440851843156c9631736f4f065ca8b7ce2f0678 SHA512 4d3f1660d89484f63ad6c238884415673cdfdabb8833cce2fe114193b52f11b3518b034881024527f6553de93936d15ed707d4d2b1e8221908a08ec67810464b -DIST gcc-15.1.0-patches-5.tar.xz 17476 BLAKE2B 82d08ac11358d9199989a5ee5a9327a6beab07ac309ae024125f0c1bf9a120ed0799bc15730b099aa631166735151bbd5385aa0fdc68958b3e97ee0379764036 SHA512 e218ba883a6be70a4b0a8e987b2b2e165ebc9bf9c295b15399710ed295ca4ea86372b18c3a87e227ef287642c6edbda0d0f9e769ab6c5bbd5975c2d8597deb90 +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.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-20250831.tar.xz 95517600 BLAKE2B e1b09cd8549c66482865ae18582a4f0d1e14424a4bea3e5a0f13930d897d644aca38b3cfcb95c31c7df802ce8f84751a0833bdc32932cfa9446d3831ca7f6a2d SHA512 cb4cf1ca32b642571e5567a632d5923b4459740f726c8da1e2c3acdca1e77850978db6c72e58cc8f9acb16ed5f517bcd5a379640e35d74f7a9093e0d9119181d -DIST gcc-16-20250907.tar.xz 95560696 BLAKE2B 6b152464e39495c34de813bb9f24b42d452d56de77b013a78c5d703d3a21698af8ddbf8a04f96f710dc4e92e43ce6d75c02cdb2f367cb0260fe0e2e21c719909 SHA512 cdd68777f8e54d6808b8f0d408f5717a449490461ffaaab414c75ce9d1419d361e3593acfc80e9d6aaa66dbe5ab874cb658cd18cb4867496b102684bc8df7861 -DIST gcc-16-20250914.tar.xz 95592300 BLAKE2B 2c0c87e7fe6fd7878c978a282ead74650e157265761aa41423f5b170e81759a268bd9af8a7ea3463161007ca43ccac2a04265b958a5a2da52edbd9252c70d617 SHA512 2568b8cf9950e6371547dfef573fd1cb63c5e9c221306c884bc8aa34e2882320c3cfb7761b21d71420cdc6cac4a4086471a96940d3d94c9136173711e875e9ac -DIST gcc-16-20250921.tar.xz 95683036 BLAKE2B eeb0b8fec4973d9ddcd6ade18a612e675de8a427fa7ec75208f6b041bf9da6ddb45c0c7a63cf9dda59b65114b6ad496597e241482ac09a0bfdd4788567f509a9 SHA512 233c124f639d0a65a25998effb7813e96b54e7e5320d7ecbf9fb48eacd6590ea2bc66efbd921da197b30f3f2f5460da6ef99486a51c8f6dd3d7075fe0a70c93c +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.0.0-musl-patches-1.tar.xz 3040 BLAKE2B 18b16357699780eb470cf44a10710281955140103198e0bd55b75e1efe3dbec233689edb11e1b9a62f782f3d97293af4906c18c2c41613b422eda085ee819467 SHA512 5ba580c7c7bb9e62935a5162d44d357cc31185a113acff7498ed7b1ac43fd0a35de7c3de0c87f02fe0be46b5e55b49bb35d1f5cd470058d21a9ea4096a37e13d -DIST gcc-16.0.0-patches-13.tar.xz 22832 BLAKE2B 1685bdd6cbca87af8b4155f97f83dfb0184d42467b3d6294b931c481973bfda7f518a58308d4cef5b13801d2bfe9dbde1eb07ce5a8e25bdd47800ce677bdce8b SHA512 461fe6cef159fb213500a541f0205adf3221bf2891cb4704afb74e338682080bb77eb9a70766e925efb78682a67588cb2c5e2cc5b6d694341178735f47219ff7 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-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-11.5.0.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-11.5.0.ebuild index e528d61209..b566b5dc5b 100644 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-11.5.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-11.5.0.ebuild @@ -10,7 +10,7 @@ TOOLCHAIN_PATCH_DEV="sam" TOOLCHAIN_HAS_TESTS=1 PATCH_GCC_VER="11.5.0" PATCH_VER="2" -MUSL_VER="3" +MUSL_VER="4" MUSL_GCC_VER="11.5.0" PYTHON_COMPAT=( python3_{11..14} ) diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-12.5.0.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-12.5.0.ebuild index 2dede09b93..3556be347d 100644 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-12.5.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-12.5.0.ebuild @@ -10,7 +10,7 @@ TOOLCHAIN_PATCH_DEV="sam" TOOLCHAIN_HAS_TESTS=1 PATCH_GCC_VER="12.4.0" PATCH_VER="4" -MUSL_VER="3" +MUSL_VER="4" MUSL_GCC_VER="12.4.0" PYTHON_COMPAT=( python3_{11..14} ) @@ -42,7 +42,7 @@ if tc_is_live ; then 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 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + KEYWORDS="~alpha amd64 arm arm64 ~hppa ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" :; fi diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.4.1_p20250807.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.4.1_p20250807.ebuild index 6a4cf9dfad..3c4101c659 100644 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.4.1_p20250807.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.4.1_p20250807.ebuild @@ -11,7 +11,7 @@ TOOLCHAIN_HAS_TESTS=1 PATCH_GCC_VER="13.3.0" MUSL_GCC_VER="13.3.0" PATCH_VER="8" -MUSL_VER="2" +MUSL_VER="3" PYTHON_COMPAT=( python3_{11..14} ) if [[ ${PV} == *.9999 ]] ; then diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.4.1_p20250904.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.4.1_p20250925.ebuild similarity index 99% rename from sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.4.1_p20250904.ebuild rename to sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.4.1_p20250925.ebuild index bf6fb6ea9e..d85d2cf0d4 100644 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.4.1_p20250904.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.4.1_p20250925.ebuild @@ -11,7 +11,7 @@ TOOLCHAIN_HAS_TESTS=1 PATCH_GCC_VER="13.3.0" MUSL_GCC_VER="13.3.0" PATCH_VER="9" -MUSL_VER="2" +MUSL_VER="3" PYTHON_COMPAT=( python3_{11..14} ) if [[ ${PV} == *.9999 ]] ; then diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.4.1_p20250911.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.4.1_p20251002.ebuild similarity index 99% rename from sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.4.1_p20250911.ebuild rename to sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.4.1_p20251002.ebuild index bf6fb6ea9e..d85d2cf0d4 100644 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.4.1_p20250911.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.4.1_p20251002.ebuild @@ -11,7 +11,7 @@ TOOLCHAIN_HAS_TESTS=1 PATCH_GCC_VER="13.3.0" MUSL_GCC_VER="13.3.0" PATCH_VER="9" -MUSL_VER="2" +MUSL_VER="3" PYTHON_COMPAT=( python3_{11..14} ) if [[ ${PV} == *.9999 ]] ; then diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.4.1_p20250918.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.4.1_p20251009.ebuild similarity index 99% rename from sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.4.1_p20250918.ebuild rename to sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.4.1_p20251009.ebuild index bf6fb6ea9e..d85d2cf0d4 100644 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.4.1_p20250918.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-13.4.1_p20251009.ebuild @@ -11,7 +11,7 @@ TOOLCHAIN_HAS_TESTS=1 PATCH_GCC_VER="13.3.0" MUSL_GCC_VER="13.3.0" PATCH_VER="9" -MUSL_VER="2" +MUSL_VER="3" PYTHON_COMPAT=( python3_{11..14} ) if [[ ${PV} == *.9999 ]] ; then diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.3.1_p20250801.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.3.1_p20250801.ebuild index 1a2d5cc795..0467110191 100644 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.3.1_p20250801.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.3.1_p20250801.ebuild @@ -10,7 +10,7 @@ TOOLCHAIN_PATCH_DEV="sam" TOOLCHAIN_HAS_TESTS=1 PATCH_GCC_VER="14.3.0" PATCH_VER="4" -MUSL_VER="1" +MUSL_VER="2" MUSL_GCC_VER="14.3.0" PYTHON_COMPAT=( python3_{11..14} ) diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.3.1_p20250912.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.3.1_p20250926.ebuild similarity index 99% rename from sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.3.1_p20250912.ebuild rename to sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.3.1_p20250926.ebuild index 0995b00e4e..bce5cafa90 100644 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.3.1_p20250912.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.3.1_p20250926.ebuild @@ -10,7 +10,7 @@ TOOLCHAIN_PATCH_DEV="sam" TOOLCHAIN_HAS_TESTS=1 PATCH_GCC_VER="14.3.0" PATCH_VER="4" -MUSL_VER="1" +MUSL_VER="2" MUSL_GCC_VER="14.3.0" PYTHON_COMPAT=( python3_{11..14} ) diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.3.1_p20250905.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.3.1_p20251003.ebuild similarity index 99% rename from sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.3.1_p20250905.ebuild rename to sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.3.1_p20251003.ebuild index 0995b00e4e..bce5cafa90 100644 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.3.1_p20250905.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.3.1_p20251003.ebuild @@ -10,7 +10,7 @@ TOOLCHAIN_PATCH_DEV="sam" TOOLCHAIN_HAS_TESTS=1 PATCH_GCC_VER="14.3.0" PATCH_VER="4" -MUSL_VER="1" +MUSL_VER="2" MUSL_GCC_VER="14.3.0" PYTHON_COMPAT=( python3_{11..14} ) diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.3.1_p20250919.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.3.1_p20251010.ebuild similarity index 99% rename from sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.3.1_p20250919.ebuild rename to sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.3.1_p20251010.ebuild index 0995b00e4e..bce5cafa90 100644 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.3.1_p20250919.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-14.3.1_p20251010.ebuild @@ -10,7 +10,7 @@ TOOLCHAIN_PATCH_DEV="sam" TOOLCHAIN_HAS_TESTS=1 PATCH_GCC_VER="14.3.0" PATCH_VER="4" -MUSL_VER="1" +MUSL_VER="2" MUSL_GCC_VER="14.3.0" PYTHON_COMPAT=( python3_{11..14} ) diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.2.0.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.2.0.ebuild index 4a055e721e..7248be0fc2 100644 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.2.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.2.0.ebuild @@ -8,10 +8,10 @@ EAPI=8 TOOLCHAIN_PATCH_DEV="sam" TOOLCHAIN_HAS_TESTS=1 -PATCH_GCC_VER="15.1.0" -PATCH_VER="5" +PATCH_GCC_VER="15.2.0" +PATCH_VER="1" MUSL_VER="1" -MUSL_GCC_VER="15.1.0" +MUSL_GCC_VER="15.2.0" PYTHON_COMPAT=( python3_{11..14} ) if [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.2.1_p20250913.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.2.1_p20250927.ebuild similarity index 96% rename from sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.2.1_p20250913.ebuild rename to sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.2.1_p20250927.ebuild index 8943629097..b893bba584 100644 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.2.1_p20250913.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.2.1_p20250927.ebuild @@ -8,10 +8,10 @@ EAPI=8 TOOLCHAIN_PATCH_DEV="sam" TOOLCHAIN_HAS_TESTS=1 -PATCH_GCC_VER="15.1.0" -PATCH_VER="5" +PATCH_GCC_VER="15.2.0" +PATCH_VER="1" MUSL_VER="1" -MUSL_GCC_VER="15.1.0" +MUSL_GCC_VER="15.2.0" PYTHON_COMPAT=( python3_{11..14} ) if [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.2.1_p20250920.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.2.1_p20251004.ebuild similarity index 96% rename from sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.2.1_p20250920.ebuild rename to sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.2.1_p20251004.ebuild index 8943629097..b893bba584 100644 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.2.1_p20250920.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.2.1_p20251004.ebuild @@ -8,10 +8,10 @@ EAPI=8 TOOLCHAIN_PATCH_DEV="sam" TOOLCHAIN_HAS_TESTS=1 -PATCH_GCC_VER="15.1.0" -PATCH_VER="5" +PATCH_GCC_VER="15.2.0" +PATCH_VER="1" MUSL_VER="1" -MUSL_GCC_VER="15.1.0" +MUSL_GCC_VER="15.2.0" PYTHON_COMPAT=( python3_{11..14} ) if [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.2.1_p20250906.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.2.1_p20251011.ebuild similarity index 96% rename from sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.2.1_p20250906.ebuild rename to sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.2.1_p20251011.ebuild index 8943629097..b893bba584 100644 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.2.1_p20250906.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.2.1_p20251011.ebuild @@ -8,10 +8,10 @@ EAPI=8 TOOLCHAIN_PATCH_DEV="sam" TOOLCHAIN_HAS_TESTS=1 -PATCH_GCC_VER="15.1.0" -PATCH_VER="5" +PATCH_GCC_VER="15.2.0" +PATCH_VER="1" MUSL_VER="1" -MUSL_GCC_VER="15.1.0" +MUSL_GCC_VER="15.2.0" PYTHON_COMPAT=( python3_{11..14} ) if [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.3.9999.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.3.9999.ebuild index 169700d9e8..e4f9afcc48 100644 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.3.9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-15.3.9999.ebuild @@ -8,8 +8,8 @@ EAPI=8 TOOLCHAIN_PATCH_DEV="sam" TOOLCHAIN_HAS_TESTS=1 -PATCH_GCC_VER="15.1.0" -MUSL_GCC_VER="15.1.0" +PATCH_GCC_VER="15.2.0" +MUSL_GCC_VER="15.2.0" PYTHON_COMPAT=( python3_{11..14} ) if [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-16.0.0_p20250831.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-16.0.0_p20250831.ebuild deleted file mode 100644 index 3f23750a5f..0000000000 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-16.0.0_p20250831.ebuild +++ /dev/null @@ -1,56 +0,0 @@ -# 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="13" -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_p20250907.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-16.0.0_p20250928.ebuild similarity index 100% rename from sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-16.0.0_p20250907.ebuild rename to sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-16.0.0_p20250928.ebuild diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-16.0.0_p20250914.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-16.0.0_p20251005.ebuild similarity index 99% rename from sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-16.0.0_p20250914.ebuild rename to sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-16.0.0_p20251005.ebuild index 7376f4a224..24014bd4c1 100644 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-16.0.0_p20250914.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-16.0.0_p20251005.ebuild @@ -9,7 +9,7 @@ EAPI=8 TOOLCHAIN_PATCH_DEV="sam" TOOLCHAIN_HAS_TESTS=1 PATCH_GCC_VER="16.0.0" -PATCH_VER="14" +PATCH_VER="16" MUSL_VER="1" MUSL_GCC_VER="16.0.0" PYTHON_COMPAT=( python3_{11..14} ) diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-16.0.0_p20250921.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-16.0.0_p20251012.ebuild similarity index 99% rename from sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-16.0.0_p20250921.ebuild rename to sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-16.0.0_p20251012.ebuild index 7376f4a224..808255339a 100644 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-16.0.0_p20250921.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gcc/gcc-16.0.0_p20251012.ebuild @@ -9,7 +9,7 @@ EAPI=8 TOOLCHAIN_PATCH_DEV="sam" TOOLCHAIN_HAS_TESTS=1 PATCH_GCC_VER="16.0.0" -PATCH_VER="14" +PATCH_VER="17" MUSL_VER="1" MUSL_GCC_VER="16.0.0" PYTHON_COMPAT=( python3_{11..14} ) diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gettext/Manifest b/sdk_container/src/third_party/portage-stable/sys-devel/gettext/Manifest index 7e5bafb168..d2a94fb89a 100644 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gettext/Manifest +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gettext/Manifest @@ -8,3 +8,5 @@ DIST gettext-0.23.2.tar.xz 11050476 BLAKE2B a59345e2164ef67bab6cb87593a51c6cdba7 DIST gettext-0.23.2.tar.xz.sig 228 BLAKE2B a407f7fb586e300b6ba4032f9e5920864e1f3ba7dfc37fa3d6a48aa4e6e1eaa8238fc8f02ba6ee8e5e4eed9a0206eb61c52cc0f4121bc23d59fc00b3238accd7 SHA512 172f3fb3a7645a2259912d002e7700fa411a9be33b76d2eaacdafe1352cd8dcca23b335d6fbe8b31cbae18f1036be50e27ee7fd9bb2048a991238f99791f54a4 DIST gettext-0.25.1.tar.xz 9930836 BLAKE2B 8a1e512b9bcfa196dcf138e80844766fe35d6c08240e862ac9a728aee378c711e88f7145f9142e7178fa25b6556f1daa6d2de066714cbe26db64dd24fb3516ae SHA512 321c890c2fa535a7ad7a0d4a9fdf08ecd679cfc91bae1a84d54454bcfa5cfc46240be03444c55c0ab9d5b5e1b7d3db2d22ff81d94f595d8c793e370caf4b5c94 DIST gettext-0.25.1.tar.xz.sig 228 BLAKE2B 613be788a4b7ebf1318103b1c2dd0bad0397e4f453de8cfc924915008e43c7c224a435710a3dc19f42ed6f42ff14d124ca04482d1a2ed6bc12dd39b950526685 SHA512 36efdfce828171f062b899a6655939a923294bef0fa664e1c39a519241cecfc09bcbd9471bcc9150e96446e83042cd5a4cc034f8f1f39d02c59bde3cede4417a +DIST gettext-0.26.tar.xz 10061740 BLAKE2B b182e5fdb9fc46868dc39b512ef300c54c8e77a766f2d2de69289f84966d4205f494b3ecedfb30c6df581947172411ae7eb4ccc0bb1f180b67dd8a83803832a8 SHA512 544e41c9390695df1c21542842e9ca027a03cb7d4045d8cd759dec1a3dfb624aae900751b458bdb31d6454b37c40c474a952059b884555a03c7c95d6d0e687b1 +DIST gettext-0.26.tar.xz.sig 228 BLAKE2B 80a960f92ccc7bdc20362fcf01f81aeacdca5d3fa22a02b560d20c097ae146f0f5b83db1b7bb40e34bf5c9ea582ed858183143f1a0de087e681ee32e09c55bc2 SHA512 509949861f0e2f9ff8d99f03d0effe8d5dfc60fd3fa50e24601554b6ca985f0e11c05cf6c61188aceb20cc27e7199f3e4424235d1a0fdcc2d7a0f89a796a06ee diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gettext/gettext-0.23.2.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gettext/gettext-0.23.2.ebuild index 5b164e7b73..5fffd8620d 100644 --- a/sdk_container/src/third_party/portage-stable/sys-devel/gettext/gettext-0.23.2.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gettext/gettext-0.23.2.ebuild @@ -22,7 +22,7 @@ else mirror://gnu/${PN}/${P}.tar.xz verify-sig? ( mirror://gnu/${PN}/${P}.tar.xz.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 # Only libasprintf is under the LGPL (and libintl is in a sep package), diff --git a/sdk_container/src/third_party/portage-stable/sys-devel/gettext/gettext-0.26.ebuild b/sdk_container/src/third_party/portage-stable/sys-devel/gettext/gettext-0.26.ebuild new file mode 100644 index 0000000000..16a4615dd3 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-devel/gettext/gettext-0.26.ebuild @@ -0,0 +1,201 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +# Note: Keep version bumps in sync with dev-libs/libintl. + +EAPI=8 + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/gettext.asc +inherit flag-o-matic java-pkg-opt-2 libtool multilib-minimal verify-sig toolchain-funcs + +DESCRIPTION="GNU locale utilities" +HOMEPAGE="https://www.gnu.org/software/gettext/" + +if [[ ${PV} == *_rc* ]] ; then + SRC_URI=" + https://alpha.gnu.org/gnu/${PN}/${P/_/-}.tar.xz + verify-sig? ( https://alpha.gnu.org/gnu/${PN}/${P/_/-}.tar.xz.sig ) + " + S="${WORKDIR}/${P/_/-}" +else + SRC_URI=" + mirror://gnu/${PN}/${P}.tar.xz + verify-sig? ( mirror://gnu/${PN}/${P}.tar.xz.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" +fi + +# Only libasprintf is under the LGPL (and libintl is in a sep package), +# so put that license behind USE=cxx. +LICENSE="GPL-3+ cxx? ( LGPL-2.1+ )" +SLOT="0" +IUSE="acl +cxx doc emacs git java ncurses nls openmp static-libs xattr" + +# Only runtime goes multilib +# +# Note: The version of libxml2 corresponds to the version bundled via gnulib. +# If the build detects too old of a system version, it will end up falling back +# to the bundled copy (bug #596918). +DEPEND=" + >=virtual/libiconv-0-r1[${MULTILIB_USEDEP}] + >=virtual/libintl-0-r2[${MULTILIB_USEDEP}] + >=dev-libs/libxml2-2.9.3:= + acl? ( virtual/acl ) + ncurses? ( sys-libs/ncurses:= ) + java? ( >=virtual/jdk-1.8:* ) + xattr? ( sys-apps/attr ) +" +RDEPEND=" + ${DEPEND} + git? ( dev-vcs/git ) + java? ( >=virtual/jre-1.8:* ) + nls? ( app-i18n/gnulib-l10n ) +" +BDEPEND=" + git? ( dev-vcs/git ) + verify-sig? ( >=sec-keys/openpgp-keys-gettext-20250608 ) +" +PDEPEND="emacs? ( app-emacs/po-mode )" + +MULTILIB_WRAPPED_HEADERS=( + # only installed for native ABI + /usr/include/gettext-po.h + + /usr/include/autosprintf.h + /usr/include/textstyle.h + /usr/include/textstyle/stdbool.h + /usr/include/textstyle/version.h + /usr/include/textstyle/woe32dll.h +) + +PATCHES=( + "${FILESDIR}"/${PN}-0.21-CVE-2020-12825.patch +) + +QA_SONAME_NO_SYMLINK=".*/preloadable_libintl.so" + +pkg_pretend() { + [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp +} + +pkg_setup() { + [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp + java-pkg-opt-2_pkg_setup +} + +src_prepare() { + java-pkg-opt-2_src_prepare + + default + + # gettext-0.23-no-nls.patch changes gettext-tools/configure.ac and the + # corresponding configure scripts. Avoid regenerating other autotools output. + #touch -c gettext-tools/{aclocal.m4,Makefile.in,config.h.in,configure} || die + # Makefile.am adds a dependency on gettext-tools/configure.ac + #touch -c configure || die + + # TOOD: Investigate why this fails + cat <<-EOF > gettext-tools/tests/autopoint-3 || die + #!/bin/sh + exit 77 + EOF + chmod +x gettext-tools/tests/autopoint-3 || die + + elibtoolize + + if use elibc_musl || use elibc_Darwin; then + eapply "${FILESDIR}"/${PN}-0.21-musl-omit_setlocale_lock.patch + fi +} + +multilib_src_configure() { + # see https://bugs.gentoo.org/955689 + append-flags -Wno-error=format-security + + local myconf=( + # switches common to runtime and top-level + --cache-file="${BUILD_DIR}"/config.cache + #--docdir="\$(datarootdir)/doc/${PF}" + + # Emacs support is now in a separate package + --without-emacs + --without-lispdir + # glib depends on us so avoid circular deps + --with-included-glib + # libcroco depends on glib which ... ^^^ + --with-included-libcroco + # this will _disable_ libunistring (since it is not bundled), + # see bug #326477 + --with-included-libunistring + # Never build libintl since it's in dev-libs/libintl now. + --without-included-gettext + # Never build bundled copy of libxml2. + --without-included-libxml + + --disable-csharp + --without-cvs + + # TODO: needs help finding our libm2pim.so (finds 32-bit version) + --disable-modula2 + # Tests try to access the network + --disable-go + + $(use_enable acl) + $(use_enable cxx c++) + $(use_enable cxx libasprintf) + $(use_with git) + $(multilib_native_use_enable java) + $(use_enable ncurses curses) + $(use_enable nls) + $(use_enable openmp) + $(use_enable static-libs static) + $(use_enable xattr attr) + ) + + local ECONF_SOURCE="${S}" + if ! multilib_is_native_abi ; then + # for non-native ABIs, we build runtime only + ECONF_SOURCE+=/gettext-runtime + fi + + econf "${myconf[@]}" +} + +multilib_src_install() { + emake DESTDIR="${D}" install + + if multilib_is_native_abi ; then + dosym msgfmt /usr/bin/gmsgfmt # bug #43435 + dobin gettext-tools/misc/gettextize + fi + + # 909041 never install libintl which upstream insists on building + rm -f "${ED}"/usr/$(get_libdir)/libintl.* "${ED}"/usr/include/libintl.h +} + +multilib_src_install_all() { + find "${ED}" -type f -name "*.la" -delete || die + + if use java ; then + java-pkg_dojar "${ED}"/usr/share/${PN}/*.jar + rm "${ED}"/usr/share/${PN}/*.jar || die + rm "${ED}"/usr/share/${PN}/*.class || die + if use doc ; then + java-pkg_dojavadoc "${ED}"/usr/share/doc/${PF}/html/javadoc2 + fi + fi + + dodoc AUTHORS ChangeLog NEWS README THANKS + + if use doc ; then + docinto html + dodoc "${ED}"/usr/share/doc/${PF}/*.html + else + rm -rf "${ED}"/usr/share/doc/${PF}/{csharpdoc,examples,javadoc2,javadoc1} + fi + rm "${ED}"/usr/share/doc/${PF}/*.html || die +} + +pkg_preinst() { + java-pkg-opt-2_pkg_preinst +} diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/btrfs-progs/Manifest b/sdk_container/src/third_party/portage-stable/sys-fs/btrfs-progs/Manifest index 19a4f578b1..38db380814 100644 --- a/sdk_container/src/third_party/portage-stable/sys-fs/btrfs-progs/Manifest +++ b/sdk_container/src/third_party/portage-stable/sys-fs/btrfs-progs/Manifest @@ -10,3 +10,5 @@ DIST btrfs-progs-v6.16.1.tar.sign 566 BLAKE2B d2d7078120f781f51abac29ad2d052d7e1 DIST btrfs-progs-v6.16.1.tar.xz 4953240 BLAKE2B 4d734022ddf3ff49a9a409ef387566a0e95bed22d2f2a3517e75e1c53083cd99e78da14afacc55cf49279c4dcdd718a9252ced52b280740f241c9526e21b3561 SHA512 55348627bdc3a0bcf6202ed352c539a9318328b2b9e0ab95526f34dff203d2abb66d70d4620122a6f90b7c1ccb7c646d297be3f6047a14144c867bae0cdc13d4 DIST btrfs-progs-v6.16.tar.sign 566 BLAKE2B 80e30440ac59c034fd4d9d9cec7a5ddd1fd9533e350066d3c92d276e97023ba12b83daa98bb87065ea93a3651a6b51d4195d3cb89f8dae43986674434dffab7e SHA512 21f134616f91e7cf2e863908ae9793c7561f24985ec879056d7dddf6ae3b0766ae83bd5205dc12633b215cae1cce177bb9b8c39c84909fbaf53624b44d3e2dc7 DIST btrfs-progs-v6.16.tar.xz 4949180 BLAKE2B 375c60a93bc5b62d7c3a94d5ed108b81786b27f2beba27d85bcede94a892d84e71b1fe00a1574cc53066fe77bb37408b2b382db4a1664fefcc676c1c3efa1c60 SHA512 b7b89c9f6855f48a369bfcaf647b50cd41fbd6b11e9017a57eace36917c0daec14d93946121640728e0dfcda74941f28f9c31abf694313cb5134156a2c1907f7 +DIST btrfs-progs-v6.17.tar.sign 566 BLAKE2B 9c21f8c001cb9d80c84e42e751ca77713caf25e8b38888c67a4175e45b5d95c58128f7b7d112fed1f694e9eb077d97f6187b6f4e58d4a346dab156949055844a SHA512 e278efedabb51e8522f562f52aa2666727904775625b17e280ea7ded5563620a4a50aad57b165ab53af7594214070472bd2e0692ff1ca8aef76bcc6574d3f365 +DIST btrfs-progs-v6.17.tar.xz 4962800 BLAKE2B 301409e4f0e17c25620070bab0aedc1e57ad672bc7b4e4c1f9db2cd34c6104667800df2979ff456554c94e415be649dd7b8f43859d6539f84a1c050c2db27dd4 SHA512 f8b39f66c4bf7cdaa8eee471f473eb88415435d309da45d45267ecd8d9e401367de881259c038fbc03a57bb661991d11ae74e8409b382dcd5ef98c66811a798a 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 45d288067d..c1ddced8f5 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.16.ebuild b/sdk_container/src/third_party/portage-stable/sys-fs/btrfs-progs/btrfs-progs-6.16.ebuild index c1ddced8f5..d7bfa6e297 100644 --- a/sdk_container/src/third_party/portage-stable/sys-fs/btrfs-progs/btrfs-progs-6.16.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-fs/btrfs-progs/btrfs-progs-6.16.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 new file mode 100644 index 0000000000..45d288067d --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-fs/btrfs-progs/btrfs-progs-6.17.ebuild @@ -0,0 +1,188 @@ +# Copyright 2008-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Please bump with dev-python/btrfsutil + +PYTHON_COMPAT=( python3_{11..14} ) +inherit bash-completion-r1 python-any-r1 udev + +if [[ ${PV} == 9999 ]]; then + EGIT_REPO_URI="https://github.com/kdave/btrfs-progs.git" + EGIT_BRANCH="devel" + WANT_LIBTOOL="none" + inherit autotools git-r3 +else + VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/dsterba.asc + inherit verify-sig + + MY_PV="v${PV/_/-}" + MY_P="${PN}-${MY_PV}" + SRC_URI=" + https://mirrors.edge.kernel.org/pub/linux/kernel/people/kdave/${PN}/${MY_P}.tar.xz + verify-sig? ( https://mirrors.edge.kernel.org/pub/linux/kernel/people/kdave/${PN}/${MY_P}.tar.sign ) + " + S="${WORKDIR}"/${PN}-${MY_PV} + + if [[ ${PV} != *_rc* ]] ; then + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86" + fi +fi + +DESCRIPTION="Btrfs filesystem utilities" +HOMEPAGE="https://btrfs.readthedocs.io/en/latest/" + +LICENSE="GPL-2" +SLOT="0/0" # libbtrfs soname +IUSE="+convert +man experimental reiserfs static static-libs udev +zstd" +# Could support it with just !systemd => eudev, see mdadm, but let's +# see if someone asks for it first. +REQUIRED_USE="static? ( !udev )" + +# Tries to mount repaired filesystems +RESTRICT="test" + +RDEPEND=" + dev-libs/lzo:2= + sys-apps/util-linux:=[static-libs(+)?] + sys-libs/zlib:= + convert? ( + sys-fs/e2fsprogs:= + reiserfs? ( + >=sys-fs/reiserfsprogs-3.6.27 + ) + ) + udev? ( virtual/libudev:= ) + zstd? ( app-arch/zstd:= ) +" +DEPEND=" + ${RDEPEND} + >=sys-kernel/linux-headers-5.10 + convert? ( sys-apps/acl ) + static? ( + dev-libs/lzo:2[static-libs(+)] + sys-apps/util-linux:0[static-libs(+)] + sys-libs/zlib:0[static-libs(+)] + convert? ( + sys-fs/e2fsprogs[static-libs(+)] + reiserfs? ( + >=sys-fs/reiserfsprogs-3.6.27[static-libs(+)] + ) + ) + zstd? ( app-arch/zstd[static-libs(+)] ) + ) +" +BDEPEND=" + virtual/pkgconfig + man? ( + $(python_gen_any_dep 'dev-python/sphinx[${PYTHON_USEDEP}] + dev-python/sphinx-rtd-theme[${PYTHON_USEDEP}]') + ) +" + +python_check_deps() { + python_has_version "dev-python/sphinx[${PYTHON_USEDEP}]" && + python_has_version "dev-python/sphinx-rtd-theme[${PYTHON_USEDEP}]" +} + +if [[ ${PV} == 9999 ]]; then + BDEPEND+=" sys-devel/gnuconfig" +else + BDEPEND+=" verify-sig? ( sec-keys/openpgp-keys-dsterba )" +fi + +pkg_setup() { + : # Prevent python-any-r1_python_setup +} + +if [[ ${PV} != 9999 ]]; then + src_unpack() { + # Upstream sign the decompressed .tar + if use verify-sig; then + einfo "Unpacking ${MY_P}.tar.xz ..." + verify-sig_verify_detached - "${DISTDIR}"/${MY_P}.tar.sign \ + < <(xz -cd "${DISTDIR}"/${MY_P}.tar.xz | tee >(tar -xf -)) + assert "Unpack failed" + else + default + fi + } +fi + +src_prepare() { + default + + if [[ ${PV} == 9999 ]]; then + local AT_M4DIR=config + eautoreconf + + local automakedir="$(autotools_run_tool --at-output automake --print-libdir)" + [[ -e ${automakedir} ]] || die "Could not locate automake directory" + + ln -s "${automakedir}"/install-sh config/install-sh || die + ln -s "${BROOT}"/usr/share/gnuconfig/config.guess config/config.guess || die + ln -s "${BROOT}"/usr/share/gnuconfig/config.sub config/config.sub || die + fi +} + +src_configure() { + local myeconfargs=( + --bindir="${EPREFIX}"/sbin + + --enable-lzo + $(use_enable experimental) + --disable-python + $(use_enable convert) + $(use_enable man documentation) + $(use_enable elibc_glibc backtrace) + $(use_enable static-libs static) + $(use_enable udev libudev) + $(use_enable zstd) + + # Could support libgcrypt, libsodium, libkcapi, openssl, botan + --with-crypto=builtin + --with-convert=ext2$(usev reiserfs ',reiserfs') + ) + + export EXTRA_PYTHON_CFLAGS="${CFLAGS}" + export EXTRA_PYTHON_LDFLAGS="${LDFLAGS}" + + if use man; then + python_setup + fi + + # bash as a temporary workaround for https://github.com/kdave/btrfs-progs/pull/721 + CONFIG_SHELL="${BROOT}"/bin/bash econf "${myeconfargs[@]}" +} + +src_compile() { + emake V=1 all $(usev static) +} + +src_test() { + emake V=1 -j1 -C tests test +} + +src_install() { + local makeargs=( + $(usev static install-static) + ) + + emake V=1 DESTDIR="${D}" install "${makeargs[@]}" + + if use experimental; then + exeinto /sbin + doexe btrfs-corrupt-block + fi + + newbashcomp btrfs-completion btrfs +} + +pkg_postinst() { + udev_reload +} + +pkg_postrm() { + udev_reload +} diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/cryptsetup/cryptsetup-2.8.1.ebuild b/sdk_container/src/third_party/portage-stable/sys-fs/cryptsetup/cryptsetup-2.8.1.ebuild index f75a360ab7..e35551b218 100644 --- a/sdk_container/src/third_party/portage-stable/sys-fs/cryptsetup/cryptsetup-2.8.1.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-fs/cryptsetup/cryptsetup-2.8.1.ebuild @@ -14,7 +14,7 @@ S="${WORKDIR}"/${P/_/-} LICENSE="GPL-2+" SLOT="0/12" # libcryptsetup.so version if [[ ${PV} != *_rc* ]] ; then - 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" fi CRYPTO_BACKENDS="gcrypt kernel nettle +openssl" diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/e2fsprogs/e2fsprogs-1.47.3-r1.ebuild b/sdk_container/src/third_party/portage-stable/sys-fs/e2fsprogs/e2fsprogs-1.47.3-r1.ebuild index fd854f6d1d..9b4d171879 100644 --- a/sdk_container/src/third_party/portage-stable/sys-fs/e2fsprogs/e2fsprogs-1.47.3-r1.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-fs/e2fsprogs/e2fsprogs-1.47.3-r1.ebuild @@ -11,7 +11,7 @@ SRC_URI="https://www.kernel.org/pub/linux/kernel/people/tytso/e2fsprogs/v${PV}/$ LICENSE="GPL-2 BSD" 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" IUSE="archive cron fuse nls static-libs test +tools" RESTRICT="!test? ( test )" diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/fuse/fuse-3.17.4.ebuild b/sdk_container/src/third_party/portage-stable/sys-fs/fuse/fuse-3.17.4.ebuild index 5eb9a1dd58..353fc68f5c 100644 --- a/sdk_container/src/third_party/portage-stable/sys-fs/fuse/fuse-3.17.4.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-fs/fuse/fuse-3.17.4.ebuild @@ -3,7 +3,7 @@ EAPI=8 -PYTHON_COMPAT=( python3_{10..13} ) +PYTHON_COMPAT=( python3_{11..13} ) inherit flag-o-matic meson-multilib udev python-any-r1 DESCRIPTION="An interface for filesystems implemented in userspace" @@ -12,7 +12,7 @@ SRC_URI="https://github.com/libfuse/libfuse/releases/download/${P}/${P}.tar.gz" LICENSE="GPL-2 LGPL-2.1" SLOT="3/4" -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="+suid test" RESTRICT="test" PROPERTIES="test_privileged" diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/inotify-tools/inotify-tools-4.25.9.0.ebuild b/sdk_container/src/third_party/portage-stable/sys-fs/inotify-tools/inotify-tools-4.25.9.0.ebuild index 46e7baebb7..f5826d1136 100644 --- a/sdk_container/src/third_party/portage-stable/sys-fs/inotify-tools/inotify-tools-4.25.9.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-fs/inotify-tools/inotify-tools-4.25.9.0.ebuild @@ -14,7 +14,7 @@ SRC_URI=" LICENSE="GPL-2" SLOT="0" -KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~mips ~ppc64 ~riscv ~sparc ~x86" +KEYWORDS="amd64 arm arm64 ~hppa ~mips ~ppc64 ~riscv ~sparc x86" IUSE="doc" BDEPEND=" diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/xfsprogs/xfsprogs-6.16.0.ebuild b/sdk_container/src/third_party/portage-stable/sys-fs/xfsprogs/xfsprogs-6.16.0.ebuild index a7bdebcbf2..6e38156f7d 100644 --- a/sdk_container/src/third_party/portage-stable/sys-fs/xfsprogs/xfsprogs-6.16.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-fs/xfsprogs/xfsprogs-6.16.0.ebuild @@ -11,7 +11,7 @@ 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" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" IUSE="icu libedit nls selinux static-libs" RDEPEND=" diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/zfs-kmod/Manifest b/sdk_container/src/third_party/portage-stable/sys-fs/zfs-kmod/Manifest index 26a0d3553f..afe0a2c2a7 100644 --- a/sdk_container/src/third_party/portage-stable/sys-fs/zfs-kmod/Manifest +++ b/sdk_container/src/third_party/portage-stable/sys-fs/zfs-kmod/Manifest @@ -12,3 +12,5 @@ DIST zfs-2.3.4.tar.gz 34386899 BLAKE2B e7619445a9138475e51e1578cb4e85032570830fa DIST zfs-2.3.4.tar.gz.asc 858 BLAKE2B 2537afa40b48c07b8ad61a4f6973e40a78b5863afbb6b75674fb7a5950ba2dda22dfa93a180190332d234b0b2e2ce14ed61cb34bc0f56e609dad3cdb805ab5c2 SHA512 cc50fb915d4e8a7eb894bdf919940a8c68828e48a5e1f2a08b08a5e75c0eb8a9cd4feaa84742b65d6b2d85ee839ac2b7d565ed7958006ff079d751145463243b DIST zfs-2.4.0-rc1.tar.gz 34294259 BLAKE2B 262a510a356c515692d03ce2f5bdb61bb051d04ac79cc7723a2944e9f99f5514e2749752901e202f6bb8edd560e3639b845e790d9b861271265fe04cbe0178ce SHA512 9e8a95d98c311ee6efc8a2aa3f6e97a1573f247bbdbf9f11e0f981f8b768b45337b229d3c17fe7bc40bb67d8f0cc0fc77ab4138c29d3ae3d86eaff54bad84700 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 diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/zfs-kmod/metadata.xml b/sdk_container/src/third_party/portage-stable/sys-fs/zfs-kmod/metadata.xml index deb3879f4c..247b43ed68 100644 --- a/sdk_container/src/third_party/portage-stable/sys-fs/zfs-kmod/metadata.xml +++ b/sdk_container/src/third_party/portage-stable/sys-fs/zfs-kmod/metadata.xml @@ -2,8 +2,8 @@ - sam@gentoo.org - Sam James + mschiff@gentoo.org + Marc Schiffbauer Prevents upgrading to an unsupported kernel version when combined with USE=dist-kernel diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/zfs-kmod/zfs-kmod-9999.ebuild b/sdk_container/src/third_party/portage-stable/sys-fs/zfs-kmod/zfs-kmod-2.4.0_rc2.ebuild similarity index 99% rename from sdk_container/src/third_party/portage-stable/sys-fs/zfs-kmod/zfs-kmod-9999.ebuild rename to sdk_container/src/third_party/portage-stable/sys-fs/zfs-kmod/zfs-kmod-2.4.0_rc2.ebuild index 6f130dc298..396cf47a31 100644 --- a/sdk_container/src/third_party/portage-stable/sys-fs/zfs-kmod/zfs-kmod-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-fs/zfs-kmod/zfs-kmod-2.4.0_rc2.ebuild @@ -9,7 +9,7 @@ inherit autotools flag-o-matic linux-mod-r1 multiprocessing DESCRIPTION="Linux ZFS kernel module for sys-fs/zfs" HOMEPAGE="https://github.com/openzfs/zfs" -MODULES_KERNEL_MAX=6.16 +MODULES_KERNEL_MAX=6.17 MODULES_KERNEL_MIN=4.18 if [[ ${PV} == 9999 ]] ; then 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 26a0d3553f..afe0a2c2a7 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 @@ -12,3 +12,5 @@ DIST zfs-2.3.4.tar.gz 34386899 BLAKE2B e7619445a9138475e51e1578cb4e85032570830fa DIST zfs-2.3.4.tar.gz.asc 858 BLAKE2B 2537afa40b48c07b8ad61a4f6973e40a78b5863afbb6b75674fb7a5950ba2dda22dfa93a180190332d234b0b2e2ce14ed61cb34bc0f56e609dad3cdb805ab5c2 SHA512 cc50fb915d4e8a7eb894bdf919940a8c68828e48a5e1f2a08b08a5e75c0eb8a9cd4feaa84742b65d6b2d85ee839ac2b7d565ed7958006ff079d751145463243b DIST zfs-2.4.0-rc1.tar.gz 34294259 BLAKE2B 262a510a356c515692d03ce2f5bdb61bb051d04ac79cc7723a2944e9f99f5514e2749752901e202f6bb8edd560e3639b845e790d9b861271265fe04cbe0178ce SHA512 9e8a95d98c311ee6efc8a2aa3f6e97a1573f247bbdbf9f11e0f981f8b768b45337b229d3c17fe7bc40bb67d8f0cc0fc77ab4138c29d3ae3d86eaff54bad84700 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 diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/zfs/files/2.1.5-dracut-zfs-missing.patch b/sdk_container/src/third_party/portage-stable/sys-fs/zfs/files/2.1.5-dracut-zfs-missing.patch index 077bcd55f6..7da1215bc7 100644 --- a/sdk_container/src/third_party/portage-stable/sys-fs/zfs/files/2.1.5-dracut-zfs-missing.patch +++ b/sdk_container/src/third_party/portage-stable/sys-fs/zfs/files/2.1.5-dracut-zfs-missing.patch @@ -1,5 +1,8 @@ https://github.com/openzfs/zfs/commit/ebbfc6cb853d2d2f3f0671362d5ff5588be39e9d https://github.com/openzfs/zfs/issues/13595 + +This patch is required because of the order in which we generate the initramfs +after installing modules. --- b/contrib/dracut/90zfs/module-setup.sh.in +++ a/contrib/dracut/90zfs/module-setup.sh.in @@ -19,7 +19,7 @@ diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/zfs/files/zfs-2.1.11-gentoo.patch b/sdk_container/src/third_party/portage-stable/sys-fs/zfs/files/zfs-2.1.11-gentoo.patch new file mode 100644 index 0000000000..53c5f27b3b --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-fs/zfs/files/zfs-2.1.11-gentoo.patch @@ -0,0 +1,24 @@ +Hack to pass the full linux-mod-r1 toolchain to make during ./configure. +Not needed at build time given can pass it normally then. + +Eclass has workarounds, compiler/version matching, and its own set of +user variables which creates disparity between ebuilds if not used. + +For the (normal) alternative: KERNEL_{CC,LD} alone is insufficient, +but combining with KERNEL_LLVM=1 when CC_IS_CLANG will allow it +to work for *most* people (will likely still need KERNEL_LD from +linux-mod-r1, or ThinLTO kernels may fail with sandbox violations). + +Note KERNEL_* also cause failure if they contain spaces. + +https://bugs.gentoo.org/865157 +--- a/config/kernel.m4 ++++ b/config/kernel.m4 +@@ -646,6 +646,5 @@ + AC_TRY_COMMAND([ + KBUILD_MODPOST_NOFINAL="$5" KBUILD_MODPOST_WARN="$6" +- make modules -k -j$TEST_JOBS ${KERNEL_CC:+CC=$KERNEL_CC} +- ${KERNEL_LD:+LD=$KERNEL_LD} ${KERNEL_LLVM:+LLVM=$KERNEL_LLVM} ++ make modules -k -j$TEST_JOBS '${GENTOO_MAKEARGS_EVAL}' + CONFIG_MODULES=y CFLAGS_MODULE=-DCONFIG_MODULES + -C $LINUX_OBJ $ARCH_UM M=$PWD/$1 >$1/build.log 2>&1]) 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 b2f96b1a1b..51fb5208f9 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 @@ -2,10 +2,11 @@ - sam@gentoo.org - Sam James + mschiff@gentoo.org + Marc Schiffbauer + Prevents upgrading to an unsupported kernel version when combined with USE=dist-kernel Disable dependency on sys-fs/zfs-kmod under the assumption that ZFS is part of the kernel source tree Don't install python scripts (arcstat, dbufstat etc) and avoid dependency on dev-lang/python Install zfs_key pam module, for automatically loading zfs encryption keys for home datasets @@ -14,7 +15,7 @@ https://github.com/openzfs/zfs/issues - https://openzfs.github.io/openzfs-docs + https://openzfs.github.io/openzfs-docs/ openzfs/zfs diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/zfs/zfs-2.4.0_rc2.ebuild b/sdk_container/src/third_party/portage-stable/sys-fs/zfs/zfs-2.4.0_rc2.ebuild new file mode 100644 index 0000000000..6ab879ece7 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-fs/zfs/zfs-2.4.0_rc2.ebuild @@ -0,0 +1,312 @@ +# 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..13} ) + +inherit autotools bash-completion-r1 dist-kernel-utils distutils-r1 flag-o-matic \ + linux-info pam systemd udev usr-ldscript + +DESCRIPTION="Userland utilities for ZFS Linux kernel module" +HOMEPAGE="https://github.com/openzfs/zfs" + +if [[ ${PV} == "9999" ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/openzfs/zfs.git" +else + VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/openzfs.asc + inherit verify-sig + + MY_P="${P/_rc/-rc}" + SRC_URI="https://github.com/openzfs/${PN}/releases/download/${MY_P}/${MY_P}.tar.gz" + SRC_URI+=" verify-sig? ( https://github.com/openzfs/${PN}/releases/download/${MY_P}/${MY_P}.tar.gz.asc )" + S="${WORKDIR}/${MY_P}" + + if [[ ${PV} != *_rc* ]]; then + KEYWORDS="~amd64 ~arm64 ~loong ~ppc64 ~riscv ~sparc" + fi +fi + +LICENSE="BSD-2 CDDL MIT" +# just libzfs soname major for now. +# possible candidates: libuutil, libzpool, libnvpair. Those do not provide stable abi, but are considered. +# see libsoversion_check() below as well +SLOT="0/6" +IUSE="custom-cflags debug dist-kernel kernel-builtin minimal nls pam python +rootfs selinux test-suite unwind" + +DEPEND=" + dev-libs/openssl:= + net-libs/libtirpc:= + sys-apps/util-linux + 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 + nls? ( sys-devel/gettext ) + python? ( + ${DISTUTILS_DEPS} + || ( + dev-python/packaging[${PYTHON_USEDEP}] + dev-python/distlib[${PYTHON_USEDEP}] + ) + ) +" + +if [[ ${PV} != "9999" ]] ; then + BDEPEND+=" verify-sig? ( sec-keys/openpgp-keys-openzfs )" +fi + +# awk is used for some scripts, completions, and the Dracut module +RDEPEND=" + ${DEPEND} + !kernel-builtin? ( ~sys-fs/zfs-kmod-${PV}:= ) + !prefix? ( virtual/udev ) + app-alternatives/awk + sys-fs/udev-init-scripts + dist-kernel? ( virtual/dist-kernel:= ) + rootfs? ( + app-alternatives/cpio + app-misc/pax-utils + ) + selinux? ( sec-policy/selinux-zfs ) + test-suite? ( + app-shells/ksh + sys-apps/kmod[tools] + sys-apps/util-linux + app-alternatives/bc + sys-block/parted + sys-fs/lsscsi + sys-fs/mdadm + sys-process/procps + ) +" + +# PDEPEND in this form is needed to trick portage suggest +# enabling dist-kernel if only 1 package have it set, without suggesting to disable +PDEPEND="dist-kernel? ( ~sys-fs/zfs-kmod-${PV}[dist-kernel] )" + +REQUIRED_USE=" + !minimal? ( ${PYTHON_REQUIRED_USE} ) + python? ( !minimal ) + test-suite? ( !minimal ) +" + +RESTRICT="test" + +PATCHES=() + +pkg_pretend() { + use rootfs || return 0 + + if has_version virtual/dist-kernel && ! use dist-kernel; then + ewarn "You have virtual/dist-kernel installed, but" + ewarn "USE=\"dist-kernel\" is not enabled for ${CATEGORY}/${PN}" + ewarn "It's recommended to globally enable dist-kernel USE flag" + ewarn "to auto-trigger initrd rebuilds with kernel updates" + fi +} + +pkg_setup() { + if use kernel_linux; then + linux-info_pkg_setup + + if ! linux_config_exists; then + ewarn "Cannot check the linux kernel configuration." + else + if use test-suite; then + if linux_chkconfig_present BLK_DEV_LOOP; then + eerror "The ZFS test suite requires loop device support enabled." + eerror "Please enable it:" + eerror " CONFIG_BLK_DEV_LOOP=y" + eerror "in /usr/src/linux/.config or" + eerror " Device Drivers --->" + eerror " Block devices --->" + eerror " [X] Loopback device support" + fi + fi + fi + fi +} + +libsoversion_check() { + local bugurl libzfs_sover + bugurl="https://bugs.gentoo.org/enter_bug.cgi?form_name=enter_bug&product=Gentoo+Linux&component=Current+packages" + + libzfs_sover="$(grep 'libzfs_la_LDFLAGS += -version-info' lib/libzfs/Makefile.am \ + | grep -Eo '[0-9]+:[0-9]+:[0-9]+')" + libzfs_sover="${libzfs_sover%%:*}" + + if [[ ${libzfs_sover} -ne $(ver_cut 2 ${SLOT}) ]]; then + echo + eerror "BUG BUG BUG BUG BUG BUG BUG BUG" + eerror "ebuild subslot does not match libzfs soversion!" + eerror "libzfs soversion: ${libzfs_sover}" + eerror "ebuild value: $(ver_cut 2 ${SLOT})" + eerror "This is a bug in the ebuild, please use the following URL to report it" + eerror "${bugurl}&short_desc=${CATEGORY}%2F${P}+update+subslot" + echo + # we want to abort for releases, but just print a warning for live ebuild + # to keep package installable + [[ ${PV} == "9999" ]] || die + fi +} + +src_prepare() { + default + libsoversion_check + + # Run unconditionally (bug #792627) + eautoreconf + + if [[ ${PV} != "9999" ]]; then + # Set revision number + sed -i "s/\(Release:\)\(.*\)1/\1\2${PR}-gentoo/" META || die "Could not set Gentoo release" + fi + + if use python; then + pushd contrib/pyzfs >/dev/null || die + distutils-r1_src_prepare + popd >/dev/null || die + fi + + # Tries to use /etc/conf.d which we reserve for OpenRC + sed -i -e '/EnvironmentFile/d' etc/systemd/system/zfs*.in || die + + # prevent errors showing up on zfs-mount stop, #647688 + # openrc will unmount all filesystems anyway. + sed -i "/^ZFS_UNMOUNT=/ s/yes/no/" "etc/default/zfs.in" || die +} + +src_configure() { + use custom-cflags || strip-flags + use minimal || python_setup + + local myconf=( + --bindir="${EPREFIX}/bin" + --enable-shared + --enable-sysvinit + --localstatedir="${EPREFIX}/var" + --sbindir="${EPREFIX}/sbin" + --with-config=user + --with-dracutdir="${EPREFIX}/usr/lib/dracut" + --with-linux="${KV_DIR}" + --with-linux-obj="${KV_OUT_DIR}" + --with-udevdir="$(get_udevdir)" + --with-pamconfigsdir="${EPREFIX}/unwanted_files" + --with-pammoduledir="$(getpam_mod_dir)" + --with-systemdunitdir="$(systemd_get_systemunitdir)" + --with-systemdpresetdir="$(systemd_get_systempresetdir)" + --with-vendor=gentoo + # Building zfs-mount-generator.c on musl breaks as strndupa + # isn't available. But systemd doesn't support musl anyway, so + # just disable building it. + # UPDATE: it has been fixed since, + # https://github.com/openzfs/zfs/commit/1f19826c9ac85835cbde61a7439d9d1fefe43a4a + # but we still leave it as this for now. + $(use_enable !elibc_musl systemd) + $(use_enable debug) + $(use_enable nls) + $(use_enable pam) + $(use_enable python pyzfs) + $(use_with unwind libunwind) + --disable-static + $(usex minimal --without-python --with-python="${EPYTHON}") + ) + + econf "${myconf[@]}" +} + +src_compile() { + default + if use python; then + pushd contrib/pyzfs >/dev/null || die + distutils-r1_src_compile + popd >/dev/null || die + fi +} + +src_install() { + default + + gen_usr_ldscript -a nvpair uutil zfsbootenv zfs zfs_core zpool + + use pam && { rm -rv "${ED}/unwanted_files" || die ; } + + use test-suite || { rm -r "${ED}"/usr/share/zfs/{test-runner,zfs-tests,runfiles,*sh} || die ; } + + find "${ED}" -name '*.la' -delete || die + + dobashcomp contrib/bash_completion.d/zfs + bashcomp_alias zfs zpool + + # strip executable bit from conf.d file + fperms 0644 /etc/conf.d/zfs + + if use python; then + pushd contrib/pyzfs >/dev/null || die + distutils-r1_src_install + popd >/dev/null || die + fi + + # enforce best available python implementation + use minimal || python_fix_shebang "${ED}/bin" +} + +pkg_postinst() { + udev_reload + + # we always need userspace utils in sync with zfs-kmod + # so force initrd update for userspace as well, to avoid + # situation when zfs-kmod trigger initrd rebuild before + # userspace component is rebuilt + # KV_* variables are provided by linux-info.eclass + if [[ -z ${ROOT} ]] && use dist-kernel; then + dist-kernel_reinstall_initramfs "${KV_DIR}" "${KV_FULL}" + fi + + if use rootfs; then + if ! has_version sys-kernel/genkernel && ! has_version sys-kernel/dracut; then + elog "Root on zfs requires an initramfs to boot" + elog "The following packages provide one and are tested on a regular basis:" + elog " sys-kernel/dracut ( preferred, module maintained by zfs developers )" + elog " sys-kernel/genkernel" + fi + fi + + if systemd_is_booted || has_version sys-apps/systemd; then + einfo "Please refer to $(systemd_get_systempresetdir)/50-zfs.preset" + einfo "for default zfs systemd service configuration" + else + [[ -e "${EROOT}/etc/runlevels/boot/zfs-import" ]] || \ + einfo "You should add zfs-import to the boot runlevel." + [[ -e "${EROOT}/etc/runlevels/boot/zfs-load-key" ]] || \ + einfo "You should add zfs-load-key to the boot runlevel." + [[ -e "${EROOT}/etc/runlevels/boot/zfs-mount" ]]|| \ + einfo "You should add zfs-mount to the boot runlevel." + [[ -e "${EROOT}/etc/runlevels/default/zfs-share" ]] || \ + einfo "You should add zfs-share to the default runlevel." + [[ -e "${EROOT}/etc/runlevels/default/zfs-zed" ]] || \ + einfo "You should add zfs-zed to the default runlevel." + fi +} + +pkg_postrm() { + udev_reload +} diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/zfs/zfs-9999.ebuild b/sdk_container/src/third_party/portage-stable/sys-fs/zfs/zfs-9999.ebuild index 0f03de4f37..97c08351ca 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 @@ -10,13 +10,20 @@ EAPI=8 DISTUTILS_OPTIONAL=1 DISTUTILS_USE_PEP517=setuptools -PYTHON_COMPAT=( python3_{10..13} ) +PYTHON_COMPAT=( python3_{10..14} ) -inherit autotools bash-completion-r1 dist-kernel-utils distutils-r1 flag-o-matic linux-info pam systemd udev usr-ldscript +MODULES_INITRAMFS_IUSE=+initramfs +MODULES_OPTIONAL_IUSE=+modules -DESCRIPTION="Userland utilities for ZFS Linux kernel module" +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" @@ -29,17 +36,22 @@ else 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" +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 kernel-builtin minimal nls pam python +rootfs selinux test-suite unwind" +IUSE="custom-cflags debug dist-kernel minimal nls pam python +rootfs selinux test-suite unwind" DEPEND=" dev-libs/openssl:= @@ -58,6 +70,7 @@ DEPEND=" BDEPEND=" app-alternatives/awk virtual/pkgconfig + modules? ( dev-lang/perl ) nls? ( sys-devel/gettext ) python? ( ${DISTUTILS_DEPS} @@ -70,12 +83,18 @@ BDEPEND=" if [[ ${PV} != "9999" ]] ; then BDEPEND+=" verify-sig? ( sec-keys/openpgp-keys-openzfs )" + + IUSE+=" +dist-kernel-cap" + RDEPEND=" + dist-kernel-cap? ( dist-kernel? ( + /dev/null || die distutils-r1_src_compile @@ -244,7 +307,12 @@ src_compile() { } src_install() { - default + if use modules; then + emake "${MODULES_MAKEARGS[@]}" DESTDIR="${ED}" install + modules_post_process + else + default + fi gen_usr_ldscript -a nvpair uutil zfsbootenv zfs zfs_core zpool @@ -270,16 +338,70 @@ src_install() { 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 - # we always need userspace utils in sync with zfs-kmod - # so force initrd update for userspace as well, to avoid - # situation when zfs-kmod trigger initrd rebuild before - # userspace component is rebuilt - # KV_* variables are provided by linux-info.eclass - if [[ -z ${ROOT} ]] && use dist-kernel; then - dist-kernel_reinstall_initramfs "${KV_DIR}" "${KV_FULL}" + 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 diff --git a/sdk_container/src/third_party/portage-stable/sys-kernel/dracut/dracut-108-r3.ebuild b/sdk_container/src/third_party/portage-stable/sys-kernel/dracut/dracut-108-r4.ebuild similarity index 98% rename from sdk_container/src/third_party/portage-stable/sys-kernel/dracut/dracut-108-r3.ebuild rename to sdk_container/src/third_party/portage-stable/sys-kernel/dracut/dracut-108-r4.ebuild index 7c6805122a..0129455c14 100644 --- a/sdk_container/src/third_party/portage-stable/sys-kernel/dracut/dracut-108-r3.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-kernel/dracut/dracut-108-r4.ebuild @@ -109,6 +109,8 @@ PATCHES=( "${FILESDIR}"/${PN}-108-elf-parsing-fixes.patch # https://github.com/dracut-ng/dracut-ng/pull/1122#issuecomment-3192110686 "${FILESDIR}"/${PN}-108-disable-ukify-magic.patch + # https://github.com/dracut-ng/dracut-ng/pull/1562 + "${FILESDIR}"/${PN}-108-hostonly_cmdline-default-yes.patch ) pkg_setup() { diff --git a/sdk_container/src/third_party/portage-stable/sys-kernel/dracut/files/dracut-108-hostonly_cmdline-default-yes.patch b/sdk_container/src/third_party/portage-stable/sys-kernel/dracut/files/dracut-108-hostonly_cmdline-default-yes.patch new file mode 100644 index 0000000000..2af85e918c --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-kernel/dracut/files/dracut-108-hostonly_cmdline-default-yes.patch @@ -0,0 +1,23 @@ +From f0086c2f629365bdca8df76364747f7eb9799b59 Mon Sep 17 00:00:00 2001 +From: Jo Zzsi +Date: Tue, 12 Aug 2025 07:17:52 -0400 +Subject: [PATCH] revert(efaee44): hostonly_cmdline should continue to default + to yes + +Despite the Fedora setting, let's keep the default to yes +for distributions that do not whish to overwrite the default. +--- + dracut.conf.d/hostonly/10-hostonly.conf | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/dracut.conf.d/hostonly/10-hostonly.conf b/dracut.conf.d/hostonly/10-hostonly.conf +index c5bd9b22..72fc9299 100644 +--- a/dracut.conf.d/hostonly/10-hostonly.conf ++++ b/dracut.conf.d/hostonly/10-hostonly.conf +@@ -1,3 +1,2 @@ + # optimize initrd to be as small as possible for faster boot performance, tailored to the current host + hostonly="yes" +-hostonly_cmdline=no +-- +2.49.1 + diff --git a/sdk_container/src/third_party/portage-stable/sys-kernel/linux-headers/Manifest b/sdk_container/src/third_party/portage-stable/sys-kernel/linux-headers/Manifest index e2b75bd14e..31959c493c 100644 --- a/sdk_container/src/third_party/portage-stable/sys-kernel/linux-headers/Manifest +++ b/sdk_container/src/third_party/portage-stable/sys-kernel/linux-headers/Manifest @@ -14,6 +14,8 @@ DIST gentoo-headers-6.13-1.tar.xz 1164 BLAKE2B 92c2b223c597b1aa94be1299329022533 DIST gentoo-headers-6.14-1.tar.xz 1164 BLAKE2B 2c72d180953c450158690549fb2e852310bba07cb9e81646b841348eb9327d82b5a203760c7f5b50a1a82bcca21968926a085024b36ac75f077a2fc957fa0e51 SHA512 962b7670c563f886bddbd04b49652d3a6af282a162c00a27f5ec95ca2c6a55227cfbf2819b8b754a53fd54d5106a5ea72da8f34411cfc16c7fe2cf4b700d670a DIST gentoo-headers-6.15-1.tar.xz 1168 BLAKE2B 2a48bece7181e24ebaf4c206823406fbeca44b13757b7dd1f63c1c3d4585e3d808e71bb503fda3b8461fb4b8eaa39ea6fcff7cebc1b97734afdeb9ed87293246 SHA512 3aee6d4327ab8414d35cda0a826b1d0068807525d12041e2c49141986ab8835f135418a9736640d8836581af90fa8fdf4c15c54eee1f0b18ae86413e3eb81d34 DIST gentoo-headers-6.16-1.tar.xz 1168 BLAKE2B 01e016fd7fbe35c03e9be3df8c0bc4f4d885ae783dcec0631957c9f8d4cc4e294afc0fee6eda7a16526f10503aaed333685b18f3266025170ed28fe51b7ef3ae SHA512 1460a2c1a8589059e2df61c8cdd4da5ddada08d0889485cd3daf688f0274780bc0be46c9691df9039c77919c364cc85f08a0db899d014bdf4b79d9f853876791 +DIST gentoo-headers-6.16-3.tar.xz 2256 BLAKE2B a023a3a72a29b486ba763f072c2c3f4f079ba2d857ebe2ee22633ee891b05e668475b79cb82e5f4714aed11f7832401f713e75a397e0d683eb4d17c76cc09f65 SHA512 fc363f073ede597764f731f84aeed73e47aa9a644612d0e7f86d3062fdb3daca7edef7b4c3a122336d5292db339bf68f6f09ce9bd1d33e5228ddd5271a40d844 +DIST gentoo-headers-6.17-2.tar.xz 2244 BLAKE2B 7a1b08bada363a22bb4e30e2a1add4245b3c9bfb2309d9aa47a2687371019fdc01da7b540e8ec055bbb294e1774c0fa2a868fb7bd598b49f81365b027b0586fa SHA512 ecb3a3be672d3c82f11dfb1d8abb8155fdce2a46fcd3f9d0b83730d7d3dfbaf638c81168ba4fb7f15cf02e6eec09affa24b3da99bcfaae627106305888c984ac DIST gentoo-headers-6.6-1.tar.xz 1172 BLAKE2B 626bb33b42f48bceca2ba6a0a9c0b043a8607bb391d3b541e98d2af42eacfabeda3a5a3d48b7bee1fd0a2a8ad0b6173bde49d3827ea087e501eb0e91d18c4ab7 SHA512 09bcda97d9d17ee3f66ee46d9c00b8ac4fba5b9662fa24e4e2754bd9e4e7b3f097e5f2d52281eeb7a671dfe303aabe15c8fd66f117fddf29fb094e28d8c603b3 DIST gentoo-headers-6.8-1.tar.xz 1164 BLAKE2B 43283b61fc35057c7f703108d6e4aead901329106e4c297cdfc261e8f9cb1f2ec9370b7367432b9eabe9fcc4358da745170b1f4ec6079d373f50de1fde148778 SHA512 c43e18ce1b39a60e163c2e0f824b1402bcbda84f20b2ae38d53681ff517713c42fd876954fab0ab8044b66e28e32f9ee93fc61ecbbc9c2bb5a9932a0616e570c DIST gentoo-headers-6.9-1.tar.xz 1164 BLAKE2B fd385a2c39e9528f60dee582f153485842e76a8a9ad87fd8a11179b8ad2558df23e3c7fb7476f3f1011536e26da50f625a660d2a8ae01954300085f8b3f1bb01 SHA512 3fad4602e453a9aae24cc640ee6c70b06f221c78262f5befe794ca5eb48c352aff335715b5033760ca690bdef55e6a6acb5d3d2351bae885f3023098b5c6ecb1 @@ -33,6 +35,7 @@ DIST linux-6.13.tar.xz 148523052 BLAKE2B 9f617ecb3f2393b57ba03c654fea62a7213f24c DIST linux-6.14.tar.xz 149408504 BLAKE2B 11835719804b406fe281ea1c276a84dc0cbaa808552ddcca9233d3eaeb1c001d0455c7205379b02de8e8db758c1bae6fe7ceb6697e63e3cf9ae7187dc7a9715e SHA512 71dcaa3772d8d9797c3ae30cae9c582b11a7047a3bbcb8dfd479a4dffb40ff0da74cf3d45175f50cc9992e338bcadd46c9c570f54054ca3bde6661768d3d22eb DIST linux-6.15.tar.xz 151168812 BLAKE2B 465596c6dc053ff3a3966302a906d3edb4f7ee1ef82f8c20b96360196d3414f5b1deeafa67b8340fcdecd3617280ba9b756d7073ad15c707865e256397b4af53 SHA512 d03788ffa8d8ae1b84ef1286bb44a08fc01432e509dfec6cccae5c5a5a47201d378aec2bcd21e6f0bbd1e625b26f47780c06ee9c1cef3775358f98b160923f30 DIST linux-6.16.tar.xz 152620004 BLAKE2B 87bc4da7e89cc8265aebffea7ec6c09f711be24fee87cb1c03a264c03fd5a538d66aa806640835aa5103926e612cdfbc52d7c861d7f7065f1a8bb11d893b0921 SHA512 55a00f89ad6db6db2e26ff5dc5cfc96bbf6654e5bd5d17d2a3b944a47640367e54139716d230923187bebc6cb7756edc9511a620fb8abc6f32c50a658a734784 +DIST linux-6.17.tar.xz 153382068 BLAKE2B 0edb2324be5638aa75984128aafdba3e50824187d2fcdff8794eab99d85c10c3a17d1e840053c2c83df5ee11fdf69f1c9452c57ecc9dae01c4af38180fe7821a SHA512 063999d7b819970657f6b7713fdb4173da2065ffdeed7cae197026dbb1edfd7f1d50374f073a1e19ef9686539594824ff6ecb8a930d97c4f272cb12f1c6d8355 DIST linux-6.6.tar.xz 140064536 BLAKE2B 5f02fd8696d42f7ec8c5fbadec8e7270bdcfcb1f9844a6c4db3e1fd461c93ce1ccda650ca72dceb4890ebcbbf768ba8fba0bce91efc49fbd2c307b04e95665f2 SHA512 458b2c34d46206f9b4ccbac54cc57aeca1eaecaf831bc441e59701bac6eadffc17f6ce24af6eadd0454964e843186539ac0d63295ad2cc32d112b60360c39a35 DIST linux-6.8.tar.xz 142502100 BLAKE2B c6f17f816cea16e629f63e9379b98888713f57b2c5173306926471f139a9d612a0c74e119341f8075390e55e203d787d9edeb4ad5a064b18870f6f0f7ffaafb2 SHA512 5c4eb4aa1d3f7d1ea01c0f7ddeadacdece6e144fd4bdfc16b2b925d3e10dc04de3a6db69320b79a96c3560052616f001d2c09e7a1bb4f7b731e2380a7ecce068 DIST linux-6.9.tar.xz 144034416 BLAKE2B 4cf86c3cfe6e6534745d42dfaeca59b17ea1168c4e8b615c80e6d8aac735f11283cd85fa992b440b5d4452917e94b9f08397a64af0be5894e3df23c68892377e SHA512 fed3b4cd1fbfb4d94618587c1934273d2ecc8b6e42a3d586ff8a5f24980be930f2ef803aa2923ca3bfa5e4e619f967f3af315368f24fa76f610b10443624a579 diff --git a/sdk_container/src/third_party/portage-stable/sys-kernel/linux-headers/linux-headers-5.10-r2.ebuild b/sdk_container/src/third_party/portage-stable/sys-kernel/linux-headers/linux-headers-5.10-r2.ebuild index 205f4ccc86..0093fd594e 100644 --- a/sdk_container/src/third_party/portage-stable/sys-kernel/linux-headers/linux-headers-5.10-r2.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-kernel/linux-headers/linux-headers-5.10-r2.ebuild @@ -20,7 +20,8 @@ KEYWORDS="~alpha amd64 arm arm64 ~hppa ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc BDEPEND=" app-arch/xz-utils - dev-lang/perl" + dev-lang/perl + net-misc/rsync" [[ -n ${PATCH_VER} ]] && PATCHES=( "${WORKDIR}"/${PATCH_PV} ) diff --git a/sdk_container/src/third_party/portage-stable/sys-kernel/linux-headers/linux-headers-5.15-r3.ebuild b/sdk_container/src/third_party/portage-stable/sys-kernel/linux-headers/linux-headers-5.15-r3.ebuild index 38e26a0dc4..a7cf93c4b9 100644 --- a/sdk_container/src/third_party/portage-stable/sys-kernel/linux-headers/linux-headers-5.15-r3.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-kernel/linux-headers/linux-headers-5.15-r3.ebuild @@ -19,7 +19,8 @@ KEYWORDS="~alpha amd64 arm arm64 ~hppa ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc BDEPEND=" app-arch/xz-utils - dev-lang/perl" + dev-lang/perl + net-misc/rsync" # bug #816762 RESTRICT="test" diff --git a/sdk_container/src/third_party/portage-stable/sys-kernel/linux-headers/linux-headers-5.4-r2.ebuild b/sdk_container/src/third_party/portage-stable/sys-kernel/linux-headers/linux-headers-5.4-r2.ebuild index 3b737ef15d..e2fd64397e 100644 --- a/sdk_container/src/third_party/portage-stable/sys-kernel/linux-headers/linux-headers-5.4-r2.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-kernel/linux-headers/linux-headers-5.4-r2.ebuild @@ -20,7 +20,8 @@ KEYWORDS="~alpha amd64 arm arm64 ~hppa ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc BDEPEND=" app-arch/xz-utils - dev-lang/perl" + dev-lang/perl + net-misc/rsync" [[ -n ${PATCH_VER} ]] && PATCHES=( "${WORKDIR}"/${PATCH_PV} ) diff --git a/sdk_container/src/third_party/portage-stable/sys-kernel/linux-headers/linux-headers-6.1.ebuild b/sdk_container/src/third_party/portage-stable/sys-kernel/linux-headers/linux-headers-6.1.ebuild index 4cd93148f2..6623353670 100644 --- a/sdk_container/src/third_party/portage-stable/sys-kernel/linux-headers/linux-headers-6.1.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-kernel/linux-headers/linux-headers-6.1.ebuild @@ -18,7 +18,8 @@ S="${WORKDIR}/linux-${PV}" KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux" BDEPEND="app-arch/xz-utils - dev-lang/perl" + dev-lang/perl + net-misc/rsync" [[ -n ${PATCH_VER} ]] && PATCHES=( "${WORKDIR}"/${PATCH_PV} ) diff --git a/sdk_container/src/third_party/portage-stable/sys-kernel/linux-headers/linux-headers-6.10.ebuild b/sdk_container/src/third_party/portage-stable/sys-kernel/linux-headers/linux-headers-6.10.ebuild index e740370311..2b48a908ff 100644 --- a/sdk_container/src/third_party/portage-stable/sys-kernel/linux-headers/linux-headers-6.10.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-kernel/linux-headers/linux-headers-6.10.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 @@ -22,6 +22,7 @@ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv BDEPEND=" app-arch/xz-utils dev-lang/perl + net-misc/rsync " src_unpack() { diff --git a/sdk_container/src/third_party/portage-stable/sys-kernel/linux-headers/linux-headers-6.11.ebuild b/sdk_container/src/third_party/portage-stable/sys-kernel/linux-headers/linux-headers-6.11.ebuild index e740370311..2b48a908ff 100644 --- a/sdk_container/src/third_party/portage-stable/sys-kernel/linux-headers/linux-headers-6.11.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-kernel/linux-headers/linux-headers-6.11.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 @@ -22,6 +22,7 @@ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv BDEPEND=" app-arch/xz-utils dev-lang/perl + net-misc/rsync " src_unpack() { diff --git a/sdk_container/src/third_party/portage-stable/sys-kernel/linux-headers/linux-headers-6.12.ebuild b/sdk_container/src/third_party/portage-stable/sys-kernel/linux-headers/linux-headers-6.12.ebuild index 771cca1b12..0aaf3efb5a 100644 --- a/sdk_container/src/third_party/portage-stable/sys-kernel/linux-headers/linux-headers-6.12.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-kernel/linux-headers/linux-headers-6.12.ebuild @@ -22,6 +22,7 @@ KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 BDEPEND=" app-arch/xz-utils dev-lang/perl + net-misc/rsync " src_unpack() { diff --git a/sdk_container/src/third_party/portage-stable/sys-kernel/linux-headers/linux-headers-6.13.ebuild b/sdk_container/src/third_party/portage-stable/sys-kernel/linux-headers/linux-headers-6.13.ebuild index 2296d0506c..2b48a908ff 100644 --- a/sdk_container/src/third_party/portage-stable/sys-kernel/linux-headers/linux-headers-6.13.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-kernel/linux-headers/linux-headers-6.13.ebuild @@ -22,6 +22,7 @@ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv BDEPEND=" app-arch/xz-utils dev-lang/perl + net-misc/rsync " src_unpack() { diff --git a/sdk_container/src/third_party/portage-stable/sys-kernel/linux-headers/linux-headers-6.14.ebuild b/sdk_container/src/third_party/portage-stable/sys-kernel/linux-headers/linux-headers-6.14.ebuild index 2296d0506c..2b48a908ff 100644 --- a/sdk_container/src/third_party/portage-stable/sys-kernel/linux-headers/linux-headers-6.14.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-kernel/linux-headers/linux-headers-6.14.ebuild @@ -22,6 +22,7 @@ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv BDEPEND=" app-arch/xz-utils dev-lang/perl + net-misc/rsync " src_unpack() { diff --git a/sdk_container/src/third_party/portage-stable/sys-kernel/linux-headers/linux-headers-6.15.ebuild b/sdk_container/src/third_party/portage-stable/sys-kernel/linux-headers/linux-headers-6.15.ebuild index 2296d0506c..2b48a908ff 100644 --- a/sdk_container/src/third_party/portage-stable/sys-kernel/linux-headers/linux-headers-6.15.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-kernel/linux-headers/linux-headers-6.15.ebuild @@ -22,6 +22,7 @@ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv BDEPEND=" app-arch/xz-utils dev-lang/perl + net-misc/rsync " src_unpack() { diff --git a/sdk_container/src/third_party/portage-stable/sys-kernel/linux-headers/linux-headers-6.16-r2.ebuild b/sdk_container/src/third_party/portage-stable/sys-kernel/linux-headers/linux-headers-6.16-r2.ebuild new file mode 100644 index 0000000000..ab7564ca08 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-kernel/linux-headers/linux-headers-6.16-r2.ebuild @@ -0,0 +1,52 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +ETYPE="headers" +H_SUPPORTEDARCH="alpha amd64 arc arm arm64 csky hexagon hppa loong m68k microblaze mips nios2 openrisc ppc ppc64 riscv s390 sh sparc x86 xtensa" +inherit kernel-2 +detect_version + +PATCH_PV=${PV} # to ease testing new versions against not existing patches +PATCH_VER="3" +PATCH_DEV="sam" +SRC_URI=" + ${KERNEL_URI} + ${PATCH_VER:+https://dev.gentoo.org/~${PATCH_DEV}/distfiles/sys-kernel/linux-headers/gentoo-headers-${PATCH_PV}-${PATCH_VER}.tar.xz} +" +S="${WORKDIR}/linux-${PV}" + +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux" + +BDEPEND=" + app-arch/xz-utils + dev-lang/perl + net-misc/rsync +" + +src_unpack() { + # Avoid kernel-2_src_unpack + default +} + +src_prepare() { + local PATCHES=() + [[ -n ${PATCH_VER} ]] && PATCHES+=( "${WORKDIR}"/${PATCH_PV} ) + + # TODO: May need forward porting to newer versions + use elibc_musl && PATCHES+=( + "${FILESDIR}"/${PN}-5.15-remove-inclusion-sysinfo.h.patch + ) + + # Avoid kernel-2_src_prepare + default +} + +src_install() { + kernel-2_src_install + + find "${ED}" \( -name '.install' -o -name '*.cmd' \) -delete || die + # Delete empty directories + find "${ED}" -empty -type d -delete || die +} diff --git a/sdk_container/src/third_party/portage-stable/sys-kernel/linux-headers/linux-headers-6.16.ebuild b/sdk_container/src/third_party/portage-stable/sys-kernel/linux-headers/linux-headers-6.16.ebuild index 2296d0506c..2b48a908ff 100644 --- a/sdk_container/src/third_party/portage-stable/sys-kernel/linux-headers/linux-headers-6.16.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-kernel/linux-headers/linux-headers-6.16.ebuild @@ -22,6 +22,7 @@ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv BDEPEND=" app-arch/xz-utils dev-lang/perl + net-misc/rsync " src_unpack() { diff --git a/sdk_container/src/third_party/portage-stable/sys-kernel/linux-headers/linux-headers-6.17-r1.ebuild b/sdk_container/src/third_party/portage-stable/sys-kernel/linux-headers/linux-headers-6.17-r1.ebuild new file mode 100644 index 0000000000..c6a88ba68c --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-kernel/linux-headers/linux-headers-6.17-r1.ebuild @@ -0,0 +1,52 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +ETYPE="headers" +H_SUPPORTEDARCH="alpha amd64 arc arm arm64 csky hexagon hppa loong m68k microblaze mips nios2 openrisc ppc ppc64 riscv s390 sh sparc x86 xtensa" +inherit kernel-2 +detect_version + +PATCH_PV=${PV} # to ease testing new versions against not existing patches +PATCH_VER="2" +PATCH_DEV="sam" +SRC_URI=" + ${KERNEL_URI} + ${PATCH_VER:+https://dev.gentoo.org/~${PATCH_DEV}/distfiles/sys-kernel/linux-headers/gentoo-headers-${PATCH_PV}-${PATCH_VER}.tar.xz} +" +S="${WORKDIR}/linux-${PV}" + +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux" + +BDEPEND=" + app-arch/xz-utils + dev-lang/perl + net-misc/rsync +" + +src_unpack() { + # Avoid kernel-2_src_unpack + default +} + +src_prepare() { + local PATCHES=() + [[ -n ${PATCH_VER} ]] && PATCHES+=( "${WORKDIR}"/${PATCH_PV} ) + + # TODO: May need forward porting to newer versions + use elibc_musl && PATCHES+=( + "${FILESDIR}"/${PN}-5.15-remove-inclusion-sysinfo.h.patch + ) + + # Avoid kernel-2_src_prepare + default +} + +src_install() { + kernel-2_src_install + + find "${ED}" \( -name '.install' -o -name '*.cmd' \) -delete || die + # Delete empty directories + find "${ED}" -empty -type d -delete || die +} diff --git a/sdk_container/src/third_party/portage-stable/sys-kernel/linux-headers/linux-headers-6.6-r1.ebuild b/sdk_container/src/third_party/portage-stable/sys-kernel/linux-headers/linux-headers-6.6-r1.ebuild index c622b3df69..4f72579b35 100644 --- a/sdk_container/src/third_party/portage-stable/sys-kernel/linux-headers/linux-headers-6.6-r1.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-kernel/linux-headers/linux-headers-6.6-r1.ebuild @@ -22,6 +22,7 @@ KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 BDEPEND=" app-arch/xz-utils dev-lang/perl + net-misc/rsync " src_unpack() { diff --git a/sdk_container/src/third_party/portage-stable/sys-kernel/linux-headers/linux-headers-6.8-r1.ebuild b/sdk_container/src/third_party/portage-stable/sys-kernel/linux-headers/linux-headers-6.8-r1.ebuild index b29c95b34e..217770f858 100644 --- a/sdk_container/src/third_party/portage-stable/sys-kernel/linux-headers/linux-headers-6.8-r1.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-kernel/linux-headers/linux-headers-6.8-r1.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 @@ -22,6 +22,7 @@ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv BDEPEND=" app-arch/xz-utils dev-lang/perl + net-misc/rsync " src_unpack() { diff --git a/sdk_container/src/third_party/portage-stable/sys-kernel/linux-headers/linux-headers-6.9.ebuild b/sdk_container/src/third_party/portage-stable/sys-kernel/linux-headers/linux-headers-6.9.ebuild index b29c95b34e..217770f858 100644 --- a/sdk_container/src/third_party/portage-stable/sys-kernel/linux-headers/linux-headers-6.9.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-kernel/linux-headers/linux-headers-6.9.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 @@ -22,6 +22,7 @@ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv BDEPEND=" app-arch/xz-utils dev-lang/perl + net-misc/rsync " src_unpack() { diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/libunwind/libunwind-1.8.2-r1.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/libunwind/libunwind-1.8.2-r1.ebuild index 139a892af8..aae5f95c94 100644 --- a/sdk_container/src/third_party/portage-stable/sys-libs/libunwind/libunwind-1.8.2-r1.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-libs/libunwind/libunwind-1.8.2-r1.ebuild @@ -31,7 +31,7 @@ else S="${WORKDIR}"/${P/_rc/-rc} if [[ ${PV} != *_rc* ]] ; then - KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 -sparc ~x86 ~amd64-linux ~x86-linux" + KEYWORDS="amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 -sparc x86 ~amd64-linux ~x86-linux" fi fi diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/liburing/liburing-9999.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/liburing/liburing-9999.ebuild index 5dd4c11e07..e4b4d0bd2e 100644 --- a/sdk_container/src/third_party/portage-stable/sys-libs/liburing/liburing-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-libs/liburing/liburing-9999.ebuild @@ -9,7 +9,10 @@ DESCRIPTION="Efficient I/O with io_uring" HOMEPAGE="https://github.com/axboe/liburing" if [[ "${PV}" == *9999 ]] ; then inherit git-r3 - EGIT_REPO_URI="https://github.com/axboe/liburing.git" + EGIT_REPO_URI=" + https://git.kernel.org/pub/scm/linux/kernel/git/axboe/liburing.git + https://github.com/axboe/liburing.git + " S="${WORKDIR}"/liburing-${PV} else SRC_URI=" diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/ncurses/ncurses-6.5_p20250329.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/ncurses/ncurses-6.5_p20250329.ebuild index 183cc9ca27..524fb1d910 100644 --- a/sdk_container/src/third_party/portage-stable/sys-libs/ncurses/ncurses-6.5_p20250329.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-libs/ncurses/ncurses-6.5_p20250329.ebuild @@ -345,7 +345,7 @@ do_configure() { # See comments in src_configure. if [[ ${target} != "cross" ]] ; then local cross_path="${WORKDIR}/cross" - [[ -d ${cross_path} ]] && export TIC_PATH="${cross_path}/progs/tic" + [[ -d ${cross_path} ]] && export TIC="${cross_path}/progs/tic" fi ECONF_SOURCE="${S}" econf "${conf[@]}" "$@" diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/ncurses/ncurses-6.5_p20250531-r1.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/ncurses/ncurses-6.5_p20250531-r1.ebuild index 05ae1ff835..88e193fb75 100644 --- a/sdk_container/src/third_party/portage-stable/sys-libs/ncurses/ncurses-6.5_p20250531-r1.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-libs/ncurses/ncurses-6.5_p20250531-r1.ebuild @@ -351,7 +351,7 @@ do_configure() { # See comments in src_configure. if [[ ${target} != "cross" ]] ; then local cross_path="${WORKDIR}/cross" - [[ -d ${cross_path} ]] && export TIC_PATH="${cross_path}/progs/tic" + [[ -d ${cross_path} ]] && export TIC="${cross_path}/progs/tic" fi ECONF_SOURCE="${S}" econf "${conf[@]}" "$@" diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/ncurses/ncurses-6.5_p20250802.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/ncurses/ncurses-6.5_p20250802.ebuild index 4c917ce365..7e19f10403 100644 --- a/sdk_container/src/third_party/portage-stable/sys-libs/ncurses/ncurses-6.5_p20250802.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-libs/ncurses/ncurses-6.5_p20250802.ebuild @@ -359,7 +359,7 @@ do_configure() { # See comments in src_configure. if [[ ${target} != "cross" ]] ; then local cross_path="${WORKDIR}/cross" - [[ -d ${cross_path} ]] && export TIC_PATH="${cross_path}/progs/tic" + [[ -d ${cross_path} ]] && export TIC="${cross_path}/progs/tic" fi ECONF_SOURCE="${S}" econf "${conf[@]}" "$@" diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/readline/Manifest b/sdk_container/src/third_party/portage-stable/sys-libs/readline/Manifest index b3b3fa5a55..52cca924fb 100644 --- a/sdk_container/src/third_party/portage-stable/sys-libs/readline/Manifest +++ b/sdk_container/src/third_party/portage-stable/sys-libs/readline/Manifest @@ -4,6 +4,7 @@ DIST readline-8.2.tar.gz.sig 95 BLAKE2B dc510459c0c47782ca87364a6677b4d8f0b68a98 DIST readline-8.3.tar.gz 3419642 BLAKE2B 45d6fe7e34c56d309102a94aa776a7f5284201e844450e14ff818df9fa84a72154bdca70f11828c94954b080cbbe4666fa0b00ffa8460118ec8f3ea551b73dad SHA512 513002753dcf5db9213dbbb61d51217245f6a40d33b1dd45238e8062dfa8eef0c890b87a5548e11db959e842724fb572c4d3d7fb433773762a63c30efe808344 DIST readline-8.3.tar.gz.sig 95 BLAKE2B 088be0a0dbcafc6e9643daac987bf09e37b919b28c87ffbd7d47ee798f71d5e2eb48a07ae040e7290465c95c32385b10b3a0c1285861d4c663e6e1fd28b091b6 SHA512 8f9d4adeb068016e61f76052fb38552db447fc461c7d48811d8af5f0436abce20277e08c475a1c48c99fa37f2b20ca549a94eb5cee0fe6f0d4c854699cc0988c DIST readline-8.4_alpha_pre20250805-488d7edc22894d30b6de7f2d4190bf7403f63ffd.tar.gz 3483136 BLAKE2B 0aade82ce2cb240d9c5e3039ac6ff5b674413a71318ec5e60ef2ee34725bf1dee5b24e7300b80c4cfb99f92f4e71c76b02598051eb2b5c558427e877a0321373 SHA512 cbfc17d9350452fdf9ea0a32472d2fde66a0d6e2ed7b2bf0d9ec000082ca5c61ebef3375ab8f95e3354a0df5fe6a47708163405af007f1fd9d55875fa02032bf +DIST readline-8.4_alpha_pre20251007-a0ceb95d8c5d730ac9461e4abaea402e862ac907.tar.gz 3484547 BLAKE2B 159cd4ab7e335121d1ffcb0ebc803ebe79df1432a1fba3ac3c24c96d3b3648d386f5eed0305ecc0a3a057c30b4cd2a1a0c13cb00beaae88c9ed93fac3da3a981 SHA512 729b85255791ba757a09c59c04cc7f6bfd0daa8adacc7243fbd7216045e1b0a225cb98487f23d540a3037146f11bc6e014f81c63968a9a1edcd6a2558c579eeb DIST readline82-001 1198 BLAKE2B 2e8f3d2aa14c4c4c4f9621f80f4ffae9bbd6f46c3561e87aaf684c759ffd82e3c46843cf4c4224533b28a847d83f7b8b254813f8a306d438e9f7cb457516c4e0 SHA512 ea3800a62e992b3e594d78e77b6c4b662fb8c501b81010277e478656bb3b56db7747ba40c6c3d68c3ec5ab8e9e41be104788ec52268135d7e642ff40dea421a8 DIST readline82-001.sig 94 BLAKE2B 542ac331a7da3702b47f4828b3264bc7bf996f473807d675044beeb9688c4ca3645bcba0898d3ea9447c1cde540eb8a6b1934008b0a11baef33235e43f44c6c7 SHA512 01ad9769fee42dc601b511c87bd39e15c74226e1747c4ae8914e303213706005780135add180dbfe538fe847533dc56cfe8f51a3ad9ec55d1fde2cb2e096bfb5 DIST readline82-002 1134 BLAKE2B 799f089105be9931ba13d562d4579b4d1dbdd5440b625b8fe0f1cec6438a1623bf473944cb278b937ca5ab2b98eac2f5993d6e047b96368b5fcd5649fb536d96 SHA512 2d4058c5c886498486d8514c238c0a05c0a97409011a7da40745e842977f0a29754e8b678f7e6e7a47c00df7e2e4c522d34d473118a24524af3824eed912e74a diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/readline/readline-8.4_alpha_pre20251007.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/readline/readline-8.4_alpha_pre20251007.ebuild new file mode 100644 index 0000000000..5723622b23 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-libs/readline/readline-8.4_alpha_pre20251007.ebuild @@ -0,0 +1,257 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# There's no standard way of versioning the point releases upstream +# make anyway, so while this was added for RC versions, it's fine +# in general. +QA_PKGCONFIG_VERSION=$(ver_cut 1-2) +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/chetramey.asc +inherit flag-o-matic multilib multilib-minimal preserve-libs toolchain-funcs verify-sig + +# Official patches +# See ftp://ftp.cwru.edu/pub/bash/readline-8.1-patches/ +PLEVEL="${PV##*_p}" +MY_PV="${PV/_p*}" +MY_PV="${MY_PV/_/-}" +MY_P="${PN}-${MY_PV}" +MY_PATCHES=() + +# Determine the patchlevel. +case ${PV} in + 9999|*_alpha*|*_beta*|*_rc*) + # Set a negative patchlevel to indicate that it's a pre-release. + PLEVEL=-1 + ;; + *_p*) + PLEVEL=${PV##*_p} + ;; + *) + PLEVEL=0 +esac + +DESCRIPTION="Another cute console display library" +HOMEPAGE="https://tiswww.case.edu/php/chet/readline/rltop.html https://git.savannah.gnu.org/cgit/readline.git" + +if [[ ${PV} == 9999 ]] ; then + EGIT_REPO_URI="https://git.savannah.gnu.org/git/readline.git" + EGIT_BRANCH=devel + inherit git-r3 +elif (( PLEVEL < 0 )) && [[ ${PV} == *_p* ]] ; then + # It can be useful to have snapshots in the pre-release period once + # the first alpha is out, as various bugs get reported and fixed from + # the alpha, and the next pre-release is usually quite far away. + # + # i.e. if it's worth packaging the alpha, it's worth packaging a followup. + READLINE_COMMIT="a0ceb95d8c5d730ac9461e4abaea402e862ac907" + SRC_URI="https://git.savannah.gnu.org/cgit/readline.git/snapshot/readline-${READLINE_COMMIT}.tar.gz -> ${P}-${READLINE_COMMIT}.tar.gz" + S=${WORKDIR}/${PN}-${READLINE_COMMIT} +else + SRC_URI="mirror://gnu/${PN}/${MY_P}.tar.gz" + SRC_URI+=" verify-sig? ( mirror://gnu/${PN}/${MY_P}.tar.gz.sig )" + S="${WORKDIR}/${MY_P}" + + if [[ ${PLEVEL} -gt 0 ]] ; then + # bash-5.1 -> bash51 + my_p=${PN}$(ver_rs 1-2 '' $(ver_cut 1-2)) + + patch_url= + my_patch_index= + + upstream_url_base="mirror://gnu/readline" + + for ((my_patch_index=1; my_patch_index <= ${PLEVEL} ; my_patch_index++)) ; do + printf -v mangled_patch_ver ${my_p}-%03d ${my_patch_index} + patch_url="${upstream_url_base}/${MY_P}-patches/${mangled_patch_ver}" + + SRC_URI+=" ${patch_url}" + SRC_URI+=" verify-sig? ( ${patch_url}.sig )" + + MY_PATCHES+=( "${DISTDIR}"/${mangled_patch_ver} ) + done + + unset my_p patch_url my_patch_index upstream_url_base + fi +fi + +LICENSE="GPL-3+" +SLOT="0/8" # subslot matches SONAME major +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="static-libs +unicode utils" + +RDEPEND=">=sys-libs/ncurses-5.9-r3:=[static-libs?,unicode(+)?,${MULTILIB_USEDEP}]" +DEPEND="${RDEPEND}" +BDEPEND=" + virtual/pkgconfig + verify-sig? ( sec-keys/openpgp-keys-chetramey ) +" + +PATCHES=( + "${FILESDIR}"/${PN}-5.0-no_rpath.patch + "${FILESDIR}"/${PN}-7.0-headers.patch + "${FILESDIR}"/${PN}-8.0-headers.patch +) + +src_unpack() { + local patch + + if [[ ${PV} == 9999 ]]; then + git-r3_src_unpack + elif (( PLEVEL < 0 )) && [[ ${PV} == *_p* ]] ; then + default + else + if use verify-sig; then + verify-sig_verify_detached "${DISTDIR}/${MY_P}.tar.gz"{,.sig} + + for patch in "${MY_PATCHES[@]}"; do + verify-sig_verify_detached "${patch}"{,.sig} + done + fi + + unpack "${MY_P}.tar.gz" + + if [[ ${GENTOO_PATCH_VER} ]]; then + unpack "${PN}-${GENTOO_PATCH_VER}-patches.tar.xz" + fi + fi +} + +src_prepare() { + (( PLEVEL > 0 )) && eapply -p0 "${MY_PATCHES[@]}" + + default + + #(( PLEVEL < 0 )) && eautoreconf + + if use prefix && [[ ! -x "${BROOT}"/usr/bin/pkg-config ]] ; then + # If we're bootstrapping, make a guess. We don't have pkg-config + # around yet. bug #818103. + # Incorrectly populating this leads to underlinked libreadline. + local ncurses_libs + local ncurses_libs_suffix=$(usex unicode w '') + + ncurses_libs="-lncurses${ncurses_libs_suffix}" + + if has_version "sys-libs/ncurses[tinfo(+)]" ; then + ncurses_libs+=" -ltinfo${ncurses_libs_suffix}" + fi + else + # Force ncurses linking, bug #71420. + # Use pkg-config to get the right values, bug #457558. + local ncurses_libs=$($(tc-getPKG_CONFIG) ncurses$(usex unicode w '') --libs) + fi + + sed -i \ + -e "/^SHLIB_LIBS=/s:=.*:='${ncurses_libs}':" \ + support/shobj-conf || die + sed -i \ + -e "/[[:space:]]*LIBS=.-lncurses/s:-lncurses:${ncurses_libs}:" \ + examples/rlfe/configure || die + + # Fix building under Gentoo/FreeBSD; upstream FreeBSD deprecated + # objformat for years, so we don't want to rely on that. + sed -i -e '/objformat/s:if .*; then:if true; then:' support/shobj-conf || die + + # For local readline headers + ln -s ../.. examples/rlfe/readline || die +} + +src_configure() { + # Fix implicit decls with widechar funcs + append-cppflags -D_GNU_SOURCE + # https://lists.gnu.org/archive/html/bug-readline/2010-07/msg00013.html + append-cppflags -Dxrealloc=_rl_realloc -Dxmalloc=_rl_malloc -Dxfree=_rl_free + + # Make sure configure picks a better ar than `ar`, bug #484866 + export ac_cv_prog_AR="$(tc-getAR)" + + # Force the test since we used sed above to force it. + export bash_cv_termcap_lib=ncurses + + # Control cross-compiling cases when we know the right answer. + # In cases where the C library doesn't support wide characters, readline + # itself won't work correctly, so forcing the answer below should be OK. + if tc-is-cross-compiler ; then + export bash_cv_func_sigsetjmp="present" + export bash_cv_func_ctype_nonascii="yes" + # bug #503312 + export bash_cv_wcwidth_broken="no" + fi + + # This is for rlfe, but we need to make sure LDFLAGS doesn't change + # so we can re-use the config cache file between the two. + append-ldflags -L. + + multilib-minimal_src_configure +} + +multilib_src_configure() { + local myeconfargs=( + --cache-file="${BUILD_DIR}"/config.cache + --with-curses + $(use_enable static-libs static) + ) + + ECONF_SOURCE="${S}" econf "${myeconfargs[@]}" + + if use utils && multilib_is_native_abi && ! tc-is-cross-compiler ; then + # Code is full of AC_TRY_RUN() + mkdir -p examples/rlfe || die + cd examples/rlfe || die + + ECONF_SOURCE="${S}"/examples/rlfe econf --cache-file="${BUILD_DIR}"/config.cache + fi +} + +multilib_src_compile() { + emake + + if use utils && multilib_is_native_abi && ! tc-is-cross-compiler ; then + # Code is full of AC_TRY_RUN() + cd examples/rlfe || die + local l + for l in readline history ; do + ln -s ../../shlib/lib${l}$(get_libname)* lib${l}$(get_libname) || die + ln -s ../../lib${l}.a lib${l}.a || die + done + emake + fi +} + +multilib_src_install() { + default + + if multilib_is_native_abi ; then + if use utils && ! tc-is-cross-compiler; then + dobin examples/rlfe/rlfe + fi + fi +} + +multilib_src_install_all() { + HTML_DOCS="doc/history.html doc/readline.html doc/rluserman.html" einstalldocs + + dodoc USAGE + docinto ps + dodoc doc/*.ps +} +pkg_preinst() { + # bug #29865 + # Reappeared in bug #595324 with paludis so keeping this for now... + preserve_old_lib \ + /$(get_libdir)/lib{history,readline}$(get_libname 4) \ + /$(get_libdir)/lib{history,readline}$(get_libname 5) \ + /$(get_libdir)/lib{history,readline}$(get_libname 6) \ + /$(get_libdir)/lib{history,readline}$(get_libname 7) +} + +pkg_postinst() { + preserve_old_lib_notify \ + /$(get_libdir)/lib{history,readline}$(get_libname 4) \ + /$(get_libdir)/lib{history,readline}$(get_libname 5) \ + /$(get_libdir)/lib{history,readline}$(get_libname 6) \ + /$(get_libdir)/lib{history,readline}$(get_libname 7) +} diff --git a/sdk_container/src/third_party/portage-stable/virtual/openssh/openssh-0-r1.ebuild b/sdk_container/src/third_party/portage-stable/virtual/openssh/openssh-0-r1.ebuild index a4c6991584..7f4e466fd7 100644 --- a/sdk_container/src/third_party/portage-stable/virtual/openssh/openssh-0-r1.ebuild +++ b/sdk_container/src/third_party/portage-stable/virtual/openssh/openssh-0-r1.ebuild @@ -6,7 +6,7 @@ EAPI=8 DESCRIPTION="Virtual for net-misc/openssh and variants" 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="ssl" RDEPEND=" diff --git a/sdk_container/src/third_party/portage-stable/virtual/perl-Carp/metadata.xml b/sdk_container/src/third_party/portage-stable/virtual/perl-Carp/metadata.xml new file mode 100644 index 0000000000..1a0d0fb9a8 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/virtual/perl-Carp/metadata.xml @@ -0,0 +1,9 @@ + + + + + perl@gentoo.org + Gentoo Perl Project + + + diff --git a/sdk_container/src/third_party/portage-stable/virtual/perl-Carp/perl-Carp-1.540.0-r2.ebuild b/sdk_container/src/third_party/portage-stable/virtual/perl-Carp/perl-Carp-1.540.0-r2.ebuild new file mode 100644 index 0000000000..852963aa7d --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/virtual/perl-Carp/perl-Carp-1.540.0-r2.ebuild @@ -0,0 +1,15 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DESCRIPTION="Virtual for ${PN#perl-}" +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" + +RDEPEND=" + || ( =dev-lang/perl-5.42* =dev-lang/perl-5.40* =dev-lang/perl-5.38* ~perl-core/${PN#perl-}-${PV} ) + dev-lang/perl:= + !perl-core/${PN#perl-}-${PV}-r999 +" diff --git a/sdk_container/src/third_party/portage-stable/virtual/perl-Exporter/metadata.xml b/sdk_container/src/third_party/portage-stable/virtual/perl-Exporter/metadata.xml new file mode 100644 index 0000000000..1a0d0fb9a8 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/virtual/perl-Exporter/metadata.xml @@ -0,0 +1,9 @@ + + + + + perl@gentoo.org + Gentoo Perl Project + + + diff --git a/sdk_container/src/third_party/portage-stable/virtual/perl-Exporter/perl-Exporter-5.780.0.ebuild b/sdk_container/src/third_party/portage-stable/virtual/perl-Exporter/perl-Exporter-5.780.0.ebuild new file mode 100644 index 0000000000..82ea06aa66 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/virtual/perl-Exporter/perl-Exporter-5.780.0.ebuild @@ -0,0 +1,15 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DESCRIPTION="Virtual for ${PN#perl-}" +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" + +RDEPEND=" + || ( =dev-lang/perl-5.40* ~perl-core/${PN#perl-}-${PV} ) + dev-lang/perl:= + !perl-core/${PN#perl-}-${PV}-r999 +" diff --git a/sdk_container/src/third_party/portage-stable/virtual/perl-Exporter/perl-Exporter-5.790.0.ebuild b/sdk_container/src/third_party/portage-stable/virtual/perl-Exporter/perl-Exporter-5.790.0.ebuild new file mode 100644 index 0000000000..388dff71cb --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/virtual/perl-Exporter/perl-Exporter-5.790.0.ebuild @@ -0,0 +1,15 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DESCRIPTION="Virtual for ${PN#perl-}" +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" + +RDEPEND=" + || ( =dev-lang/perl-5.42* ~perl-core/${PN#perl-}-${PV} ) + dev-lang/perl:= + !perl-core/${PN#perl-}-${PV}-r999 +" diff --git a/sdk_container/src/third_party/portage-stable/virtual/perl-XSLoader/metadata.xml b/sdk_container/src/third_party/portage-stable/virtual/perl-XSLoader/metadata.xml new file mode 100644 index 0000000000..1a0d0fb9a8 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/virtual/perl-XSLoader/metadata.xml @@ -0,0 +1,9 @@ + + + + + perl@gentoo.org + Gentoo Perl Project + + + diff --git a/sdk_container/src/third_party/portage-stable/virtual/perl-XSLoader/perl-XSLoader-0.320.0-r2.ebuild b/sdk_container/src/third_party/portage-stable/virtual/perl-XSLoader/perl-XSLoader-0.320.0-r2.ebuild new file mode 100644 index 0000000000..852963aa7d --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/virtual/perl-XSLoader/perl-XSLoader-0.320.0-r2.ebuild @@ -0,0 +1,15 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DESCRIPTION="Virtual for ${PN#perl-}" +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" + +RDEPEND=" + || ( =dev-lang/perl-5.42* =dev-lang/perl-5.40* =dev-lang/perl-5.38* ~perl-core/${PN#perl-}-${PV} ) + dev-lang/perl:= + !perl-core/${PN#perl-}-${PV}-r999 +" 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 3049319b22..d1c8f0d44d 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 @@ -1,68 +1,39 @@ -DIST NVIDIA-Linux-aarch64-535.261.03.run 269926298 BLAKE2B 78b696ed9ef01fdc4bec8b955c7f7acb7475f743c7483b5ab799d63f5917e12e97ea522865c1b4e2fa03586977ccefdc4518339c705ff9e8165ac9bd4af32e30 SHA512 3bc4a141fc159e88a3cda19519d325ddfc03fdcd328a50b5a0c6c9f06089ff2a97edb03dbfd1d23ec0e60a4fc549a8f0143e0c4d6beb98771ad8c243ef699faf -DIST NVIDIA-Linux-aarch64-570.181.run 292998832 BLAKE2B 259da795e0498b379b663fdff6b120a5bc1d7851b2f32803d87e8ee42e2c8e52158c7fd98aa0ecba2507512361d068e033305d383bcf0cb218dcec1dd9bd988c SHA512 ef49d7572eaca2c2bf2b8c5b53ca818499b9f622d4aa4d0601672173571fab6559bbbb9ffefbc2247f51ec33837d2a23e11bd9eca7279ba1402540ef6ad150ac -DIST NVIDIA-Linux-aarch64-570.190.run 290921873 BLAKE2B 08cbe8fef636a9457a3fe041f474f3cd2c6e38fbe1d184176b7eaf84a6e85a63c97a84b9a78003804f935b90bc8ddc293542efc7cfb706282862d81745c2b0e9 SHA512 f2fb3392cdf22bd709d057dc34e4b84f6136318e6ac7f347944f1e47139336512696cf6142d14f0d76531902f11d3636e2ce9c95c3a75ebfec396ea274f5aebb -DIST NVIDIA-Linux-aarch64-575.64.05.run 304943447 BLAKE2B 277aed01ab2be1cbbfe7780c4cb9dcbfaebc69824ba4b5a620113829f713d5407829769c7fab224f183656408944d9d6c4dcf6400a333c1116a89d072eb79223 SHA512 0b9b9c6b3316723fba4549fcd346215e5315a7b4c80196f0cd9ada9ecd6a23e8fc1691ae8bda5b246a3c44519cc7f503116023ff5427718fbffb67fe49a12a75 -DIST NVIDIA-Linux-aarch64-580.82.07.run 313279458 BLAKE2B f3e7e626eb6ebe716cfc23d8e4351d318251b049b77f4da2b718067d1ea982a0d045998bd9fbedde2743388550ae0e0a3d21b1785d032a359db2d4b80190f655 SHA512 25ec6957910cdd9c506e7623f2d35e95e6fc9ae2662ba0abae863ac3e68880edcefc37a36b3da92aceda972e999683820650c4e07107df461c899e0cde73189d -DIST NVIDIA-Linux-aarch64-580.82.09.run 316429333 BLAKE2B 8f7ab4d3924f474e381f136ef1d9e7eb8af48c0d98859995aef1e8c24b2eb4eb72a2dfb8541b1044c5bda1ad23e998739ba532103ac56f69a293dcb83be0c154 SHA512 9782947d177c652dd0f425534261ab7529361e4f1e57c41b91208bb096a1992908cdbc174184be6f8943a9d1d131a40e3ca2a03d85c50a9f3644061a8823e6d8 +DIST NVIDIA-Linux-aarch64-535.274.02.run 269962412 BLAKE2B e4026c6ebf72ce7220a4dca688a349b27bdea518dd5eaeb3ecf153a246a8155775668cf3b2593b02abde747299cbae438e45af5c73c19627a93b6528051128e6 SHA512 a5d6187844c43bc56878d20b147ba36663db2c3b5f6ea31c2e84c364b88cac115417e1f2e073c9bf03ec698880921b6f98c1129b952d3156cf88c89156bdb046 +DIST NVIDIA-Linux-aarch64-570.195.03.run 293703412 BLAKE2B 7c843496a403fa3a2eed2b40c9734a6061ad3db3d2de768f70ed1020ad61388fd23a67517efdaa70ba37ad5e97906b8157fea664f46847a096ddd576343ec402 SHA512 4ed4c4863dce0ec53a9fa1a7e3cdc7ce3e915db4ec014b2c5030e8a6c961d4e58c99c42b6c6b17020d8c31acf95e14254bca446c2a56ce29b10067730910e2a0 +DIST NVIDIA-Linux-aarch64-580.95.05.run 313379170 BLAKE2B 70431f394ce9d112afcf0742539289e399286ecefbdd86ad71c750acee21c3b965b435d77d54b290866a6c60c7601da5c8bbc2d6edce0b8e4dcd43d21ee2ec35 SHA512 e07b31824f7e6dd485df5c73e3a58f85962239ea20a92f18d82b9c55564d69309fe5bb279f39ed8ef152ccdbffc6d0fdf7bccfa3c794e4ecd9fac83bcfbb91a9 DIST NVIDIA-Linux-x86-390.157.run 49417041 BLAKE2B 435b5e0e60468cc74b41cc5d9b5bb0105d29c11a2d408457835212a96519c9334ecf19278b36749d3ff7f498f5b0ae45a2efae2d428703dac21245c62f1efebe SHA512 dae9ac2c12f9ad90f7441e00e01a984147c577892421911d7f67f6a31e616ac1cb7d434bc9c7f58fbd9b8ae909521b5bece607a63c79588c0bb9d99c6bad5fb0 DIST NVIDIA-Linux-x86_64-390.157.run 85835541 BLAKE2B 44b855cd11f3b2f231f9fb90492ae2e67a67ea3ea83c413e7c90956d38c9730a8bd0321281ae03c6afce633d102f5b499aed25622b9bfd31bdd2c98f0717e95b SHA512 4780503a4cff0180b1b1f37d20a6ba3438dd78b51fa7f69b98d35521835e5d61099129746929d51d63afa2d47b672b3e145e1e1897584dc3799e7f822c5b3a0a DIST NVIDIA-Linux-x86_64-470.256.02.run 272850014 BLAKE2B 0fdc867f92b82b2a60810c3b43751cad7ac2c39928c92c6c343c0c6044f4d7d923d93b8599db3f7c999c0ee7d16940e65d991a61cbb30e1d9e49c5639ac6bdc8 SHA512 a837946dd24d7945c1962a695f1f31965f3ceb6927f52cd08fd51b8db138b7a888bbeab69243f5c8468a7bd7ccd47f5dbdb48a1ca81264866c1ebb7d88628f88 -DIST NVIDIA-Linux-x86_64-535.261.03.run 341775057 BLAKE2B d72ed6d4d442c204721667302d300e8e8ec9b8288a0945ba090aa4e4666fb7fbd6bffe8a242c134e6ce8a7947954d7771ec142cf6b6cf1a32b773edf9119e71e SHA512 52ac6db0a057977652f56a279c6e5482fd602d1c637b22e7bb8ae5e5f5a9fbddb8492196371c2bdcacfbd9e7c1bf3954c22254e842f413cb6af1b3c79a6e7ec2 -DIST NVIDIA-Linux-x86_64-570.123.19.run 375997440 BLAKE2B bc96faaeeb3c52d3c54bc9c5b87d04503ca9d329ad6d4ddb0003d02b7f0ede81ad00ea812dcfe7158acfeb3b9e1714d363d19b7c89c25ec2d8fe239934ccd2d3 SHA512 f892a1fd621ee536a03a1114b69b2d512a4144651c3f146eeb22b70b6b4ad43feb7e5eaf0a8c023f889591c124778471a64ce6356320342b74b69eaef73fbe8e -DIST NVIDIA-Linux-x86_64-570.181.run 375778425 BLAKE2B e448f20117379c3428e1dd322e369e5d396c3471b0ed99b9c88492917e273f0f169d2f69bb380d2f7dec9244284e8612b2359f0f51efee51705fca5144f31bdf SHA512 5c6423554c634eb22c286689b28cec92262f36180bf264df83b0526df9923e4f9f9bc7b835a9082cbcfbf7b7a4621c0007b784bd79303bfd6c3fbb03dd3ce53e -DIST NVIDIA-Linux-x86_64-570.190.run 376111303 BLAKE2B ce3a3e78b2b7afe63873f083c8c93c7777e720340d5c93fea547b7d11522ac7e21e29404e559c31a9b1b5841f9ab8368c0483f4425ec1cef788ff9d1d72cabcd SHA512 cab71238bcfa6c0ab3f960b55cdb9a033c7bdb9e4bcc0383ff4569d3f27370a5b0c21e0d37727319b64657c61122f8022af1ecc478db3b49ebd5f6054d544773 -DIST NVIDIA-Linux-x86_64-575.64.05.run 386961985 BLAKE2B d8b5e5cdff3d2166c4fdf8328ae22bc4419509144ad0427b17636696e7398240a3601ded850893412198fc0d4ba76e72a64ed31d6ceaf58149d83a741ad62a05 SHA512 1f5ea98478c913b044cccb25934e12d58561643b83074e5967d84126baac9a5ddc092a6ea017956957abae174520718d747415d09c6fb2da110de51629df98a2 -DIST NVIDIA-Linux-x86_64-580.82.07.run 396359634 BLAKE2B fba7de139809daf49d799e06de742f87a98aae801539ba3de663e9852b1435dd27e42e2c9679b0b1c93bd81d8e37fea57457d15b287177cb6815baa3ea6e6ade SHA512 83cb92a8978bc206087bf8d55ce3f4573f5e210130f060630ed3a441a321a33ebf41b9bca2f23b08025c9e019c5890ff8226fa4fcfaf1a4e30f02d3ec645ea35 -DIST NVIDIA-Linux-x86_64-580.82.09.run 396357884 BLAKE2B d3893763dfd38e243aa3fa17bf090758bd33ab6e9d5c94af9b83f95b982d3a349bf8b2c629deb798239999e59f5018158dfeff4a1916f4bc9fcaeee0679c1f8d SHA512 bc78007f9444324a808d1325ad55fcb57cda5cc4d8f6660e1b4a0cb9c411d8820194436d4295c29bd7f93880a15ec0cd9722c7b16eee9f17317b6dfa06869204 -DIST NVIDIA-kernel-module-source-535.261.03.tar.xz 12521372 BLAKE2B 214f52874a3cac43ad135e57577f8879b605d67d4cec1756ee2a5ee3986568ce621bae603637fdb9ff0be9295e262a1f14f9dee6d871737bce02ea163aff7505 SHA512 346b12fdcd1a7b5b8067e6cee6567f4ab2a89e8d246ebec4ad0eeb6dc91782c701b9b4d7ef4903c2492726fc8c242572a63a3cb8a06a9fb4a6039b65ce11b8ec -DIST NVIDIA-kernel-module-source-570.181.tar.xz 17932976 BLAKE2B 56c77d3819388af54873bc6b8edcfcda97959996c1f3e61982a5143b5c84f3139af78a478d9f54dc96de719951c9e0b77294174b6aa6fc8af669de115cf72d4b SHA512 3180bb89eeb13ebd1a032bca545d7de4b800a61bb7e36f702f89b3c76f1612f4d13546f224574d343f72babd3e908f4922642bbdc26cf8baffd97b11e248b78c -DIST NVIDIA-kernel-module-source-570.190.tar.xz 17928652 BLAKE2B 66bf70d7c68676f06e616def02d64fdb22d9aadeb0ab2992e228b3a41b828a97e473f7b402b05128c0dcbffc8a8ff6555c3fe093fefe41fe4ab2f29d732ba140 SHA512 462a193f5e9ee74d70dca5885996c4e451c9fc71506eb635d07ce3f2c548c0a577298818cacd8d341616f93d3371703da8b05ff4a18b6ddf4b89e35b83f3759a -DIST NVIDIA-kernel-module-source-575.64.05.tar.xz 18198316 BLAKE2B 622781dfa93ab11993a4cabf14e2104ae7fffa0a16ca504a1257ab9eedd832128dfe73a0b9567a4401bbcf83416305794861cd18c393797ab8d43af0c26cbcc7 SHA512 4cbe2e2d78eab84a8a0153f68ab6b1fefa75225c145b3bd9db4fab9d0cb212a4202a89d0e6d0f2d0dedb5663389f7c9ed6cadb6a656eb32dbde0cf0f806652e2 -DIST NVIDIA-kernel-module-source-580.82.07.tar.xz 22186240 BLAKE2B cc76c296c19e3f4c60d527d2fea3cda572996a578572421ccaff0b8ea36f276e90d5a0aa54e5836545961edb8959c8e81fb13f7b3381ba94c6d2a3ce0da01b9f SHA512 d92899ab63a9f54a903787f4a20c44e9b291b73c5665d5db9df0725ba5158adc16f66ed5be20828d42feb52850f3c454c3e92a6edb62c9f3d4501fa03a599344 -DIST NVIDIA-kernel-module-source-580.82.09.tar.xz 22193052 BLAKE2B 5780039714e1295f567d822ba99572ed47a100f7b7149452757a96f6f9e4737aa476a10a73703c83a748399aab689691a2fd274ca270e3041f4da7488caba826 SHA512 9dc72d54d9ee406cfa4a629cf495a4a7617edd17c0bef2933cde49ade7000067221300d35369a77832bbc8a0eff3abfa1cbd17e7787a7ce859cbb5166c377dc4 +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.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 +DIST NVIDIA-kernel-module-source-580.95.05.tar.xz 22215620 BLAKE2B 179e2e1f820840273e54b55cd45233c6b5e26c1eb80e8e4fc7099a1704820cfe761c17839befcb9ddca2fe7e85b7ddf62e9a51b912e1f300b02ee8941d6467db SHA512 183e35afc583748f5d5fc60970be7e1e0b99de40bf0e9428d3acfd56f913724cc8aa242a276c327ad11e09290818883c8045ab3319dc0e919201687359f7cdc6 DIST nvidia-installer-390.157.tar.bz2 150323 BLAKE2B 8058ca87a6dea956d564af9f7eab9b1fc82b1f2382bd5cb2f6d97cbe2e19292533522d5f8f2eacbeb16520372715fcb72f8f9b0998962af5d4e75522c8d74524 SHA512 93a7ece648602157496c8e27a88864ede341a100f5328a4c1a25faf8f0b94d252060e5e2f71d0c302fd0566c10773c30b76b3b5f431d8039b71c90a7969f7d7e DIST nvidia-installer-470.256.02.tar.bz2 146269 BLAKE2B 4402e725c8fd0157eb84d4ec140a33f97e873014577487ef1e32fb8921cabe79c60ff46532e5bfaabb2b6ac894f7c80086dbab19e61906e2e27346fb85f98829 SHA512 c962dc17d9696256d1ebedcaeb3010994f2ce3895aedc47987599ebfec132a9b9a249d2ece6502b15bd4a93f9b0106aa13487a7da5f64199c274ce11eba27cfd -DIST nvidia-installer-535.261.03.tar.bz2 148694 BLAKE2B e113e3a548f5cb562b064f97f3f81dad952dbf8acc9158a79caf14d0868bbc673ed2b5038f51361243547792a044f8d7306c69f5ccaa36717fe6de0ae39a89d8 SHA512 4f899eec7ef869bf9b89732bc29a1198792a4b984d308908d3b17917d4824425640ac988bc04f0eb539ad4eace38e7462f204bdb9cc6a6ac583c2e8b6e06f8e5 -DIST nvidia-installer-570.169.tar.bz2 169301 BLAKE2B 2676261d50cfe235d099475bcedcc96549d5140bf0c95b8f41b49d62eb0cd5fdf5c2ed53a59f79c778011b50e95ef440cc7a3a7a6673de7311e4508fa8f5960b SHA512 5864343b23a27cf994e414bb8a3b90e7b740df54188d43172456ea163162cea74e0b38a0b41717756818262d9f80b25cfc7566900bc682ea0546a825d52e3cfd -DIST nvidia-installer-570.181.tar.bz2 169408 BLAKE2B bc5d33bfd7b380e5612e264636b1efeec58479fe2de579a59136770cb766349bb91e6cf8d0a45e4f3e90bd76290b1c1f07f3bab1f6e11d0728c23a27eea2d85c SHA512 2e2a50933291ac40627c5b042473759e75c493e2634e2fefa6ad33d36f1393d2ad49732551048bf0c7a192b4b2cf1dde53842735924480d8bc3015e557fb1b17 -DIST nvidia-installer-570.190.tar.bz2 169534 BLAKE2B 3f187cea398c0dab45c3eb8d727d2ab00344b9adb4d4b8334b5314658f29ac2554be8b0be7407be34544c59fb4dde7a95e824cff39aff8c51275e9c4bb374af2 SHA512 be8218cf4d90d541fc9e0db4fadc33e836189ca919c9e8f6b631763c09b7b51d7e9df8d2f64f413df8cfbffadadd1cbbabfaffff654d91bdd6669e1d7c5b3ae6 -DIST nvidia-installer-575.64.05.tar.bz2 169369 BLAKE2B ccff48e41296d6682c72f3d25eb7d7816dc83b4c6f279a4f5213db141353772d78d8ff3e23f2fb21ff8ce81a326443d12c3f05792fe1971b1fb54da764140065 SHA512 5033e40762b499e9b04a080942656a0c9b49e8f56c4a8236da38a587f8e13b3935f75e8c8dbdffbd0ef895c537a69f51ce6df7e6beca7be583aab09ed62faf09 -DIST nvidia-installer-580.82.07.tar.bz2 169534 BLAKE2B 7eb84d8c79cb9c5b6c697ab192b52993b69a1d36875765df9b14f5df25e8884d869e8a5c5fcf9e5c0869c26a10c28c2af317362bd79bf095e9380a4ac61d4d4b SHA512 dd5b84b8a8525696e745fbfd2995e572ecb9e689cb667220d402625a78f720d21f286b912fc45db0c6575f8ecdbe3ae18b416761976de925e3c0845acce5f121 -DIST nvidia-installer-580.82.09.tar.bz2 169462 BLAKE2B d18e3638a0abc91c0c9a407228a3ab11cfdfd986f6d5ac54e398ea52ab074d12e103aaa5abd851787f56e96dd823359cc0efc6f7215dd7150a8269703014e787 SHA512 c2f85162b1b4c3a3a92477e210a82fe3c7e4770e17bca1345b10d15014efa574aeecd2495a289daeedf9ba7749046681d53498b664d2f90e0512461b87a0b505 +DIST nvidia-installer-535.274.02.tar.bz2 148772 BLAKE2B 7a70926628e137a0687acdc613a3afcd9fafab300e6c3ab467f9fef65c66911795a326cd08d49190870939576f358760b44949ba20df6060936f98e1385a2435 SHA512 c2a61bb9637d7fe9de89d7e3945fe84c6f672c8f16c4c12d513ba0b0679146321f4565be1266fcd5145ed7a0610cb59ae9f6fd7f7cf565f24e028272688899ee +DIST nvidia-installer-570.195.03.tar.bz2 169609 BLAKE2B 5b40805276f6da3653e16cc75cf9a4c03ae94e9a5430447b66f960f6103897e7a1369ea2c4c395fabb2f6c24a643086657c78d3587a86ca0f64e04af9ac15765 SHA512 96e41320228ed59931832ec25bffed554a9cdb2cffcdd21714bae580e0d019a632f5c5060c10aa9986ed2ccab057dee55d846277c10e97f8070a2ad246052351 +DIST nvidia-installer-580.95.05.tar.bz2 169558 BLAKE2B 5e52aca8950b83b2a0366fc39dba5b89d22248ced974807f33dababfc06b41b5c40ff238552e61fec54625a6b2bceb8401ebb4fb69b47e33e565058d1796cb9e SHA512 1f20838f4e20d77c9596aa886f53bc4abedfc5e5634665d3bd571fb920013b2dfdf7dcd082b0cfebdf4d104e87203965cff6a04863f9b0bd43f9e25264217578 DIST nvidia-modprobe-390.157.tar.bz2 35306 BLAKE2B 80d202b39c2f95ec0f909712c2e101483af50124092c32efb33bd98ff58ddfb97b737ff07f1ddc941f688c1b4c26a15f392566d522e18506771f10422fcd571c SHA512 109bbe24a3758b568ea65fe1e9d78f69fae6108ec0497b796c885a3912825fe04ffd7389a3e22987f1a10a2926bf6eaa384faabc59478aa3ee244dd3ac91c6d3 DIST nvidia-modprobe-470.256.02.tar.bz2 38769 BLAKE2B 0db444b09b0b6d24c04877fae95249e781d82b3141f90eb05d869b64d2b6e65ad00bf44c4e427c64dbd4765fa99a8699f80a1d95b00c66137a54dc878d7ea298 SHA512 c1cbfa6c8e188e5a5eb5d390b9a903406cbff103d212fc30e611e4023be3fde896ad84e8bb45b030beb5d1bcd8155c9e55a8f9636c45ce1e2a5c03f672989a31 -DIST nvidia-modprobe-535.261.03.tar.bz2 40757 BLAKE2B 96ecb65511ff1ca033768f1f86e10e553bf686ff42c7f995a43c0e111ad5ddf97bd7b6fe439e5fb207f9b765e2200807703489815dba76599adaa24e4fd1bebc SHA512 755ec96dcdad34472f884383d104aa015ac5b964cded12046316f4dbd033ca723d225026866b59d0637294ebc185706204f889403db37552dd7d716467aea37e -DIST nvidia-modprobe-570.169.tar.bz2 41618 BLAKE2B ce6967fea67a387ab177d75cf0bec4162127e7f440ffc971115b2307d68307fdbddcded8e932022088f1815d7208d4b7b8d1895125866d443750307c1353867a SHA512 e7f4d0ad9b29f13b2fccddd27570832d7a95925d82aac0ea0af8b8dcf80ba220c82352b0394eff2184b7f6da227df2462d5579ed75c1a952727820503f37ea7e -DIST nvidia-modprobe-570.181.tar.bz2 41624 BLAKE2B 38dced2130273ca7f4509263a2a2c42136c504fe4c7d2e935a0d9631ca1cff8b93bbca25a48522d2ead8d11e144bc7b4ddc7df30850b4d722ba45b45c0c2ccee SHA512 a4bcd6f549a1b3b2fad0e984fb2e1de56c4f7ce007a0db851887857282cbbd58009988fe6d89f47334395417cf4408548999e8129f84bd240e92dffffeeb9c6a -DIST nvidia-modprobe-570.190.tar.bz2 41637 BLAKE2B 502eaea265dc75c777ac908c2b8d9c052e992eea54eb832417dae5d34e3903a433bb962e27714cfe559ef90a03523f4812b671e4c2d2048a6a376b1a70a1f944 SHA512 bc377bfa4813b3187ca4a2f2d896708c720c66732bc2a3bd8c093c6098af899e8b5f4b774d2c75029be915c32a91c6f4e344d59ae57188961dc289b7af81aec5 -DIST nvidia-modprobe-575.64.05.tar.bz2 41721 BLAKE2B 9b8a6dda556389abe0c2bd81ed3edfa8142f773832b7d955385119b5fd525cbcfd3c01401f471ccf5dc7ce61100ba6a3c4504b8eaf86ea5b378d20a6046ff7ce SHA512 221a0469a974c7db3f3c489f2637b6eef68e614c5ccd3e94c8cbe1b8841a6e9a4f0e2f05642b6c9f7113efe3c211076ac31578e9587df26b76148a198d21cd49 -DIST nvidia-modprobe-580.82.07.tar.bz2 41700 BLAKE2B a0022d3dcaf74e0981e8aa1ca517e0b2d776e1f32f68489850fef07e5c654f1f7eaa7306c799940ede7075ee90e94d4b98c60a7460b2fdd1508010774fbd85db SHA512 37f2a7fafc29aaa5a0d9c4db04755360296fc7b792ef942ce8210a504ea845e466a0f173cce8de9f267036bd16cf0c5ffb2800ae30586078798b9fa5d55aa0c0 -DIST nvidia-modprobe-580.82.09.tar.bz2 41686 BLAKE2B fe705974e57859e4409645370d45012035e9b093edd42092ac69d46cb28f7d96a26ea9f2a2947b2da92f44e2c8a85e69f82910183e64c11b2fb9dec325b0bd3f SHA512 8a4052cc1de3be2a646402b5507c9acbf5d95d44893ce2af086adef0293bd421fd7424c16169d6ea1c32b9c3daa6f73b34f6c0dbb47c289d1c376b88fb09d4b1 +DIST nvidia-modprobe-535.274.02.tar.bz2 40749 BLAKE2B 85cab6efd924d6a10a1336334ef2b3dd7005da9315518b59a865feffd889aaebfe428d142dee4cdc03eb4f77850c314abc1ba1b60083d0339c2466ed3c30b220 SHA512 cad7dd263ac430457fcb2a1e8659f53d436e2c46330ded165698c5b8ff0a52795edc837f724178f5c929e25aebf6c6094d14eb08e9469a17bd1673195cbc849b +DIST nvidia-modprobe-570.195.03.tar.bz2 41605 BLAKE2B e61623d3249911b0d0c8f6d66f6bb4436eab50dfb2cdb43208391f58e7621a86e4a14631261518548480a600c2d14bd0dd87365115408aac82f46f4154d4c801 SHA512 83ee9062371430c3cd25632cce5b46e135d8e85bc690a70c25e6fd872d9df13aedc890d9ccde79629bdc2753babd3aabd8b052e047d2d0c6a47675897b082624 +DIST nvidia-modprobe-580.95.05.tar.bz2 41708 BLAKE2B 17988280c9c54fdc86dcf757903f18f83d1eb44b25a1386f8cc9bf098aec87b77c52bd3da9ea77511716c678e4354e8a40bee1561a953ed56eda350ab4a3e464 SHA512 67faabda2388515fcad71ffc965c7506156116f4e020837da33b0f17bd30aa05cd2d28a54711990684110133ad1a58a8db5473f58f2e5e587bc8edf5253a9351 DIST nvidia-persistenced-390.157.tar.bz2 48654 BLAKE2B 2cf6c92da90acff55e8c180a06b0c6a29d48be9fd8ca3c541202fd14f0697220fba6b66452942aa7ae7cc8821f5c5eb9fa8f7a31d2248624e5f9141d83a176b8 SHA512 70f0707ed6f2b877e69ef90cf782f66cbc9d2071db53ca09ceb7b89427b0fe176708517340621fa251539b7d481b238adeeb60261674eed74de1f62db6dbb72e DIST nvidia-persistenced-470.256.02.tar.bz2 46567 BLAKE2B 8f837322a3b88412fd2f6acf38721b49a6cb444fbd842d652519e5596f2e545d8f06bbdf017f46a22301ce87455f96147fab2829ca5fbf26131ec3e4a772e282 SHA512 4fd19258649b7d39945fb5c8578bf11ab118617dd14f3d11cdf15cb3fe77daf7b4719e4ae57af59031b1b809d02f4e8e8afed0ec60b9d0aed4d2488bd3013cd9 -DIST nvidia-persistenced-535.261.03.tar.bz2 48574 BLAKE2B 71e6be9fd37da2532219a025293a286d87efa31c7fb1d2827b859688f0ed433ffda848a8964980f08d61e74b888b81e694ef8622231642e46e800a346890eb9b SHA512 56d079434e18397516ecf7c398f242f5a3a48781f0ed8fcea30bf844c7bbf5b2618c5817f2df7032670a99cee4f93fe0e7798ef6bff7545e9824fb34919e38d5 -DIST nvidia-persistenced-570.169.tar.bz2 61792 BLAKE2B 14568a42ee3473efe341bd9332081d2a1625f91662c58e75b1b218d5a3d19496071fcc5e9840fa1563aec2755c9d6810db531ed3616c825987311cf3690147f5 SHA512 c5e343be16719ba89f1a37ca8fdeb7f15a4fb028dbce554a7c524238ccb1ed1c1b0527a86a2e6dbdc01cd0b6f3a5d996a0895de4698a0ea98278cd93ef911d58 -DIST nvidia-persistenced-570.181.tar.bz2 61808 BLAKE2B 840e248505a199cc76bc091ae679196618eba3710a29eb7ea30249d22d12a91f62555be97ca3cae28ab0573d72b5e4b26d49c8202d0439d407260e4b98278d98 SHA512 6703b19d06f281bd4df01e64e8d1a17319f681a8826c32b1839363f5ebf53e64da625350f5bcf4887832f18a9f9127d1b749f2419650caa1ffbd68c85470f067 -DIST nvidia-persistenced-570.190.tar.bz2 61789 BLAKE2B 6e99fff2b5dfee49ab124126981a024bf8ac63f9e79dc6e6d7a9b7a4904b224e5eac252d1cad27e632697df92af052c4a79806bae3b37817e1950ef48feb3414 SHA512 17c526b417c20c3fb576508ccc16e8acecac71d967d720ea6665a3e75bd435c57a6f97cb47a372aa304a0b95892a52c2525381775a75440c64f94f3eca035a21 -DIST nvidia-persistenced-575.64.05.tar.bz2 61961 BLAKE2B fa40aea873a30e7c500c2abe85a0ed7e278e4e1cceb2be9fe370752b3e44bccfd94e15e42df2f10237bc02015545b5b31ecdfbfd84b4f0400d56484a69ed96b8 SHA512 77a6fe5665bee6225433e383fe3016a667241e0772223d978ad42df40c8bc77207185c47961859ca9d334bebc7422d1a825ddf58e77d4caa630fcee1ecc5fa54 -DIST nvidia-persistenced-580.82.07.tar.bz2 62334 BLAKE2B 7a25d7f97338b62dc3eb389b7f44ea9258fad6e6fde086ae6adbb24ae93cf3caf26df1f3a0e92ab012cdfdb635e7c207158f70d15ebe5d5df88c920df8c3769f SHA512 a0d51136611a37be86081591b1e78fc7bb56fb4d43a7e0794d61d2bf33b83dc58cff2b6688ef5531f01df6de7b80d086f4bd0162f172cf3422b7001886b4aa51 -DIST nvidia-persistenced-580.82.09.tar.bz2 62150 BLAKE2B fdd8dbc72ca8ea5e962e9de13e06e4c9934045d3164e32a3fda412ee9b665f1cf387653b8d701f8fed4747f36a8d80e8688ecef5648afd3dfcbc358056b2739c SHA512 c90d1f1787a4279e3967e9154754800340d5d46f588cfd71e28435ce131b8e4db787e07f77a895d8be81b82443e7077535f75a2ef5002e52dc8d2dbfbf41c9df +DIST nvidia-persistenced-535.274.02.tar.bz2 48596 BLAKE2B 1f87652351ebdca97b1b145e421abdb2381fe9d824ebde12eb60983cf8480f60dc530337fd2a47d5120f3c77a6fbd895fca2497dacb31ed234a9e5cb357703c4 SHA512 2e8e3929039af7f468a4d43ea5a6452aba86fd715d229883212b9223603d0ecb7417380354e70c85366b173905708947f3bb1919e09382f69a62f502f7c6ae7a +DIST nvidia-persistenced-570.195.03.tar.bz2 61806 BLAKE2B 6dc878a1febffaa1faad53e31abbc8aafebf759cc2d079e8d24b28872a8ce62a6d22e7ac973c1f8bafa7f54f4d2543d082ab57528f3cc578ba854aff02607af6 SHA512 37ea7c685ccb49d593b5651244cbb237830ed6e3af891742e5e4e851b68e60ec031b3d05de6feabcc3da6770373af667878452eaeb02596cdde5ee34199b66ed +DIST nvidia-persistenced-580.95.05.tar.bz2 62343 BLAKE2B ad5a8b185accac6e8488f7b6d138e71db783590ca3b9890a1034771977b2f598c4f920bc48e65dc254b925e71d7f59e935cf1e43c90982e81b48266ac5da4171 SHA512 624c052fd7e7aab74e86c07ab281448415f9900cade11c255f7b6907e7de26180513e83d7374b4a823ab431a0ce2c5a74ae51f8de3889bddeb959ec73c373605 DIST nvidia-settings-390.157.tar.bz2 1108938 BLAKE2B d9ec1ab5d7f157d74627272adf752a671dd17e2ede02069437b6180b927fe315b15cc6416d584ab2f038b76fe01e5b64514a834f24d88ac16676e55205fdecdd SHA512 b16699009bf56a1ff3b623a528c58061c4f5a2c5c4a373756a07bcd667743a1df7c733a572d2d0baa835a904ac2fda8a5c85890dcc00c3a0f223e0467aea902d DIST nvidia-settings-470.256.02.tar.bz2 1062273 BLAKE2B 8e66201e7861469b12932595ef8f9fd29d4cfd570c2576ae7fbb7383f61c55ac71fe721cc431e79d6d69f86d998b5b4c3cafe531b573f439e6b499b0fc047a19 SHA512 626e66118ae2e62eacfdf44e37529c409b945a6f33637b9690d74abd87a2afb581aaca5f90328d280da99ceb659959d0e5dc5c22ef8013b2205b2b1c72e08007 -DIST nvidia-settings-535.261.03.tar.bz2 1094587 BLAKE2B 3be599e733be97e0a23182d9bfc2862a2ff1d386a8339a34f369ac3e7a29b951ef7c900424502b31d8a50b8a5571c440ba6fd1314874a5ca594657742ef0aca1 SHA512 418f078caed68e9d1feef10a3a772fb9a265fac5a74822e2637c0b8bdbdc43629a8ced83549ee1c237b327490783d7da59e749f3c284a17edea2bbab62462f68 -DIST nvidia-settings-570.169.tar.bz2 1123877 BLAKE2B df4309c9230352b88467537e9de9372e3e422a1b346c01ca807191aa322638ead912ffd80eeef8e404231f9d28ec9e45fddb1fe1a94777f6ca122e378c0c5b7b SHA512 34c25843c55e80efc987f344b3226e2715ccbf60e9d9f75f665c1a4199d69bef005f5c27d04f5d1cdf4fee38e4d44857d32f2dd97f84764e054d0050881a6377 -DIST nvidia-settings-570.181.tar.bz2 1124398 BLAKE2B 9f1df84900e763af0e88f0c2c475d0f9a96f7ef974e3fd2dfe702ee3cd9636fd7f6986e9779b3c083e9b979e8cca133b14bf5481ad1d3c16365ecc0c0f0000f6 SHA512 fcca18c216f6d8de1167f82cb0f170ef845f0a85d279a3e851cf5819c3afb4b18ae8f864a89009709d925ccb7a756e02307b67bf8aedd5cddd45de3f5b399be7 -DIST nvidia-settings-570.190.tar.bz2 1124446 BLAKE2B 788f6716df879c949cde999180de2fc4066611b001295679e97bc02b1f706d8d7e8f2fb1834798042ed8e516aad2c54d582dc026a968886ae8c6c37e883102c8 SHA512 02d31ceed435cb9721d372cee265dc5360e22f86ba3e12c29b19d0bb5ffff272a37a1ce128ee43ec1b0a3b894664c0593043565b70009220b83551191a97bc20 -DIST nvidia-settings-575.64.05.tar.bz2 1127714 BLAKE2B 935649b61361ff9b05f34ba9770704eb945134199edbb17d2581f74188f8b122009b6d4309b225c375fcb80f26fb6a82c9528bf22e5658c5856d1752bee309bb SHA512 3e3df016f1f6b34a802d872c67a9f1c0db6d38c8265343eb607c71c59bf5597c7378800641b1152af404ebc0515f8f79eff1ee0e81b87b84ff7a237c176526f6 -DIST nvidia-settings-580.82.07.tar.bz2 1131284 BLAKE2B b3d71917b1259ec5b4426c418d74da482edb0ea4f6f6875d59dab3c18d327e75a3392eeb4346ac5e9f18d5726cc4fb8e16812e3d4da4cbd369dfad823ab6a3a1 SHA512 16e7a3e11f7f94f231b45aa46bb93446f38adad922d301600e77b6c9965d26a50f57db3eb5775e2e719c45bea39317799d669e79d1bf5c35495ac7f272044ab1 -DIST nvidia-settings-580.82.09.tar.bz2 1131127 BLAKE2B fbe5405c64d2cbeb8b739664ef2ec72ef601bde4a3d32eb033ce924090ce8e52d2c1347d7189cbc76c5e4a53a86a43c0cde6b427cfaf8b41c6aee3931772b11f SHA512 a04b381caf5963fa76090cf183eb587d10e9f56fef50268096a5808b752f1a9de995d02086945319596af9013fdb7c0b5edac7eeccbe7baf95d5da90f227414d +DIST nvidia-settings-535.274.02.tar.bz2 1094628 BLAKE2B 065eab7e3a6d2a38e437b133eeebddd647467ecfb110f1f356a37df2309e738372902bd8ad7cccb0643da0ef0a310536bc336e8583bf2a9058d580f4795a4b92 SHA512 bcaff79ebf66197a4228c6cda17995f6f0d1a6e8f1f156b907f5e7d7f06bdbf318b4fe084591e3f767ba4efc3a0986d2506fb4775ee09613d2c8f438762db1dd +DIST nvidia-settings-570.195.03.tar.bz2 1124511 BLAKE2B 64f404f9659aeb97cf4c498e7857384ce6de5df7f6a0b21d2507e896524c1d9e0a570a5afefc67cd7ecb011b74f513891ef45592398a4b7ca9e971efabb84653 SHA512 68274d9b2622310b729e73bbd96777e5c7f36501d397b9156039b24cef4933f91757414353f70216b4264c858a24ec34ab996db23ad2dc4cfe1bd70bd77052f9 +DIST nvidia-settings-580.95.05.tar.bz2 1131496 BLAKE2B 5eb45787d743319593ca36c6d95fc9e93a020615935211c627dbebccecf92b8dd7d28c6d63a95a07c8cad1a70a65b0ddcc0040564ece0bf3383478ae59bd3aa2 SHA512 8c60d4df230e253d5fdeda972f0a8a9285ee419fe9be34aa3d25c06d4954bb9b6fc6db789f3a621813fb817f6de6fbdec6d79f70d519f1ddcb6b25b8378d6480 DIST nvidia-xconfig-390.157.tar.bz2 107399 BLAKE2B 0cbb3b1ba508ddc3ba4a161c290b31bf7a67f67880bdbd01171a962c5fa97ca945b1ef17932403f8589309380743f1da632c728d8accb6d4e56dbd895e7486bb SHA512 50b390811c9bf091b14add41f886925b17496b41006b7d3981d2398caa65cf5db8a579c8cebed78278384bf3acc629befb07b54339c61abcc75852c0dcb8b8ca DIST nvidia-xconfig-470.256.02.tar.bz2 108698 BLAKE2B e468574e4bc57e7279d4120e2b08a201671b50d408be0c530eabe5da7d45daaf21cbf5c7fa31410d0d732fe8ea1551cbfb21d1ae193c1b3f5b5c50c764c9e236 SHA512 9dcec1e0c2b56b4d38a5f2c76086302f8bc0860cc15012cce29c3a5062f801a48b6a2bb78344361b07a2717b58502783441a2daf402d9973a17526175b1f15ca -DIST nvidia-xconfig-535.261.03.tar.bz2 110637 BLAKE2B aafefde5e5079401951432072f27f6500bf3a4390e01b83e46b7230c75b05cd5806fffbde98f8bd8a39afe1a27bec0f52e13920fa1fd156d083b6ef81e482edb SHA512 4c0ee56495dedb08d6ea0e452cadf02ebcfffb86e8649c9b7904285d5dd8959879a1e00396d1560253c755c9490643458e737afcc0613c0c36dcd37411c76607 -DIST nvidia-xconfig-570.169.tar.bz2 111343 BLAKE2B ff9c00145277241a5acb290fddfa01a906ba26601c45f12d06ea8754be9d29c836f68640db411de6e904d608523bd9d10b644bf1976ef201c58d55db2fc16a47 SHA512 5db772f2cecb3436a42b0f5cad550afae3453d3b17897f457e8f6b48a9c2a71997a317b121837f68e7f23d9a3e141464485144ce362f33adf3d70b326205bbb8 -DIST nvidia-xconfig-570.181.tar.bz2 111274 BLAKE2B 864181bae415b0da164b7d229b25fe0fe963f2e0b89fb0f92c3d799823d6a961b55458e2c6ce80ee3a991b3af387286a0e3d25afb5a90fe1dce8abca77ee2c9c SHA512 44d1a17187f88570382073901b7e64332156cd99a916b5ab483850df496fcfb4f9980bc323df65f73cbe65c32ff70995d00865155ef05b28cba24378fc49accb -DIST nvidia-xconfig-570.190.tar.bz2 111236 BLAKE2B c72587d43d6383bb21eb5c8a289dcdf6af1967163c425d3390b77daa8d3ff94b6ffbab799d57233d4f4fe64162cd132ed8aed26e66f91ead16411afde634e876 SHA512 7c2ccd49056a6ef4ef3649d37b3e5bdcd37b0b68d495e3230e32d1d6c756103858df5daf77c7f38da13497413b473dcd24e17e6ba471e35c2a30890a0057c7a2 -DIST nvidia-xconfig-575.64.05.tar.bz2 111165 BLAKE2B 87b272e12b63e6d4a393b76e4ec4c47d1433caee1e73ab50c3da8b1b3cb4ece0d0adad3e6496df4a81c0efd8aff67f8afa5de192df24cbe4ae7f8a4b86d674ac SHA512 00dfe0cbf0fb1131391a38b2d1bd95e52ac90b77cf19b76cb6cd6d0a3ef83c5020ff5dd8e08f8d424a7b32338e7752675e1f700392df7efd2d9b96bbc8072541 -DIST nvidia-xconfig-580.82.07.tar.bz2 111509 BLAKE2B 7ebd155ad5d206e69c7f55b8c7ea45876f277d64c0a324d740948782e4572b0e13c7a7d3aad6174eefeea43b6dee20a4aad12fbce7e87bdcf74b9a4b26ae70e7 SHA512 52c7045fd00c013863c1c2b89804a2b0ef20ca14c6a83ecefd33904c0dda56f87ed46b3c871189474fe987ad742861b91373dfa4025d877b09520d02dfe498eb -DIST nvidia-xconfig-580.82.09.tar.bz2 111494 BLAKE2B 7a2966d8d3a29cc07ff58caa9fd234f3dac857819d451e1bb246878c38043fddbdff61738df7ed74115417484f29c7220ee46510978cff2b2c6707dca6af0010 SHA512 983d1c87ecec6d74f136cd8f1561060199826361620bbf5af2c12a218cf9e4ca19b6d14fe4f9ae578332da51a1d5769f9c7412276bfe2be278aa3264ff0e57a7 -DIST open-gpu-kernel-modules-570.123.19.tar.gz 18685718 BLAKE2B 67503cefeb07be00ef16eb2d3ffb1287dc1f460f1ad908526046795cdaf2662fef01affcd23a957e97610560d8380d42c0a24d916a4cfd09d77d5b7f1ebfe7da SHA512 88bb3db9f8d38b03a92f60a56ff31b1c27695151fd6cd892d562fc9e31adc8303d54e35bfca59d368ca8d0fdb847674d3b4a240aabed476d6e89c8dcdbbf2d2c +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 diff --git a/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-535.261.03.ebuild b/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-535.274.02.ebuild similarity index 99% rename from sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-535.261.03.ebuild rename to sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-535.274.02.ebuild index dca7f85afe..bd81c3f507 100644 --- a/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-535.261.03.ebuild +++ b/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-535.274.02.ebuild @@ -7,7 +7,7 @@ MODULES_OPTIONAL_IUSE=+modules inherit desktop dot-a eapi9-pipestatus flag-o-matic linux-mod-r1 multilib inherit readme.gentoo-r1 systemd toolchain-funcs unpacker user-info -MODULES_KERNEL_MAX=6.16 +MODULES_KERNEL_MAX=6.17 NV_URI="https://download.nvidia.com/XFree86/" DESCRIPTION="NVIDIA Accelerated Graphics Driver" diff --git a/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-570.123.19.ebuild b/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-570.123.19.ebuild deleted file mode 100644 index 833f0aa8d2..0000000000 --- a/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-570.123.19.ebuild +++ /dev/null @@ -1,603 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -MODULES_OPTIONAL_IUSE=+modules -inherit desktop dot-a eapi9-pipestatus eapi9-ver flag-o-matic linux-mod-r1 -inherit readme.gentoo-r1 systemd toolchain-funcs unpacker user-info - -MODULES_KERNEL_MAX=6.14 -NV_PIN=570.169 - -DESCRIPTION="NVIDIA Accelerated Graphics Driver" -HOMEPAGE="https://developer.nvidia.com/vulkan-driver" -SRC_URI=" - https://developer.nvidia.com/downloads/vulkan-beta-${PV//.}-linux - -> NVIDIA-Linux-x86_64-${PV}.run - $(printf "https://download.nvidia.com/XFree86/%s/%s-${NV_PIN}.tar.bz2 " \ - nvidia-{installer,modprobe,persistenced,settings,xconfig}{,}) - https://github.com/NVIDIA/open-gpu-kernel-modules/archive/refs/tags/${PV}.tar.gz - -> open-gpu-kernel-modules-${PV}.tar.gz -" -# nvidia-installer is unused but here for GPL-2's "distribute sources" -S=${WORKDIR} - -LICENSE="NVIDIA-2023 Apache-2.0 BSD BSD-2 GPL-2 MIT ZLIB curl openssl" -SLOT="0/vulkan" -KEYWORDS="-* ~amd64" -# note: kernel-open is an upstream default in >=560 if all GPUs on the system -# support it but, since no automagic here, keeping it off for the wider support -IUSE="+X abi_x86_32 abi_x86_64 kernel-open persistenced powerd +static-libs +tools wayland" -REQUIRED_USE="kernel-open? ( modules )" - -COMMON_DEPEND=" - acct-group/video - X? ( x11-libs/libpciaccess ) - persistenced? ( - acct-user/nvpd - net-libs/libtirpc:= - ) - tools? ( - >=app-accessibility/at-spi2-core-2.46:2 - dev-libs/glib:2 - dev-libs/jansson:= - media-libs/harfbuzz:= - x11-libs/cairo - x11-libs/gdk-pixbuf:2 - x11-libs/gtk+:3[X] - x11-libs/libX11 - x11-libs/libXext - x11-libs/libXxf86vm - x11-libs/pango - ) -" -RDEPEND=" - ${COMMON_DEPEND} - dev-libs/openssl:0/3 - sys-libs/glibc - X? ( - media-libs/libglvnd[X,abi_x86_32(-)?] - x11-libs/libX11[abi_x86_32(-)?] - x11-libs/libXext[abi_x86_32(-)?] - ) - powerd? ( sys-apps/dbus[abi_x86_32(-)?] ) - wayland? ( - >=gui-libs/egl-gbm-1.1.1-r2[abi_x86_32(-)?] - >=gui-libs/egl-wayland-1.1.13.1[abi_x86_32(-)?] - X? ( gui-libs/egl-x11[abi_x86_32(-)?] ) - ) -" -DEPEND=" - ${COMMON_DEPEND} - static-libs? ( - x11-base/xorg-proto - x11-libs/libX11 - x11-libs/libXext - ) - tools? ( - dev-util/vulkan-headers - media-libs/libglvnd - sys-apps/dbus - x11-base/xorg-proto - x11-libs/libXrandr - x11-libs/libXv - x11-libs/libvdpau - ) -" -BDEPEND=" - sys-devel/m4 - virtual/pkgconfig -" - -# there is some non-prebuilt exceptions but rather not maintain a list -QA_PREBUILT="lib/firmware/* usr/bin/* usr/lib*" - -PATCHES=( - "${FILESDIR}"/nvidia-modprobe-390.141-uvm-perms.patch - "${FILESDIR}"/nvidia-settings-530.30.02-desktop.patch -) - -pkg_setup() { - use modules && [[ ${MERGE_TYPE} != binary ]] || return - - # do early before linux-mod-r1 so can use chkconfig to setup CONFIG_CHECK - get_version - require_configured_kernel - - local CONFIG_CHECK=" - PROC_FS - ~DRM_KMS_HELPER - ~DRM_FBDEV_EMULATION - ~SYSVIPC - ~!LOCKDEP - ~!PREEMPT_RT - ~!SLUB_DEBUG_ON - !DEBUG_MUTEXES - $(usev powerd '~CPU_FREQ') - " - - kernel_is -ge 6 11 && linux_chkconfig_present DRM_FBDEV_EMULATION && - CONFIG_CHECK+=" DRM_TTM_HELPER" - - use amd64 && kernel_is -ge 5 8 && CONFIG_CHECK+=" X86_PAT" #817764 - - use kernel-open && CONFIG_CHECK+=" MMU_NOTIFIER" #843827 - - local drm_helper_msg="Cannot be directly selected in the kernel's config menus, and may need - selection of a DRM device even if unused, e.g. CONFIG_DRM_QXL=m or - DRM_AMDGPU=m (among others, consult the kernel config's help), can - also use DRM_NOUVEAU=m as long as built as module *not* built-in." - local ERROR_DRM_KMS_HELPER="CONFIG_DRM_KMS_HELPER: is not set but needed for Xorg auto-detection - of drivers (no custom config), and for wayland / nvidia-drm.modeset=1. - ${drm_helper_msg}" - local ERROR_DRM_TTM_HELPER="CONFIG_DRM_TTM_HELPER: is not set but is needed to compile when using - kernel version 6.11.x or newer while DRM_FBDEV_EMULATION is set. - ${drm_helper_msg}" - local ERROR_DRM_FBDEV_EMULATION="CONFIG_DRM_FBDEV_EMULATION: is not set but is needed for - nvidia-drm.fbdev=1 support, currently off-by-default and it could - be ignored, but note that is due to change in the future." - local ERROR_MMU_NOTIFIER="CONFIG_MMU_NOTIFIER: is not set but needed to build with USE=kernel-open. - Cannot be directly selected in the kernel's menuconfig, and may need - selection of another option that requires it such as CONFIG_KVM." - local ERROR_PREEMPT_RT="CONFIG_PREEMPT_RT: is set but is unsupported by NVIDIA upstream and - will fail to build unless the env var IGNORE_PREEMPT_RT_PRESENCE=1 is - set. Please do not report issues if run into e.g. kernel panics while - ignoring this." - - linux-mod-r1_pkg_setup -} - -src_prepare() { - # make patches usable across versions - rm nvidia-modprobe && mv nvidia-modprobe{-${NV_PIN},} || die - rm nvidia-persistenced && mv nvidia-persistenced{-${NV_PIN},} || die - rm nvidia-settings && mv nvidia-settings{-${NV_PIN},} || die - rm nvidia-xconfig && mv nvidia-xconfig{-${NV_PIN},} || die - mv open-gpu-kernel-modules-${PV} kernel-module-source || die - - default - - # prevent detection of incomplete kernel DRM support (bug #603818) - sed 's/defined(CONFIG_DRM/defined(CONFIG_DRM_KMS_HELPER/g' \ - -i kernel{,-module-source/kernel-open}/conftest.sh || die - - sed 's/__USER__/nvpd/' \ - nvidia-persistenced/init/systemd/nvidia-persistenced.service.template \ - > "${T}"/nvidia-persistenced.service || die - - # use alternative vulkan icd option if USE=-X (bug #909181) - use X || sed -i 's/"libGLX/"libEGL/' nvidia_{layers,icd}.json || die - - # enable nvidia-drm.modeset=1 by default with USE=wayland - cp "${FILESDIR}"/nvidia-570.conf "${T}"/nvidia.conf || die - use !wayland || sed -i '/^#.*modeset=1$/s/^#//' "${T}"/nvidia.conf || die - - # makefile attempts to install wayland library even if not built - use wayland || sed -i 's/ WAYLAND_LIB_install$//' \ - nvidia-settings/src/Makefile || die -} - -src_compile() { - tc-export AR CC CXX LD OBJCOPY OBJDUMP PKG_CONFIG - - # extra flags for the libXNVCtrl.a static library - local xnvflags=-fPIC #840389 - tc-is-lto && xnvflags+=" $(test-flags-CC -ffat-lto-objects)" - - NV_ARGS=( - PREFIX="${EPREFIX}"/usr - HOST_CC="$(tc-getBUILD_CC)" - HOST_LD="$(tc-getBUILD_LD)" - BUILD_GTK2LIB= - NV_USE_BUNDLED_LIBJANSSON=0 - NV_VERBOSE=1 DO_STRIP= MANPAGE_GZIP= OUTPUTDIR=out - WAYLAND_AVAILABLE=$(usex wayland 1 0) - XNVCTRL_CFLAGS="${xnvflags}" - ) - - if use modules; then - local o_cflags=${CFLAGS} o_cxxflags=${CXXFLAGS} o_ldflags=${LDFLAGS} - - # conftest.sh is broken with c23 due to func() changing meaning, - # and then fails later due to ealier misdetections - # TODO: try without now and then + drop modargs' CC= (bug #944092) - KERNEL_CC+=" -std=gnu17" - - local modlistargs=video:kernel - if use kernel-open; then - modlistargs+=-module-source:kernel-module-source/kernel-open - - # environment flags are normally unused for modules, but nvidia - # uses it for building the "blob" and it is a bit fragile - filter-flags -fno-plt #912949 - filter-lto - CC=${KERNEL_CC} CXX=${KERNEL_CXX} strip-unsupported-flags - - LDFLAGS=$(raw-ldflags) - fi - - local modlist=( nvidia{,-drm,-modeset,-peermem,-uvm}=${modlistargs} ) - local modargs=( - CC="${KERNEL_CC}" # needed for above gnu17 workaround - IGNORE_CC_MISMATCH=yes NV_VERBOSE=1 - SYSOUT="${KV_OUT_DIR}" SYSSRC="${KV_DIR}" - - # kernel takes "x86" and "x86_64" as meaning the same, but nvidia - # makes the distinction (since 550.135) and is not happy with "x86" - # TODO?: it should be ok/better for tc-arch-kernel to do x86_64 - $(usev amd64 ARCH=x86_64) - ) - - # temporary workaround for bug #914468 - addpredict "${KV_OUT_DIR}" - - linux-mod-r1_src_compile - CFLAGS=${o_cflags} CXXFLAGS=${o_cxxflags} LDFLAGS=${o_ldflags} - fi - - emake "${NV_ARGS[@]}" -C nvidia-modprobe - use persistenced && emake "${NV_ARGS[@]}" -C nvidia-persistenced - use X && emake "${NV_ARGS[@]}" -C nvidia-xconfig - - if use tools; then - # avoid noisy *very* noisy logs with deprecation warnings - CFLAGS="-Wno-deprecated-declarations ${CFLAGS}" \ - emake "${NV_ARGS[@]}" -C nvidia-settings - elif use static-libs; then - # pretend GTK+3 is available, not actually used (bug #880879) - emake "${NV_ARGS[@]}" BUILD_GTK3LIB=1 \ - -C nvidia-settings/src out/libXNVCtrl.a - fi -} - -src_install() { - local libdir=$(get_libdir) libdir32=$(ABI=x86 get_libdir) - - NV_ARGS+=( DESTDIR="${D}" LIBDIR="${ED}"/usr/${libdir} ) - - local -A paths=( - [APPLICATION_PROFILE]=/usr/share/nvidia - [CUDA_ICD]=/etc/OpenCL/vendors - [EGL_EXTERNAL_PLATFORM_JSON]=/usr/share/egl/egl_external_platform.d - [FIRMWARE]=/lib/firmware/nvidia/${PV} - [GBM_BACKEND_LIB_SYMLINK]=/usr/${libdir}/gbm - [GLVND_EGL_ICD_JSON]=/usr/share/glvnd/egl_vendor.d - [OPENGL_DATA]=/usr/share/nvidia - [VULKANSC_ICD_JSON]=/usr/share/vulkansc - [VULKAN_ICD_JSON]=/usr/share/vulkan - [WINE_LIB]=/usr/${libdir}/nvidia/wine - [XORG_OUTPUTCLASS_CONFIG]=/usr/share/X11/xorg.conf.d - - [GLX_MODULE_SHARED_LIB]=/usr/${libdir}/xorg/modules/extensions - [GLX_MODULE_SYMLINK]=/usr/${libdir}/xorg/modules - [XMODULE_SHARED_LIB]=/usr/${libdir}/xorg/modules - ) - - local skip_files=( - $(usev !X "libGLX_nvidia libglxserver_nvidia") - libGLX_indirect # non-glvnd unused fallback - libnvidia-{gtk,wayland-client} nvidia-{settings,xconfig} # from source - libnvidia-egl-gbm 15_nvidia_gbm # gui-libs/egl-gbm - libnvidia-egl-wayland 10_nvidia_wayland # gui-libs/egl-wayland - libnvidia-egl-xcb 20_nvidia_xcb.json # gui-libs/egl-x11 - libnvidia-egl-xlib 20_nvidia_xlib.json # gui-libs/egl-x11 - libnvidia-pkcs11.so # using the openssl3 version instead - ) - local skip_modules=( - $(usev !X "nvfbc vdpau xdriver") - $(usev !modules gsp) - $(usev !powerd powerd) - installer nvpd # handled separately / built from source - ) - local skip_types=( - GLVND_LIB GLVND_SYMLINK EGL_CLIENT.\* GLX_CLIENT.\* # media-libs/libglvnd - OPENCL_WRAPPER.\* # virtual/opencl - DOCUMENTATION DOT_DESKTOP .\*_SRC DKMS_CONF SYSTEMD_UNIT # handled separately / unused - ) - - local DOCS=( - README.txt NVIDIA_Changelog supported-gpus/supported-gpus.json - nvidia-settings/doc/{FRAMELOCK,NV-CONTROL-API}.txt - ) - local HTML_DOCS=( html/. ) - einstalldocs - - local DISABLE_AUTOFORMATTING=yes - local DOC_CONTENTS="\ -Trusted users should be in the 'video' group to use NVIDIA devices. -You can add yourself by using: gpasswd -a my-user video\ -$(usev modules " - -Like all out-of-tree kernel modules, it is necessary to rebuild -${PN} after upgrading or rebuilding the Linux kernel -by for example running \`emerge @module-rebuild\`. Alternatively, -if using a distribution kernel (sys-kernel/gentoo-kernel{,-bin}), -this can be automated by setting USE=dist-kernel globally. - -Loaded kernel modules also must not mismatch with the installed -${PN} version (excluding -r revision), meaning should -ensure \`eselect kernel list\` points to the kernel that will be -booted before building and preferably reboot after upgrading -${PN} (the ebuild will emit a warning if mismatching). - -See '${EPREFIX}/etc/modprobe.d/nvidia.conf' for modules options.")\ -$(use amd64 && usev !abi_x86_32 " - -Note that without USE=abi_x86_32 on ${PN}, 32bit applications -(typically using wine / steam) will not be able to use GPU acceleration.") - -Be warned that USE=kernel-open may need to be either enabled or -disabled for certain cards to function: -- GTX 50xx (blackwell) and higher require it to be enabled -- GTX 1650 and higher (pre-blackwell) should work either way -- Older cards require it to be disabled - -For additional information or for troubleshooting issues, please see -https://wiki.gentoo.org/wiki/NVIDIA/nvidia-drivers and NVIDIA's own -documentation that is installed alongside this README." - readme.gentoo_create_doc - - if use modules; then - linux-mod-r1_src_install - - insinto /etc/modprobe.d - doins "${T}"/nvidia.conf - - # used for gpu verification with binpkgs (not kept, see pkg_preinst) - insinto /usr/share/nvidia - doins supported-gpus/supported-gpus.json - fi - - emake "${NV_ARGS[@]}" -C nvidia-modprobe install - fowners :video /usr/bin/nvidia-modprobe #505092 - fperms 4710 /usr/bin/nvidia-modprobe - - if use persistenced; then - emake "${NV_ARGS[@]}" -C nvidia-persistenced install - newconfd "${FILESDIR}"/nvidia-persistenced.confd nvidia-persistenced - newinitd "${FILESDIR}"/nvidia-persistenced.initd nvidia-persistenced - systemd_dounit "${T}"/nvidia-persistenced.service - fi - - if use tools; then - emake "${NV_ARGS[@]}" -C nvidia-settings install - - doicon nvidia-settings/doc/nvidia-settings.png - domenu nvidia-settings/doc/nvidia-settings.desktop - - exeinto /etc/X11/xinit/xinitrc.d - newexe "${FILESDIR}"/95-nvidia-settings-r1 95-nvidia-settings - fi - - if use static-libs; then - dolib.a nvidia-settings/src/out/libXNVCtrl.a - strip-lto-bytecode - - insinto /usr/include/NVCtrl - doins nvidia-settings/src/libXNVCtrl/NVCtrl{Lib,}.h - fi - - use X && emake "${NV_ARGS[@]}" -C nvidia-xconfig install - - # mimic nvidia-installer by reading .manifest to install files - # 0:file 1:perms 2:type 3+:subtype/arguments -:module - local m into - while IFS=' ' read -ra m; do - ! [[ ${#m[@]} -ge 2 && ${m[-1]} =~ MODULE: ]] || - [[ " ${m[0]##*/}" =~ ^(\ ${skip_files[*]/%/.*|\\} )$ ]] || - [[ " ${m[2]}" =~ ^(\ ${skip_types[*]/%/|\\} )$ ]] || - has ${m[-1]#MODULE:} "${skip_modules[@]}" && continue - - case ${m[2]} in - MANPAGE) - gzip -dc ${m[0]} | newman - ${m[0]%.gz} - pipestatus || die - continue - ;; - GBM_BACKEND_LIB_SYMLINK) m[4]=../${m[4]};; # missing ../ - VDPAU_SYMLINK) m[4]=vdpau/; m[5]=${m[5]#vdpau/};; # .so to vdpau/ - esac - - if [[ -v 'paths[${m[2]}]' ]]; then - into=${paths[${m[2]}]} - elif [[ ${m[2]} == EXPLICIT_PATH ]]; then - into=${m[3]} - elif [[ ${m[2]} == *_BINARY ]]; then - into=/usr/bin - elif [[ ${m[3]} == COMPAT32 ]]; then - use abi_x86_32 || continue - into=/usr/${libdir32} - elif [[ ${m[2]} == *_@(LIB|SYMLINK) ]]; then - into=/usr/${libdir} - else - die "No known installation path for ${m[0]}" - fi - [[ ${m[3]: -2} == ?/ ]] && into+=/${m[3]%/} - [[ ${m[4]: -2} == ?/ ]] && into+=/${m[4]%/} - - if [[ ${m[2]} =~ _SYMLINK$ ]]; then - [[ ${m[4]: -1} == / ]] && m[4]=${m[5]} - dosym ${m[4]} ${into}/${m[0]} - continue - fi - # avoid portage warning due to missing soname links in manifest - [[ ${m[0]} =~ ^libnvidia-ngx.so ]] && - dosym ${m[0]} ${into}/${m[0]%.so*}.so.1 - - printf -v m[1] %o $((m[1] | 0200)) # 444->644 - insopts -m${m[1]} - insinto ${into} - doins ${m[0]} - done < .manifest || die - insopts -m0644 # reset - - # MODULE:installer non-skipped extras - : "$(systemd_get_sleepdir)" - exeinto "${_#"${EPREFIX}"}" - doexe systemd/system-sleep/nvidia - dobin systemd/nvidia-sleep.sh - systemd_dounit systemd/system/nvidia-{hibernate,resume,suspend,suspend-then-hibernate}.service - - dobin nvidia-bug-report.sh - - insinto /usr/share/nvidia/files.d - doins sandboxutils-filelist.json - - # MODULE:powerd extras - if use powerd; then - newinitd "${FILESDIR}"/nvidia-powerd.initd nvidia-powerd #923117 - systemd_dounit systemd/system/nvidia-powerd.service - - insinto /usr/share/dbus-1/system.d - doins nvidia-dbus.conf - fi - - # enabling is needed for sleep to work properly and little reason not to do - # it unconditionally for a better user experience - : "$(systemd_get_systemunitdir)" - local unitdir=${_#"${EPREFIX}"} - # not using relative symlinks to match systemd's own links - dosym {"${unitdir}",/etc/systemd/system/systemd-hibernate.service.wants}/nvidia-hibernate.service - dosym {"${unitdir}",/etc/systemd/system/systemd-hibernate.service.wants}/nvidia-resume.service - dosym {"${unitdir}",/etc/systemd/system/systemd-suspend.service.wants}/nvidia-suspend.service - dosym {"${unitdir}",/etc/systemd/system/systemd-suspend.service.wants}/nvidia-resume.service - dosym {"${unitdir}",/etc/systemd/system/systemd-suspend-then-hibernate.service.wants}/nvidia-suspend-then-hibernate.service - dosym {"${unitdir}",/etc/systemd/system/systemd-suspend-then-hibernate.service.wants}/nvidia-resume.service - # also add a custom elogind hook to do the equivalent of the above - exeinto /usr/lib/elogind/system-sleep - newexe "${FILESDIR}"/system-sleep.elogind nvidia - # =systemd-256 or may fail to resume with some setups - # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1072722 - insinto "${unitdir}"/systemd-homed.service.d - newins - 10-nvidia.conf <<-EOF - [Service] - Environment=SYSTEMD_HOME_LOCK_FREEZE_SESSION=false - EOF - insinto "${unitdir}"/systemd-suspend.service.d - newins - 10-nvidia.conf <<-EOF - [Service] - Environment=SYSTEMD_SLEEP_FREEZE_USER_SESSIONS=false - EOF - dosym -r "${unitdir}"/systemd-{suspend,hibernate}.service.d/10-nvidia.conf - dosym -r "${unitdir}"/systemd-{suspend,hybrid-sleep}.service.d/10-nvidia.conf - dosym -r "${unitdir}"/systemd-{suspend,suspend-then-hibernate}.service.d/10-nvidia.conf - - # symlink non-versioned so nvidia-settings can use it even if misdetected - dosym nvidia-application-profiles-${PV}-key-documentation \ - ${paths[APPLICATION_PROFILE]}/nvidia-application-profiles-key-documentation - - # don't attempt to strip firmware files (silences errors) - dostrip -x ${paths[FIRMWARE]} - - # sandbox issues with /dev/nvidiactl and others (bug #904292,#921578) - # are widespread and sometime affect revdeps of packages built with - # USE=opencl/cuda making it hard to manage in ebuilds (minimal set, - # ebuilds should handle manually if need others or addwrite) - insinto /etc/sandbox.d - newins - 20nvidia <<<'SANDBOX_PREDICT="/dev/nvidiactl:/dev/nvidia-caps:/dev/char"' - - # dracut does not use /etc/modprobe.d if hostonly=no, but want to make sure - # our settings are used for bug 932781#c8 and nouveau blacklist if either - # modules are included (however, just best-effort without initramfs regen) - if use modules; then - echo "install_items+=\" ${EPREFIX}/etc/modprobe.d/nvidia.conf \"" >> \ - "${ED}"/usr/lib/dracut/dracut.conf.d/10-${PN}.conf || die - fi -} - -pkg_preinst() { - has_version "${CATEGORY}/${PN}[kernel-open]" && NV_HAD_KERNEL_OPEN= - has_version "${CATEGORY}/${PN}[wayland]" && NV_HAD_WAYLAND= - - use modules || return - - # set video group id based on live system (bug #491414) - local g=$(egetent group video | cut -d: -f3) - [[ ${g} =~ ^[0-9]+$ ]] || die "Failed to determine video group id (got '${g}')" - sed -i "s/@VIDEOGID@/${g}/" "${ED}"/etc/modprobe.d/nvidia.conf || die - - # try to find driver mismatches using temporary supported-gpus.json - # TODO?: automatically check "kernelopen" bit for USE=kernel-open compat - for g in $(grep -l 0x10de /sys/bus/pci/devices/*/vendor 2>/dev/null); do - g=$(grep -io "\"devid\":\"$(<${g%vendor}device)\"[^}]*branch\":\"[0-9]*" \ - "${ED}"/usr/share/nvidia/supported-gpus.json 2>/dev/null) - if [[ ${g} ]]; then - g=$((${g##*\"}+1)) - if ver_test -ge ${g}; then - NV_LEGACY_MASK=">=${CATEGORY}/${PN}-${g}" - break - fi - fi - done - rm "${ED}"/usr/share/nvidia/supported-gpus.json || die -} - -pkg_postinst() { - linux-mod-r1_pkg_postinst - - readme.gentoo_print_elog - - if [[ -r /proc/driver/nvidia/version && - $( ${EROOT}/etc/portage/package.mask/${PN}" - else - ewarn " echo '${NV_LEGACY_MASK}' >> ${EROOT}/etc/portage/package.mask" - fi - ewarn "...then downgrade to a legacy[1] branch if possible (not all old versions" - ewarn "are available or fully functional, may need to consider nouveau[2])." - ewarn "[1] https://www.nvidia.com/object/IO_32667.html" - ewarn "[2] https://wiki.gentoo.org/wiki/Nouveau" - fi - - if use kernel-open && [[ ! -v NV_HAD_KERNEL_OPEN ]]; then - ewarn - ewarn "Open source variant of ${PN} was selected, note that it requires" - ewarn "Turing/Ampere+ GPUs (aka GTX 1650+). Try disabling if run into issues." - ewarn "Also see: ${EROOT}/usr/share/doc/${PF}/html/kernel_open.html" - fi - - if use wayland && use modules && [[ ! -v NV_HAD_WAYLAND ]]; then - elog - elog "With USE=wayland, this version of ${PN} sets nvidia-drm.modeset=1" - elog "in '${EROOT}/etc/modprobe.d/nvidia.conf'. This feature is considered" - elog "experimental but is required for wayland." - elog - elog "If you experience issues, either disable wayland or edit nvidia.conf." - elog "Of note, may possibly cause issues with SLI and Reverse PRIME." - fi - - if use !kernel-open && ver_replacing -lt 555; then - elog - elog "If using a Turing/Ampere+ GPU (aka GTX 1650+), note that >=nvidia-drivers-555" - elog "enables the use of the GSP firmware by default. *If* experience regressions," - elog "please see '${EROOT}/etc/modprobe.d/nvidia.conf' to optionally disable." - fi -} diff --git a/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-570.181.ebuild b/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-570.181.ebuild deleted file mode 100644 index 2ee8de11a9..0000000000 --- a/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-570.181.ebuild +++ /dev/null @@ -1,586 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -MODULES_OPTIONAL_IUSE=+modules -inherit desktop dot-a eapi9-pipestatus flag-o-matic linux-mod-r1 -inherit readme.gentoo-r1 systemd toolchain-funcs unpacker user-info - -MODULES_KERNEL_MAX=6.16 -NV_URI="https://download.nvidia.com/XFree86/" -# x86-64 .run was missing from the usual mirror, use us. until next bump -# (note that it lacks some other files, thus the separate variable) -[[ ${PV} == 570.181 ]] && NV_URI_TMP="https://us.download.nvidia.com/XFree86/" - -DESCRIPTION="NVIDIA Accelerated Graphics Driver" -HOMEPAGE="https://www.nvidia.com/" -SRC_URI=" - amd64? ( ${NV_URI_TMP}Linux-x86_64/${PV}/NVIDIA-Linux-x86_64-${PV}.run ) - arm64? ( ${NV_URI}Linux-aarch64/${PV}/NVIDIA-Linux-aarch64-${PV}.run ) - $(printf "${NV_URI}%s/%s-${PV}.tar.bz2 " \ - nvidia-{installer,modprobe,persistenced,settings,xconfig}{,}) - ${NV_URI}NVIDIA-kernel-module-source/NVIDIA-kernel-module-source-${PV}.tar.xz -" -# nvidia-installer is unused but here for GPL-2's "distribute sources" -S=${WORKDIR} - -LICENSE="NVIDIA-2025 Apache-2.0 BSD BSD-2 GPL-2 MIT ZLIB curl openssl" -SLOT="0/${PV%%.*}" -KEYWORDS="-* amd64 ~arm64" -IUSE="+X abi_x86_32 abi_x86_64 kernel-open persistenced powerd +static-libs +tools wayland" -REQUIRED_USE="kernel-open? ( modules )" - -COMMON_DEPEND=" - acct-group/video - X? ( x11-libs/libpciaccess ) - persistenced? ( - acct-user/nvpd - net-libs/libtirpc:= - ) - tools? ( - >=app-accessibility/at-spi2-core-2.46:2 - dev-libs/glib:2 - dev-libs/jansson:= - media-libs/harfbuzz:= - x11-libs/cairo - x11-libs/gdk-pixbuf:2 - x11-libs/gtk+:3[X] - x11-libs/libX11 - x11-libs/libXext - x11-libs/libXxf86vm - x11-libs/pango - ) -" -RDEPEND=" - ${COMMON_DEPEND} - dev-libs/openssl:0/3 - sys-libs/glibc - X? ( - media-libs/libglvnd[X,abi_x86_32(-)?] - x11-libs/libX11[abi_x86_32(-)?] - x11-libs/libXext[abi_x86_32(-)?] - ) - powerd? ( sys-apps/dbus[abi_x86_32(-)?] ) - wayland? ( - >=gui-libs/egl-gbm-1.1.1-r2[abi_x86_32(-)?] - >=gui-libs/egl-wayland-1.1.13.1[abi_x86_32(-)?] - X? ( gui-libs/egl-x11[abi_x86_32(-)?] ) - ) -" -DEPEND=" - ${COMMON_DEPEND} - static-libs? ( - x11-base/xorg-proto - x11-libs/libX11 - x11-libs/libXext - ) - tools? ( - dev-util/vulkan-headers - media-libs/libglvnd - sys-apps/dbus - x11-base/xorg-proto - x11-libs/libXrandr - x11-libs/libXv - x11-libs/libvdpau - ) -" -BDEPEND=" - sys-devel/m4 - virtual/pkgconfig -" - -# there is some non-prebuilt exceptions but rather not maintain a list -QA_PREBUILT="lib/firmware/* usr/bin/* usr/lib*" - -PATCHES=( - "${FILESDIR}"/nvidia-modprobe-390.141-uvm-perms.patch - "${FILESDIR}"/nvidia-settings-530.30.02-desktop.patch -) - -pkg_setup() { - use modules && [[ ${MERGE_TYPE} != binary ]] || return - - # do early before linux-mod-r1 so can use chkconfig to setup CONFIG_CHECK - get_version - require_configured_kernel - - local CONFIG_CHECK=" - PROC_FS - ~DRM_KMS_HELPER - ~DRM_FBDEV_EMULATION - ~SYSVIPC - ~!LOCKDEP - ~!PREEMPT_RT - ~!SLUB_DEBUG_ON - !DEBUG_MUTEXES - $(usev powerd '~CPU_FREQ') - " - - kernel_is -ge 6 11 && linux_chkconfig_present DRM_FBDEV_EMULATION && - CONFIG_CHECK+=" DRM_TTM_HELPER" - - use amd64 && kernel_is -ge 5 8 && CONFIG_CHECK+=" X86_PAT" #817764 - - use kernel-open && CONFIG_CHECK+=" MMU_NOTIFIER" #843827 - - local drm_helper_msg="Cannot be directly selected in the kernel's config menus, and may need - selection of a DRM device even if unused, e.g. CONFIG_DRM_QXL=m or - DRM_AMDGPU=m (among others, consult the kernel config's help), can - also use DRM_NOUVEAU=m as long as built as module *not* built-in." - local ERROR_DRM_KMS_HELPER="CONFIG_DRM_KMS_HELPER: is not set but needed for Xorg auto-detection - of drivers (no custom config), and for wayland / nvidia-drm.modeset=1. - ${drm_helper_msg}" - local ERROR_DRM_TTM_HELPER="CONFIG_DRM_TTM_HELPER: is not set but is needed to compile when using - kernel version 6.11.x or newer while DRM_FBDEV_EMULATION is set. - ${drm_helper_msg}" - local ERROR_DRM_FBDEV_EMULATION="CONFIG_DRM_FBDEV_EMULATION: is not set but is needed for - nvidia-drm.fbdev=1 support, currently off-by-default and it could - be ignored, but note that is due to change in the future." - local ERROR_MMU_NOTIFIER="CONFIG_MMU_NOTIFIER: is not set but needed to build with USE=kernel-open. - Cannot be directly selected in the kernel's menuconfig, and may need - selection of another option that requires it such as CONFIG_KVM." - local ERROR_PREEMPT_RT="CONFIG_PREEMPT_RT: is set but is unsupported by NVIDIA upstream and - will fail to build unless the env var IGNORE_PREEMPT_RT_PRESENCE=1 is - set. Please do not report issues if run into e.g. kernel panics while - ignoring this." - - linux-mod-r1_pkg_setup -} - -src_prepare() { - # make patches usable across versions - rm nvidia-modprobe && mv nvidia-modprobe{-${PV},} || die - rm nvidia-persistenced && mv nvidia-persistenced{-${PV},} || die - rm nvidia-settings && mv nvidia-settings{-${PV},} || die - rm nvidia-xconfig && mv nvidia-xconfig{-${PV},} || die - mv NVIDIA-kernel-module-source-${PV} kernel-module-source || die - - default - - # prevent detection of incomplete kernel DRM support (bug #603818) - sed 's/defined(CONFIG_DRM/defined(CONFIG_DRM_KMS_HELPER/g' \ - -i kernel{,-module-source/kernel-open}/conftest.sh || die - - sed 's/__USER__/nvpd/' \ - nvidia-persistenced/init/systemd/nvidia-persistenced.service.template \ - > "${T}"/nvidia-persistenced.service || die - - # use alternative vulkan icd option if USE=-X (bug #909181) - use X || sed -i 's/"libGLX/"libEGL/' nvidia_{layers,icd}.json || die - - # enable nvidia-drm.modeset=1 by default with USE=wayland - cp "${FILESDIR}"/nvidia-570.conf "${T}"/nvidia.conf || die - use !wayland || sed -i '/^#.*modeset=1$/s/^#//' "${T}"/nvidia.conf || die - - # makefile attempts to install wayland library even if not built - use wayland || sed -i 's/ WAYLAND_LIB_install$//' \ - nvidia-settings/src/Makefile || die -} - -src_compile() { - tc-export AR CC CXX LD OBJCOPY OBJDUMP PKG_CONFIG - - # extra flags for the libXNVCtrl.a static library - local xnvflags=-fPIC #840389 - tc-is-lto && xnvflags+=" $(test-flags-CC -ffat-lto-objects)" - - NV_ARGS=( - PREFIX="${EPREFIX}"/usr - HOST_CC="$(tc-getBUILD_CC)" - HOST_LD="$(tc-getBUILD_LD)" - BUILD_GTK2LIB= - NV_USE_BUNDLED_LIBJANSSON=0 - NV_VERBOSE=1 DO_STRIP= MANPAGE_GZIP= OUTPUTDIR=out - WAYLAND_AVAILABLE=$(usex wayland 1 0) - XNVCTRL_CFLAGS="${xnvflags}" - ) - - if use modules; then - local o_cflags=${CFLAGS} o_cxxflags=${CXXFLAGS} o_ldflags=${LDFLAGS} - - local modlistargs=video:kernel - if use kernel-open; then - modlistargs+=-module-source:kernel-module-source/kernel-open - - # environment flags are normally unused for modules, but nvidia - # uses it for building the "blob" and it is a bit fragile - filter-flags -fno-plt #912949 - filter-lto - CC=${KERNEL_CC} CXX=${KERNEL_CXX} strip-unsupported-flags - - LDFLAGS=$(raw-ldflags) - fi - - local modlist=( nvidia{,-drm,-modeset,-peermem,-uvm}=${modlistargs} ) - local modargs=( - IGNORE_CC_MISMATCH=yes NV_VERBOSE=1 - SYSOUT="${KV_OUT_DIR}" SYSSRC="${KV_DIR}" - - # kernel takes "x86" and "x86_64" as meaning the same, but nvidia - # makes the distinction (since 550.135) and is not happy with "x86" - # TODO?: it should be ok/better for tc-arch-kernel to do x86_64 - $(usev amd64 ARCH=x86_64) - ) - - # temporary workaround for bug #914468 - addpredict "${KV_OUT_DIR}" - - linux-mod-r1_src_compile - CFLAGS=${o_cflags} CXXFLAGS=${o_cxxflags} LDFLAGS=${o_ldflags} - fi - - emake "${NV_ARGS[@]}" -C nvidia-modprobe - use persistenced && emake "${NV_ARGS[@]}" -C nvidia-persistenced - use X && emake "${NV_ARGS[@]}" -C nvidia-xconfig - - if use tools; then - # avoid noisy *very* noisy logs with deprecation warnings - CFLAGS="-Wno-deprecated-declarations ${CFLAGS}" \ - emake "${NV_ARGS[@]}" -C nvidia-settings - elif use static-libs; then - # pretend GTK+3 is available, not actually used (bug #880879) - emake "${NV_ARGS[@]}" BUILD_GTK3LIB=1 \ - -C nvidia-settings/src out/libXNVCtrl.a - fi -} - -src_install() { - local libdir=$(get_libdir) libdir32=$(ABI=x86 get_libdir) - - NV_ARGS+=( DESTDIR="${D}" LIBDIR="${ED}"/usr/${libdir} ) - - local -A paths=( - [APPLICATION_PROFILE]=/usr/share/nvidia - [CUDA_ICD]=/etc/OpenCL/vendors - [EGL_EXTERNAL_PLATFORM_JSON]=/usr/share/egl/egl_external_platform.d - [FIRMWARE]=/lib/firmware/nvidia/${PV} - [GBM_BACKEND_LIB_SYMLINK]=/usr/${libdir}/gbm - [GLVND_EGL_ICD_JSON]=/usr/share/glvnd/egl_vendor.d - [OPENGL_DATA]=/usr/share/nvidia - [VULKANSC_ICD_JSON]=/usr/share/vulkansc - [VULKAN_ICD_JSON]=/usr/share/vulkan - [WINE_LIB]=/usr/${libdir}/nvidia/wine - [XORG_OUTPUTCLASS_CONFIG]=/usr/share/X11/xorg.conf.d - - [GLX_MODULE_SHARED_LIB]=/usr/${libdir}/xorg/modules/extensions - [GLX_MODULE_SYMLINK]=/usr/${libdir}/xorg/modules - [XMODULE_SHARED_LIB]=/usr/${libdir}/xorg/modules - ) - - local skip_files=( - $(usev !X "libGLX_nvidia libglxserver_nvidia") - libGLX_indirect # non-glvnd unused fallback - libnvidia-{gtk,wayland-client} nvidia-{settings,xconfig} # from source - libnvidia-egl-gbm 15_nvidia_gbm # gui-libs/egl-gbm - libnvidia-egl-wayland 10_nvidia_wayland # gui-libs/egl-wayland - libnvidia-egl-xcb 20_nvidia_xcb.json # gui-libs/egl-x11 - libnvidia-egl-xlib 20_nvidia_xlib.json # gui-libs/egl-x11 - libnvidia-pkcs11.so # using the openssl3 version instead - ) - local skip_modules=( - $(usev !X "nvfbc vdpau xdriver") - $(usev !modules gsp) - $(usev !powerd powerd) - installer nvpd # handled separately / built from source - ) - local skip_types=( - GLVND_LIB GLVND_SYMLINK EGL_CLIENT.\* GLX_CLIENT.\* # media-libs/libglvnd - OPENCL_WRAPPER.\* # virtual/opencl - DOCUMENTATION DOT_DESKTOP .\*_SRC DKMS_CONF SYSTEMD_UNIT # handled separately / unused - ) - - local DOCS=( - README.txt NVIDIA_Changelog supported-gpus/supported-gpus.json - nvidia-settings/doc/{FRAMELOCK,NV-CONTROL-API}.txt - ) - local HTML_DOCS=( html/. ) - einstalldocs - - local DISABLE_AUTOFORMATTING=yes - local DOC_CONTENTS="\ -Trusted users should be in the 'video' group to use NVIDIA devices. -You can add yourself by using: gpasswd -a my-user video\ -$(usev modules " - -Like all out-of-tree kernel modules, it is necessary to rebuild -${PN} after upgrading or rebuilding the Linux kernel -by for example running \`emerge @module-rebuild\`. Alternatively, -if using a distribution kernel (sys-kernel/gentoo-kernel{,-bin}), -this can be automated by setting USE=dist-kernel globally. - -Loaded kernel modules also must not mismatch with the installed -${PN} version (excluding -r revision), meaning should -ensure \`eselect kernel list\` points to the kernel that will be -booted before building and preferably reboot after upgrading -${PN} (the ebuild will emit a warning if mismatching). - -See '${EPREFIX}/etc/modprobe.d/nvidia.conf' for modules options.")\ -$(use amd64 && usev !abi_x86_32 " - -Note that without USE=abi_x86_32 on ${PN}, 32bit applications -(typically using wine / steam) will not be able to use GPU acceleration.") - -Be warned that USE=kernel-open may need to be either enabled or -disabled for certain cards to function: -- GTX 50xx (blackwell) and higher require it to be enabled -- GTX 1650 and higher (pre-blackwell) should work either way -- Older cards require it to be disabled - -For additional information or for troubleshooting issues, please see -https://wiki.gentoo.org/wiki/NVIDIA/nvidia-drivers and NVIDIA's own -documentation that is installed alongside this README." - readme.gentoo_create_doc - - if use modules; then - linux-mod-r1_src_install - - insinto /etc/modprobe.d - doins "${T}"/nvidia.conf - - # used for gpu verification with binpkgs (not kept, see pkg_preinst) - insinto /usr/share/nvidia - doins supported-gpus/supported-gpus.json - fi - - emake "${NV_ARGS[@]}" -C nvidia-modprobe install - fowners :video /usr/bin/nvidia-modprobe #505092 - fperms 4710 /usr/bin/nvidia-modprobe - - if use persistenced; then - emake "${NV_ARGS[@]}" -C nvidia-persistenced install - newconfd "${FILESDIR}"/nvidia-persistenced.confd nvidia-persistenced - newinitd "${FILESDIR}"/nvidia-persistenced.initd nvidia-persistenced - systemd_dounit "${T}"/nvidia-persistenced.service - fi - - if use tools; then - emake "${NV_ARGS[@]}" -C nvidia-settings install - - doicon nvidia-settings/doc/nvidia-settings.png - domenu nvidia-settings/doc/nvidia-settings.desktop - - exeinto /etc/X11/xinit/xinitrc.d - newexe "${FILESDIR}"/95-nvidia-settings-r1 95-nvidia-settings - fi - - if use static-libs; then - dolib.a nvidia-settings/src/out/libXNVCtrl.a - strip-lto-bytecode - - insinto /usr/include/NVCtrl - doins nvidia-settings/src/libXNVCtrl/NVCtrl{Lib,}.h - fi - - use X && emake "${NV_ARGS[@]}" -C nvidia-xconfig install - - # mimic nvidia-installer by reading .manifest to install files - # 0:file 1:perms 2:type 3+:subtype/arguments -:module - local m into - while IFS=' ' read -ra m; do - ! [[ ${#m[@]} -ge 2 && ${m[-1]} =~ MODULE: ]] || - [[ " ${m[0]##*/}" =~ ^(\ ${skip_files[*]/%/.*|\\} )$ ]] || - [[ " ${m[2]}" =~ ^(\ ${skip_types[*]/%/|\\} )$ ]] || - has ${m[-1]#MODULE:} "${skip_modules[@]}" && continue - - case ${m[2]} in - MANPAGE) - gzip -dc ${m[0]} | newman - ${m[0]%.gz} - pipestatus || die - continue - ;; - GBM_BACKEND_LIB_SYMLINK) m[4]=../${m[4]};; # missing ../ - VDPAU_SYMLINK) m[4]=vdpau/; m[5]=${m[5]#vdpau/};; # .so to vdpau/ - esac - - if [[ -v 'paths[${m[2]}]' ]]; then - into=${paths[${m[2]}]} - elif [[ ${m[2]} == EXPLICIT_PATH ]]; then - into=${m[3]} - elif [[ ${m[2]} == *_BINARY ]]; then - into=/usr/bin - elif [[ ${m[3]} == COMPAT32 ]]; then - use abi_x86_32 || continue - into=/usr/${libdir32} - elif [[ ${m[2]} == *_@(LIB|SYMLINK) ]]; then - into=/usr/${libdir} - else - die "No known installation path for ${m[0]}" - fi - [[ ${m[3]: -2} == ?/ ]] && into+=/${m[3]%/} - [[ ${m[4]: -2} == ?/ ]] && into+=/${m[4]%/} - - if [[ ${m[2]} =~ _SYMLINK$ ]]; then - [[ ${m[4]: -1} == / ]] && m[4]=${m[5]} - dosym ${m[4]} ${into}/${m[0]} - continue - fi - # avoid portage warning due to missing soname links in manifest - [[ ${m[0]} =~ ^libnvidia-ngx.so ]] && - dosym ${m[0]} ${into}/${m[0]%.so*}.so.1 - - printf -v m[1] %o $((m[1] | 0200)) # 444->644 - insopts -m${m[1]} - insinto ${into} - doins ${m[0]} - done < .manifest || die - insopts -m0644 # reset - - # MODULE:installer non-skipped extras - : "$(systemd_get_sleepdir)" - exeinto "${_#"${EPREFIX}"}" - doexe systemd/system-sleep/nvidia - dobin systemd/nvidia-sleep.sh - systemd_dounit systemd/system/nvidia-{hibernate,resume,suspend,suspend-then-hibernate}.service - - dobin nvidia-bug-report.sh - - insinto /usr/share/nvidia/files.d - doins sandboxutils-filelist.json - - # MODULE:powerd extras - if use powerd; then - newinitd "${FILESDIR}"/nvidia-powerd.initd nvidia-powerd #923117 - systemd_dounit systemd/system/nvidia-powerd.service - - insinto /usr/share/dbus-1/system.d - doins nvidia-dbus.conf - fi - - # enabling is needed for sleep to work properly and little reason not to do - # it unconditionally for a better user experience - : "$(systemd_get_systemunitdir)" - local unitdir=${_#"${EPREFIX}"} - # not using relative symlinks to match systemd's own links - dosym {"${unitdir}",/etc/systemd/system/systemd-hibernate.service.wants}/nvidia-hibernate.service - dosym {"${unitdir}",/etc/systemd/system/systemd-hibernate.service.wants}/nvidia-resume.service - dosym {"${unitdir}",/etc/systemd/system/systemd-suspend.service.wants}/nvidia-suspend.service - dosym {"${unitdir}",/etc/systemd/system/systemd-suspend.service.wants}/nvidia-resume.service - dosym {"${unitdir}",/etc/systemd/system/systemd-suspend-then-hibernate.service.wants}/nvidia-suspend-then-hibernate.service - dosym {"${unitdir}",/etc/systemd/system/systemd-suspend-then-hibernate.service.wants}/nvidia-resume.service - # also add a custom elogind hook to do the equivalent of the above - exeinto /usr/lib/elogind/system-sleep - newexe "${FILESDIR}"/system-sleep.elogind nvidia - # =systemd-256 or may fail to resume with some setups - # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1072722 - insinto "${unitdir}"/systemd-homed.service.d - newins - 10-nvidia.conf <<-EOF - [Service] - Environment=SYSTEMD_HOME_LOCK_FREEZE_SESSION=false - EOF - insinto "${unitdir}"/systemd-suspend.service.d - newins - 10-nvidia.conf <<-EOF - [Service] - Environment=SYSTEMD_SLEEP_FREEZE_USER_SESSIONS=false - EOF - dosym -r "${unitdir}"/systemd-{suspend,hibernate}.service.d/10-nvidia.conf - dosym -r "${unitdir}"/systemd-{suspend,hybrid-sleep}.service.d/10-nvidia.conf - dosym -r "${unitdir}"/systemd-{suspend,suspend-then-hibernate}.service.d/10-nvidia.conf - - # symlink non-versioned so nvidia-settings can use it even if misdetected - dosym nvidia-application-profiles-${PV}-key-documentation \ - ${paths[APPLICATION_PROFILE]}/nvidia-application-profiles-key-documentation - - # don't attempt to strip firmware files (silences errors) - dostrip -x ${paths[FIRMWARE]} - - # sandbox issues with /dev/nvidiactl and others (bug #904292,#921578) - # are widespread and sometime affect revdeps of packages built with - # USE=opencl/cuda making it hard to manage in ebuilds (minimal set, - # ebuilds should handle manually if need others or addwrite) - insinto /etc/sandbox.d - newins - 20nvidia <<<'SANDBOX_PREDICT="/dev/nvidiactl:/dev/nvidia-caps:/dev/char"' - - # dracut does not use /etc/modprobe.d if hostonly=no, but want to make sure - # our settings are used for bug 932781#c8 and nouveau blacklist if either - # modules are included (however, just best-effort without initramfs regen) - if use modules; then - echo "install_items+=\" ${EPREFIX}/etc/modprobe.d/nvidia.conf \"" >> \ - "${ED}"/usr/lib/dracut/dracut.conf.d/10-${PN}.conf || die - fi -} - -pkg_preinst() { - has_version "${CATEGORY}/${PN}[kernel-open]" && NV_HAD_KERNEL_OPEN= - has_version "${CATEGORY}/${PN}[wayland]" && NV_HAD_WAYLAND= - - use modules || return - - # set video group id based on live system (bug #491414) - local g=$(egetent group video | cut -d: -f3) - [[ ${g} =~ ^[0-9]+$ ]] || die "Failed to determine video group id (got '${g}')" - sed -i "s/@VIDEOGID@/${g}/" "${ED}"/etc/modprobe.d/nvidia.conf || die - - # try to find driver mismatches using temporary supported-gpus.json - for g in $(grep -l 0x10de /sys/bus/pci/devices/*/vendor 2>/dev/null); do - g=$(grep -io "\"devid\":\"$(<${g%vendor}device)\"[^}]*branch\":\"[0-9]*" \ - "${ED}"/usr/share/nvidia/supported-gpus.json 2>/dev/null) - if [[ ${g} ]]; then - g=$((${g##*\"}+1)) - if ver_test -ge ${g}; then - NV_LEGACY_MASK=">=${CATEGORY}/${PN}-${g}" - break - fi - fi - done - rm "${ED}"/usr/share/nvidia/supported-gpus.json || die -} - -pkg_postinst() { - linux-mod-r1_pkg_postinst - - readme.gentoo_print_elog - - if [[ -r /proc/driver/nvidia/version && - $( ${EROOT}/etc/portage/package.mask/${PN}" - else - ewarn " echo '${NV_LEGACY_MASK}' >> ${EROOT}/etc/portage/package.mask" - fi - ewarn "...then downgrade to a legacy[1] branch if possible (not all old versions" - ewarn "are available or fully functional, may need to consider nouveau[2])." - ewarn "[1] https://www.nvidia.com/object/IO_32667.html" - ewarn "[2] https://wiki.gentoo.org/wiki/Nouveau" - fi - - if use kernel-open && [[ ! -v NV_HAD_KERNEL_OPEN ]]; then - ewarn - ewarn "Open source variant of ${PN} was selected, note that it requires" - ewarn "Turing/Ampere+ GPUs (aka GTX 1650+). Try disabling if run into issues." - ewarn "Also see: ${EROOT}/usr/share/doc/${PF}/html/kernel_open.html" - fi - - if use wayland && use modules && [[ ! -v NV_HAD_WAYLAND ]]; then - elog - elog "Note that with USE=wayland, nvidia-drm.modeset=1 will be enabled" - elog "in '${EROOT}/etc/modprobe.d/nvidia.conf'. *If* experience issues," - elog "either disable wayland or edit nvidia.conf." - fi -} diff --git a/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-570.190.ebuild b/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-570.195.03.ebuild similarity index 99% rename from sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-570.190.ebuild rename to sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-570.195.03.ebuild index 26b8820d63..85567b32d9 100644 --- a/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-570.190.ebuild +++ b/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-570.195.03.ebuild @@ -7,7 +7,7 @@ MODULES_OPTIONAL_IUSE=+modules inherit desktop dot-a eapi9-pipestatus flag-o-matic linux-mod-r1 inherit readme.gentoo-r1 systemd toolchain-funcs unpacker user-info -MODULES_KERNEL_MAX=6.16 +MODULES_KERNEL_MAX=6.17 NV_URI="https://download.nvidia.com/XFree86/" DESCRIPTION="NVIDIA Accelerated Graphics Driver" @@ -61,7 +61,10 @@ RDEPEND=" powerd? ( sys-apps/dbus[abi_x86_32(-)?] ) wayland? ( >=gui-libs/egl-gbm-1.1.1-r2[abi_x86_32(-)?] - >=gui-libs/egl-wayland-1.1.13.1[abi_x86_32(-)?] + || ( + >=gui-libs/egl-wayland-1.1.13.1[abi_x86_32(-)?] + gui-libs/egl-wayland2[abi_x86_32(-)?] + ) X? ( gui-libs/egl-x11[abi_x86_32(-)?] ) ) " diff --git a/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-575.64.05.ebuild b/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-575.64.05.ebuild deleted file mode 100644 index 99cd2bf5f0..0000000000 --- a/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-575.64.05.ebuild +++ /dev/null @@ -1,591 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -MODULES_OPTIONAL_IUSE=+modules -inherit desktop dot-a eapi9-pipestatus flag-o-matic linux-mod-r1 -inherit readme.gentoo-r1 systemd toolchain-funcs unpacker user-info - -MODULES_KERNEL_MAX=6.16 -NV_URI="https://download.nvidia.com/XFree86/" -# x86-64 .run was missing from the usual mirror at bump time, while -# aarch64's is missing from this one.. so fetch from different ones -# for now and drop this next bump -[[ ${PV} == 575.64.05 ]] && NV_URI_TMP="https://us.download.nvidia.com/XFree86/" - -DESCRIPTION="NVIDIA Accelerated Graphics Driver" -HOMEPAGE="https://www.nvidia.com/" -SRC_URI=" - amd64? ( ${NV_URI_TMP}Linux-x86_64/${PV}/NVIDIA-Linux-x86_64-${PV}.run ) - arm64? ( ${NV_URI}Linux-aarch64/${PV}/NVIDIA-Linux-aarch64-${PV}.run ) - $(printf "${NV_URI}%s/%s-${PV}.tar.bz2 " \ - nvidia-{installer,modprobe,persistenced,settings,xconfig}{,}) - ${NV_URI}NVIDIA-kernel-module-source/NVIDIA-kernel-module-source-${PV}.tar.xz -" -# nvidia-installer is unused but here for GPL-2's "distribute sources" -S=${WORKDIR} - -LICENSE=" - NVIDIA-2025 Apache-2.0 Boost-1.0 BSD BSD-2 GPL-2 MIT ZLIB - curl openssl public-domain -" -SLOT="0/${PV%%.*}" -KEYWORDS="-* ~amd64 ~arm64" -IUSE="+X abi_x86_32 abi_x86_64 kernel-open persistenced powerd +static-libs +tools wayland" -REQUIRED_USE="kernel-open? ( modules )" - -COMMON_DEPEND=" - acct-group/video - X? ( x11-libs/libpciaccess ) - persistenced? ( - acct-user/nvpd - net-libs/libtirpc:= - ) - tools? ( - >=app-accessibility/at-spi2-core-2.46:2 - dev-libs/glib:2 - dev-libs/jansson:= - media-libs/harfbuzz:= - x11-libs/cairo - x11-libs/gdk-pixbuf:2 - x11-libs/gtk+:3[X] - x11-libs/libX11 - x11-libs/libXext - x11-libs/libXxf86vm - x11-libs/pango - ) -" -RDEPEND=" - ${COMMON_DEPEND} - dev-libs/openssl:0/3 - sys-libs/glibc - X? ( - media-libs/libglvnd[X,abi_x86_32(-)?] - x11-libs/libX11[abi_x86_32(-)?] - x11-libs/libXext[abi_x86_32(-)?] - ) - powerd? ( sys-apps/dbus[abi_x86_32(-)?] ) - wayland? ( - >=gui-libs/egl-gbm-1.1.1-r2[abi_x86_32(-)?] - >=gui-libs/egl-wayland-1.1.13.1[abi_x86_32(-)?] - X? ( gui-libs/egl-x11[abi_x86_32(-)?] ) - ) -" -DEPEND=" - ${COMMON_DEPEND} - static-libs? ( - x11-base/xorg-proto - x11-libs/libX11 - x11-libs/libXext - ) - tools? ( - dev-util/vulkan-headers - media-libs/libglvnd - sys-apps/dbus - x11-base/xorg-proto - x11-libs/libXrandr - x11-libs/libXv - x11-libs/libvdpau - ) -" -BDEPEND=" - app-alternatives/awk - sys-devel/m4 - virtual/pkgconfig -" - -# there is some non-prebuilt exceptions but rather not maintain a list -QA_PREBUILT="lib/firmware/* usr/bin/* usr/lib*" - -PATCHES=( - "${FILESDIR}"/nvidia-modprobe-390.141-uvm-perms.patch - "${FILESDIR}"/nvidia-settings-530.30.02-desktop.patch -) - -pkg_setup() { - use modules && [[ ${MERGE_TYPE} != binary ]] || return - - # do early before linux-mod-r1 so can use chkconfig to setup CONFIG_CHECK - get_version - require_configured_kernel - - local CONFIG_CHECK=" - PROC_FS - ~DRM_KMS_HELPER - ~DRM_FBDEV_EMULATION - ~SYSVIPC - ~!LOCKDEP - ~!PREEMPT_RT - ~!SLUB_DEBUG_ON - !DEBUG_MUTEXES - $(usev powerd '~CPU_FREQ') - " - - kernel_is -ge 6 11 && linux_chkconfig_present DRM_FBDEV_EMULATION && - CONFIG_CHECK+=" DRM_TTM_HELPER" - - use amd64 && kernel_is -ge 5 8 && CONFIG_CHECK+=" X86_PAT" #817764 - - use kernel-open && CONFIG_CHECK+=" MMU_NOTIFIER" #843827 - - local drm_helper_msg="Cannot be directly selected in the kernel's config menus, and may need - selection of a DRM device even if unused, e.g. CONFIG_DRM_QXL=m or - DRM_AMDGPU=m (among others, consult the kernel config's help), can - also use DRM_NOUVEAU=m as long as built as module *not* built-in." - local ERROR_DRM_KMS_HELPER="CONFIG_DRM_KMS_HELPER: is not set but needed for Xorg auto-detection - of drivers (no custom config), and for wayland / nvidia-drm.modeset=1. - ${drm_helper_msg}" - local ERROR_DRM_TTM_HELPER="CONFIG_DRM_TTM_HELPER: is not set but is needed to compile when using - kernel version 6.11.x or newer while DRM_FBDEV_EMULATION is set. - ${drm_helper_msg}" - local ERROR_DRM_FBDEV_EMULATION="CONFIG_DRM_FBDEV_EMULATION: is not set but is needed for - nvidia-drm.fbdev=1 support, currently off-by-default and it could - be ignored, but note that is due to change in the future." - local ERROR_MMU_NOTIFIER="CONFIG_MMU_NOTIFIER: is not set but needed to build with USE=kernel-open. - Cannot be directly selected in the kernel's menuconfig, and may need - selection of another option that requires it such as CONFIG_KVM." - local ERROR_PREEMPT_RT="CONFIG_PREEMPT_RT: is set but is unsupported by NVIDIA upstream and - will fail to build unless the env var IGNORE_PREEMPT_RT_PRESENCE=1 is - set. Please do not report issues if run into e.g. kernel panics while - ignoring this." - - linux-mod-r1_pkg_setup -} - -src_prepare() { - # make patches usable across versions - rm nvidia-modprobe && mv nvidia-modprobe{-${PV},} || die - rm nvidia-persistenced && mv nvidia-persistenced{-${PV},} || die - rm nvidia-settings && mv nvidia-settings{-${PV},} || die - rm nvidia-xconfig && mv nvidia-xconfig{-${PV},} || die - mv NVIDIA-kernel-module-source-${PV} kernel-module-source || die - - default - - # prevent detection of incomplete kernel DRM support (bug #603818) - sed 's/defined(CONFIG_DRM/defined(CONFIG_DRM_KMS_HELPER/g' \ - -i kernel{,-module-source/kernel-open}/conftest.sh || die - - sed 's/__USER__/nvpd/' \ - nvidia-persistenced/init/systemd/nvidia-persistenced.service.template \ - > "${T}"/nvidia-persistenced.service || die - - # use alternative vulkan icd option if USE=-X (bug #909181) - use X || sed -i 's/"libGLX/"libEGL/' nvidia_{layers,icd}.json || die - - # enable nvidia-drm.modeset=1 by default with USE=wayland - cp "${FILESDIR}"/nvidia-570.conf "${T}"/nvidia.conf || die - use !wayland || sed -i '/^#.*modeset=1$/s/^#//' "${T}"/nvidia.conf || die - - # makefile attempts to install wayland library even if not built - use wayland || sed -i 's/ WAYLAND_LIB_install$//' \ - nvidia-settings/src/Makefile || die -} - -src_compile() { - tc-export AR CC CXX LD OBJCOPY OBJDUMP PKG_CONFIG - - # extra flags for the libXNVCtrl.a static library - local xnvflags=-fPIC #840389 - tc-is-lto && xnvflags+=" $(test-flags-CC -ffat-lto-objects)" - - NV_ARGS=( - PREFIX="${EPREFIX}"/usr - HOST_CC="$(tc-getBUILD_CC)" - HOST_LD="$(tc-getBUILD_LD)" - BUILD_GTK2LIB= - NV_USE_BUNDLED_LIBJANSSON=0 - NV_VERBOSE=1 DO_STRIP= MANPAGE_GZIP= OUTPUTDIR=out - WAYLAND_AVAILABLE=$(usex wayland 1 0) - XNVCTRL_CFLAGS="${xnvflags}" - ) - - if use modules; then - local o_cflags=${CFLAGS} o_cxxflags=${CXXFLAGS} o_ldflags=${LDFLAGS} - - local modlistargs=video:kernel - if use kernel-open; then - modlistargs+=-module-source:kernel-module-source/kernel-open - - # environment flags are normally unused for modules, but nvidia - # uses it for building the "blob" and it is a bit fragile - filter-flags -fno-plt #912949 - filter-lto - CC=${KERNEL_CC} CXX=${KERNEL_CXX} strip-unsupported-flags - - LDFLAGS=$(raw-ldflags) - fi - - local modlist=( nvidia{,-drm,-modeset,-peermem,-uvm}=${modlistargs} ) - local modargs=( - IGNORE_CC_MISMATCH=yes NV_VERBOSE=1 - SYSOUT="${KV_OUT_DIR}" SYSSRC="${KV_DIR}" - - # kernel takes "x86" and "x86_64" as meaning the same, but nvidia - # makes the distinction (since 550.135) and is not happy with "x86" - # TODO?: it should be ok/better for tc-arch-kernel to do x86_64 - $(usev amd64 ARCH=x86_64) - ) - - # temporary workaround for bug #914468 - addpredict "${KV_OUT_DIR}" - - linux-mod-r1_src_compile - CFLAGS=${o_cflags} CXXFLAGS=${o_cxxflags} LDFLAGS=${o_ldflags} - fi - - emake "${NV_ARGS[@]}" -C nvidia-modprobe - use persistenced && emake "${NV_ARGS[@]}" -C nvidia-persistenced - use X && emake "${NV_ARGS[@]}" -C nvidia-xconfig - - if use tools; then - # avoid noisy *very* noisy logs with deprecation warnings - CFLAGS="-Wno-deprecated-declarations ${CFLAGS}" \ - emake "${NV_ARGS[@]}" -C nvidia-settings - elif use static-libs; then - # pretend GTK+3 is available, not actually used (bug #880879) - emake "${NV_ARGS[@]}" BUILD_GTK3LIB=1 \ - -C nvidia-settings/src out/libXNVCtrl.a - fi -} - -src_install() { - local libdir=$(get_libdir) libdir32=$(ABI=x86 get_libdir) - - NV_ARGS+=( DESTDIR="${D}" LIBDIR="${ED}"/usr/${libdir} ) - - local -A paths=( - [APPLICATION_PROFILE]=/usr/share/nvidia - [CUDA_ICD]=/etc/OpenCL/vendors - [EGL_EXTERNAL_PLATFORM_JSON]=/usr/share/egl/egl_external_platform.d - [FIRMWARE]=/lib/firmware/nvidia/${PV} - [GBM_BACKEND_LIB_SYMLINK]=/usr/${libdir}/gbm - [GLVND_EGL_ICD_JSON]=/usr/share/glvnd/egl_vendor.d - [OPENGL_DATA]=/usr/share/nvidia - [VULKANSC_ICD_JSON]=/usr/share/vulkansc - [VULKAN_ICD_JSON]=/usr/share/vulkan - [WINE_LIB]=/usr/${libdir}/nvidia/wine - [XORG_OUTPUTCLASS_CONFIG]=/usr/share/X11/xorg.conf.d - - [GLX_MODULE_SHARED_LIB]=/usr/${libdir}/xorg/modules/extensions - [GLX_MODULE_SYMLINK]=/usr/${libdir}/xorg/modules - [XMODULE_SHARED_LIB]=/usr/${libdir}/xorg/modules - ) - - local skip_files=( - $(usev !X "libGLX_nvidia libglxserver_nvidia") - libGLX_indirect # non-glvnd unused fallback - libnvidia-{gtk,wayland-client} nvidia-{settings,xconfig} # from source - libnvidia-egl-gbm 15_nvidia_gbm # gui-libs/egl-gbm - libnvidia-egl-wayland 10_nvidia_wayland # gui-libs/egl-wayland - libnvidia-egl-xcb 20_nvidia_xcb.json # gui-libs/egl-x11 - libnvidia-egl-xlib 20_nvidia_xlib.json # gui-libs/egl-x11 - libnvidia-pkcs11.so # using the openssl3 version instead - ) - local skip_modules=( - $(usev !X "nvfbc vdpau xdriver") - $(usev !modules gsp) - $(usev !powerd nvtopps) - installer nvpd # handled separately / built from source - ) - local skip_types=( - GLVND_LIB GLVND_SYMLINK EGL_CLIENT.\* GLX_CLIENT.\* # media-libs/libglvnd - OPENCL_WRAPPER.\* # virtual/opencl - DOCUMENTATION DOT_DESKTOP .\*_SRC DKMS_CONF SYSTEMD_UNIT # handled separately / unused - ) - - local DOCS=( - README.txt NVIDIA_Changelog supported-gpus/supported-gpus.json - nvidia-settings/doc/{FRAMELOCK,NV-CONTROL-API}.txt - ) - local HTML_DOCS=( html/. ) - einstalldocs - - local DISABLE_AUTOFORMATTING=yes - local DOC_CONTENTS="\ -Trusted users should be in the 'video' group to use NVIDIA devices. -You can add yourself by using: gpasswd -a my-user video\ -$(usev modules " - -Like all out-of-tree kernel modules, it is necessary to rebuild -${PN} after upgrading or rebuilding the Linux kernel -by for example running \`emerge @module-rebuild\`. Alternatively, -if using a distribution kernel (sys-kernel/gentoo-kernel{,-bin}), -this can be automated by setting USE=dist-kernel globally. - -Loaded kernel modules also must not mismatch with the installed -${PN} version (excluding -r revision), meaning should -ensure \`eselect kernel list\` points to the kernel that will be -booted before building and preferably reboot after upgrading -${PN} (the ebuild will emit a warning if mismatching). - -See '${EPREFIX}/etc/modprobe.d/nvidia.conf' for modules options.")\ -$(use amd64 && usev !abi_x86_32 " - -Note that without USE=abi_x86_32 on ${PN}, 32bit applications -(typically using wine / steam) will not be able to use GPU acceleration.") - -Be warned that USE=kernel-open may need to be either enabled or -disabled for certain cards to function: -- GTX 50xx (blackwell) and higher require it to be enabled -- GTX 1650 and higher (pre-blackwell) should work either way -- Older cards require it to be disabled - -For additional information or for troubleshooting issues, please see -https://wiki.gentoo.org/wiki/NVIDIA/nvidia-drivers and NVIDIA's own -documentation that is installed alongside this README." - readme.gentoo_create_doc - - if use modules; then - linux-mod-r1_src_install - - insinto /etc/modprobe.d - doins "${T}"/nvidia.conf - - # used for gpu verification with binpkgs (not kept, see pkg_preinst) - insinto /usr/share/nvidia - doins supported-gpus/supported-gpus.json - fi - - emake "${NV_ARGS[@]}" -C nvidia-modprobe install - fowners :video /usr/bin/nvidia-modprobe #505092 - fperms 4710 /usr/bin/nvidia-modprobe - - if use persistenced; then - emake "${NV_ARGS[@]}" -C nvidia-persistenced install - newconfd "${FILESDIR}"/nvidia-persistenced.confd nvidia-persistenced - newinitd "${FILESDIR}"/nvidia-persistenced.initd nvidia-persistenced - systemd_dounit "${T}"/nvidia-persistenced.service - fi - - if use tools; then - emake "${NV_ARGS[@]}" -C nvidia-settings install - - doicon nvidia-settings/doc/nvidia-settings.png - domenu nvidia-settings/doc/nvidia-settings.desktop - - exeinto /etc/X11/xinit/xinitrc.d - newexe "${FILESDIR}"/95-nvidia-settings-r1 95-nvidia-settings - fi - - if use static-libs; then - dolib.a nvidia-settings/src/out/libXNVCtrl.a - strip-lto-bytecode - - insinto /usr/include/NVCtrl - doins nvidia-settings/src/libXNVCtrl/NVCtrl{Lib,}.h - fi - - use X && emake "${NV_ARGS[@]}" -C nvidia-xconfig install - - # mimic nvidia-installer by reading .manifest to install files - # 0:file 1:perms 2:type 3+:subtype/arguments -:module - local m into - while IFS=' ' read -ra m; do - ! [[ ${#m[@]} -ge 2 && ${m[-1]} =~ MODULE: ]] || - [[ " ${m[0]##*/}" =~ ^(\ ${skip_files[*]/%/.*|\\} )$ ]] || - [[ " ${m[2]}" =~ ^(\ ${skip_types[*]/%/|\\} )$ ]] || - has ${m[-1]#MODULE:} "${skip_modules[@]}" && continue - - case ${m[2]} in - MANPAGE) - gzip -dc ${m[0]} | newman - ${m[0]%.gz} - pipestatus || die - continue - ;; - GBM_BACKEND_LIB_SYMLINK) m[4]=../${m[4]};; # missing ../ - VDPAU_SYMLINK) m[4]=vdpau/; m[5]=${m[5]#vdpau/};; # .so to vdpau/ - esac - - if [[ -v 'paths[${m[2]}]' ]]; then - into=${paths[${m[2]}]} - elif [[ ${m[2]} == EXPLICIT_PATH ]]; then - into=${m[3]} - elif [[ ${m[2]} == *_BINARY ]]; then - into=/usr/bin - elif [[ ${m[3]} == COMPAT32 ]]; then - use abi_x86_32 || continue - into=/usr/${libdir32} - elif [[ ${m[2]} == *_@(LIB|SYMLINK) ]]; then - into=/usr/${libdir} - else - die "No known installation path for ${m[0]}" - fi - [[ ${m[3]: -2} == ?/ ]] && into+=/${m[3]%/} - [[ ${m[4]: -2} == ?/ ]] && into+=/${m[4]%/} - - if [[ ${m[2]} =~ _SYMLINK$ ]]; then - [[ ${m[4]: -1} == / ]] && m[4]=${m[5]} - dosym ${m[4]} ${into}/${m[0]} - continue - fi - # avoid portage warning due to missing soname links in manifest - [[ ${m[0]} =~ ^libnvidia-ngx.so ]] && - dosym ${m[0]} ${into}/${m[0]%.so*}.so.1 - - printf -v m[1] %o $((m[1] | 0200)) # 444->644 - insopts -m${m[1]} - insinto ${into} - doins ${m[0]} - done < .manifest || die - insopts -m0644 # reset - - # MODULE:installer non-skipped extras - : "$(systemd_get_sleepdir)" - exeinto "${_#"${EPREFIX}"}" - doexe systemd/system-sleep/nvidia - dobin systemd/nvidia-sleep.sh - systemd_dounit systemd/system/nvidia-{hibernate,resume,suspend,suspend-then-hibernate}.service - - dobin nvidia-bug-report.sh - - insinto /usr/share/nvidia/files.d - doins sandboxutils-filelist.json - - # MODULE:powerd extras - if use powerd; then - newinitd "${FILESDIR}"/nvidia-powerd.initd nvidia-powerd #923117 - systemd_dounit systemd/system/nvidia-powerd.service - - insinto /usr/share/dbus-1/system.d - doins nvidia-dbus.conf - fi - - # enabling is needed for sleep to work properly and little reason not to do - # it unconditionally for a better user experience - : "$(systemd_get_systemunitdir)" - local unitdir=${_#"${EPREFIX}"} - # not using relative symlinks to match systemd's own links - dosym {"${unitdir}",/etc/systemd/system/systemd-hibernate.service.wants}/nvidia-hibernate.service - dosym {"${unitdir}",/etc/systemd/system/systemd-hibernate.service.wants}/nvidia-resume.service - dosym {"${unitdir}",/etc/systemd/system/systemd-suspend.service.wants}/nvidia-suspend.service - dosym {"${unitdir}",/etc/systemd/system/systemd-suspend.service.wants}/nvidia-resume.service - dosym {"${unitdir}",/etc/systemd/system/systemd-suspend-then-hibernate.service.wants}/nvidia-suspend-then-hibernate.service - dosym {"${unitdir}",/etc/systemd/system/systemd-suspend-then-hibernate.service.wants}/nvidia-resume.service - # also add a custom elogind hook to do the equivalent of the above - exeinto /usr/lib/elogind/system-sleep - newexe "${FILESDIR}"/system-sleep.elogind nvidia - # =systemd-256 or may fail to resume with some setups - # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1072722 - insinto "${unitdir}"/systemd-homed.service.d - newins - 10-nvidia.conf <<-EOF - [Service] - Environment=SYSTEMD_HOME_LOCK_FREEZE_SESSION=false - EOF - insinto "${unitdir}"/systemd-suspend.service.d - newins - 10-nvidia.conf <<-EOF - [Service] - Environment=SYSTEMD_SLEEP_FREEZE_USER_SESSIONS=false - EOF - dosym -r "${unitdir}"/systemd-{suspend,hibernate}.service.d/10-nvidia.conf - dosym -r "${unitdir}"/systemd-{suspend,hybrid-sleep}.service.d/10-nvidia.conf - dosym -r "${unitdir}"/systemd-{suspend,suspend-then-hibernate}.service.d/10-nvidia.conf - - # symlink non-versioned so nvidia-settings can use it even if misdetected - dosym nvidia-application-profiles-${PV}-key-documentation \ - ${paths[APPLICATION_PROFILE]}/nvidia-application-profiles-key-documentation - - # don't attempt to strip firmware files (silences errors) - dostrip -x ${paths[FIRMWARE]} - - # sandbox issues with /dev/nvidiactl and others (bug #904292,#921578) - # are widespread and sometime affect revdeps of packages built with - # USE=opencl/cuda making it hard to manage in ebuilds (minimal set, - # ebuilds should handle manually if need others or addwrite) - insinto /etc/sandbox.d - newins - 20nvidia <<<'SANDBOX_PREDICT="/dev/nvidiactl:/dev/nvidia-caps:/dev/char"' - - # dracut does not use /etc/modprobe.d if hostonly=no, but want to make sure - # our settings are used for bug 932781#c8 and nouveau blacklist if either - # modules are included (however, just best-effort without initramfs regen) - if use modules; then - echo "install_items+=\" ${EPREFIX}/etc/modprobe.d/nvidia.conf \"" >> \ - "${ED}"/usr/lib/dracut/dracut.conf.d/10-${PN}.conf || die - fi -} - -pkg_preinst() { - has_version "${CATEGORY}/${PN}[kernel-open]" && NV_HAD_KERNEL_OPEN= - has_version "${CATEGORY}/${PN}[wayland]" && NV_HAD_WAYLAND= - - use modules || return - - # set video group id based on live system (bug #491414) - local g=$(egetent group video | cut -d: -f3) - [[ ${g} =~ ^[0-9]+$ ]] || die "Failed to determine video group id (got '${g}')" - sed -i "s/@VIDEOGID@/${g}/" "${ED}"/etc/modprobe.d/nvidia.conf || die - - # try to find driver mismatches using temporary supported-gpus.json - for g in $(grep -l 0x10de /sys/bus/pci/devices/*/vendor 2>/dev/null); do - g=$(grep -io "\"devid\":\"$(<${g%vendor}device)\"[^}]*branch\":\"[0-9]*" \ - "${ED}"/usr/share/nvidia/supported-gpus.json 2>/dev/null) - if [[ ${g} ]]; then - g=$((${g##*\"}+1)) - if ver_test -ge ${g}; then - NV_LEGACY_MASK=">=${CATEGORY}/${PN}-${g}" - break - fi - fi - done - rm "${ED}"/usr/share/nvidia/supported-gpus.json || die -} - -pkg_postinst() { - linux-mod-r1_pkg_postinst - - readme.gentoo_print_elog - - if [[ -r /proc/driver/nvidia/version && - $( ${EROOT}/etc/portage/package.mask/${PN}" - else - ewarn " echo '${NV_LEGACY_MASK}' >> ${EROOT}/etc/portage/package.mask" - fi - ewarn "...then downgrade to a legacy[1] branch if possible (not all old versions" - ewarn "are available or fully functional, may need to consider nouveau[2])." - ewarn "[1] https://www.nvidia.com/object/IO_32667.html" - ewarn "[2] https://wiki.gentoo.org/wiki/Nouveau" - fi - - if use kernel-open && [[ ! -v NV_HAD_KERNEL_OPEN ]]; then - ewarn - ewarn "Open source variant of ${PN} was selected, note that it requires" - ewarn "Turing/Ampere+ GPUs (aka GTX 1650+). Try disabling if run into issues." - ewarn "Also see: ${EROOT}/usr/share/doc/${PF}/html/kernel_open.html" - fi - - if use wayland && use modules && [[ ! -v NV_HAD_WAYLAND ]]; then - elog - elog "Note that with USE=wayland, nvidia-drm.modeset=1 will be enabled" - elog "in '${EROOT}/etc/modprobe.d/nvidia.conf'. *If* experience issues," - elog "either disable wayland or edit nvidia.conf." - fi -} diff --git a/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-580.82.09.ebuild b/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-580.94.03.ebuild similarity index 95% rename from sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-580.82.09.ebuild rename to sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-580.94.03.ebuild index 378899f57d..bf95c1603e 100644 --- a/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-580.82.09.ebuild +++ b/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-580.94.03.ebuild @@ -7,20 +7,18 @@ MODULES_OPTIONAL_IUSE=+modules inherit desktop dot-a eapi9-pipestatus flag-o-matic linux-mod-r1 inherit readme.gentoo-r1 systemd toolchain-funcs unpacker user-info -MODULES_KERNEL_MAX=6.16 -NV_URI="https://download.nvidia.com/XFree86/" -# x86-64 .run was missing from the usual mirror, use us. until next bump -# (note that it lacks some other files, thus the separate variable) -[[ ${PV} == 580.82.09 ]] && NV_URI_TMP="https://us.download.nvidia.com/XFree86/" +MODULES_KERNEL_MAX=6.17 +NV_PIN=580.95.05 DESCRIPTION="NVIDIA Accelerated Graphics Driver" -HOMEPAGE="https://www.nvidia.com/" +HOMEPAGE="https://developer.nvidia.com/vulkan-driver/" SRC_URI=" - amd64? ( ${NV_URI_TMP}Linux-x86_64/${PV}/NVIDIA-Linux-x86_64-${PV}.run ) - arm64? ( ${NV_URI}Linux-aarch64/${PV}/NVIDIA-Linux-aarch64-${PV}.run ) - $(printf "${NV_URI}%s/%s-${PV}.tar.bz2 " \ + https://developer.nvidia.com/downloads/vulkan-beta-${PV//.}-linux + -> NVIDIA-Linux-x86_64-${PV}.run + $(printf "https://download.nvidia.com/XFree86/%s/%s-${NV_PIN}.tar.bz2 " \ nvidia-{installer,modprobe,persistenced,settings,xconfig}{,}) - ${NV_URI}NVIDIA-kernel-module-source/NVIDIA-kernel-module-source-${PV}.tar.xz + https://github.com/NVIDIA/open-gpu-kernel-modules/archive/refs/tags/${PV}.tar.gz + -> open-gpu-kernel-modules-${PV}.tar.gz " # nvidia-installer is unused but here for GPL-2's "distribute sources" S=${WORKDIR} @@ -29,8 +27,8 @@ LICENSE=" NVIDIA-2025 Apache-2.0 Boost-1.0 BSD BSD-2 GPL-2 MIT ZLIB curl openssl public-domain " -SLOT="0/${PV%%.*}" -KEYWORDS="-* ~amd64 ~arm64" +SLOT="0/vulkan" +KEYWORDS="-* ~amd64" IUSE="+X abi_x86_32 abi_x86_64 kernel-open persistenced powerd +static-libs +tools wayland" REQUIRED_USE="kernel-open? ( modules )" @@ -67,7 +65,10 @@ RDEPEND=" powerd? ( sys-apps/dbus[abi_x86_32(-)?] ) wayland? ( >=gui-libs/egl-gbm-1.1.1-r2[abi_x86_32(-)?] - >=gui-libs/egl-wayland-1.1.13.1[abi_x86_32(-)?] + || ( + >=gui-libs/egl-wayland-1.1.13.1[abi_x86_32(-)?] + gui-libs/egl-wayland2[abi_x86_32(-)?] + ) X? ( gui-libs/egl-x11[abi_x86_32(-)?] ) ) " @@ -154,11 +155,11 @@ pkg_setup() { src_prepare() { # make patches usable across versions - rm nvidia-modprobe && mv nvidia-modprobe{-${PV},} || die - rm nvidia-persistenced && mv nvidia-persistenced{-${PV},} || die - rm nvidia-settings && mv nvidia-settings{-${PV},} || die - rm nvidia-xconfig && mv nvidia-xconfig{-${PV},} || die - mv NVIDIA-kernel-module-source-${PV} kernel-module-source || die + rm nvidia-modprobe && mv nvidia-modprobe{-${NV_PIN},} || die + rm nvidia-persistenced && mv nvidia-persistenced{-${NV_PIN},} || die + rm nvidia-settings && mv nvidia-settings{-${NV_PIN},} || die + rm nvidia-xconfig && mv nvidia-xconfig{-${NV_PIN},} || die + mv open-gpu-kernel-modules-${PV} kernel-module-source || die default diff --git a/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-580.82.07.ebuild b/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-580.95.05.ebuild similarity index 99% rename from sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-580.82.07.ebuild rename to sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-580.95.05.ebuild index 8581cfa941..42d5d38cc7 100644 --- a/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-580.82.07.ebuild +++ b/sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-580.95.05.ebuild @@ -7,7 +7,7 @@ MODULES_OPTIONAL_IUSE=+modules inherit desktop dot-a eapi9-pipestatus flag-o-matic linux-mod-r1 inherit readme.gentoo-r1 systemd toolchain-funcs unpacker user-info -MODULES_KERNEL_MAX=6.16 +MODULES_KERNEL_MAX=6.17 NV_URI="https://download.nvidia.com/XFree86/" DESCRIPTION="NVIDIA Accelerated Graphics Driver" @@ -64,7 +64,10 @@ RDEPEND=" powerd? ( sys-apps/dbus[abi_x86_32(-)?] ) wayland? ( >=gui-libs/egl-gbm-1.1.1-r2[abi_x86_32(-)?] - >=gui-libs/egl-wayland-1.1.13.1[abi_x86_32(-)?] + || ( + >=gui-libs/egl-wayland-1.1.13.1[abi_x86_32(-)?] + gui-libs/egl-wayland2[abi_x86_32(-)?] + ) X? ( gui-libs/egl-x11[abi_x86_32(-)?] ) ) "